forked from Minki/linux
NTB: Add Error Handling in ntb_device_setup
If an error is encountered in ntb_device_setup, it is possible that the spci_cmd isn't populated. Writes to the offset can result in a NULL pointer dereference. This issue is easily encountered by running in NTB-RP mode, as it currently is not supported and will generate an error. To get around this issue, return if an error is encountered prior to attempting to write to the spci_cmd offset. Signed-off-by: Jon Mason <jon.mason@intel.com>
This commit is contained in:
parent
6e4664525b
commit
3b12a0d15b
@ -644,10 +644,13 @@ static int ntb_device_setup(struct ntb_device *ndev)
|
|||||||
rc = -ENODEV;
|
rc = -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
/* Enable Bus Master and Memory Space on the secondary side */
|
/* Enable Bus Master and Memory Space on the secondary side */
|
||||||
writew(PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER, ndev->reg_ofs.spci_cmd);
|
writew(PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER, ndev->reg_ofs.spci_cmd);
|
||||||
|
|
||||||
return rc;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ntb_device_free(struct ntb_device *ndev)
|
static void ntb_device_free(struct ntb_device *ndev)
|
||||||
|
Loading…
Reference in New Issue
Block a user