[SCSI] lpfc driver 8.0.30 : fix get_stats panic
Fix panic in lpfc_get_stats() Symptoms: Panic on sysfs stats access Cause: In lpfc_get_stats() we are writing to memory that we do not own. Fix: Fix our stats structure allocation. Embed phba->link_stats in struct lpfc_hba and stop treating it like rogue structure. Note: Embedding midlayer/transport structure in our structure caused need for more files to include midlayer/transport headers. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
committed by
James Bottomley
parent
69859dc477
commit
f888ba3ce7
@@ -1339,14 +1339,12 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid)
|
||||
if (pci_request_regions(pdev, LPFC_DRIVER_NAME))
|
||||
goto out_disable_device;
|
||||
|
||||
host = scsi_host_alloc(&lpfc_template,
|
||||
sizeof (struct lpfc_hba) + sizeof (unsigned long));
|
||||
host = scsi_host_alloc(&lpfc_template, sizeof (struct lpfc_hba));
|
||||
if (!host)
|
||||
goto out_release_regions;
|
||||
|
||||
phba = (struct lpfc_hba*)host->hostdata;
|
||||
memset(phba, 0, sizeof (struct lpfc_hba));
|
||||
phba->link_stats = (void *)&phba[1];
|
||||
phba->host = host;
|
||||
|
||||
phba->fc_flag |= FC_LOADING;
|
||||
|
Reference in New Issue
Block a user