소스 검색

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)
  ipv4: Add a missing rcu_assign_pointer() in routing cache.
  [netdrvr] ibmtr: PCMCIA IBMTR is ok on 64bit
  xen-netfront: Avoid unaligned accesses to IP header
  lmc: copy_*_user under spinlock
  [netdrvr] myri10ge, ixgbe: remove broken select INTEL_IOATDMA
Linus Torvalds 16 년 전
부모
커밋
b225ee5bed

+ 10 - 2
drivers/net/Kconfig

@@ -2410,7 +2410,6 @@ config IXGBE
 	tristate "Intel(R) 10GbE PCI Express adapters support"
 	tristate "Intel(R) 10GbE PCI Express adapters support"
 	depends on PCI && INET
 	depends on PCI && INET
 	select INET_LRO
 	select INET_LRO
-	select INTEL_IOATDMA
 	---help---
 	---help---
 	  This driver supports Intel(R) 10GbE PCI Express family of
 	  This driver supports Intel(R) 10GbE PCI Express family of
 	  adapters.  For more information on how to identify your adapter, go
 	  adapters.  For more information on how to identify your adapter, go
@@ -2426,6 +2425,11 @@ config IXGBE
 	  To compile this driver as a module, choose M here. The module
 	  To compile this driver as a module, choose M here. The module
 	  will be called ixgbe.
 	  will be called ixgbe.
 
 
+config IXGBE_DCA
+	bool
+	default y
+	depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
+
 config IXGB
 config IXGB
 	tristate "Intel(R) PRO/10GbE support"
 	tristate "Intel(R) PRO/10GbE support"
 	depends on PCI
 	depends on PCI
@@ -2462,7 +2466,6 @@ config MYRI10GE
 	select FW_LOADER
 	select FW_LOADER
 	select CRC32
 	select CRC32
 	select INET_LRO
 	select INET_LRO
-	select INTEL_IOATDMA
 	---help---
 	---help---
 	  This driver supports Myricom Myri-10G Dual Protocol interface in
 	  This driver supports Myricom Myri-10G Dual Protocol interface in
 	  Ethernet mode. If the eeprom on your board is not recent enough,
 	  Ethernet mode. If the eeprom on your board is not recent enough,
@@ -2474,6 +2477,11 @@ config MYRI10GE
 	  To compile this driver as a module, choose M here. The module
 	  To compile this driver as a module, choose M here. The module
 	  will be called myri10ge.
 	  will be called myri10ge.
 
 
+config MYRI10GE_DCA
+	bool
+	default y
+	depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m)
+
 config NETXEN_NIC
 config NETXEN_NIC
 	tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
 	tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
 	depends on PCI
 	depends on PCI

+ 2 - 2
drivers/net/ixgbe/ixgbe.h

@@ -36,7 +36,7 @@
 #include "ixgbe_type.h"
 #include "ixgbe_type.h"
 #include "ixgbe_common.h"
 #include "ixgbe_common.h"
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 #include <linux/dca.h>
 #include <linux/dca.h>
 #endif
 #endif
 
 
@@ -136,7 +136,7 @@ struct ixgbe_ring {
 		      * offset associated with this ring, which is different
 		      * offset associated with this ring, which is different
 		      * for DCE and RSS modes */
 		      * for DCE and RSS modes */
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	/* cpu for tx queue */
 	/* cpu for tx queue */
 	int cpu;
 	int cpu;
 #endif
 #endif

+ 16 - 16
drivers/net/ixgbe/ixgbe_main.c

@@ -80,7 +80,7 @@ static struct pci_device_id ixgbe_pci_tbl[] = {
 };
 };
 MODULE_DEVICE_TABLE(pci, ixgbe_pci_tbl);
 MODULE_DEVICE_TABLE(pci, ixgbe_pci_tbl);
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 static int ixgbe_notify_dca(struct notifier_block *, unsigned long event,
 static int ixgbe_notify_dca(struct notifier_block *, unsigned long event,
                             void *p);
                             void *p);
 static struct notifier_block dca_notifier = {
 static struct notifier_block dca_notifier = {
@@ -296,7 +296,7 @@ done_cleaning:
 	return (total_packets ? true : false);
 	return (total_packets ? true : false);
 }
 }
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 static void ixgbe_update_rx_dca(struct ixgbe_adapter *adapter,
 static void ixgbe_update_rx_dca(struct ixgbe_adapter *adapter,
                                 struct ixgbe_ring *rx_ring)
                                 struct ixgbe_ring *rx_ring)
 {
 {
@@ -383,7 +383,7 @@ static int __ixgbe_notify_dca(struct device *dev, void *data)
 	return 0;
 	return 0;
 }
 }
 
 
-#endif /* CONFIG_DCA or CONFIG_DCA_MODULE */
+#endif /* CONFIG_IXGBE_DCA */
 /**
 /**
  * ixgbe_receive_skb - Send a completed packet up the stack
  * ixgbe_receive_skb - Send a completed packet up the stack
  * @adapter: board private structure
  * @adapter: board private structure
@@ -947,7 +947,7 @@ static irqreturn_t ixgbe_msix_clean_tx(int irq, void *data)
 	r_idx = find_first_bit(q_vector->txr_idx, adapter->num_tx_queues);
 	r_idx = find_first_bit(q_vector->txr_idx, adapter->num_tx_queues);
 	for (i = 0; i < q_vector->txr_count; i++) {
 	for (i = 0; i < q_vector->txr_count; i++) {
 		tx_ring = &(adapter->tx_ring[r_idx]);
 		tx_ring = &(adapter->tx_ring[r_idx]);
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 		if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 		if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 			ixgbe_update_tx_dca(adapter, tx_ring);
 			ixgbe_update_tx_dca(adapter, tx_ring);
 #endif
 #endif
@@ -1022,7 +1022,7 @@ static int ixgbe_clean_rxonly(struct napi_struct *napi, int budget)
 
 
 	r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
 	r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
 	rx_ring = &(adapter->rx_ring[r_idx]);
 	rx_ring = &(adapter->rx_ring[r_idx]);
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 		ixgbe_update_rx_dca(adapter, rx_ring);
 		ixgbe_update_rx_dca(adapter, rx_ring);
 #endif
 #endif
@@ -1066,7 +1066,7 @@ static int ixgbe_clean_rxonly_many(struct napi_struct *napi, int budget)
 	r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
 	r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
 	for (i = 0; i < q_vector->rxr_count; i++) {
 	for (i = 0; i < q_vector->rxr_count; i++) {
 		rx_ring = &(adapter->rx_ring[r_idx]);
 		rx_ring = &(adapter->rx_ring[r_idx]);
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 		if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 		if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
 			ixgbe_update_rx_dca(adapter, rx_ring);
 			ixgbe_update_rx_dca(adapter, rx_ring);
 #endif
 #endif
@@ -2155,7 +2155,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
 
 
 	netif_carrier_off(netdev);
 	netif_carrier_off(netdev);
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 		adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
 		adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
 		dca_remove_requester(&adapter->pdev->dev);
 		dca_remove_requester(&adapter->pdev->dev);
@@ -2167,7 +2167,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
 	ixgbe_clean_all_tx_rings(adapter);
 	ixgbe_clean_all_tx_rings(adapter);
 	ixgbe_clean_all_rx_rings(adapter);
 	ixgbe_clean_all_rx_rings(adapter);
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	/* since we reset the hardware DCA settings were cleared */
 	/* since we reset the hardware DCA settings were cleared */
 	if (dca_add_requester(&adapter->pdev->dev) == 0) {
 	if (dca_add_requester(&adapter->pdev->dev) == 0) {
 		adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
 		adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
@@ -2193,7 +2193,7 @@ static int ixgbe_poll(struct napi_struct *napi, int budget)
 	struct ixgbe_adapter *adapter = q_vector->adapter;
 	struct ixgbe_adapter *adapter = q_vector->adapter;
 	int tx_cleaned, work_done = 0;
 	int tx_cleaned, work_done = 0;
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 		ixgbe_update_tx_dca(adapter, adapter->tx_ring);
 		ixgbe_update_tx_dca(adapter, adapter->tx_ring);
 		ixgbe_update_rx_dca(adapter, adapter->rx_ring);
 		ixgbe_update_rx_dca(adapter, adapter->rx_ring);
@@ -3922,7 +3922,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
 	if (err)
 	if (err)
 		goto err_register;
 		goto err_register;
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	if (dca_add_requester(&pdev->dev) == 0) {
 	if (dca_add_requester(&pdev->dev) == 0) {
 		adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
 		adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
 		/* always use CB2 mode, difference is masked
 		/* always use CB2 mode, difference is masked
@@ -3972,7 +3972,7 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
 
 
 	flush_scheduled_work();
 	flush_scheduled_work();
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 	if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
 		adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
 		adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
 		dca_remove_requester(&pdev->dev);
 		dca_remove_requester(&pdev->dev);
@@ -4105,10 +4105,10 @@ static int __init ixgbe_init_module(void)
 
 
 	printk(KERN_INFO "%s: %s\n", ixgbe_driver_name, ixgbe_copyright);
 	printk(KERN_INFO "%s: %s\n", ixgbe_driver_name, ixgbe_copyright);
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	dca_register_notify(&dca_notifier);
 	dca_register_notify(&dca_notifier);
-
 #endif
 #endif
+
 	ret = pci_register_driver(&ixgbe_driver);
 	ret = pci_register_driver(&ixgbe_driver);
 	return ret;
 	return ret;
 }
 }
@@ -4123,13 +4123,13 @@ module_init(ixgbe_init_module);
  **/
  **/
 static void __exit ixgbe_exit_module(void)
 static void __exit ixgbe_exit_module(void)
 {
 {
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 	dca_unregister_notify(&dca_notifier);
 	dca_unregister_notify(&dca_notifier);
 #endif
 #endif
 	pci_unregister_driver(&ixgbe_driver);
 	pci_unregister_driver(&ixgbe_driver);
 }
 }
 
 
-#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE)
+#ifdef CONFIG_IXGBE_DCA
 static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event,
 static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event,
                             void *p)
                             void *p)
 {
 {
@@ -4140,7 +4140,7 @@ static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event,
 
 
 	return ret_val ? NOTIFY_BAD : NOTIFY_DONE;
 	return ret_val ? NOTIFY_BAD : NOTIFY_DONE;
 }
 }
-#endif /* CONFIG_DCA or CONFIG_DCA_MODULE */
+#endif /* CONFIG_IXGBE_DCA */
 
 
 module_exit(ixgbe_exit_module);
 module_exit(ixgbe_exit_module);
 
 

+ 13 - 13
drivers/net/myri10ge/myri10ge.c

@@ -188,7 +188,7 @@ struct myri10ge_slice_state {
 	dma_addr_t fw_stats_bus;
 	dma_addr_t fw_stats_bus;
 	int watchdog_tx_done;
 	int watchdog_tx_done;
 	int watchdog_tx_req;
 	int watchdog_tx_req;
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	int cached_dca_tag;
 	int cached_dca_tag;
 	int cpu;
 	int cpu;
 	__be32 __iomem *dca_tag;
 	__be32 __iomem *dca_tag;
@@ -220,7 +220,7 @@ struct myri10ge_priv {
 	int msi_enabled;
 	int msi_enabled;
 	int msix_enabled;
 	int msix_enabled;
 	struct msix_entry *msix_vectors;
 	struct msix_entry *msix_vectors;
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	int dca_enabled;
 	int dca_enabled;
 #endif
 #endif
 	u32 link_state;
 	u32 link_state;
@@ -902,7 +902,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
 	struct myri10ge_slice_state *ss;
 	struct myri10ge_slice_state *ss;
 	int i, status;
 	int i, status;
 	size_t bytes;
 	size_t bytes;
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	unsigned long dca_tag_off;
 	unsigned long dca_tag_off;
 #endif
 #endif
 
 
@@ -1012,7 +1012,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
 	}
 	}
 	put_be32(htonl(mgp->intr_coal_delay), mgp->intr_coal_delay_ptr);
 	put_be32(htonl(mgp->intr_coal_delay), mgp->intr_coal_delay_ptr);
 
 
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	status = myri10ge_send_cmd(mgp, MXGEFW_CMD_GET_DCA_OFFSET, &cmd, 0);
 	status = myri10ge_send_cmd(mgp, MXGEFW_CMD_GET_DCA_OFFSET, &cmd, 0);
 	dca_tag_off = cmd.data0;
 	dca_tag_off = cmd.data0;
 	for (i = 0; i < mgp->num_slices; i++) {
 	for (i = 0; i < mgp->num_slices; i++) {
@@ -1051,7 +1051,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
 	return status;
 	return status;
 }
 }
 
 
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 static void
 static void
 myri10ge_write_dca(struct myri10ge_slice_state *ss, int cpu, int tag)
 myri10ge_write_dca(struct myri10ge_slice_state *ss, int cpu, int tag)
 {
 {
@@ -1505,7 +1505,7 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
 	struct net_device *netdev = ss->mgp->dev;
 	struct net_device *netdev = ss->mgp->dev;
 	int work_done;
 	int work_done;
 
 
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	if (ss->mgp->dca_enabled)
 	if (ss->mgp->dca_enabled)
 		myri10ge_update_dca(ss);
 		myri10ge_update_dca(ss);
 #endif
 #endif
@@ -1736,7 +1736,7 @@ static const char myri10ge_gstrings_main_stats[][ETH_GSTRING_LEN] = {
 	"tx_boundary", "WC", "irq", "MSI", "MSIX",
 	"tx_boundary", "WC", "irq", "MSI", "MSIX",
 	"read_dma_bw_MBs", "write_dma_bw_MBs", "read_write_dma_bw_MBs",
 	"read_dma_bw_MBs", "write_dma_bw_MBs", "read_write_dma_bw_MBs",
 	"serial_number", "watchdog_resets",
 	"serial_number", "watchdog_resets",
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	"dca_capable_firmware", "dca_device_present",
 	"dca_capable_firmware", "dca_device_present",
 #endif
 #endif
 	"link_changes", "link_up", "dropped_link_overflow",
 	"link_changes", "link_up", "dropped_link_overflow",
@@ -1815,7 +1815,7 @@ myri10ge_get_ethtool_stats(struct net_device *netdev,
 	data[i++] = (unsigned int)mgp->read_write_dma;
 	data[i++] = (unsigned int)mgp->read_write_dma;
 	data[i++] = (unsigned int)mgp->serial_number;
 	data[i++] = (unsigned int)mgp->serial_number;
 	data[i++] = (unsigned int)mgp->watchdog_resets;
 	data[i++] = (unsigned int)mgp->watchdog_resets;
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	data[i++] = (unsigned int)(mgp->ss[0].dca_tag != NULL);
 	data[i++] = (unsigned int)(mgp->ss[0].dca_tag != NULL);
 	data[i++] = (unsigned int)(mgp->dca_enabled);
 	data[i++] = (unsigned int)(mgp->dca_enabled);
 #endif
 #endif
@@ -3844,7 +3844,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 		dev_err(&pdev->dev, "failed reset\n");
 		dev_err(&pdev->dev, "failed reset\n");
 		goto abort_with_slices;
 		goto abort_with_slices;
 	}
 	}
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	myri10ge_setup_dca(mgp);
 	myri10ge_setup_dca(mgp);
 #endif
 #endif
 	pci_set_drvdata(pdev, mgp);
 	pci_set_drvdata(pdev, mgp);
@@ -3948,7 +3948,7 @@ static void myri10ge_remove(struct pci_dev *pdev)
 	netdev = mgp->dev;
 	netdev = mgp->dev;
 	unregister_netdev(netdev);
 	unregister_netdev(netdev);
 
 
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	myri10ge_teardown_dca(mgp);
 	myri10ge_teardown_dca(mgp);
 #endif
 #endif
 	myri10ge_dummy_rdma(mgp, 0);
 	myri10ge_dummy_rdma(mgp, 0);
@@ -3993,7 +3993,7 @@ static struct pci_driver myri10ge_driver = {
 #endif
 #endif
 };
 };
 
 
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 static int
 static int
 myri10ge_notify_dca(struct notifier_block *nb, unsigned long event, void *p)
 myri10ge_notify_dca(struct notifier_block *nb, unsigned long event, void *p)
 {
 {
@@ -4024,7 +4024,7 @@ static __init int myri10ge_init_module(void)
 		       myri10ge_driver.name, myri10ge_rss_hash);
 		       myri10ge_driver.name, myri10ge_rss_hash);
 		myri10ge_rss_hash = MXGEFW_RSS_HASH_TYPE_SRC_PORT;
 		myri10ge_rss_hash = MXGEFW_RSS_HASH_TYPE_SRC_PORT;
 	}
 	}
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	dca_register_notify(&myri10ge_dca_notifier);
 	dca_register_notify(&myri10ge_dca_notifier);
 #endif
 #endif
 	if (myri10ge_max_slices > MYRI10GE_MAX_SLICES)
 	if (myri10ge_max_slices > MYRI10GE_MAX_SLICES)
@@ -4037,7 +4037,7 @@ module_init(myri10ge_init_module);
 
 
 static __exit void myri10ge_cleanup_module(void)
 static __exit void myri10ge_cleanup_module(void)
 {
 {
-#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE)
+#ifdef CONFIG_MYRI10GE_DCA
 	dca_unregister_notify(&myri10ge_dca_notifier);
 	dca_unregister_notify(&myri10ge_dca_notifier);
 #endif
 #endif
 	pci_unregister_driver(&myri10ge_driver);
 	pci_unregister_driver(&myri10ge_driver);

+ 1 - 1
drivers/net/pcmcia/Kconfig

@@ -111,7 +111,7 @@ config ARCNET_COM20020_CS
 
 
 config PCMCIA_IBMTR
 config PCMCIA_IBMTR
 	tristate "IBM PCMCIA tokenring adapter support"
 	tristate "IBM PCMCIA tokenring adapter support"
-	depends on IBMTR!=y && TR && !64BIT
+	depends on IBMTR!=y && TR
 	help
 	help
 	  Say Y here if you intend to attach this type of Token Ring PCMCIA
 	  Say Y here if you intend to attach this type of Token Ring PCMCIA
 	  card to your computer. You then also need to say Y to "Token Ring
 	  card to your computer. You then also need to say Y to "Token Ring

+ 24 - 7
drivers/net/wan/lmc/lmc_main.c

@@ -122,7 +122,6 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
      * Most functions mess with the structure
      * Most functions mess with the structure
      * Disable interrupts while we do the polling
      * Disable interrupts while we do the polling
      */
      */
-    spin_lock_irqsave(&sc->lmc_lock, flags);
 
 
     switch (cmd) {
     switch (cmd) {
         /*
         /*
@@ -152,6 +151,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 		break;
 		break;
 	}
 	}
 
 
+	spin_lock_irqsave(&sc->lmc_lock, flags);
         sc->lmc_media->set_status (sc, &ctl);
         sc->lmc_media->set_status (sc, &ctl);
 
 
         if(ctl.crc_length != sc->ictl.crc_length) {
         if(ctl.crc_length != sc->ictl.crc_length) {
@@ -161,6 +161,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 	    else
 	    else
 		sc->TxDescriptControlInit &= ~LMC_TDES_ADD_CRC_DISABLE;
 		sc->TxDescriptControlInit &= ~LMC_TDES_ADD_CRC_DISABLE;
         }
         }
+	spin_unlock_irqrestore(&sc->lmc_lock, flags);
 
 
         ret = 0;
         ret = 0;
         break;
         break;
@@ -187,15 +188,18 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 		break;				/* no change */
 		break;				/* no change */
             }
             }
             
             
+	    spin_lock_irqsave(&sc->lmc_lock, flags);
             lmc_proto_close(sc);
             lmc_proto_close(sc);
 
 
             sc->if_type = new_type;
             sc->if_type = new_type;
             lmc_proto_attach(sc);
             lmc_proto_attach(sc);
 	    ret = lmc_proto_open(sc);
 	    ret = lmc_proto_open(sc);
+	    spin_unlock_irqrestore(&sc->lmc_lock, flags);
 	    break;
 	    break;
 	}
 	}
 
 
     case LMCIOCGETXINFO: /*fold01*/
     case LMCIOCGETXINFO: /*fold01*/
+	spin_lock_irqsave(&sc->lmc_lock, flags);
         sc->lmc_xinfo.Magic0 = 0xBEEFCAFE;
         sc->lmc_xinfo.Magic0 = 0xBEEFCAFE;
 
 
         sc->lmc_xinfo.PciCardType = sc->lmc_cardtype;
         sc->lmc_xinfo.PciCardType = sc->lmc_cardtype;
@@ -208,6 +212,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
         sc->lmc_xinfo.MaxFrameSize = LMC_PKT_BUF_SZ;
         sc->lmc_xinfo.MaxFrameSize = LMC_PKT_BUF_SZ;
         sc->lmc_xinfo.link_status = sc->lmc_media->get_link_status (sc);
         sc->lmc_xinfo.link_status = sc->lmc_media->get_link_status (sc);
         sc->lmc_xinfo.mii_reg16 = lmc_mii_readreg (sc, 0, 16);
         sc->lmc_xinfo.mii_reg16 = lmc_mii_readreg (sc, 0, 16);
+	spin_unlock_irqrestore(&sc->lmc_lock, flags);
 
 
         sc->lmc_xinfo.Magic1 = 0xDEADBEEF;
         sc->lmc_xinfo.Magic1 = 0xDEADBEEF;
 
 
@@ -220,6 +225,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
         break;
         break;
 
 
     case LMCIOCGETLMCSTATS:
     case LMCIOCGETLMCSTATS:
+	    spin_lock_irqsave(&sc->lmc_lock, flags);
 	    if (sc->lmc_cardtype == LMC_CARDTYPE_T1) {
 	    if (sc->lmc_cardtype == LMC_CARDTYPE_T1) {
 		    lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB);
 		    lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB);
 		    sc->extra_stats.framingBitErrorCount +=
 		    sc->extra_stats.framingBitErrorCount +=
@@ -243,6 +249,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 		    sc->extra_stats.severelyErroredFrameCount +=
 		    sc->extra_stats.severelyErroredFrameCount +=
 			    regVal & T1FRAMER_SEF_MASK;
 			    regVal & T1FRAMER_SEF_MASK;
 	    }
 	    }
