Hello.

On 10/19/2015 06:01 PM, Yasushi SHOJI wrote:

In a low memory situation with netdev_alloc_skb() failure,
mdp->rx_skbuff[entry] can be left NULL, however, sh_eth_rx() seems to
access it without checking NULL or not in the following code:

                        skb = mdp->rx_skbuff[entry];
                        mdp->rx_skbuff[entry] = NULL;
                        if (mdp->cd->rpadir)
                                skb_reserve(skb, NET_IP_ALIGN);
                        dma_unmap_single(&ndev->dev, rxdesc->addr,
                                         ALIGN(mdp->rx_buf_sz, 16),
                                         DMA_FROM_DEVICE);

I've put BUG_ON() to test skb and got the following backtrace.  I can
also enable slub poisoning to see some bad access.

I'm not that familiar with this code base so I'm note including any
patch yet.  I appreciate if someone with insight in this code give a
quick look and tell me that it's a real one or not.  if this is a real
case, I can take a deep look.

If you got the oops, it's real. Thanks for the reporting. I guess I should check the new ravb driver as well...
   Do you want to try fixing the bug yourself?

BTW, the backtrace is from old 3.4.74+ kernel but the current tip is
very close.

    Yeah, this part didn't change in a long time...

Thanks,

MBR, Sergei

--
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