• Johan Hovold's avatar
    NFC: fix broken device allocation · f73de3f9
    Johan Hovold authored
    commit 20777bc5 upstream.
    
    Commit 7eda8b8e ("NFC: Use IDR library to assing NFC devices IDs")
    moved device-id allocation and struct-device initialisation from
    nfc_allocate_device() to nfc_register_device().
    
    This broke just about every nfc-device-registration error path, which
    continue to call nfc_free_device() that tries to put the device
    reference of the now uninitialised (but zeroed) struct device:
    
    kobject: '(null)' (ce316420): is not initialized, yet kobject_put() is being called.
    
    The late struct-device initialisation also meant that various work
    queues whose names are derived from the nfc device name were also
    misnamed:
    
      421 root         0 SW<  [(null)_nci_cmd_]
      422 root         0 SW<  [(null)_nci_rx_w]
      423 root         0 SW<  [(null)_nci_tx_w]
    
    Move the id-allocation and struct-device initialisation back to
    nfc_allocate_device() and fix up the single call site which did not use
    nfc_free_device() in its error path.
    
    Fixes: 7eda8b8e ("NFC: Use IDR library to assing NFC devices IDs")
    Cc: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: 's avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: 's avatarSamuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f73de3f9
Name
Last commit
Last update
..
hci Loading commit data...
nci Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
af_nfc.c Loading commit data...
core.c Loading commit data...
digital.h Loading commit data...
digital_core.c Loading commit data...
digital_dep.c Loading commit data...
digital_technology.c Loading commit data...
llcp.h Loading commit data...
llcp_commands.c Loading commit data...
llcp_core.c Loading commit data...
llcp_sock.c Loading commit data...
netlink.c Loading commit data...
nfc.h Loading commit data...
rawsock.c Loading commit data...