The pci_register_driver() can fail and when this happened, the dca_notifier
needs to be unregistered, otherwise the dca_notifier can be called when
igb fails to install, resulting to invalid memory access.

Fixes: bbd98fe48a43 ("igb: Fix DCA errors and do not use context index for 
82576")
Signed-off-by: Yuan Can <[email protected]>
---
Changes since v1:
- Change fix tag to bbd98fe48a43.
- Change target branch to net.
---
 drivers/net/ethernet/intel/igb/igb_main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c 
b/drivers/net/ethernet/intel/igb/igb_main.c
index f1d088168723..18284a838e24 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -637,6 +637,10 @@ static int __init igb_init_module(void)
        dca_register_notify(&dca_notifier);
 #endif
        ret = pci_register_driver(&igb_driver);
+#ifdef CONFIG_IGB_DCA
+       if (ret)
+               dca_unregister_notify(&dca_notifier);
+#endif
        return ret;
 }
 
-- 
2.17.1

Reply via email to