On Sat, 2010-09-25 at 12:27 +0800, xiaohui.xin@xxxxxxxxx wrote: [...] > diff --git a/net/core/dev.c b/net/core/dev.c > index 264137f..636f11b 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -2468,6 +2468,55 @@ void netif_nit_deliver(struct sk_buff *skb) > rcu_read_unlock(); > } > > +/* To support meidate passthru(zero-copy) with NIC driver, > + * we'd better query NIC driver for the capability it can > + * provide, especially for packet split mode, now we only > + * query for the header size, and the payload a descriptor > + * may carry. If a driver does not use the API to export, > + * then we may try to use a default value, currently, > + * we use the default value from an IGB driver. Now, > + * it's only called by mpassthru device. > + */ > +#if defined(CONFIG_MEDIATE_PASSTHRU) || defined(CONFIG_MEDIATE_PASSTHRU_MODULE) > +int netdev_mp_port_prep(struct net_device *dev, > + struct mpassthru_port *port) > +{ > + int rc; > + int npages, data_len; > + const struct net_device_ops *ops = dev->netdev_ops; > + > + if (ops->ndo_mp_port_prep) { > + rc = ops->ndo_mp_port_prep(dev, port); > + if (rc) > + return rc; > + } else { > + /* If the NIC driver did not report this, > + * then we try to use default value. > + */ > + port->hdr_len = 128; > + port->data_len = 2048; > + port->npages = 1; > + } [...] Is it really necessary to have a default? Also have you considered an API for changing the header/data split? Ben. -- Ben Hutchings, Senior Software Engineer, Solarflare Communications Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html