mirror of https://gitee.com/openkylin/linux.git
mpt2sas: correct scsi_{target,device} hostdata allocation
In _scsih_{slave,target}_alloc, an incorrect structure type is passed to sizeof() when allocating storage for hostdata. Luckily larger structure types were used, so at least the wrong sizes were safe: struct scsi_device (1784 bytes) > struct MPT2SAS_DEVICE (24 bytes) struct scsi_target (760 bytes) > struct MPT2SAS_TARGET (40 bytes) This fixes the following smatch warnings: drivers/scsi/mpt2sas/mpt2sas_scsih.c:1295 _scsih_target_alloc() warn: struct type mismatch 'MPT2SAS_TARGET vs scsi_target' drivers/scsi/mpt2sas/mpt2sas_scsih.c:1409 _scsih_slave_alloc() warn: struct type mismatch 'MPT2SAS_DEVICE vs scsi_device' Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com> Acked-by: Sreekanth Reddy <Sreekanth.Reddy@avagotech.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
4bfaa5c4b9
commit
feafe7c596
|
@ -1292,7 +1292,8 @@ _scsih_target_alloc(struct scsi_target *starget)
|
|||
unsigned long flags;
|
||||
struct sas_rphy *rphy;
|
||||
|
||||
sas_target_priv_data = kzalloc(sizeof(struct scsi_target), GFP_KERNEL);
|
||||
sas_target_priv_data = kzalloc(sizeof(*sas_target_priv_data),
|
||||
GFP_KERNEL);
|
||||
if (!sas_target_priv_data)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1406,7 +1407,8 @@ _scsih_slave_alloc(struct scsi_device *sdev)
|
|||
struct _sas_device *sas_device;
|
||||
unsigned long flags;
|
||||
|
||||
sas_device_priv_data = kzalloc(sizeof(struct scsi_device), GFP_KERNEL);
|
||||
sas_device_priv_data = kzalloc(sizeof(*sas_device_priv_data),
|
||||
GFP_KERNEL);
|
||||
if (!sas_device_priv_data)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
Loading…
Reference in New Issue