|
@@ -3626,6 +3626,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
|
|
|
{
|
|
|
struct pktgen_dev *pkt_dev;
|
|
|
int err;
|
|
|
+ int node = cpu_to_node(t->cpu);
|
|
|
|
|
|
/* We don't allow a device to be on several threads */
|
|
|
|
|
@@ -3635,12 +3636,13 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
|
|
|
return -EBUSY;
|
|
|
}
|
|
|
|
|
|
- pkt_dev = kzalloc(sizeof(struct pktgen_dev), GFP_KERNEL);
|
|
|
+ pkt_dev = kzalloc_node(sizeof(struct pktgen_dev), GFP_KERNEL, node);
|
|
|
if (!pkt_dev)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
strcpy(pkt_dev->odevname, ifname);
|
|
|
- pkt_dev->flows = vmalloc(MAX_CFLOWS * sizeof(struct flow_state));
|
|
|
+ pkt_dev->flows = vmalloc_node(MAX_CFLOWS * sizeof(struct flow_state),
|
|
|
+ node);
|
|
|
if (pkt_dev->flows == NULL) {
|
|
|
kfree(pkt_dev);
|
|
|
return -ENOMEM;
|
|
@@ -3702,7 +3704,8 @@ static int __init pktgen_create_thread(int cpu)
|
|
|
struct proc_dir_entry *pe;
|
|
|
struct task_struct *p;
|
|
|
|
|
|
- t = kzalloc(sizeof(struct pktgen_thread), GFP_KERNEL);
|
|
|
+ t = kzalloc_node(sizeof(struct pktgen_thread), GFP_KERNEL,
|
|
|
+ cpu_to_node(cpu));
|
|
|
if (!t) {
|
|
|
printk(KERN_ERR "pktgen: ERROR: out of memory, can't "
|
|
|
"create new thread.\n");
|