+	    spin_unlock_irqrestore(&sc->lmc_lock, flags);
 	    if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats,
 	    if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats,
 			     sizeof(sc->lmc_device->stats)) ||
 			     sizeof(sc->lmc_device->stats)) ||
 		copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats),
 		copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats),
@@ -258,12 +265,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 		    break;
 		    break;
 	    }
 	    }
 
 
+	    spin_lock_irqsave(&sc->lmc_lock, flags);
 	    memset(&sc->lmc_device->stats, 0, sizeof(sc->lmc_device->stats));
 	    memset(&sc->lmc_device->stats, 0, sizeof(sc->lmc_device->stats));
 	    memset(&sc->extra_stats, 0, sizeof(sc->extra_stats));
 	    memset(&sc->extra_stats, 0, sizeof(sc->extra_stats));
 	    sc->extra_stats.check = STATCHECK;
 	    sc->extra_stats.check = STATCHECK;
 	    sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
 	    sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
 		    sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats);
 		    sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats);
 	    sc->extra_stats.lmc_cardtype = sc->lmc_cardtype;
 	    sc->extra_stats.lmc_cardtype = sc->lmc_cardtype;
+	    spin_unlock_irqrestore(&sc->lmc_lock, flags);
 	    ret = 0;
 	    ret = 0;
 	    break;
 	    break;
 
 
