Subject: use node-aware netdev allocation in spidernet Signed-off-by: Christoph Hellwig Index: linux-cg/drivers/net/spider_net.c =================================================================== --- linux-cg.orig/drivers/net/spider_net.c 2006-07-18 18:17:13.000000000 +0200 +++ linux-cg/drivers/net/spider_net.c 2006-07-18 18:17:37.000000000 +0200 @@ -399,7 +399,8 @@ /* 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"); @@ -2048,7 +2049,7 @@ * 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; @@ -2057,12 +2058,13 @@ 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); @@ -2120,7 +2122,7 @@ 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-cg/drivers/net/spider_net.h =================================================================== --- linux-cg.orig/drivers/net/spider_net.h 2006-07-18 18:17:13.000000000 +0200 +++ linux-cg/drivers/net/spider_net.h 2006-07-18 18:17:37.000000000 +0200 @@ -418,6 +418,7 @@ struct spider_net_card { struct net_device *netdev; struct pci_dev *pdev; + int node; struct mii_phy phy; void __iomem *regs;