Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net: ethernet: s10hssi: fix the crash in the ipv6 network
v2: Simplife the implementation of ndo_start_xmit(). v1: This patch simply fills ndo_start_xmit() in netdev and no other operations. In the ipv6 network, after the date is sent, the netdev ndo_start_xmit() hook will be called. But s10ssi does not fill the ndo_start_xmit() in netdev, so it will case a "NULL pointer" crash. In the ipv6 network, run the following command: $ ifconfig s10hssi0 up Will cause the machine to crash: [ 961.346621] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 [ 961.346651] PGD 0 P4D 0 [ 961.346661] Oops: 0010 [#1] SMP NOPTI [ 961.346673] CPU: 62 PID: 0 Comm: swapper/62 Kdump: loaded Tainted: G OE --------- - - [ 961.346702] Hardware name: Inspur SA5212M5/YZMB-00882-104, BIOS 4.1.8 05/21/2019 [ 961.346721] RIP: 0010: (null) [ 961.346734] Code: Bad RIP value. [ 961.346745] RSP: 0018:ffff98ce7fb83bd0 EFLAGS: 00010286 [ 961.346760] RAX: 0000000000000000 RBX: ffff988e7fff6000 RCX: ffff98ce7fb83c4c [ 961.346778] RDX: ffffffffc0479620 RSI: ffff988e7fff6000 RDI: ffff98ce7e3ce900 [ 961.346796] RBP: 00000000ee0f0000 R08: 0000000000000000 R09: 000000000000004c [ 961.346815] R10: ffff988e7cd9e540 R11: 0000000000000000 R12: 0000000000000000 [ 961.346833] R13: ffff985d88f61000 R14: ffff988e6975ce00 R15: ffff98ce7e3ce900 [ 961.346851] FS: 0000000000000000(0000) GS:ffff98ce7fb80000(0000) knlGS:0000000000000000 [ 961.346871] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 961.346887] CR2: ffffffffffffffd6 CR3: 0000000e8880a006 CR4: 00000000007606e0 [ 961.346905] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 961.346924] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 961.346943] PKRU: 55555554 [ 961.346953] Call Trace: [ 961.346964] <IRQ> [ 961.346979] ? dev_hard_start_xmit+0xa5/0x210 [ 961.346994] ? __dev_queue_xmit+0x6c1/0x9e0 [ 961.347008] ? __neigh_create+0x427/0x580 [ 961.347023] ? ip6_finish_output2+0x1b9/0x5b0 [ 961.347039] ? kmem_cache_alloc+0x18e/0x1c0 [ 961.347053] ? kmem_cache_alloc_trace+0x3f/0x1d0 [ 961.347068] ? ip6_output+0x68/0x110 [ 961.347083] ? mld_sendpack+0x168/0x280 [ 961.347096] ? add_grhead.isra.26+0x2e/0xa0 [ 961.347110] ? mld_ifc_timer_expire+0x198/0x2d0 [ 961.347125] ? mld_clear_delrec+0xf0/0xf0 [ 961.347142] ? call_timer_fn+0x2b/0x130 [ 961.347154] ? run_timer_softirq+0x3d1/0x410 [ 961.347168] ? enqueue_hrtimer+0x38/0x90 [ 961.347182] ? __hrtimer_run_queues+0x130/0x280 [ 961.347198] ? __do_softirq+0xe3/0x30a [ 961.347211] ? ktime_get+0x36/0xa0 [ 961.347225] ? irq_exit+0x100/0x110 [ 961.347237] ? smp_apic_timer_interrupt+0x74/0x140 [ 961.347252] ? apic_timer_interrupt+0xf/0x20 [ 961.347264] </IRQ> [ 961.347275] ? mwait_idle+0x7d/0x160 [ 961.347764] ? do_idle+0x1f1/0x280 [ 961.348207] ? cpu_startup_entry+0x6f/0x80 [ 961.348649] ? start_secondary+0x1a7/0x200 [ 961.349081] ? secondary_startup_64+0xb7/0xc0 Signed-off-by: Chen Guanqiao <[email protected]>
- Loading branch information