Recently I test linux device drivers in Linux 3.17.2, and find some potential bugs.
igb driver: [1] In the normal process of igb, pci_enable_pcie_error_reporting and pci_disable_pcie_error_reporting is called in pairs in igb_probe and igb_remove. However, when pci_enable_pcie_error_reporting has been called and alloc_etherdev_mqs in igb_probe is failed, "err_alloc_etherdev" segment in igb_probe is executed immediately to exit, but pci_disable_pcie_error_reporting is not called. [2] The same situation with [1] happens when pci_iomap in igb_probe is failed. [3] The same situation with [1] happens when igb_sw_init in igb_probe is failed. [4] The same situation with [1] happens when register_netdev in igb_probe is failed. [5] The same situation with [1] happens when igb_init_i2c in igb_probe is failed. [6] The function kcalloc is called by igb_sw_init when initializing the ethernet card driver, but kfree is not called when register_netdev in igb_probe is failed, which may cause memory leak. [7] The same situation with [6] happens when igb_init_i2c in igb_probe is failed. [8] The same situation with [6] happens when kzalloc in igb_alloc_q_vector is failed. [9] The same situation with [6] happens when igb_alloc_q_vector in igb_alloc_q_vectors is failed. [10] When igb_init_i2c in igb_probe is failed, igb_enable_sriov is called in igb_probe_vfs, but igb_disable_sriov is not called. [11] The same situation with [10] happens when register_netdev in igb_probe is failed. Could you help me check these findings? Thank you very much, and I'm looking forward to your reply. -- Jia-Ju Bai ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired