|
@@ -678,19 +678,19 @@ int
|
|
|
mpt_device_driver_register(struct mpt_pci_driver * dd_cbfunc, int cb_idx)
|
|
|
{
|
|
|
MPT_ADAPTER *ioc;
|
|
|
+ const struct pci_device_id *id;
|
|
|
|
|
|
- if (cb_idx < 1 || cb_idx >= MPT_MAX_PROTOCOL_DRIVERS) {
|
|
|
+ if (cb_idx < 1 || cb_idx >= MPT_MAX_PROTOCOL_DRIVERS)
|
|
|
return -EINVAL;
|
|
|
- }
|
|
|
|
|
|
MptDeviceDriverHandlers[cb_idx] = dd_cbfunc;
|
|
|
|
|
|
/* call per pci device probe entry point */
|
|
|
list_for_each_entry(ioc, &ioc_list, list) {
|
|
|
- if(dd_cbfunc->probe) {
|
|
|
- dd_cbfunc->probe(ioc->pcidev,
|
|
|
- ioc->pcidev->driver->id_table);
|
|
|
- }
|
|
|
+ id = ioc->pcidev->driver ?
|
|
|
+ ioc->pcidev->driver->id_table : NULL;
|
|
|
+ if (dd_cbfunc->probe)
|
|
|
+ dd_cbfunc->probe(ioc->pcidev, id);
|
|
|
}
|
|
|
|
|
|
return 0;
|