Message ID | 20160415213655.28072-1-jacob.e.keller@intel.com |
---|---|
State | Superseded |
Headers | show |
Hi Jacob, [auto build test ERROR on v4.6-rc3] [also build test ERROR on next-20160415] [cannot apply to jkirsher-next-queue/dev-queue] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Jacob-Keller/e1000e-don-t-modify-SYSTIM-registers-during-SIOCSHWTSTAMP-ioctl/20160416-054018 config: x86_64-randconfig-x011-201615 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): static int e1000e_pm_runtime_idle(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6645:12: error: invalid storage class for function 'e1000e_pm_runtime_resume' static int e1000e_pm_runtime_resume(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6662:12: error: invalid storage class for function 'e1000e_pm_runtime_suspend' static int e1000e_pm_runtime_suspend(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6689:13: error: invalid storage class for function 'e1000_shutdown' static void e1000_shutdown(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6700:20: error: invalid storage class for function 'e1000_intr_msix' static irqreturn_t e1000_intr_msix(int __always_unused irq, void *data) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6738:13: error: invalid storage class for function 'e1000_netpoll' static void e1000_netpoll(struct net_device *netdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6768:25: error: invalid storage class for function 'e1000_io_error_detected' static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6794:25: error: invalid storage class for function 'e1000_io_slot_reset' static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6841:13: error: invalid storage class for function 'e1000_io_resume' static void e1000_io_resume(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6861:13: error: invalid storage class for function 'e1000_print_device_info' static void e1000_print_device_info(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6885:13: error: invalid storage class for function 'e1000_eeprom_checks' static void e1000_eeprom_checks(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6903:26: error: invalid storage class for function 'e1000_fix_features' static netdev_features_t e1000_fix_features(struct net_device *netdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6916:12: error: invalid storage class for function 'e1000_set_features' static int e1000_set_features(struct net_device *netdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6955:15: error: initializer element is not constant .ndo_open = e1000_open, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6955:15: note: (near initialization for 'e1000e_netdev_ops.ndo_open') drivers/net/ethernet/intel/e1000e/netdev.c:6956:15: error: initializer element is not constant .ndo_stop = e1000_close, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6956:15: note: (near initialization for 'e1000e_netdev_ops.ndo_stop') drivers/net/ethernet/intel/e1000e/netdev.c:6957:21: error: initializer element is not constant .ndo_start_xmit = e1000_xmit_frame, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6957:21: note: (near initialization for 'e1000e_netdev_ops.ndo_start_xmit') drivers/net/ethernet/intel/e1000e/netdev.c:6958:21: error: initializer element is not constant .ndo_get_stats64 = e1000e_get_stats64, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6958:21: note: (near initialization for 'e1000e_netdev_ops.ndo_get_stats64') drivers/net/ethernet/intel/e1000e/netdev.c:6960:25: error: initializer element is not constant .ndo_set_mac_address = e1000_set_mac, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6960:25: note: (near initialization for 'e1000e_netdev_ops.ndo_set_mac_address') drivers/net/ethernet/intel/e1000e/netdev.c:6961:21: error: initializer element is not constant .ndo_change_mtu = e1000_change_mtu, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6961:21: note: (near initialization for 'e1000e_netdev_ops.ndo_change_mtu') drivers/net/ethernet/intel/e1000e/netdev.c:6962:19: error: initializer element is not constant .ndo_do_ioctl = e1000_ioctl, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6962:19: note: (near initialization for 'e1000e_netdev_ops.ndo_do_ioctl') drivers/net/ethernet/intel/e1000e/netdev.c:6963:21: error: initializer element is not constant .ndo_tx_timeout = e1000_tx_timeout, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6963:21: note: (near initialization for 'e1000e_netdev_ops.ndo_tx_timeout') drivers/net/ethernet/intel/e1000e/netdev.c:6969:25: error: initializer element is not constant .ndo_poll_controller = e1000_netpoll, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6969:25: note: (near initialization for 'e1000e_netdev_ops.ndo_poll_controller') drivers/net/ethernet/intel/e1000e/netdev.c:6971:22: error: initializer element is not constant .ndo_set_features = e1000_set_features, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6971:22: note: (near initialization for 'e1000e_netdev_ops.ndo_set_features') drivers/net/ethernet/intel/e1000e/netdev.c:6972:22: error: initializer element is not constant .ndo_fix_features = e1000_fix_features, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6972:22: note: (near initialization for 'e1000e_netdev_ops.ndo_fix_features') drivers/net/ethernet/intel/e1000e/netdev.c:6987:12: error: invalid storage class for function 'e1000_probe' static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7336:13: error: invalid storage class for function 'e1000_remove' static void e1000_remove(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7400:20: error: initializer element is not constant .error_detected = e1000_io_error_detected, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7400:20: note: (near initialization for 'e1000_err_handler.error_detected') drivers/net/ethernet/intel/e1000e/netdev.c:7401:16: error: initializer element is not constant .slot_reset = e1000_io_slot_reset, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7401:16: note: (near initialization for 'e1000_err_handler.slot_reset') drivers/net/ethernet/intel/e1000e/netdev.c:7402:12: error: initializer element is not constant .resume = e1000_io_resume, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7402:12: note: (near initialization for 'e1000_err_handler.resume') >> drivers/net/ethernet/intel/e1000e/netdev.c:7494:1: warning: 'alias' attribute ignored [-Wattributes] MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); ^ In file included from include/linux/device.h:25:0, from include/linux/pci.h:30, from drivers/net/ethernet/intel/e1000e/netdev.c:27: drivers/net/ethernet/intel/e1000e/netdev.c:7505:21: error: initializer element is not constant SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:359:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:21: note: (near initialization for 'e1000_pm_ops.runtime_suspend') SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:359:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:48: error: initializer element is not constant SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:360:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:48: note: (near initialization for 'e1000_pm_ops.runtime_resume') SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:360:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7506:7: error: initializer element is not constant e1000e_pm_runtime_idle) ^ include/linux/pm.h:361:18: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_idle = idle_fn, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7506:7: note: (near initialization for 'e1000_pm_ops.runtime_idle') e1000e_pm_runtime_idle) ^ include/linux/pm.h:361:18: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_idle = idle_fn, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7513:14: error: initializer element is not constant .probe = e1000_probe, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7513:14: note: (near initialization for 'e1000_driver.probe') drivers/net/ethernet/intel/e1000e/netdev.c:7514:14: error: initializer element is not constant .remove = e1000_remove, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7514:14: note: (near initialization for 'e1000_driver.remove') drivers/net/ethernet/intel/e1000e/netdev.c:7518:14: error: initializer element is not constant .shutdown = e1000_shutdown, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7518:14: note: (near initialization for 'e1000_driver.shutdown') drivers/net/ethernet/intel/e1000e/netdev.c:7528:19: error: invalid storage class for function 'e1000_init_module' static int __init e1000_init_module(void) ^ In file included from drivers/net/ethernet/intel/e1000e/netdev.c:24:0: >> include/linux/module.h:128:27: error: invalid storage class for function '__inittest' static inline initcall_t __inittest(void) \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7536:1: note: in expansion of macro 'module_init' module_init(e1000_init_module); ^ drivers/net/ethernet/intel/e1000e/netdev.c:7536:1: warning: 'alias' attribute ignored [-Wattributes] drivers/net/ethernet/intel/e1000e/netdev.c:7544:20: error: invalid storage class for function 'e1000_exit_module' static void __exit e1000_exit_module(void) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7544:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void __exit e1000_exit_module(void) ^ In file included from drivers/net/ethernet/intel/e1000e/netdev.c:24:0: >> include/linux/module.h:134:27: error: invalid storage class for function '__exittest' static inline exitcall_t __exittest(void) \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7548:1: note: in expansion of macro 'module_exit' module_exit(e1000_exit_module); ^ drivers/net/ethernet/intel/e1000e/netdev.c:7548:1: warning: 'alias' attribute ignored [-Wattributes] In file included from include/linux/module.h:18:0, from drivers/net/ethernet/intel/e1000e/netdev.c:24: include/linux/moduleparam.h:21:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static const char __UNIQUE_ID(name)[] \ ^ include/linux/module.h:171:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:215:32: note: in expansion of macro 'MODULE_INFO' #define MODULE_AUTHOR(_author) MODULE_INFO(author, _author) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7550:1: note: in expansion of macro 'MODULE_AUTHOR' MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>"); ^ drivers/net/ethernet/intel/e1000e/netdev.c:7553:1: error: expected declaration or statement at end of input MODULE_VERSION(DRV_VERSION); ^ cc1: some warnings being treated as errors vim +/alias +7494 drivers/net/ethernet/intel/e1000e/netdev.c 111b9dc5 drivers/net/e1000e/netdev.c Jesse Brandeburg 2009-02-10 7394 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7395 pci_disable_device(pdev); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7396 } bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7397 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7398 /* PCI Error Recovery (ERS) */ 3646f0e5 drivers/net/ethernet/intel/e1000e/netdev.c Stephen Hemminger 2012-09-07 7399 static const struct pci_error_handlers e1000_err_handler = { bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 @7400 .error_detected = e1000_io_error_detected, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7401 .slot_reset = e1000_io_slot_reset, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7402 .resume = e1000_io_resume, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7403 }; bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7404 0e8e842b drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-04-08 7405 static const struct pci_device_id e1000_pci_tbl[] = { bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7406 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_COPPER), board_82571 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7407 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_FIBER), board_82571 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7408 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_COPPER), board_82571 }, c29c3ba5 drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-02-20 7409 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_COPPER_LP), c29c3ba5 drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-02-20 7410 board_82571 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7411 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_QUAD_FIBER), board_82571 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7412 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_SERDES), board_82571 }, 040babf9 drivers/net/e1000e/netdev.c Auke Kok 2007-10-31 7413 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_SERDES_DUAL), board_82571 }, 040babf9 drivers/net/e1000e/netdev.c Auke Kok 2007-10-31 7414 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571EB_SERDES_QUAD), board_82571 }, 040babf9 drivers/net/e1000e/netdev.c Auke Kok 2007-10-31 7415 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82571PT_QUAD_COPPER), board_82571 }, ad68076e drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 7416 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7417 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82572EI), board_82572 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7418 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82572EI_COPPER), board_82572 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7419 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82572EI_FIBER), board_82572 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7420 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82572EI_SERDES), board_82572 }, ad68076e drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 7421 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7422 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82573E), board_82573 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7423 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82573E_IAMT), board_82573 }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7424 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82573L), board_82573 }, ad68076e drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 7425 4662e82b drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7426 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82574L), board_82574 }, bef28b11 drivers/net/e1000e/netdev.c Bruce Allan 2009-03-24 7427 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82574LA), board_82574 }, 8c81c9c3 drivers/net/e1000e/netdev.c Alexander Duyck 2009-03-19 7428 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82583V), board_82583 }, 4662e82b drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7429 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7430 { PCI_VDEVICE(INTEL, E1000_DEV_ID_80003ES2LAN_COPPER_DPT), bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7431 board_80003es2lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7432 { PCI_VDEVICE(INTEL, E1000_DEV_ID_80003ES2LAN_COPPER_SPT), bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7433 board_80003es2lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7434 { PCI_VDEVICE(INTEL, E1000_DEV_ID_80003ES2LAN_SERDES_DPT), bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7435 board_80003es2lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7436 { PCI_VDEVICE(INTEL, E1000_DEV_ID_80003ES2LAN_SERDES_SPT), bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7437 board_80003es2lan }, ad68076e drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 7438 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7439 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IFE), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7440 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IFE_G), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7441 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IFE_GT), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7442 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IGP_AMT), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7443 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IGP_C), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7444 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IGP_M), board_ich8lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7445 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_IGP_M_AMT), board_ich8lan }, 9e135a2e drivers/net/e1000e/netdev.c Bruce Allan 2009-12-01 7446 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH8_82567V_3), board_ich8lan }, ad68076e drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 7447 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7448 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IFE), board_ich9lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7449 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IFE_G), board_ich9lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7450 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IFE_GT), board_ich9lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7451 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_AMT), board_ich9lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7452 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_C), board_ich9lan }, 2f15f9d6 drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7453 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_BM), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7454 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7455 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7456 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_V), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7457 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7458 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LM), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7459 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan }, 97ac8cae drivers/net/e1000e/netdev.c Bruce Allan 2008-04-29 7460 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_V), board_ich9lan }, bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7461 f4187b56 drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7462 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LM), board_ich10lan }, f4187b56 drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7463 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_LF), board_ich10lan }, 10df0b91 drivers/net/e1000e/netdev.c Bruce Allan 2010-05-10 7464 { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_D_BM_V), board_ich10lan }, f4187b56 drivers/net/e1000e/netdev.c Bruce Allan 2008-08-26 7465 a4f58f54 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 7466 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_M_HV_LM), board_pchlan }, a4f58f54 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 7467 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_M_HV_LC), board_pchlan }, a4f58f54 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 7468 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DM), board_pchlan }, a4f58f54 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 7469 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_D_HV_DC), board_pchlan }, a4f58f54 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 7470 d3738bb8 drivers/net/e1000e/netdev.c Bruce Allan 2010-06-16 7471 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_LM), board_pch2lan }, d3738bb8 drivers/net/e1000e/netdev.c Bruce Allan 2010-06-16 7472 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH2_LV_V), board_pch2lan }, d3738bb8 drivers/net/e1000e/netdev.c Bruce Allan 2010-06-16 7473 2fbe4526 drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-04-19 7474 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_LM), board_pch_lpt }, 2fbe4526 drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-04-19 7475 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt }, 16e310ae drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-10-09 7476 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt }, 16e310ae drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-10-09 7477 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt }, 91a3d82f drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-06-29 7478 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt }, 91a3d82f drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-06-29 7479 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt }, 91a3d82f drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-06-29 7480 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt }, 91a3d82f drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2013-06-29 7481 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt }, 79849ebc drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2015-02-10 7482 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM), board_pch_spt }, 79849ebc drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2015-02-10 7483 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V), board_pch_spt }, 79849ebc drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2015-02-10 7484 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM2), board_pch_spt }, 79849ebc drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2015-02-10 7485 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V2), board_pch_spt }, f3ed935d drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-10-20 7486 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LBG_I219_LM3), board_pch_spt }, 9cd34b3a drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-12-22 7487 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM4), board_pch_spt }, 9cd34b3a drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-12-22 7488 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V4), board_pch_spt }, 9cd34b3a drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-12-22 7489 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM5), board_pch_spt }, 9cd34b3a drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-12-22 7490 { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V5), board_pch_spt }, 2fbe4526 drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-04-19 7491 f36bb6ca drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-01-31 7492 { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7493 }; bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 @7494 MODULE_DEVICE_TABLE(pci, e1000_pci_tbl); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7495 23606cf5 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-14 7496 static const struct dev_pm_ops e1000_pm_ops = { 72f72dcc drivers/net/ethernet/intel/e1000e/netdev.c Kevin Hao 2014-03-18 7497 #ifdef CONFIG_PM_SLEEP :::::: The code at line 7494 was first introduced by commit :::::: bc7f75fa97884d41efbfde1397b621fefb2550b4 [E1000E]: New pci-express e1000 driver (currently for ICH9 devices only) :::::: TO: Auke Kok <auke-jan.h.kok@intel.com> :::::: CC: David S. Miller <davem@sunset.davemloft.net> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Jacob, [auto build test WARNING on v4.6-rc3] [also build test WARNING on next-20160415] [cannot apply to jkirsher-next-queue/dev-queue] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Jacob-Keller/e1000e-don-t-modify-SYSTIM-registers-during-SIOCSHWTSTAMP-ioctl/20160416-054018 config: x86_64-allyesconfig (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): drivers/net/ethernet/intel/e1000e/netdev.c:7499:13: error: initializer element is not constant .resume = e1000e_pm_resume, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7499:13: note: (near initialization for 'e1000_pm_ops.resume') drivers/net/ethernet/intel/e1000e/netdev.c:7500:13: error: initializer element is not constant .freeze = e1000e_pm_freeze, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7500:13: note: (near initialization for 'e1000_pm_ops.freeze') drivers/net/ethernet/intel/e1000e/netdev.c:7501:11: error: initializer element is not constant .thaw = e1000e_pm_thaw, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7501:11: note: (near initialization for 'e1000_pm_ops.thaw') drivers/net/ethernet/intel/e1000e/netdev.c:7502:14: error: initializer element is not constant .poweroff = e1000e_pm_suspend, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7502:14: note: (near initialization for 'e1000_pm_ops.poweroff') drivers/net/ethernet/intel/e1000e/netdev.c:7503:13: error: initializer element is not constant .restore = e1000e_pm_resume, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7503:13: note: (near initialization for 'e1000_pm_ops.restore') In file included from arch/x86/include/asm/apic.h:5:0, from arch/x86/include/asm/smp.h:12, from arch/x86/include/asm/mmzone_64.h:10, from arch/x86/include/asm/mmzone.h:4, from include/linux/mmzone.h:869, from include/linux/gfp.h:5, from include/linux/kmod.h:22, from include/linux/module.h:13, from drivers/net/ethernet/intel/e1000e/netdev.c:24: drivers/net/ethernet/intel/e1000e/netdev.c:7505:21: error: initializer element is not constant SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:359:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:21: note: (near initialization for 'e1000_pm_ops.runtime_suspend') SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:359:21: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_suspend = suspend_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:48: error: initializer element is not constant SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:360:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7505:48: note: (near initialization for 'e1000_pm_ops.runtime_resume') SET_RUNTIME_PM_OPS(e1000e_pm_runtime_suspend, e1000e_pm_runtime_resume, ^ include/linux/pm.h:360:20: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_resume = resume_fn, \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7506:7: error: initializer element is not constant e1000e_pm_runtime_idle) ^ include/linux/pm.h:361:18: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_idle = idle_fn, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7506:7: note: (near initialization for 'e1000_pm_ops.runtime_idle') e1000e_pm_runtime_idle) ^ include/linux/pm.h:361:18: note: in definition of macro 'SET_RUNTIME_PM_OPS' .runtime_idle = idle_fn, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7496:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static const struct dev_pm_ops e1000_pm_ops = { ^ drivers/net/ethernet/intel/e1000e/netdev.c:7513:14: error: initializer element is not constant .probe = e1000_probe, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7513:14: note: (near initialization for 'e1000_driver.probe') drivers/net/ethernet/intel/e1000e/netdev.c:7514:14: error: initializer element is not constant .remove = e1000_remove, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7514:14: note: (near initialization for 'e1000_driver.remove') drivers/net/ethernet/intel/e1000e/netdev.c:7518:14: error: initializer element is not constant .shutdown = e1000_shutdown, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7518:14: note: (near initialization for 'e1000_driver.shutdown') drivers/net/ethernet/intel/e1000e/netdev.c:7528:19: error: invalid storage class for function 'e1000_init_module' static int __init e1000_init_module(void) ^ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/module.h:9, from drivers/net/ethernet/intel/e1000e/netdev.c:24: drivers/net/ethernet/intel/e1000e/netdev.c:7536:13: error: initializer element is not constant module_init(e1000_init_module); ^ include/linux/init.h:188:58: note: in definition of macro '__define_initcall' __attribute__((__section__(".initcall" #id ".init"))) = fn; \ ^ include/linux/init.h:223:24: note: in expansion of macro 'device_initcall' #define __initcall(fn) device_initcall(fn) ^ include/linux/module.h:84:24: note: in expansion of macro '__initcall' #define module_init(x) __initcall(x); ^ >> drivers/net/ethernet/intel/e1000e/netdev.c:7536:1: note: in expansion of macro 'module_init' module_init(e1000_init_module); ^ drivers/net/ethernet/intel/e1000e/netdev.c:7544:20: error: invalid storage class for function 'e1000_exit_module' static void __exit e1000_exit_module(void) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7544:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void __exit e1000_exit_module(void) ^ In file included from include/linux/printk.h:5:0, from include/linux/kernel.h:13, from include/linux/list.h:8, from include/linux/module.h:9, from drivers/net/ethernet/intel/e1000e/netdev.c:24: drivers/net/ethernet/intel/e1000e/netdev.c:7548:13: error: initializer element is not constant module_exit(e1000_exit_module); ^ include/linux/init.h:226:50: note: in definition of macro '__exitcall' static exitcall_t __exitcall_##fn __exit_call = fn ^ >> drivers/net/ethernet/intel/e1000e/netdev.c:7548:1: note: in expansion of macro 'module_exit' module_exit(e1000_exit_module); ^ In file included from include/linux/module.h:18:0, from drivers/net/ethernet/intel/e1000e/netdev.c:24: include/linux/moduleparam.h:27:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] struct __UNIQUE_ID(name) {} ^ include/linux/module.h:171:32: note: in expansion of macro '__MODULE_INFO' #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) ^ include/linux/module.h:215:32: note: in expansion of macro 'MODULE_INFO' #define MODULE_AUTHOR(_author) MODULE_INFO(author, _author) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7550:1: note: in expansion of macro 'MODULE_AUTHOR' MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>"); ^ In file included from drivers/net/ethernet/intel/e1000e/netdev.c:24:0: include/linux/module.h:261:22: error: expected declaration or statement at end of input static const struct module_version_attribute \ ^ drivers/net/ethernet/intel/e1000e/netdev.c:7553:1: note: in expansion of macro 'MODULE_VERSION' MODULE_VERSION(DRV_VERSION); ^ cc1: some warnings being treated as errors vim +/module_init +7536 drivers/net/ethernet/intel/e1000e/netdev.c 8544b9f7 drivers/net/e1000e/netdev.c Bruce Allan 2010-03-24 7530 pr_info("Intel(R) PRO/1000 Network Driver - %s\n", 8544b9f7 drivers/net/e1000e/netdev.c Bruce Allan 2010-03-24 7531 e1000e_driver_version); 529498cd drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-02 7532 pr_info("Copyright(c) 1999 - 2015 Intel Corporation.\n"); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7533 5a5e889c drivers/net/ethernet/intel/e1000e/netdev.c Jean Sacren 2015-09-19 7534 return pci_register_driver(&e1000_driver); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7535 } bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 @7536 module_init(e1000_init_module); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7537 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7538 /** bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7539 * e1000_exit_module - Driver Exit Cleanup Routine bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7540 * bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7541 * e1000_exit_module is called just before the driver is removed bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7542 * from memory. bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7543 **/ bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7544 static void __exit e1000_exit_module(void) bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7545 { bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7546 pci_unregister_driver(&e1000_driver); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7547 } bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 @7548 module_exit(e1000_exit_module); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7549 bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7550 MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>"); bc7f75fa drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 7551 MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver"); :::::: The code at line 7536 was first introduced by commit :::::: bc7f75fa97884d41efbfde1397b621fefb2550b4 [E1000E]: New pci-express e1000 driver (currently for ICH9 devices only) :::::: TO: Auke Kok <auke-jan.h.kok@intel.com> :::::: CC: David S. Miller <davem@sunset.davemloft.net> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Jacob, [auto build test ERROR on v4.6-rc3] [also build test ERROR on next-20160415] [cannot apply to jkirsher-next-queue/dev-queue] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Jacob-Keller/e1000e-don-t-modify-SYSTIM-registers-during-SIOCSHWTSTAMP-ioctl/20160416-054018 config: sparc64-allyesconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=sparc64 All errors (new ones prefixed by >>): ^ drivers/net/ethernet/intel/e1000e/netdev.c:4767:13: error: invalid storage class for function 'e1000_update_phy_info' static void e1000_update_phy_info(unsigned long data) ^ drivers/net/ethernet/intel/e1000e/netdev.c:4783:13: error: invalid storage class for function 'e1000e_update_phy_stats' static void e1000e_update_phy_stats(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:4858:13: error: invalid storage class for function 'e1000e_update_stats' static void e1000e_update_stats(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:4974:13: error: invalid storage class for function 'e1000_phy_read_status' static void e1000_phy_read_status(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5012:13: error: invalid storage class for function 'e1000_print_link_info' static void e1000_print_link_info(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5026:13: error: invalid storage class for function 'e1000e_has_link' static bool e1000e_has_link(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5068:13: error: invalid storage class for function 'e1000e_enable_receives' static void e1000e_enable_receives(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5081:13: error: invalid storage class for function 'e1000e_check_82574_phy_workaround' static void e1000e_check_82574_phy_workaround(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5104:13: error: invalid storage class for function 'e1000_watchdog' static void e1000_watchdog(unsigned long data) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5114:13: error: invalid storage class for function 'e1000_watchdog_task' static void e1000_watchdog_task(struct work_struct *work) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5361:12: error: invalid storage class for function 'e1000_tso' static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb, ^ drivers/net/ethernet/intel/e1000e/netdev.c:5429:13: error: invalid storage class for function 'e1000_tx_csum' static bool e1000_tx_csum(struct e1000_ring *tx_ring, struct sk_buff *skb, ^ drivers/net/ethernet/intel/e1000e/netdev.c:5483:12: error: invalid storage class for function 'e1000_tx_map' static int e1000_tx_map(struct e1000_ring *tx_ring, struct sk_buff *skb, ^ drivers/net/ethernet/intel/e1000e/netdev.c:5580:13: error: invalid storage class for function 'e1000_tx_queue' static void e1000_tx_queue(struct e1000_ring *tx_ring, int tx_flags, int count) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5647:12: error: invalid storage class for function 'e1000_transfer_dhcp_info' static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter, ^ drivers/net/ethernet/intel/e1000e/netdev.c:5684:12: error: invalid storage class for function '__e1000_maybe_stop_tx' static int __e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5707:12: error: invalid storage class for function 'e1000_maybe_stop_tx' static int e1000_maybe_stop_tx(struct e1000_ring *tx_ring, int size) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5716:20: error: invalid storage class for function 'e1000_xmit_frame' static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb, ^ drivers/net/ethernet/intel/e1000e/netdev.c:5873:13: error: invalid storage class for function 'e1000_tx_timeout' static void e1000_tx_timeout(struct net_device *netdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5882:13: error: invalid storage class for function 'e1000_reset_task' static void e1000_reset_task(struct work_struct *work) ^ drivers/net/ethernet/intel/e1000e/netdev.c:5953:12: error: invalid storage class for function 'e1000_change_mtu' static int e1000_change_mtu(struct net_device *netdev, int new_mtu) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6021:12: error: invalid storage class for function 'e1000_mii_ioctl' static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6095:12: error: invalid storage class for function 'e1000e_hwtstamp_set' static int e1000e_hwtstamp_set(struct net_device *netdev, struct ifreq *ifr) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6130:12: error: invalid storage class for function 'e1000e_hwtstamp_get' static int e1000e_hwtstamp_get(struct net_device *netdev, struct ifreq *ifr) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6138:12: error: invalid storage class for function 'e1000_ioctl' static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6154:12: error: invalid storage class for function 'e1000_init_phy_wakeup' static int e1000_init_phy_wakeup(struct e1000_adapter *adapter, u32 wufc) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6228:13: error: invalid storage class for function 'e1000e_flush_lpic' static void e1000e_flush_lpic(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6250:12: error: invalid storage class for function 'e1000e_pm_freeze' static int e1000e_pm_freeze(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6277:12: error: invalid storage class for function '__e1000_shutdown' static int __e1000_shutdown(struct pci_dev *pdev, bool runtime) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6426:13: error: invalid storage class for function '__e1000e_disable_aspm' static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state, int locked) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6499:13: error: invalid storage class for function 'e1000e_disable_aspm' static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6512:13: error: invalid storage class for function 'e1000e_disable_aspm_locked' static void e1000e_disable_aspm_locked(struct pci_dev *pdev, u16 state) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6518:12: error: invalid storage class for function '__e1000_resume' static int __e1000_resume(struct pci_dev *pdev) ^ >> drivers/net/ethernet/intel/e1000e/netdev.c:6584:12: error: invalid storage class for function 'e1000e_pm_thaw' static int e1000e_pm_thaw(struct device *dev) ^ >> drivers/net/ethernet/intel/e1000e/netdev.c:6604:12: error: invalid storage class for function 'e1000e_pm_suspend' static int e1000e_pm_suspend(struct device *dev) ^ >> drivers/net/ethernet/intel/e1000e/netdev.c:6615:12: error: invalid storage class for function 'e1000e_pm_resume' static int e1000e_pm_resume(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6628:12: error: invalid storage class for function 'e1000e_pm_runtime_idle' static int e1000e_pm_runtime_idle(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6645:12: error: invalid storage class for function 'e1000e_pm_runtime_resume' static int e1000e_pm_runtime_resume(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6662:12: error: invalid storage class for function 'e1000e_pm_runtime_suspend' static int e1000e_pm_runtime_suspend(struct device *dev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6689:13: error: invalid storage class for function 'e1000_shutdown' static void e1000_shutdown(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6700:20: error: invalid storage class for function 'e1000_intr_msix' static irqreturn_t e1000_intr_msix(int __always_unused irq, void *data) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6738:13: error: invalid storage class for function 'e1000_netpoll' static void e1000_netpoll(struct net_device *netdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6768:25: error: invalid storage class for function 'e1000_io_error_detected' static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6794:25: error: invalid storage class for function 'e1000_io_slot_reset' static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6841:13: error: invalid storage class for function 'e1000_io_resume' static void e1000_io_resume(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6861:13: error: invalid storage class for function 'e1000_print_device_info' static void e1000_print_device_info(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6885:13: error: invalid storage class for function 'e1000_eeprom_checks' static void e1000_eeprom_checks(struct e1000_adapter *adapter) ^ drivers/net/ethernet/intel/e1000e/netdev.c:6903:26: error: invalid storage class for function 'e1000_fix_features' static netdev_features_t e1000_fix_features(struct net_device *netdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6916:12: error: invalid storage class for function 'e1000_set_features' static int e1000_set_features(struct net_device *netdev, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6955:2: error: initializer element is not constant .ndo_open = e1000_open, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6955:2: error: (near initialization for 'e1000e_netdev_ops.ndo_open') drivers/net/ethernet/intel/e1000e/netdev.c:6956:2: error: initializer element is not constant .ndo_stop = e1000_close, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6956:2: error: (near initialization for 'e1000e_netdev_ops.ndo_stop') drivers/net/ethernet/intel/e1000e/netdev.c:6957:2: error: initializer element is not constant .ndo_start_xmit = e1000_xmit_frame, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6957:2: error: (near initialization for 'e1000e_netdev_ops.ndo_start_xmit') drivers/net/ethernet/intel/e1000e/netdev.c:6958:2: error: initializer element is not constant .ndo_get_stats64 = e1000e_get_stats64, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6958:2: error: (near initialization for 'e1000e_netdev_ops.ndo_get_stats64') drivers/net/ethernet/intel/e1000e/netdev.c:6960:2: error: initializer element is not constant .ndo_set_mac_address = e1000_set_mac, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6960:2: error: (near initialization for 'e1000e_netdev_ops.ndo_set_mac_address') drivers/net/ethernet/intel/e1000e/netdev.c:6961:2: error: initializer element is not constant .ndo_change_mtu = e1000_change_mtu, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6961:2: error: (near initialization for 'e1000e_netdev_ops.ndo_change_mtu') drivers/net/ethernet/intel/e1000e/netdev.c:6962:2: error: initializer element is not constant .ndo_do_ioctl = e1000_ioctl, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6962:2: error: (near initialization for 'e1000e_netdev_ops.ndo_do_ioctl') drivers/net/ethernet/intel/e1000e/netdev.c:6963:2: error: initializer element is not constant .ndo_tx_timeout = e1000_tx_timeout, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6963:2: error: (near initialization for 'e1000e_netdev_ops.ndo_tx_timeout') drivers/net/ethernet/intel/e1000e/netdev.c:6969:2: error: initializer element is not constant .ndo_poll_controller = e1000_netpoll, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6969:2: error: (near initialization for 'e1000e_netdev_ops.ndo_poll_controller') drivers/net/ethernet/intel/e1000e/netdev.c:6971:2: error: initializer element is not constant .ndo_set_features = e1000_set_features, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6971:2: error: (near initialization for 'e1000e_netdev_ops.ndo_set_features') drivers/net/ethernet/intel/e1000e/netdev.c:6972:2: error: initializer element is not constant .ndo_fix_features = e1000_fix_features, ^ drivers/net/ethernet/intel/e1000e/netdev.c:6972:2: error: (near initialization for 'e1000e_netdev_ops.ndo_fix_features') drivers/net/ethernet/intel/e1000e/netdev.c:6987:12: error: invalid storage class for function 'e1000_probe' static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7336:13: error: invalid storage class for function 'e1000_remove' static void e1000_remove(struct pci_dev *pdev) ^ drivers/net/ethernet/intel/e1000e/netdev.c:7400:2: error: initializer element is not constant .error_detected = e1000_io_error_detected, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7400:2: error: (near initialization for 'e1000_err_handler.error_detected') drivers/net/ethernet/intel/e1000e/netdev.c:7401:2: error: initializer element is not constant .slot_reset = e1000_io_slot_reset, ^ drivers/net/ethernet/intel/e1000e/netdev.c:7401:2: error: (near initialization for 'e1000_err_handler.slot_reset') drivers/net/ethernet/intel/e1000e/netdev.c:7402:2: error: initializer element is not constant vim +/e1000e_pm_thaw +6584 drivers/net/ethernet/intel/e1000e/netdev.c beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6493 * @pdev: pointer to PCI device struct beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6494 * @state: bit-mask of ASPM states to disable beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6495 * beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6496 * This function acquires the pci_bus_sem! beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6497 * Some devices *must* have certain ASPM states disabled per hardware errata. beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6498 **/ beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 @6499 static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state) beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6500 { beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6501 __e1000e_disable_aspm(pdev, state, 0); beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6502 } beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6503 beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6504 /** beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6505 * e1000e_disable_aspm_locked Disable ASPM states. beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6506 * @pdev: pointer to PCI device struct beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6507 * @state: bit-mask of ASPM states to disable beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6508 * beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6509 * This function must be called with pci_bus_sem acquired! beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6510 * Some devices *must* have certain ASPM states disabled per hardware errata. beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6511 **/ beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 @6512 static void e1000e_disable_aspm_locked(struct pci_dev *pdev, u16 state) beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6513 { beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6514 __e1000e_disable_aspm(pdev, state, 1); beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6515 } beb0a1520 drivers/net/ethernet/intel/e1000e/netdev.c Yanir Lubetkin 2015-06-10 6516 aa3386015 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2011-02-11 6517 #ifdef CONFIG_PM 23606cf5d drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-14 @6518 static int __e1000_resume(struct pci_dev *pdev) bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6519 { bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6520 struct net_device *netdev = pci_get_drvdata(pdev); bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6521 struct e1000_adapter *adapter = netdev_priv(netdev); bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6522 struct e1000_hw *hw = &adapter->hw; 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6523 u16 aspm_disable_flag = 0; bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6524 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6525 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L0S) 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6526 aspm_disable_flag = PCIE_LINK_STATE_L0S; 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6527 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1) 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6528 aspm_disable_flag |= PCIE_LINK_STATE_L1; 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6529 if (aspm_disable_flag) 2758f9edb drivers/net/ethernet/intel/e1000e/netdev.c Raanan Avargil 2015-07-06 6530 e1000e_disable_aspm(pdev, aspm_disable_flag); 78cd29d5a drivers/net/e1000e/netdev.c Bruce Allan 2011-03-24 6531 66148babe drivers/net/ethernet/intel/e1000e/netdev.c Konstantin Khlebnikov 2013-03-05 6532 pci_set_master(pdev); 6e4f6f6b4 drivers/net/e1000e/netdev.c Taku Izumi 2008-06-20 6533 2fbe4526e drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-04-19 6534 if (hw->mac.type >= e1000_pch2lan) 99730e4c1 drivers/net/e1000e/netdev.c Bruce Allan 2011-05-13 6535 e1000_resume_workarounds_pchlan(&adapter->hw); 99730e4c1 drivers/net/e1000e/netdev.c Bruce Allan 2011-05-13 6536 bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6537 e1000e_power_up_phy(adapter); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6538 a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6539 /* report the system wakeup cause from S3/S4 */ a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6540 if (adapter->flags2 & FLAG2_HAS_PHY_WAKEUP) { a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6541 u16 phy_data; a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6542 a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6543 e1e_rphy(&adapter->hw, BM_WUS, &phy_data); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6544 if (phy_data) { a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6545 e_info("PHY Wakeup cause - %s\n", a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6546 phy_data & E1000_WUS_EX ? "Unicast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6547 phy_data & E1000_WUS_MC ? "Multicast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6548 phy_data & E1000_WUS_BC ? "Broadcast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6549 phy_data & E1000_WUS_MAG ? "Magic Packet" : ef456f858 drivers/net/ethernet/intel/e1000e/netdev.c Jeff Kirsher 2011-11-03 6550 phy_data & E1000_WUS_LNKC ? ef456f858 drivers/net/ethernet/intel/e1000e/netdev.c Jeff Kirsher 2011-11-03 6551 "Link Status Change" : "other"); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6552 } a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6553 e1e_wphy(&adapter->hw, BM_WUS, ~0); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6554 } else { a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6555 u32 wus = er32(WUS); 6cf08d1c5 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-04-05 6556 a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6557 if (wus) { a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6558 e_info("MAC Wakeup cause - %s\n", a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6559 wus & E1000_WUS_EX ? "Unicast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6560 wus & E1000_WUS_MC ? "Multicast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6561 wus & E1000_WUS_BC ? "Broadcast Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6562 wus & E1000_WUS_MAG ? "Magic Packet" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6563 wus & E1000_WUS_LNKC ? "Link Status Change" : a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6564 "other"); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6565 } bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6566 ew32(WUS, ~0); a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6567 } a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6568 a4f58f545 drivers/net/e1000e/netdev.c Bruce Allan 2009-06-02 6569 e1000e_reset(adapter); bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6570 cd791618c drivers/net/e1000e/netdev.c Bruce Allan 2010-05-10 6571 e1000_init_manageability_pt(adapter); bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6572 e921eb1ac drivers/net/ethernet/intel/e1000e/netdev.c Bruce Allan 2012-11-28 6573 /* If the controller has AMT, do not set DRV_LOAD until the interface bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6574 * is up. For all other cases, let the f/w know that the h/w is now ad68076e0 drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 6575 * under the control of the driver. ad68076e0 drivers/net/e1000e/netdev.c Bruce Allan 2008-03-28 6576 */ c43bc57e5 drivers/net/e1000e/netdev.c Jesse Brandeburg 2008-08-04 6577 if (!(adapter->flags & FLAG_HAS_AMT)) 31dbe5b4a drivers/net/e1000e/netdev.c Bruce Allan 2011-01-06 6578 e1000e_get_hw_control(adapter); bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6579 bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6580 return 0; bc7f75fa9 drivers/net/e1000e/netdev.c Auke Kok 2007-09-17 6581 } 23606cf5d drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-14 6582 3e7986f67 drivers/net/ethernet/intel/e1000e/netdev.c Hiroaki SHIMODA 2014-04-15 6583 #ifdef CONFIG_PM_SLEEP 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 @6584 static int e1000e_pm_thaw(struct device *dev) 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6585 { 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6586 struct net_device *netdev = pci_get_drvdata(to_pci_dev(dev)); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6587 struct e1000_adapter *adapter = netdev_priv(netdev); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6588 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6589 e1000e_set_interrupt_capability(adapter); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6590 if (netif_running(netdev)) { 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6591 u32 err = e1000_request_irq(adapter); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6592 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6593 if (err) 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6594 return err; 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6595 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6596 e1000e_up(adapter); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6597 } 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6598 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6599 netif_device_attach(netdev); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6600 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6601 return 0; 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6602 } 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6603 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 @6604 static int e1000e_pm_suspend(struct device *dev) a03401628 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-17 6605 { a03401628 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-17 6606 struct pci_dev *pdev = to_pci_dev(dev); a03401628 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-17 6607 2a7e19af9 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-07-11 6608 e1000e_flush_lpic(pdev); 2a7e19af9 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-07-11 6609 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6610 e1000e_pm_freeze(dev); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6611 66148babe drivers/net/ethernet/intel/e1000e/netdev.c Konstantin Khlebnikov 2013-03-05 6612 return __e1000_shutdown(pdev, false); a03401628 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-17 6613 } a03401628 drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-17 6614 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 @6615 static int e1000e_pm_resume(struct device *dev) 23606cf5d drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-14 6616 { 23606cf5d drivers/net/e1000e/netdev.c Rafael J. Wysocki 2010-03-14 6617 struct pci_dev *pdev = to_pci_dev(dev); 280020999 drivers/net/ethernet/intel/e1000e/netdev.c David Ertman 2014-02-14 6618 int rc; :::::: The code at line 6584 was first introduced by commit :::::: 2800209994f878b00724ceabb65d744855c8f99a e1000e: Refactor PM flows :::::: TO: David Ertman <davidx.m.ertman@intel.com> :::::: CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Fri, Apr 15, 2016 at 02:36:55PM -0700, Jacob Keller wrote: > + > + if (adapter->ptp_clock_info) { > + /* restore the previous ptp frequency delta */ > + ret_val = adapter->ptp_clock_info.adjfreq(&adapter->ptp_clock_info, > + adapter->ptp_delta); > + if (ret_val) > + dev_warn(&adapter->pdev->dev, > + "Failed to restore TIMINCA clock rate delta: %d\n", > + ret_val); > + else { > + ret_val = e1000e_get_base_timinca(adapter, &timinca); > + if (ret_val) > + dev_warn(&adapter->pdev->dev, > + "Failed to set default TIMINCA clock rate: %d\n", > + ret_val); > + else > + ew32(TIMINCA, timinca); > + } Can't do a boolean check on a struct ptp_clock_info. Testing the patch without the handle NULL ptp_clock_info change.
On Fri, 2016-04-15 at 18:09 -0400, Brian Walsh wrote: > On Fri, Apr 15, 2016 at 02:36:55PM -0700, Jacob Keller wrote: > > > > + > > + if (adapter->ptp_clock_info) { > > + /* restore the previous ptp frequency delta */ > > + ret_val = adapter- > > >ptp_clock_info.adjfreq(&adapter->ptp_clock_info, > > + adapter- > > >ptp_delta); > > + if (ret_val) > > + dev_warn(&adapter->pdev->dev, > > + "Failed to restore TIMINCA clock > > rate delta: %d\n", > > + ret_val); > > + else { > > + ret_val = e1000e_get_base_timinca(adapter, > > &timinca); > > + if (ret_val) > > + dev_warn(&adapter->pdev->dev, > > + "Failed to set default TIMINCA > > clock rate: %d\n", > > + ret_val); > > + else > > + ew32(TIMINCA, timinca); > > + } > Can't do a boolean check on a struct ptp_clock_info. > > Testing the patch without the handle NULL ptp_clock_info change. > Oops you're right it's not a pointer... Hmm I was thinking of ptp_clock. I'll think that through a bit more. Thanks, Jake
On Fri, 2016-04-15 at 14:36 -0700, Jacob Keller wrote: > The e1000e_config_hwtstamp function was incorrectly resetting the > SYSTIM > registers every time the ioctl was being run. If you happened to be > running ptp4l and lost the PTP connect (removing cable, or blocking > the > UDP traffic for example), then ptp4l will eventually perform a > restart > which involves re-requesting timestamp settings. In e1000e this has > the > unfortunate and incorrect result of resetting SYSTIME to the kernel > time. Since kernel time is usually in UTC, and PTP time is in TAI, > this > results in the leap second being re-applied. > > Fix this by extracting the SYSTIME reset out into its own function, > e1000e_ptp_reset, which we call during reset to restore the hardware > registers. This function will (a) restart the timecounter based on > the > new system time, (b) restore the previous PPB setting, and (c) > restore > the previous hwtstamp settings. > > In order to perform (b), I had to modify the adjfreq ptp function > pointer to store the old delta each time it is called. This also has > the > side effect of restoring the correct base timinca register correctly. > The driver does not need to explicitly zero the ptp_delta variable > since > the entire adapter structure comes zero-initialized. > > Reported-by: Brian Walsh <brian@walsh.ws> > Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> > --- > > Notes: > This patch conflicts with Brian's "e1000e fix ptp time reset on > newtork > interruption", and that patch MUST be removed from the queue > before applying > this one. > > - Changes since v2 > * move e1000e_init_ptp prior to reset so that PTP clock is > created first > * handle NULL ptp_clock_info gracefully. This has an obvious mistake. Sorry for the thrash, I'll have a v3 soon. (with more testing, since I was in a hurry and it bit me) Regards, Jake
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h index 010e6d61c855..ef96cd11d6d2 100644 --- a/drivers/net/ethernet/intel/e1000e/e1000.h +++ b/drivers/net/ethernet/intel/e1000e/e1000.h @@ -347,6 +347,7 @@ struct e1000_adapter { struct ptp_clock *ptp_clock; struct ptp_clock_info ptp_clock_info; struct pm_qos_request pm_qos_req; + s32 ptp_delta; u16 eee_advert; }; diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index 50d2684ac146..901ecbddcd5c 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -3580,7 +3580,6 @@ static int e1000e_config_hwtstamp(struct e1000_adapter *adapter, bool is_l4 = false; bool is_l2 = false; u32 regval; - s32 ret_val; if (!(adapter->flags & FLAG_HAS_HW_TIMESTAMP)) return -EINVAL; @@ -3719,16 +3718,6 @@ static int e1000e_config_hwtstamp(struct e1000_adapter *adapter, er32(RXSTMPH); er32(TXSTMPH); - /* Get and set the System Time Register SYSTIM base frequency */ - ret_val = e1000e_get_base_timinca(adapter, ®val); - if (ret_val) - return ret_val; - ew32(TIMINCA, regval); - - /* reset the ns time counter */ - timecounter_init(&adapter->tc, &adapter->cc, - ktime_to_ns(ktime_get_real())); - return 0; } @@ -3885,6 +3874,49 @@ static void e1000_flush_desc_rings(struct e1000_adapter *adapter) } /** + * e1000e_ptp_reset - reset the timesync registers after a hardware reset + * @adapter: board private structure + * + * When the MAC is reset, all hardware bits for timesync will be reset to the + * default values. This function will restore the settings last in place. + * Since the clock SYSTIME registers are reset, we will simply restore the + * cyclecounter to the kernel real clock time. + **/ +static void e1000e_ptp_reset(struct e1000_adapter *adapter) +{ + unsigned long flags; + u32 timinca; + s32 ret_val; + + if (adapter->ptp_clock_info) { + /* restore the previous ptp frequency delta */ + ret_val = adapter->ptp_clock_info.adjfreq(&adapter->ptp_clock_info, + adapter->ptp_delta); + if (ret_val) + dev_warn(&adapter->pdev->dev, + "Failed to restore TIMINCA clock rate delta: %d\n", + ret_val); + else { + ret_val = e1000e_get_base_timinca(adapter, &timinca); + if (ret_val) + dev_warn(&adapter->pdev->dev, + "Failed to set default TIMINCA clock rate: %d\n", + ret_val); + else + ew32(TIMINCA, timinca); + } + + /* reset the systim ns time counter */ + spin_lock_irqsave(&adapter->systim_lock, flags); + timecounter_init(&adapter->tc, &adapter->cc, + ktime_to_ns(ktime_get_real())); + spin_unlock_irqrestore(&adapter->systim_lock, flags); + + /* restore the previous hwtstamp configuration settings */ + e1000e_config_hwtstamp(adapter, &adapter->hwtstamp_config); +} + +/** * e1000e_reset - bring the hardware into a known good state * * This function boots the hardware and enables some settings that @@ -4063,8 +4095,8 @@ void e1000e_reset(struct e1000_adapter *adapter) e1000e_reset_adaptive(hw); - /* initialize systim and reset the ns time counter */ - e1000e_config_hwtstamp(adapter, &adapter->hwtstamp_config); + /* restore systim and hwtstamp settings */ + e1000e_ptp_reset(adapter); /* Set EEE advertisement as appropriate */ if (adapter->flags2 & FLAG2_HAS_EEE) { @@ -7238,6 +7270,9 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) adapter->eeprom_vers = 0; } + /* init PTP hardware clock */ + e1000e_ptp_init(adapter); + /* reset the hardware with the new settings */ e1000e_reset(adapter); @@ -7256,9 +7291,6 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) /* carrier off reporting is important to ethtool even BEFORE open */ netif_carrier_off(netdev); - /* init PTP hardware clock */ - e1000e_ptp_init(adapter); - e1000_print_device_info(adapter); if (pci_dev_run_wake(pdev)) diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c index e2ff3ef75d5d..2e1b17ad52a3 100644 --- a/drivers/net/ethernet/intel/e1000e/ptp.c +++ b/drivers/net/ethernet/intel/e1000e/ptp.c @@ -79,6 +79,8 @@ static int e1000e_phc_adjfreq(struct ptp_clock_info *ptp, s32 delta) ew32(TIMINCA, timinca); + adapter->ptp_delta = delta; + spin_unlock_irqrestore(&adapter->systim_lock, flags); return 0;
The e1000e_config_hwtstamp function was incorrectly resetting the SYSTIM registers every time the ioctl was being run. If you happened to be running ptp4l and lost the PTP connect (removing cable, or blocking the UDP traffic for example), then ptp4l will eventually perform a restart which involves re-requesting timestamp settings. In e1000e this has the unfortunate and incorrect result of resetting SYSTIME to the kernel time. Since kernel time is usually in UTC, and PTP time is in TAI, this results in the leap second being re-applied. Fix this by extracting the SYSTIME reset out into its own function, e1000e_ptp_reset, which we call during reset to restore the hardware registers. This function will (a) restart the timecounter based on the new system time, (b) restore the previous PPB setting, and (c) restore the previous hwtstamp settings. In order to perform (b), I had to modify the adjfreq ptp function pointer to store the old delta each time it is called. This also has the side effect of restoring the correct base timinca register correctly. The driver does not need to explicitly zero the ptp_delta variable since the entire adapter structure comes zero-initialized. Reported-by: Brian Walsh <brian@walsh.ws> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> --- Notes: This patch conflicts with Brian's "e1000e fix ptp time reset on newtork interruption", and that patch MUST be removed from the queue before applying this one. - Changes since v2 * move e1000e_init_ptp prior to reset so that PTP clock is created first * handle NULL ptp_clock_info gracefully. drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 64 ++++++++++++++++++++++-------- drivers/net/ethernet/intel/e1000e/ptp.c | 2 + 3 files changed, 51 insertions(+), 16 deletions(-)