• Logan Gunthorpe's avatar
    scsi: utilize new cdev_device_add helper function · ac1ddc58
    Logan Gunthorpe authored
    This driver did not set kobj.parent so it likely suffered from
    a potential use after free race if the user unregistered the
    device while it was in use.
    
    This was not so straightforward a conversion but I think this patch
    cleans up its probe's error path significantly.
    
    This patch adds device_initialize, which is required for
    cdev_device_add. Then it switches to put_device instead of kfree as
    recommended by device_initialize's documentation. This removes a lot
    from the error path which was already in __remove.
    A couple things needed to be re-ordered to be entirely correct, though.
    ida_remove is also moved out of __remove and into unregister to
    simplify things and follow the pattern other devices are using.
    
    This also drop an extra unnecessary get_device/put_device in the code.
    Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ac1ddc58
osd_uld.c 14.3 KB