]> git.baikalelectronics.ru Git - kernel.git/commit
cxlflash: Fix to avoid invalid port_sel value
authorManoj Kumar <kumarmn@us.ibm.com>
Wed, 21 Oct 2015 20:10:31 +0000 (15:10 -0500)
committerJames Bottomley <JBottomley@Odin.com>
Fri, 30 Oct 2015 07:57:21 +0000 (16:57 +0900)
commita2b0aa50c3c6a2241669e799224ad0b9888e18c1
tree08afcf489f87f429ab281c2f3d902743af89bf39
parentf1c6e1088be5bc9fa37edd601b91589963a69644
cxlflash: Fix to avoid invalid port_sel value

If two concurrent MANAGE_LUN ioctls are issued with the same
WWID parameter, it would result in an incorrect value of port_sel.

This is because port_sel is modified without any locks being
held. If the first caller stalls after the return from
find_and_create_lun(), the value of port_sel will be set
incorrectly to indicate a single port, though in this case
it should have been set to both ports.

To fix, use the global mutex to serialize the lookup of the
WWID and the subsequent modification of port_sel.

Signed-off-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Manoj N. Kumar <manoj@linux.vnet.ibm.com>
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/cxlflash/lunmgt.c