mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
[SCSI] scsi_transport_spi: fix oops in revalidate
The class_device->device conversion is causing an oops in revalidate because it's assuming that the device_for_each_child iterator will only return struct scsi_device children. The conversion made all former class_devices children of the device as well, so this assumption is broken. Fix it. Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
671a99c8eb
commit
e8bac9e064
@ -366,12 +366,14 @@ spi_transport_rd_attr(rti, "%d\n");
|
||||
spi_transport_rd_attr(pcomp_en, "%d\n");
|
||||
spi_transport_rd_attr(hold_mcs, "%d\n");
|
||||
|
||||
/* we only care about the first child device so we return 1 */
|
||||
/* we only care about the first child device that's a real SCSI device
|
||||
* so we return 1 to terminate the iteration when we find it */
|
||||
static int child_iter(struct device *dev, void *data)
|
||||
{
|
||||
struct scsi_device *sdev = to_scsi_device(dev);
|
||||
if (!scsi_is_sdev_device(dev))
|
||||
return 0;
|
||||
|
||||
spi_dv_device(sdev);
|
||||
spi_dv_device(to_scsi_device(dev));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user