Return-path: Received: from mail-wm0-f53.google.com ([74.125.82.53]:34897 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161111AbcFBO2A (ORCPT ); Thu, 2 Jun 2016 10:28:00 -0400 Received: by mail-wm0-f53.google.com with SMTP id a136so233101880wme.0 for ; Thu, 02 Jun 2016 07:27:59 -0700 (PDT) Subject: Re: [PATCH for-4.7] brcmfmac: add eth_type_trans back for PCIe full dongle To: Kalle Valo , Arend van Spriel References: <1464815616-21551-1-git-send-email-arend@broadcom.com> <87mvn4lyle.fsf@purkki.adurom.net> <87a8j4lyc2.fsf@purkki.adurom.net> Cc: linux-wireless@vger.kernel.org, Franky Lin From: Arend van Spriel Message-ID: <5750426E.6000800@broadcom.com> (sfid-20160602_162807_800944_7C43F6A9) Date: Thu, 2 Jun 2016 16:27:58 +0200 MIME-Version: 1.0 In-Reply-To: <87a8j4lyc2.fsf@purkki.adurom.net> Content-Type: text/plain; charset=windows-1252 Sender: linux-wireless-owner@vger.kernel.org List-ID: On 02-06-16 11:44, Kalle Valo wrote: > Kalle Valo writes: > >> Arend van Spriel writes: >> >>> From: Franky Lin >>> >>> A regression was introduced in commit 9c349892ccc9 ("brcmfmac: revise >>> handling events in receive path") which moves eth_type_trans() call >>> to brcmf_rx_frame(). Msgbuf layer doesn't use brcmf_rx_frame() but invokes >>> brcmf_netif_rx() directly. In such case the Ethernet header was not >>> stripped out resulting in null pointer dereference in the networking >>> stack. >>> >>> BUG: unable to handle kernel NULL pointer dereference at 0000000000000048 >>> IP: [] enqueue_to_backlog+0x56/0x260 >>> PGD 0 >>> Oops: 0000 [#1] PREEMPT SMP >>> Modules linked in: fuse ipt_MASQUERADE nf_nat_masquerade_ipv4 >>> iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype >>> [...] >>> rtsx_pci scsi_mod usbcore usb_common i8042 serio nvme nvme_core >>> CPU: 7 PID: 1340 Comm: irq/136-brcmf_p Not tainted 4.7.0-rc1-mainline #1 >>> Hardware name: Dell Inc. XPS 15 9550/0N7TVV, BIOS 01.02.00 04/07/2016 >>> task: ffff8804a0c5bd00 ti: ffff88049e124000 task.ti: ffff88049e124000 >>> RIP: 0010:[] [] >>> enqueue_to_backlog+0x56/0x260 >>> RSP: 0018:ffff88049e127ca0 EFLAGS: 00010046 >>> RAX: 0000000000000000 RBX: ffff8804bddd7c40 RCX: 000000000000002f >>> RDX: 0000000000000000 RSI: 0000000000000007 RDI: ffff8804bddd7d4c >>> RBP: ffff88049e127ce8 R08: 0000000000000000 R09: 0000000000000000 >>> R10: ffff8804bddd12c0 R11: 000000000000149e R12: 0000000000017c40 >>> R13: ffff88049e127d08 R14: ffff8804a9bd6d00 R15: ffff8804bddd7d4c >>> FS: 0000000000000000(0000) GS:ffff8804bddc0000(0000) knlGS:0000000000000000 >>> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 >>> CR2: 0000000000000048 CR3: 0000000001806000 CR4: 00000000003406e0 >>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 >>> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 >>> Stack: >>> ffff8804bdddad00 ffff8804ad089e00 0000000000000000 0000000000000282 >>> 0000000000000000 ffff8804a9bd6d00 ffff8804a1b27e00 ffff8804a9bd6d00 >>> ffff88002ee88000 ffff88049e127d28 ffffffff814c3f3b ffffffff81311fc3 >>> Call Trace: >>> [] netif_rx_internal+0x4b/0x170 >>> [] ? swiotlb_tbl_unmap_single+0xf3/0x120 >>> [] netif_rx_ni+0x27/0xc0 >>> [] brcmf_netif_rx+0x49/0x70 [brcmfmac] >>> [] brcmf_msgbuf_process_rx+0x2b4/0x570 [brcmfmac] >>> [] ? __xen_set_pgd_hyper+0x57/0xd0 >>> [] ? irq_forced_thread_fn+0x70/0x70 >>> [] brcmf_proto_msgbuf_rx_trigger+0x31/0xe0 [brcmfmac] >>> [] brcmf_pcie_isr_thread+0x7f/0x110 [brcmfmac] >>> [] irq_thread_fn+0x20/0x50 >>> [] irq_thread+0x12d/0x1c0 >>> [] ? __schedule+0x2f5/0x7a0 >>> [] ? wake_threads_waitq+0x30/0x30 >>> [] ? irq_thread_dtor+0xb0/0xb0 >>> [] kthread+0xd8/0xf0 >>> [] ret_from_fork+0x1f/0x40 >>> [] ? kthread_worker_fn+0x170/0x170 >>> Code: 1c f5 60 9a 8e 81 9c 58 0f 1f 44 00 00 48 89 45 d0 fa 66 0f 1f >>> 44 00 00 4c 8d bb 0c 01 00 00 4c 89 ff e8 5e 08 11 00 49 8b 56 20 <48> >>> 8b 52 48 83 e2 01 74 10 8b 8b 08 01 00 00 8b 15 59 c5 42 00 >>> RIP [] enqueue_to_backlog+0x56/0x260 >>> RSP >>> CR2: 0000000000000048 >>> >>> Reported-by: Grey Christoforo >> >> I'll add a fixes line before I commit: >> >> Fixes: 9c349892ccc9 ("brcmfmac: revise handling events in receive path") I realized it was missing. Not yet used to that tag. So I already sent a V2 patch. Regards, Arend