Subject: use node-aware netdev allocation in spidernet Signed-off-by: Christoph Hellwig Index: linux-2.6/drivers/net/spider_net.c =================================================================== --- linux-2.6.orig/drivers/net/spider_net.c +++ linux-2.6/drivers/net/spider_net.c @@ -360,7 +360,8 @@ spider_net_prepare_rx_descr(struct spide /* and we need to have it 128 byte aligned, therefore we allocate a * bit more */ /* allocate an skb */ - descr->skb = dev_alloc_skb(bufsize + SPIDER_NET_RXBUF_ALIGN - 1); + descr->skb = dev_alloc_skb_node(bufsize + SPIDER_NET_RXBUF_ALIGN - 1, + card->node); if (!descr->skb) { if (netif_msg_rx_err(card) && net_ratelimit()) pr_err("Not enough memory to allocate rx buffer\n"); @@ -2105,7 +2106,7 @@ spider_net_setup_netdev(struct spider_ne * the card and net_device structures are linked to each other */ static struct spider_net_card * -spider_net_alloc_card(void) +spider_net_alloc_card(int node) { struct net_device *netdev; struct spider_net_card *card; @@ -2114,12 +2115,13 @@ spider_net_alloc_card(void) alloc_size = sizeof (*card) + sizeof (struct spider_net_descr) * rx_descriptors + sizeof (struct spider_net_descr) * tx_descriptors; - netdev = alloc_etherdev(alloc_size); + netdev = alloc_etherdev_node(alloc_size, node); if (!netdev) return NULL; card = netdev_priv(netdev); card->netdev = netdev; + card->node = node; card->msg_enable = SPIDER_NET_DEFAULT_MSG; INIT_WORK(&card->tx_timeout_task, spider_net_tx_timeout_task, netdev); init_waitqueue_head(&card->waitq); @@ -2177,7 +2179,7 @@ spider_net_setup_pci_dev(struct pci_dev pci_set_master(pdev); - card = spider_net_alloc_card(); + card = spider_net_alloc_card(pcibus_to_node(pdev->bus)); if (!card) { pr_err("Couldn't allocate net_device structure, " "aborting.\n"); Index: linux-2.6/drivers/net/spider_net.h =================================================================== --- linux-2.6.orig/drivers/net/spider_net.h +++ linux-2.6/drivers/net/spider_net.h @@ -431,6 +431,7 @@ struct spider_net_extra_stats { struct spider_net_card { struct net_device *netdev; struct pci_dev *pdev; + int node; struct mii_phy phy; void __iomem *regs;