• David Herrmann's avatar
    Bluetooth: vhci: Free driver_data on file release · bf18c711
    David Herrmann authored
    This removes the hci-destruct callback and instead frees the private
    driver data in the vhci_release file release function. There is no
    reason to keep private driver data available if the driver has already
    shut down.
    
    After vhci_release is called our module can be unloaded. The only reason
    it is kept alive is the hci-core having a module-ref on us because of
    our destruct callback. However, this callback only frees
    hdev->driver_data. That is, we wait for the hdev-device to get destroyed
    to free our internal driver-data. In fact, the hci-core does never touch
    hdev->driver_data so it doesn't care if it is NULL. Therefore, we simply
    free it when unloading the driver.
    
    Another important fact is that the hdev core does not call any callbacks
    other than the destruct-cb after hci_unregister_dev() has been called.
    So there is no function of our module that will be called nor does the
    hci-core touch hdev->driver_data. Hence, no other code can touch
    hdev->driver_data after our cleanup so the destruct callback is
    definitely unnecessary here.
    Signed-off-by: default avatarDavid Herrmann <dh.herrmann@googlemail.com>
    Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
    bf18c711
hci_vhci.c 6.23 KB