From patchwork Wed Oct 3 00:52:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 978095 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="SPUm/ty+"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="SPUm/ty+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42PyGM1d5Wz9sBJ for ; Wed, 3 Oct 2018 10:54:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726451AbeJCHj4 (ORCPT ); Wed, 3 Oct 2018 03:39:56 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49770 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726120AbeJCHj4 (ORCPT ); Wed, 3 Oct 2018 03:39:56 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id B863F60C61; Wed, 3 Oct 2018 00:53:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528033; bh=leq+QayD4pW6wEySC90/jxNdsahvlCWKGi7gKdzVYyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SPUm/ty+jCEgPyDrRmWTjeMO8M9l3Y7Oa+BDJDZqwyy3yWr5Q3NfafMlgiI1+03ZY uq3iotc3gMSCJ9pLXcunzc33/eLXil1FitwJ+i9BFsO9txmbFR1t8xI7SpRoCUh/6T sSxWBDu2bN0nMmkcUzm89fWoi4FVNgDaV0k9Zffs= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID, DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id E134060BF4; Wed, 3 Oct 2018 00:53:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528033; bh=leq+QayD4pW6wEySC90/jxNdsahvlCWKGi7gKdzVYyA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SPUm/ty+jCEgPyDrRmWTjeMO8M9l3Y7Oa+BDJDZqwyy3yWr5Q3NfafMlgiI1+03ZY uq3iotc3gMSCJ9pLXcunzc33/eLXil1FitwJ+i9BFsO9txmbFR1t8xI7SpRoCUh/6T sSxWBDu2bN0nMmkcUzm89fWoi4FVNgDaV0k9Zffs= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E134060BF4 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Sean Tranchetti , Subash Abhinov Kasiviswanathan Subject: [PATCH net 1/3] net: qualcomm: rmnet: Skip processing loopback packets Date: Tue, 2 Oct 2018 18:52:01 -0600 Message-Id: <1538527923-29562-2-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> References: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Sean Tranchetti RMNET RX handler was processing invalid packets that were originally sent on the real device and were looped back via dev_loopback_xmit(). This was detected using syzkaller. Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation") Signed-off-by: Sean Tranchetti Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 7fd86d4..6908b26 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -189,6 +189,9 @@ rx_handler_result_t rmnet_rx_handler(struct sk_buff **pskb) if (!skb) goto done; + if (skb->pkt_type == PACKET_LOOPBACK) + return RX_HANDLER_PASS; + dev = skb->dev; port = rmnet_get_port(dev); From patchwork Wed Oct 3 00:52:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 978096 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="Bpr+vs7x"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="Bpr+vs7x"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42PyGM6kYvz9sBy for ; Wed, 3 Oct 2018 10:54:35 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726548AbeJCHj7 (ORCPT ); Wed, 3 Oct 2018 03:39:59 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49812 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726120AbeJCHj6 (ORCPT ); Wed, 3 Oct 2018 03:39:58 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id EC62360B26; Wed, 3 Oct 2018 00:53:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528035; bh=s4CXrrKSzSaobrBGR5YCIxfncWXQ+vhDGittp5JPapQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bpr+vs7xEjWdFytw1qrFas7kb0ZMSOYms9cw6+olymdeen1H7J4sxkB4L1HLn4vhD OxmbcfiAOAezwML8Gji2vYnPeKkL0lu+BYAoLgINplY7XzH7+gI2mYFZgOlj8SlcBf 2uzGagW9jXdE7l3xz9Vi8zFDeQhlIr3EpnRkAb04= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID, DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 4084760116; Wed, 3 Oct 2018 00:53:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528035; bh=s4CXrrKSzSaobrBGR5YCIxfncWXQ+vhDGittp5JPapQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bpr+vs7xEjWdFytw1qrFas7kb0ZMSOYms9cw6+olymdeen1H7J4sxkB4L1HLn4vhD OxmbcfiAOAezwML8Gji2vYnPeKkL0lu+BYAoLgINplY7XzH7+gI2mYFZgOlj8SlcBf 2uzGagW9jXdE7l3xz9Vi8zFDeQhlIr3EpnRkAb04= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 4084760116 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan Subject: [PATCH net 2/3] net: qualcomm: rmnet: Fix incorrect allocation flag in transmit Date: Tue, 2 Oct 2018 18:52:02 -0600 Message-Id: <1538527923-29562-3-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> References: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The incoming skb needs to be reallocated in case the headroom is not sufficient to add the MAP header. This allocation needs to be atomic otherwise it results in the following splat [32805.801456] BUG: sleeping function called from invalid context [32805.841141] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [32805.904773] task: ffffffd7c5f62280 task.stack: ffffff80464a8000 [32805.910851] pc : ___might_sleep+0x180/0x188 [32805.915143] lr : ___might_sleep+0x180/0x188 [32806.131520] Call trace: [32806.134041] ___might_sleep+0x180/0x188 [32806.137980] __might_sleep+0x50/0x84 [32806.141653] __kmalloc_track_caller+0x80/0x3bc [32806.146215] __kmalloc_reserve+0x3c/0x88 [32806.150241] pskb_expand_head+0x74/0x288 [32806.154269] rmnet_egress_handler+0xb0/0x1d8 [32806.162239] rmnet_vnd_start_xmit+0xc8/0x13c [32806.166627] dev_hard_start_xmit+0x148/0x280 [32806.181181] sch_direct_xmit+0xa4/0x198 [32806.185125] __qdisc_run+0x1f8/0x310 [32806.188803] net_tx_action+0x23c/0x26c [32806.192655] __do_softirq+0x220/0x408 [32806.196420] do_softirq+0x4c/0x70 Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation") Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 6908b26..1f98d65 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -147,7 +147,7 @@ static int rmnet_map_egress_handler(struct sk_buff *skb, } if (skb_headroom(skb) < required_headroom) { - if (pskb_expand_head(skb, required_headroom, 0, GFP_KERNEL)) + if (pskb_expand_head(skb, required_headroom, 0, GFP_ATOMIC)) return -ENOMEM; } From patchwork Wed Oct 3 00:52:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Subash Abhinov Kasiviswanathan X-Patchwork-Id: 978097 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="egBOWtqz"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="Q/3FabZs"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42PyGN4TLpz9sBJ for ; Wed, 3 Oct 2018 10:54:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726567AbeJCHkA (ORCPT ); Wed, 3 Oct 2018 03:40:00 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49858 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726120AbeJCHkA (ORCPT ); Wed, 3 Oct 2018 03:40:00 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 54A2060116; Wed, 3 Oct 2018 00:53:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528037; bh=pIeb1xuXA7z0ytmJuPE9YVh0TP3mZTbVWcHrtetWG5E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=egBOWtqz9ItRS2Ph9RmI+x9GORJRL4tpv8+TnHbd0DMhwtNTc5a2Tm09dLbRLlYaE 8VbUbj2j5OtNBqvdu8p7fWkuMFk/kkhuWAZ+ZNmEs978BvWKfMGl81zKTspDvubr3v Bary2h0sxz1Ox3OpcZXErYpFHY44alTwipm7wNJ8= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID, DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from subashab-lnx.qualcomm.com (unknown [129.46.15.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: subashab@codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 8D94060BF4; Wed, 3 Oct 2018 00:53:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538528036; bh=pIeb1xuXA7z0ytmJuPE9YVh0TP3mZTbVWcHrtetWG5E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q/3FabZsCD7WpsSWaKu/+vAKim80aRBz4MqR3hbZnbBhGrSxWMbtBZ2VIZArLdHrw LIO822DJjxu6aC8PzXKQsA6hlN4Opt3xu6qavf8dUlf5K0epGTIqq4pXqW0gBOzOkc qKWKkJcs9aoI5dcHxoIpBVvyGNyYxZXDQF1pAQB4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8D94060BF4 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=subashab@codeaurora.org From: Subash Abhinov Kasiviswanathan To: davem@davemloft.net, netdev@vger.kernel.org Cc: Subash Abhinov Kasiviswanathan , Sean Tranchetti Subject: [PATCH net 3/3] net: qualcomm: rmnet: Fix incorrect allocation flag in receive path Date: Tue, 2 Oct 2018 18:52:03 -0600 Message-Id: <1538527923-29562-4-git-send-email-subashab@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> References: <1538527923-29562-1-git-send-email-subashab@codeaurora.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The incoming skb needs to be reallocated in case the headroom is not sufficient to adjust the ethernet header. This allocation needs to be atomic otherwise it results in this splat [<600601bb>] ___might_sleep+0x185/0x1a3 [<603f6314>] ? _raw_spin_unlock_irqrestore+0x0/0x27 [<60069bb0>] ? __wake_up_common_lock+0x95/0xd1 [<600602b0>] __might_sleep+0xd7/0xe2 [<60065598>] ? enqueue_task_fair+0x112/0x209 [<600eea13>] __kmalloc_track_caller+0x5d/0x124 [<600ee9b6>] ? __kmalloc_track_caller+0x0/0x124 [<602696d5>] __kmalloc_reserve.isra.34+0x30/0x7e [<603f629b>] ? _raw_spin_lock_irqsave+0x0/0x3d [<6026b744>] pskb_expand_head+0xbf/0x310 [<6025ca6a>] rmnet_rx_handler+0x7e/0x16b [<6025c9ec>] ? rmnet_rx_handler+0x0/0x16b [<6027ad0c>] __netif_receive_skb_core+0x301/0x96f [<60033c17>] ? set_signals+0x0/0x40 [<6027bbcb>] __netif_receive_skb+0x24/0x8e Fixes: 74692caf1b0b ("net: qualcomm: rmnet: Process packets over ethernet") Signed-off-by: Sean Tranchetti Signed-off-by: Subash Abhinov Kasiviswanathan --- drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c index 1f98d65..11167ab 100644 --- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c @@ -113,7 +113,7 @@ static void rmnet_set_skb_proto(struct sk_buff *skb) struct sk_buff *skbn; if (skb->dev->type == ARPHRD_ETHER) { - if (pskb_expand_head(skb, ETH_HLEN, 0, GFP_KERNEL)) { + if (pskb_expand_head(skb, ETH_HLEN, 0, GFP_ATOMIC)) { kfree_skb(skb); return; }