Race condition in network driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
I am stress testing a network driver on IXP12xx platform. In normal ping,
the driver works fine.
However, on some occassion during flood ping testing, It crashes. The dump
when analyzed shows the following sequence of calls made.

start_kernel -> rest_init -> cpu_idle -> do_IRQ -> do_softirq ->
net_rx_action -> ip_rcv -> ip_local_deliver -> tcp_v4_rcv -> __kfree_skb ->
skb_release_data -> kfree -> __div0

The error messages are "Division by zero in kernel" and "Unable to handle
kernel NULL pointer defereference at virtual address 00000004"

Is this because of any race condition which was not taken care by network
driver ?

In another crash, when tested with a client server application, where the
client on host machine is in a continuous loop issuing connect call to
server, running on the machine with network driver under test. The following
sequence of calls were found in the dump.

do_IRQ -> do_softirq -> net_rx_action -> ip_rcv -> ip_local_deliver ->
tcp_v4_rcv -> tcp_rcv_state_progress -> tcp_time_wait -> tcp_destroy_sock ->
__kfree_skb -> kfree_skbmem -> skb_release_data -> __free_pages -> CRASH
(Unable to handle kernel paging request at virtual address )

Any clue ??
   Thanks,
       Satyendra


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux