Hi, I just saw this last night when my desktop was shutting down. Not all the OOPS was outputted, but I've found where it happens.
in forcedeth.c:1583 we see: pci_unmap_single(np->pci_dev, np->rx_dma[i], np->rx_skbuff[i]->end-np->rx_skbuff[i]->data, PCI_DMA_FROMDEVICE); The assembler output is: movslq %r12d,%rcx # i, i xorl %edi, %edi # tmp226 movq 320(%rbp,%rcx,8), %rax # <variable>.rx_skbuff, D.20431 movq 1344(%rbp,%rcx,8), %rsi # <variable>.rx_dma, addr OOPS--->movq 216(%rax), %rdx # <variable>.end, <variable>.end subq 200(%rax), %rdx # <variable>.data, <variable>.end movq 256(%rbp), %rax # <variable>.pci_dev, hwdev testq %rax, %rax # hwdev leaq 112(%rax), %rcx #, tmp225 movq dma_ops(%rip), %rax # dma_ops, dma_ops cmovne %rcx, %rdi # tmp225,, tmp226 movl $2, %ecx #, call *40(%rax) # <variable>.unmap_single Which I think comes from dereferencing np->rx_skbuff[i]. I've not found a reproducible way of doing this, and I've at times come back to my room to find out that this computer has been forcibly shut down. I'm not familiar with this code. I hope someone here understands how this can happen. I'll try to find a way to reproduce this meanwhile. cmn -- Carlos Martín Nieto | http://www.cmartin.tk Hobbyist programmer |
pgpMMBpqErsZd.pgp
Description: PGP signature