[SCSI] bsg: correct fault if queue object removed while dev_t open
authorJames Smart <james.smart@emulex.com>
Sun, 14 Nov 2010 16:12:04 +0000 (11:12 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 9 Dec 2010 15:41:14 +0000 (09:41 -0600)
commitc7a841f3aca469187db76842676951a672fd27d1
tree6819d796270f9b4c5eb4cae374a69ab1988d384a
parent057f02a38e67a944a2d0b89bb0111efb9dbe6e6e
[SCSI] bsg: correct fault if queue object removed while dev_t open

This patch corrects an issue in bsg that results in a general protection
fault if an LLD is removed while an application is using an open file
handle to a bsg device, and the application issues an ioctl. The fault
occurs because the class_dev is NULL, having been cleared in
bsg_unregister_queue() when the driver was removed.  With this
patch, a check is made for the class_dev, and the application
will receive ENXIO if the related object is gone.

Signed-off-by: Carl Lajeunesse <carl.lajeunesse@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
block/bsg.c