@@ -282,8 +291,10 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 		ret = -EFAULT;
 		ret = -EFAULT;
 		break;
 		break;
 	}
 	}
+	spin_lock_irqsave(&sc->lmc_lock, flags);
         sc->lmc_media->set_circuit_type(sc, ctl.circuit_type);
         sc->lmc_media->set_circuit_type(sc, ctl.circuit_type);
         sc->ictl.circuit_type = ctl.circuit_type;
         sc->ictl.circuit_type = ctl.circuit_type;
+	spin_unlock_irqrestore(&sc->lmc_lock, flags);
         ret = 0;
         ret = 0;
 
 
         break;
         break;
@@ -294,12 +305,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
             break;
             break;
         }
         }
 
 
+	spin_lock_irqsave(&sc->lmc_lock, flags);
         /* Reset driver and bring back to current state */
         /* Reset driver and bring back to current state */
         printk (" REG16 before reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
         printk (" REG16 before reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
         lmc_running_reset (dev);
         lmc_running_reset (dev);
         printk (" REG16 after reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
         printk (" REG16 after reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
 
 
         LMC_EVENT_LOG(LMC_EVENT_FORCEDRESET, LMC_CSR_READ (sc, csr_status), lmc_mii_readreg (sc, 0, 16));
         LMC_EVENT_LOG(LMC_EVENT_FORCEDRESET, LMC_CSR_READ (sc, csr_status), lmc_mii_readreg (sc, 0, 16));
+	spin_unlock_irqrestore(&sc->lmc_lock, flags);
 
 
         ret = 0;
         ret = 0;
         break;
         break;
@@ -338,14 +351,15 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
              */
              */
             netif_stop_queue(dev);
             netif_stop_queue(dev);
 
 
-	if (copy_from_user(&xc, ifr->ifr_data, sizeof(struct lmc_xilinx_control))) {
+	    if (copy_from_user(&xc, ifr->ifr_data, sizeof(struct lmc_xilinx_control))) {
 		ret = -EFAULT;
 		ret = -EFAULT;
 		break;
 		break;
-	}
+	    }
             switch(xc.command){
             switch(xc.command){
             case lmc_xilinx_reset: /*fold02*/
             case lmc_xilinx_reset: /*fold02*/
                 {
                 {
                     u16 mii;
                     u16 mii;
+		    spin_lock_irqsave(&sc->lmc_lock, flags);
                     mii = lmc_mii_readreg (sc, 0, 16);
                     mii = lmc_mii_readreg (sc, 0, 16);
 
 
                     /*
                     /*
@@ -404,6 +418,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
                             lmc_led_off(sc, LMC_DS3_LED2);
                             lmc_led_off(sc, LMC_DS3_LED2);
                         }
                         }
                     }
                     }
+		    spin_unlock_irqrestore(&sc->lmc_lock, flags);
                     
                     
                     
                     
 
 
@@ -416,6 +431,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
                 {
                 {
                     u16 mii;
                     u16 mii;
                     int timeout = 500000;
                     int timeout = 500000;
+		    spin_lock_irqsave(&sc->lmc_lock, flags);
                     mii = lmc_mii_readreg (sc, 0, 16);
                     mii = lmc_mii_readreg (sc, 0, 16);
 
 
                     /*
                     /*
@@ -451,13 +467,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
                      */
                      */
                     while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
                     while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
                            (timeout-- > 0))
                            (timeout-- > 0))
-                        ;
+                        cpu_relax();
 
 
 
 
                     /*
                     /*
                      * stop driving Xilinx-related signals
                      * stop driving Xilinx-related signals
                      */
                      */
                     lmc_gpio_mkinput(sc, 0xff);
                     lmc_gpio_mkinput(sc, 0xff);
+		    spin_unlock_irqrestore(&sc->lmc_lock, flags);
 
 
                     ret = 0x0;
                     ret = 0x0;
                     
                     
@@ -493,6 +510,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 
 
                     printk("%s: Starting load of data Len: %d at 0x%p == 0x%p\n", dev->name, xc.len, xc.data, data);
                     printk("%s: Starting load of data Len: %d at 0x%p == 0x%p\n", dev->name, xc.len, xc.data, data);
 
 
+		    spin_lock_irqsave(&sc->lmc_lock, flags);
                     lmc_gpio_mkinput(sc, 0xff);
                     lmc_gpio_mkinput(sc, 0xff);
 
 
                     /*
                     /*
@@ -545,7 +563,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
                      */
                      */
                     while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
                     while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
                            (timeout-- > 0))
                            (timeout-- > 0))
-                        ;
+                        cpu_relax();
 
 
                     printk(KERN_DEBUG "%s: Waited %d for the Xilinx to clear it's memory\n", dev->name, 500000-timeout);
                     printk(KERN_DEBUG "%s: Waited %d for the Xilinx to clear it's memory\n", dev->name, 500000-timeout);
 
 
@@ -588,6 +606,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
 
 
                     sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET;
                     sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET;
                     lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
                     lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
+		    spin_unlock_irqrestore(&sc->lmc_lock, flags);
 
 
                     kfree(data);
                     kfree(data);
                     
                     
@@ -611,8 +630,6 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
         break;
         break;
     }
     }
 
 
-    spin_unlock_irqrestore(&sc->lmc_lock, flags); /*fold01*/
-
     lmc_trace(dev, "lmc_ioctl out");
     lmc_trace(dev, "lmc_ioctl out");
 
 
     return ret;
     return ret;

+ 4 - 1
drivers/net/xen-netfront.c

@@ -239,11 +239,14 @@ static void xennet_alloc_rx_buffers(struct net_device *dev)
 	 */
 	 */
 	batch_target = np->rx_target - (req_prod - np->rx.rsp_cons);
 	batch_target = np->rx_target - (req_prod - np->rx.rsp_cons);
 	for (i = skb_queue_len(&np->rx_batch); i < batch_target; i++) {
 	for (i = skb_queue_len(&np->rx_batch); i < batch_target; i++) {
-		skb = __netdev_alloc_skb(dev, RX_COPY_THRESHOLD,
+		skb = __netdev_alloc_skb(dev, RX_COPY_THRESHOLD + NET_IP_ALIGN,
 					 GFP_ATOMIC | __GFP_NOWARN);
 					 GFP_ATOMIC | __GFP_NOWARN);
 		if (unlikely(!skb))
 		if (unlikely(!skb))
 			goto no_skb;
 			goto no_skb;
 
 
+		/* Align ip header to a 16 bytes boundary */
+		skb_reserve(skb, NET_IP_ALIGN);
+
 		page = alloc_page(GFP_ATOMIC | __GFP_NOWARN);
 		page = alloc_page(GFP_ATOMIC | __GFP_NOWARN);
 		if (!page) {
 		if (!page) {
 			kfree_skb(skb);
 			kfree_skb(skb);

+ 1 - 7
net/bluetooth/af_bluetooth.c

@@ -37,10 +37,7 @@
 #include <linux/poll.h>
 #include <linux/poll.h>
 #include <net/sock.h>
 #include <net/sock.h>
 #include <asm/ioctls.h>
 #include <asm/ioctls.h>
-
-#if defined(CONFIG_KMOD)
 #include <linux/kmod.h>
 #include <linux/kmod.h>
-#endif
 
 
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/bluetooth.h>
 
 
@@ -145,11 +142,8 @@ static int bt_sock_create(struct net *net, struct socket *sock, int proto)
 	if (proto < 0 || proto >= BT_MAX_PROTO)
 	if (proto < 0 || proto >= BT_MAX_PROTO)
 		return -EINVAL;
 		return -EINVAL;
 
 
-#if defined(CONFIG_KMOD)
-	if (!bt_proto[proto]) {
+	if (!bt_proto[proto])
 		request_module("bt-proto-%d", proto);
 		request_module("bt-proto-%d", proto);
-	}
-#endif
 
 
 	err = -EPROTONOSUPPORT;
 	err = -EPROTONOSUPPORT;
 
 

+ 3 - 12
net/bridge/netfilter/ebtables.c

@@ -305,23 +305,14 @@ find_inlist_lock_noload(struct list_head *head, const char *name, int *error,
 	return NULL;
 	return NULL;
 }
 }
 
 
-#ifndef CONFIG_KMOD
-#define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m))
-#else
 static void *
 static void *
 find_inlist_lock(struct list_head *head, const char *name, const char *prefix,
 find_inlist_lock(struct list_head *head, const char *name, const char *prefix,
    int *error, struct mutex *mutex)
    int *error, struct mutex *mutex)
 {
 {
-	void *ret;
-
-	ret = find_inlist_lock_noload(head, name, error, mutex);
-	if (!ret) {
-		request_module("%s%s", prefix, name);
-		ret = find_inlist_lock_noload(head, name, error, mutex);
-	}
-	return ret;
+	return try_then_request_module(
+			find_inlist_lock_noload(head, name, error, mutex),
+			"%s%s", prefix, name);
 }
 }
-#endif
 
 
 static inline struct ebt_table *
 static inline struct ebt_table *
 find_table_lock(const char *name, int *error, struct mutex *mutex)
 find_table_lock(const char *name, int *error, struct mutex *mutex)

+ 2 - 2
net/can/af_can.c

@@ -128,8 +128,8 @@ static int can_create(struct net *net, struct socket *sock, int protocol)
 	if (net != &init_net)
 	if (net != &init_net)
 		return -EAFNOSUPPORT;
 		return -EAFNOSUPPORT;
 
 
-#ifdef CONFIG_KMOD
-	/* try to load protocol module, when CONFIG_KMOD is defined */
+#ifdef CONFIG_MODULES
+	/* try to load protocol module kernel is modular */
 	if (!proto_tab[protocol]) {
 	if (!proto_tab[protocol]) {
 		err = request_module("can-proto-%d", protocol);
 		err = request_module("can-proto-%d", protocol);
 
 

+ 0 - 2
net/core/dev.c

@@ -4956,8 +4956,6 @@ EXPORT_SYMBOL(br_fdb_get_hook);
 EXPORT_SYMBOL(br_fdb_put_hook);
 EXPORT_SYMBOL(br_fdb_put_hook);
 #endif
 #endif
 
 
-#ifdef CONFIG_KMOD
 EXPORT_SYMBOL(dev_load);
 EXPORT_SYMBOL(dev_load);
-#endif
 
 
 EXPORT_PER_CPU_SYMBOL(softnet_data);
 EXPORT_PER_CPU_SYMBOL(softnet_data);

+ 2 - 2
net/core/rtnetlink.c

@@ -1040,7 +1040,7 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
 	struct nlattr *linkinfo[IFLA_INFO_MAX+1];
 	struct nlattr *linkinfo[IFLA_INFO_MAX+1];
 	int err;
 	int err;
 
 
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 replay:
 replay:
 #endif
 #endif
 	err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy);
 	err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFLA_MAX, ifla_policy);
@@ -1129,7 +1129,7 @@ replay:
 			return -EOPNOTSUPP;
 			return -EOPNOTSUPP;
 
 
 		if (!ops) {
 		if (!ops) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 			if (kind[0]) {
 			if (kind[0]) {
 				__rtnl_unlock();
 				__rtnl_unlock();
 				request_module("rtnl-link-%s", kind);
 				request_module("rtnl-link-%s", kind);

+ 1 - 1
net/dccp/ccid.c

@@ -154,7 +154,7 @@ struct ccid *ccid_new(unsigned char id, struct sock *sk, int rx, gfp_t gfp)
 	struct ccid *ccid = NULL;
 	struct ccid *ccid = NULL;
 
 
 	ccids_read_lock();
 	ccids_read_lock();
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 	if (ccids[id] == NULL) {
 	if (ccids[id] == NULL) {
 		/* We only try to load if in process context */
 		/* We only try to load if in process context */
 		ccids_read_unlock();
 		ccids_read_unlock();

+ 0 - 2
net/decnet/dn_dev.c

@@ -490,9 +490,7 @@ int dn_dev_ioctl(unsigned int cmd, void __user *arg)
 		return -EFAULT;
 		return -EFAULT;
 	ifr->ifr_name[IFNAMSIZ-1] = 0;
 	ifr->ifr_name[IFNAMSIZ-1] = 0;
 
 
-#ifdef CONFIG_KMOD
 	dev_load(&init_net, ifr->ifr_name);
 	dev_load(&init_net, ifr->ifr_name);
-#endif
 
 
 	switch(cmd) {
 	switch(cmd) {
 		case SIOCGIFADDR:
 		case SIOCGIFADDR:

+ 0 - 2
net/ipv4/devinet.c

@@ -613,9 +613,7 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
 	if (colon)
 	if (colon)
 		*colon = 0;
 		*colon = 0;
 
 
-#ifdef CONFIG_KMOD
 	dev_load(net, ifr.ifr_name);
 	dev_load(net, ifr.ifr_name);
-#endif
 
 
 	switch (cmd) {
 	switch (cmd) {
 	case SIOCGIFADDR:	/* Get interface address */
 	case SIOCGIFADDR:	/* Get interface address */

+ 0 - 2
net/ipv4/inet_diag.c

@@ -53,11 +53,9 @@ static DEFINE_MUTEX(inet_diag_table_mutex);
 
 
 static const struct inet_diag_handler *inet_diag_lock_handler(int type)
 static const struct inet_diag_handler *inet_diag_lock_handler(int type)
 {
 {
-#ifdef CONFIG_KMOD
 	if (!inet_diag_table[type])
 	if (!inet_diag_table[type])
 		request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK,
 		request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK,
 			       NETLINK_INET_DIAG, type);
 			       NETLINK_INET_DIAG, type);
-#endif
 
 
 	mutex_lock(&inet_diag_table_mutex);
 	mutex_lock(&inet_diag_table_mutex);
 	if (!inet_diag_table[type])
 	if (!inet_diag_table[type])

+ 6 - 1
net/ipv4/route.c

@@ -1109,7 +1109,12 @@ restart:
 		printk("\n");
 		printk("\n");
 	}
 	}
 #endif
 #endif
-	rt_hash_table[hash].chain = rt;
+	/*
+	 * Since lookup is lockfree, we must make sure
+	 * previous writes to rt are comitted to memory
+	 * before making rt visible to other CPUS.
+	 */
+	rcu_assign_pointer(rt_hash_table[hash].chain, rt);
 	spin_unlock_bh(rt_hash_lock_addr(hash));
 	spin_unlock_bh(rt_hash_lock_addr(hash));
 	*rp = rt;
 	*rp = rt;
 	return 0;
 	return 0;

+ 2 - 2
net/ipv4/tcp_cong.c

@@ -115,7 +115,7 @@ int tcp_set_default_congestion_control(const char *name)
 
 
 	spin_lock(&tcp_cong_list_lock);
 	spin_lock(&tcp_cong_list_lock);
 	ca = tcp_ca_find(name);
 	ca = tcp_ca_find(name);
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 	if (!ca && capable(CAP_SYS_MODULE)) {
 	if (!ca && capable(CAP_SYS_MODULE)) {
 		spin_unlock(&tcp_cong_list_lock);
 		spin_unlock(&tcp_cong_list_lock);
 
 
@@ -244,7 +244,7 @@ int tcp_set_congestion_control(struct sock *sk, const char *name)
 	if (ca == icsk->icsk_ca_ops)
 	if (ca == icsk->icsk_ca_ops)
 		goto out;
 		goto out;
 
 
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 	/* not found attempt to autoload module */
 	/* not found attempt to autoload module */
 	if (!ca && capable(CAP_SYS_MODULE)) {
 	if (!ca && capable(CAP_SYS_MODULE)) {
 		rcu_read_unlock();
 		rcu_read_unlock();

+ 1 - 1
net/netfilter/nf_conntrack_netlink.c

@@ -822,7 +822,7 @@ ctnetlink_parse_nat_setup(struct nf_conn *ct,
 
 
 	parse_nat_setup = rcu_dereference(nfnetlink_parse_nat_setup_hook);
 	parse_nat_setup = rcu_dereference(nfnetlink_parse_nat_setup_hook);
 	if (!parse_nat_setup) {
 	if (!parse_nat_setup) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 		rcu_read_unlock();
 		rcu_read_unlock();
 		nfnl_unlock();
 		nfnl_unlock();
 		if (request_module("nf-nat-ipv4") < 0) {
 		if (request_module("nf-nat-ipv4") < 0) {

+ 1 - 1
net/netfilter/nfnetlink.c

@@ -137,7 +137,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 replay:
 replay:
 	ss = nfnetlink_get_subsys(type);
 	ss = nfnetlink_get_subsys(type);
 	if (!ss) {
 	if (!ss) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 		nfnl_unlock();
 		nfnl_unlock();
 		request_module("nfnetlink-subsys-%d", NFNL_SUBSYS_ID(type));
 		request_module("nfnetlink-subsys-%d", NFNL_SUBSYS_ID(type));
 		nfnl_lock();
 		nfnl_lock();

+ 1 - 1
net/netlink/af_netlink.c

@@ -435,7 +435,7 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol)
 		return -EPROTONOSUPPORT;
 		return -EPROTONOSUPPORT;
 
 
 	netlink_lock_table();
 	netlink_lock_table();
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 	if (!nl_table[protocol].registered) {
 	if (!nl_table[protocol].registered) {
 		netlink_unlock_table();
 		netlink_unlock_table();
 		request_module("net-pf-%d-proto-%d", PF_NETLINK, protocol);
 		request_module("net-pf-%d-proto-%d", PF_NETLINK, protocol);

+ 1 - 2
net/phonet/af_phonet.c

@@ -67,11 +67,10 @@ static int pn_socket_create(struct net *net, struct socket *sock, int protocol)
 	}
 	}
 
 
 	pnp = phonet_proto_get(protocol);
 	pnp = phonet_proto_get(protocol);
-#ifdef CONFIG_KMOD
 	if (pnp == NULL &&
 	if (pnp == NULL &&
 	    request_module("net-pf-%d-proto-%d", PF_PHONET, protocol) == 0)
 	    request_module("net-pf-%d-proto-%d", PF_PHONET, protocol) == 0)
 		pnp = phonet_proto_get(protocol);
 		pnp = phonet_proto_get(protocol);
-#endif
+
 	if (pnp == NULL)
 	if (pnp == NULL)
 		return -EPROTONOSUPPORT;
 		return -EPROTONOSUPPORT;
 	if (sock->type != pnp->sock_type) {
 	if (sock->type != pnp->sock_type) {

+ 1 - 1
net/sched/act_api.c

@@ -494,7 +494,7 @@ struct tc_action *tcf_action_init_1(struct nlattr *nla, struct nlattr *est,
 
 
 	a_o = tc_lookup_action_n(act_name);
 	a_o = tc_lookup_action_n(act_name);
 	if (a_o == NULL) {
 	if (a_o == NULL) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 		rtnl_unlock();
 		rtnl_unlock();
 		request_module("act_%s", act_name);
 		request_module("act_%s", act_name);
 		rtnl_lock();
 		rtnl_lock();

+ 1 - 1
net/sched/cls_api.c

@@ -227,7 +227,7 @@ replay:
 		err = -ENOENT;
 		err = -ENOENT;
 		tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND]);
 		tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND]);
 		if (tp_ops == NULL) {
 		if (tp_ops == NULL) {
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 			struct nlattr *kind = tca[TCA_KIND];
 			struct nlattr *kind = tca[TCA_KIND];
 			char name[IFNAMSIZ];
 			char name[IFNAMSIZ];
 
 

+ 1 - 1
net/sched/ematch.c

@@ -224,7 +224,7 @@ static int tcf_em_validate(struct tcf_proto *tp,
 
 
 		if (em->ops == NULL) {
 		if (em->ops == NULL) {
 			err = -ENOENT;
 			err = -ENOENT;
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 			__rtnl_unlock();
 			__rtnl_unlock();
 			request_module("ematch-kind-%u", em_hdr->kind);
 			request_module("ematch-kind-%u", em_hdr->kind);
 			rtnl_lock();
 			rtnl_lock();

+ 1 - 1
net/sched/sch_api.c

@@ -764,7 +764,7 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
 	struct qdisc_size_table *stab;
 	struct qdisc_size_table *stab;
 
 
 	ops = qdisc_lookup_ops(kind);
 	ops = qdisc_lookup_ops(kind);
-#ifdef CONFIG_KMOD
+#ifdef CONFIG_MODULES
 	if (ops == NULL && kind != NULL) {
 	if (ops == NULL && kind != NULL) {
 		char name[IFNAMSIZ];
 		char name[IFNAMSIZ];
 		if (nla_strlcpy(name, kind, IFNAMSIZ) < IFNAMSIZ) {
 		if (nla_strlcpy(name, kind, IFNAMSIZ) < IFNAMSIZ) {

+ 1 - 1
net/socket.c

@@ -1142,7 +1142,7 @@ static int __sock_create(struct net *net, int family, int type, int protocol,
 
 
 	sock->type = type;
 	sock->type = type;
 
 
-#if defined(CONFIG_KMOD)
+#ifdef CONFIG_MODULES
 	/* Attempt to load a protocol module if the find failed.
 	/* Attempt to load a protocol module if the find failed.
 	 *
 	 *
 	 * 12/09/1996 Marcin: But! this makes REALLY only sense, if the user
 	 * 12/09/1996 Marcin: But! this makes REALLY only sense, if the user

+ 0 - 2
net/sunrpc/auth.c

@@ -83,10 +83,8 @@ rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
 	if (flavor >= RPC_AUTH_MAXFLAVOR)
 	if (flavor >= RPC_AUTH_MAXFLAVOR)
 		goto out;
 		goto out;
 
 
-#ifdef CONFIG_KMOD
 	if ((ops = auth_flavors[flavor]) == NULL)
 	if ((ops = auth_flavors[flavor]) == NULL)
 		request_module("rpc-auth-%u", flavor);
 		request_module("rpc-auth-%u", flavor);
-#endif
 	spin_lock(&rpc_authflavor_lock);
 	spin_lock(&rpc_authflavor_lock);
 	ops = auth_flavors[flavor];
 	ops = auth_flavors[flavor];
 	if (ops == NULL || !try_module_get(ops->owner)) {
 	if (ops == NULL || !try_module_get(ops->owner)) {