diff for duplicates of <20100217223104.41d91a83@wker> diff --git a/a/1.txt b/N1/1.txt index 6ad073e..fbcbc80 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,52 +1,49 @@ On Wed, 17 Feb 2010 16:17:16 +0100 Eric Dumazet <eric.dumazet@gmail.com> wrote: -> Le mercredi 17 f=C3=A9vrier 2010 =C3=A0 15:55 +0100, Anatolij Gustschin a= - =C3=A9crit : +> Le mercredi 17 février 2010 à 15:55 +0100, Anatolij Gustschin a écrit : ... > > +static struct sk_buff *tx_skb_align_workaround(struct net_device *dev, > > + struct sk_buff *skb) > > +{ > > + struct sk_buff *new_skb; -> > + struct fs_enet_private *fep =3D netdev_priv(dev); +> > + struct fs_enet_private *fep = netdev_priv(dev); > > + > > + /* Alloc new skb */ -> > + new_skb =3D dev_alloc_skb(ENET_RX_FRSIZE + 4); ->=20 ->=20 +> > + new_skb = dev_alloc_skb(ENET_RX_FRSIZE + 4); +> +> > ENET_RX_FRSIZE looks strange in TX path ->=20 +> > Why not using skb->len + 4 instead of ENET_RX_FRSIZE + 4 ? I will fix it. > > + if (!new_skb) { > > + dev_warn(fep->dev, "Memory squeeze, dropping tx packet.\n"); ->=20 +> > I am just wondering if this is ratelimited ? Right, it should be ratelimited, will fix it, too. ... -> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *= -dev) +> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) > > { -> > struct fs_enet_private *fep =3D netdev_priv(dev); -> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb,= - struct net_device *dev) +> > struct fs_enet_private *fep = netdev_priv(dev); +> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev) > > u16 sc; > > unsigned long flags; -> > =20 +> > > > +#ifdef CONFIG_FS_ENET_MPC5121_FEC > > + if (((unsigned long)skb->data) & 0x3) { -> > + skb =3D tx_skb_align_workaround(dev, skb); +> > + skb = tx_skb_align_workaround(dev, skb); > > + if (!skb) { > > + /* > > + * We have lost packet due to memory allocation error > > + * in tx_skb_align_workaround(). Hopefully original > > + * skb is still valid, so try transmit it later. > > + */ ->=20 +> > Could you define 'try to transmit later' ? > Who is responsible to trigger this event ? diff --git a/a/content_digest b/N1/content_digest index 6a5407f..149dae9 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -7,63 +7,62 @@ "Subject\0Re: [net-next-2.6 PATCH v2 3/3] fs_enet: add FEC TX buffer alignment workaround for MPC5121\0" "Date\0Wed, 17 Feb 2010 22:31:04 +0100\0" "To\0Eric Dumazet <eric.dumazet@gmail.com>\0" - "Cc\0Wolfgang Denk <wd@denx.de>" - Detlev Zundel <dzu@denx.de> - netdev@vger.kernel.org + "Cc\0netdev@vger.kernel.org" linuxppc-dev@ozlabs.org David S. Miller <davem@davemloft.net> + Grant Likely <grant.likely@secretlab.ca> + Detlev Zundel <dzu@denx.de> + Wolfgang Denk <wd@denx.de> + John Rigby <jcrigby@gmail.com> " Piotr Ziecik <kosmo@semihalf.com>\0" "\00:1\0" "b\0" "On Wed, 17 Feb 2010 16:17:16 +0100\n" "Eric Dumazet <eric.dumazet@gmail.com> wrote:\n" "\n" - "> Le mercredi 17 f=C3=A9vrier 2010 =C3=A0 15:55 +0100, Anatolij Gustschin a=\n" - " =C3=A9crit :\n" + "> Le mercredi 17 f\303\251vrier 2010 \303\240 15:55 +0100, Anatolij Gustschin a \303\251crit :\n" "...\n" "> > +static struct sk_buff *tx_skb_align_workaround(struct net_device *dev,\n" "> > +\t\t\t\t\t struct sk_buff *skb)\n" "> > +{\n" "> > +\tstruct sk_buff *new_skb;\n" - "> > +\tstruct fs_enet_private *fep =3D netdev_priv(dev);\n" + "> > +\tstruct fs_enet_private *fep = netdev_priv(dev);\n" "> > +\n" "> > +\t/* Alloc new skb */\n" - "> > +\tnew_skb =3D dev_alloc_skb(ENET_RX_FRSIZE + 4);\n" - ">=20\n" - ">=20\n" + "> > +\tnew_skb = dev_alloc_skb(ENET_RX_FRSIZE + 4);\n" + "> \n" + "> \n" "> ENET_RX_FRSIZE looks strange in TX path\n" - ">=20\n" + "> \n" "> Why not using skb->len + 4 instead of ENET_RX_FRSIZE + 4 ?\n" "\n" "I will fix it.\n" "\n" "> > +\tif (!new_skb) {\n" "> > +\t\tdev_warn(fep->dev, \"Memory squeeze, dropping tx packet.\\n\");\n" - ">=20\n" + "> \n" "> I am just wondering if this is ratelimited ?\n" "\n" "Right, it should be ratelimited, will fix it, too.\n" "\n" "...\n" - "> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *=\n" - "dev)\n" + "> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)\n" "> > {\n" - "> > \tstruct fs_enet_private *fep =3D netdev_priv(dev);\n" - "> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb,=\n" - " struct net_device *dev)\n" + "> > \tstruct fs_enet_private *fep = netdev_priv(dev);\n" + "> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)\n" "> > \tu16 sc;\n" "> > \tunsigned long flags;\n" - "> > =20\n" + "> > \n" "> > +#ifdef CONFIG_FS_ENET_MPC5121_FEC\n" "> > +\tif (((unsigned long)skb->data) & 0x3) {\n" - "> > +\t\tskb =3D tx_skb_align_workaround(dev, skb);\n" + "> > +\t\tskb = tx_skb_align_workaround(dev, skb);\n" "> > +\t\tif (!skb) {\n" "> > +\t\t\t/*\n" "> > +\t\t\t * We have lost packet due to memory allocation error\n" "> > +\t\t\t * in tx_skb_align_workaround(). Hopefully original\n" "> > +\t\t\t * skb is still valid, so try transmit it later.\n" "> > +\t\t\t */\n" - ">=20\n" + "> \n" "> Could you define 'try to transmit later' ?\n" "> Who is responsible to trigger this event ?\n" "\n" @@ -74,4 +73,4 @@ "Thanks,\n" Anatolij -601f5664016fa4cf310c77023dc7548cb591c6c1d63767380094d25bc2447a6b +3f536282e21b6238f6fc9386740566d2ebaeba01068e8379e9a9225d1ee354ba
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.