Memory allocation modifications in ibm_newemac driver
Jonathan Haws
Jonathan.Haws at sdl.usu.edu
Thu Sep 2 07:18:36 EST 2010
I found out what was causing the crash, but still am not there and could use some direction:
What was happening was that I was not allocating a new SKB to replace the one in the ring that was being passed up the stack. I have remedied that and am now having another issue:
Once the ring index rolls over (it does so at 64) I start to lose packets because they are not being handled correctly (or do not contain the correct headers or something of that sort). Here is a simple ping test showing what is happening:
64 bytes from 172.31.22.21: seq=29 ttl=128 time=10.826 ms
emac/plb/opb/ethernet at ef600900: PACKET: 54 0X1800 110 0XC04E6B80
emac/plb/opb/ethernet at ef600900: PACKET: 55 0X1800 110 0XC04E6EC0
emac/plb/opb/ethernet at ef600900: PACKET: 56 0X1800 98 0XC04E70C0
64 bytes from 172.31.22.21: seq=30 ttl=128 time=10.839 ms
emac/plb/opb/ethernet at ef600900: PACKET: 57 0X1800 110 0XC04E6580
emac/plb/opb/ethernet at ef600900: PACKET: 58 0X1800 98 0XC04E5B80
64 bytes from 172.31.22.21: seq=31 ttl=128 time=10.832 ms
emac/plb/opb/ethernet at ef600900: PACKET: 59 0X1800 219 0XC04E5740
emac/plb/opb/ethernet at ef600900: PACKET: 60 0X1800 249 0XC04E5000
emac/plb/opb/ethernet at ef600900: PACKET: 61 0X1800 92 0XC04E5340
emac/plb/opb/ethernet at ef600900: PACKET: 62 0X1800 98 0XC04E4A00
64 bytes from 172.31.22.21: seq=32 ttl=128 time=10.825 ms
emac/plb/opb/ethernet at ef600900: PACKET: 63 0X5800 92 0XC04E4E00
emac/plb/opb/ethernet at ef600900: PACKET: 0 0X1800 98 0XC04EF520
emac/plb/opb/ethernet at ef600900: PACKET: 1 0X1800 92 0XC04D8340
emac/plb/opb/ethernet at ef600900: PACKET: 2 0X1800 98 0XC04D8260
emac/plb/opb/ethernet at ef600900: PACKET: 3 0X1800 60 0XC04E7AA0
emac/plb/opb/ethernet at ef600900: PACKET: 4 0X1800 92 0XC04E74A0
emac/plb/opb/ethernet at ef600900: PACKET: 5 0X1800 92 0XC04E6BC0
emac/plb/opb/ethernet at ef600900: PACKET: 6 0X1800 98 0XC04E6F80
emac/plb/opb/ethernet at ef600900: PACKET: 7 0X1800 92 0XC04E64E0
emac/plb/opb/ethernet at ef600900: PACKET: 8 0X1800 98 0XC04E5BC0
The first number in my debug print statement is what the driver calls the slot number (the ring index). When it rolls over I start losing the ping replies. What have I done wrong to cause that? The data is coming in and is there. Have any other network device developers seen similar behavior?
Thanks,
Jonathan
More information about the Linuxppc-dev
mailing list