RE: [PATCH 2/2] NET: Multiqueue network device support.

From: Waskiewicz Jr, Peter P
Date: Mon Apr 09 2007 - 16:43:34 EST


> -----Original Message-----
> From: David Miller [mailto:davem@xxxxxxxxxxxxx]
> Sent: Monday, April 09, 2007 1:38 PM
> To: Waskiewicz Jr, Peter P
> Cc: netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> jgarzik@xxxxxxxxx; cramerj; Kok, Auke-jan H; Leech, Christopher
> Subject: Re: [PATCH 2/2] NET: Multiqueue network device support.
>
> From: Peter P.Waskiewicz Jr. <peter.p.waskiewicz.jr@xxxxxxxxx>
> Date: Mon, 09 Apr 2007 13:50:52 -0700
>
> > From: Peter P. Waskiewicz Jr. <peter.p.waskiewicz.jr@xxxxxxxxx>
> >
> > Added an API and associated supporting routines for
> multiqueue network devices.
> > This allows network devices supporting multiple TX queues
> to configure
> > each queue within the netdevice and manage each queue
> independantly.
> > Changes to the PRIO Qdisc also allow a user to map multiple
> flows to
> > individual TX queues, taking advantage of each queue on the device.
> >
> > Signed-off-by: Peter P. Waskiewicz Jr
> > <peter.p.waskiewicz.jr@xxxxxxxxx>
> > Signed-off-by: Auke Kok <auke-jan.h.kok@xxxxxxxxx>
>
> This looks definitely better than the previous
> implementation, myself and others will review this in more
> depth though.
>
> > + alloc_size = (sizeof(struct net_device_subqueue) * queue_count);
> > +
> > + p = kzalloc(alloc_size, GFP_KERNEL);
> > + if (!p) {
> > + printk(KERN_ERR "alloc_netdev: Unable to
> allocate queues.\n");
> > + return NULL;
> > + }
> > +
> > + dev->egress_subqueue = (struct net_device_subqueue *)p;
>
> No need for a cast, 'p' is "void *".

True, but the assignment for "dev" above also casts this void * to
struct net_device *:

dev = (struct net_device *)
(((long)p + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST);
dev->padded = (char *)dev - (char *)p;

Shall I remove my cast?

Thanks for the feedback,

-PJ Waskiewicz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/