Date: Fri, 24 Sep 2010 15:49:49 GMT From: Andrew Boyer <aboyer@averesystems.com> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/150920: [ixgbe][igb] Panic when packets are dropped with header split disabled Message-ID: <201009241549.o8OFnnQW053615@www.freebsd.org> Resent-Message-ID: <201009241550.o8OFo1ft064965@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 150920 >Category: kern >Synopsis: [ixgbe][igb] Panic when packets are dropped with header split disabled >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Sep 24 15:50:01 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Andrew Boyer >Release: 7.1p3 >Organization: Avere Systems Inc. >Environment: amd64 >Description: The ixgbe and igb drivers have *_rx_discard methods which attempt to reuse mbufs in the rx_ring. They fail to check whether the mbuf pointers are valid before dereferencing them, though. This causes a panic when header split is disabled, because the rbuf->m_head pointer will always be NULL. >How-To-Repeat: Found by adding a failure point in ixgbe_rxeof() right before the staterr check. The first packet that's rejected causes a panic. >Fix: Check for NULL pointers before dereferencing mh and mp in ixgbe_rx_discard() and igb_rx_discard(). I don't see any other places where m_head is used without being checked. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009241549.o8OFnnQW053615>