On Sun, Dec 5, 2010 at 8:24 PM, Eric Dumazet <[email protected]> wrote: > Le samedi 04 décembre 2010 à 12:46 -0800, Andrew Watts a écrit : > >> Eric, I echo the thanks on the lightning patch. >> Impressive turnaround! >> >> There's an open bug report on the kernel's bugzilla >> for 2.6.36 (#24102). What is the best way to tie these >> together? > > Thanks Andy, here is the official patch submission I am going to make. > > [PATCH net-2.6] net: fix skb_defer_rx_timestamp() > > After commit c1f19b51d1d8 (net: support time stamping in phy devices.), > kernel might crash if CONFIG_NETWORK_PHY_TIMESTAMPING=y and > skb_defer_rx_timestamp() handles a packet without an ethernet header. > > Fixes kernel bugzilla #24102 > > Reference: https://bugzilla.kernel.org/show_bug.cgi?id=24102 > Reported-and-tested-by: Andrew Watts <[email protected]> > Signed-off-by: Eric Dumazet <[email protected]> > Cc: Richard Cochran <[email protected]> > Cc: [email protected] > --- > net/core/timestamping.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/net/core/timestamping.c b/net/core/timestamping.c > index 0ae6c22..c4fbf85 100644 > --- a/net/core/timestamping.c > +++ b/net/core/timestamping.c > @@ -96,11 +96,13 @@ bool skb_defer_rx_timestamp(struct sk_buff *skb) > struct phy_device *phydev; > unsigned int type; > > - skb_push(skb, ETH_HLEN); > + if (skb->data - ETH_HLEN < skb->head) > + return false;
How about using skb_headroom(skb) < ETH_HLEN ? And I checked the code of skb_push(). If the headroom of a skb is less than the requested, Linux will panic with a message titled "skb_under_panic()". But I can't find this info in the Oops. Maybe the Oops isn't complete. -- Regards, Changli Gao([email protected]) _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
