On Mon, Aug 25, 2014 at 10:43 +0200, Laurent Salle wrote:
> >Synopsis:    OpenBSD 5.6-current (GENERIC.MP) #305: Thu Aug 21
> >Category:    kernel
> >Environment:
>       System      : OpenBSD 5.6
>       Details     : OpenBSD 5.6-current (GENERIC.MP) #305: Thu Aug 21 
> 18:35:52 MDT 2014
>                        
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.i386
>       Machine     : i386
> >Description:
>       Kernel panic em_rxeof - OpenBSD 5.6-current 2014.08.21 - Soekris 6501
> >How-To-Repeat:
>       Don't know. The machine has been reinstalled to 5.6 current 3 days 
> before this kernel panic occured.
> 
> >Fix:
>       Don't know.
> 
> ddb{0}> trace
> Debugger(d09f3944,f544ed60,d0aa543c,f544ed60,0) at Debugger+0x7
> panic(d0aa543c,1b,13,2e,2) at panic+0x71
> em_rxeof(d18f7000,f534e000,c0,0,0) at em_rxeof+0x415
> em_intr(d18f7000,0,9dd605ed,0,d18f7030) at em_intr+0x158
> intr_handler(f544ee34,d18d8200) at intr_handler+0x38
> Xintr_ioapic3() at Xintr_ioapic3+0x66
> --- interrupt ---
> nettxintr(0,d5955500,0,f544eeac,d0560052) at nettxintr+0x71
> softintr_dispatch(1) at softintr_dispatch+0x5a
> Xsoftnet() at Xsoftnet+0x17
> --- interrupt ---
> Bad frame pointer: 0xd0497800
> 0:

can you please try this diff

diff --git sys/dev/pci/if_em.c sys/dev/pci/if_em.c
index d6d7e8e..42fb3c4 100644
--- sys/dev/pci/if_em.c
+++ sys/dev/pci/if_em.c
@@ -2822,14 +2822,14 @@ em_rxfill(struct em_softc *sc)
                        i = 0;
 
                if (em_get_buf(sc, i) != 0)
                        break;
 
+               sc->last_rx_desc_filled = i;
                post = 1;
        }
 
-       sc->last_rx_desc_filled = i;
        if_rxr_put(&sc->rx_ring, slots);
 
        return (post);
 }

Reply via email to