yes it would but the problem in qeth is not only bonding related.
We just have found it in a bonding scenario . But this kernel
panic could also occur without bonding. 

But thanks for reviewing it 
On Fri, Sep 15, 2006 at 08:51:25AM -0700, Jay Vosburgh wrote:
> Frank Pavlic <[EMAIL PROTECTED]> wrote:
> 
> >[PATCH 6/9] s390: qeth driver fixes [3/6]
> >
> >From: Frank Pavlic <[EMAIL PROTECTED]>
> >             fixed kernel panic caused by qeth driver:
> >        Using a bonding device qeth driver will realloc
> >        headroom for every skb coming from the bond device.
> >        Once this happens qeth frees the original skb and
> >        set the skb pointer to the new realloced skb.
> 
>       Frank, does the following patch to bonding (to track larger than
> usual hard_header_len) resolve this problem without changing qeth?  I
> believe this patch is queued for 2.6.19.
> 
> To: netdev@vger.kernel.org, [EMAIL PROTECTED]
> Cc: Jeff Garzik <[EMAIL PROTECTED]>
> Subject: [PATCH 5/7] bonding: Handle large hard_header_len
> X-Mailer: MH-E 7.83; nmh 1.1-RC4; GNU Emacs 21.4.1
> Date: Fri, 01 Sep 2006 15:12:44 -0700
> From: Jay Vosburgh <[EMAIL PROTECTED]>
> 
> 
> The bonding driver fails to adjust its hard_header_len when enslaving
> interfaces.  Whenever an interface with a hard_header_len greater than the
> ETH_HLEN default is enslaved, the potential for an oops exists, and if the
> oops happens while responding to an arp request, for example, the system
> panics.  GIANFAR devices may use an extended hard_header for VLAN or
> hardware checksumming.  Enslaving such a device and then transmitting over
> it causes a kernel panic.
> 
> Patch modified from submitter's original, but submitter agreed with this
> patch in private email.
> 
> Signed-off-by: Mark Huth <[EMAIL PROTECTED]>
> Signed-off-by: Jay Vosburgh <[EMAIL PROTECTED]>
> 
> 
> --- netdev-2.6.git-upstream/drivers/net/bonding/bond_main.c   2006/08/19 
> 14:46:07     1.3
> +++ netdev-2.6.git-upstream/drivers/net/bonding/bond_main.c   2006/08/19 
> 15:47:27     1.4
> @@ -1211,10 +1211,14 @@ static int bond_compute_features(struct 
>       unsigned long features = BOND_INTERSECT_FEATURES;
>       struct slave *slave;
>       struct net_device *bond_dev = bond->dev;
> +     unsigned short max_hard_header_len = ETH_HLEN;
>       int i;
>  
> -     bond_for_each_slave(bond, slave, i)
> +     bond_for_each_slave(bond, slave, i) {
>               features &= (slave->dev->features & BOND_INTERSECT_FEATURES);
> +             if (slave->dev->hard_header_len > max_hard_header_len)
> +                     max_hard_header_len = slave->dev->hard_header_len;
> +     }
>  
>       if ((features & NETIF_F_SG) && 
>           !(features & NETIF_F_ALL_CSUM))
> @@ -1232,6 +1236,7 @@ static int bond_compute_features(struct 
>  
>       features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES);
>       bond_dev->features = features;
> +     bond_dev->hard_header_len = max_hard_header_len;
>  
>       return 0;
>  }
> 
> 
> 
>       -J
> 
> ---
>       -Jay Vosburgh, IBM Linux Technology Center, [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to