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    |

Attachment: pgpMMBpqErsZd.pgp
Description: PGP signature

Reply via email to