Received: by 10.213.65.68 with SMTP id h4csp4155429imn; Tue, 10 Apr 2018 10:03:46 -0700 (PDT) X-Google-Smtp-Source: AIpwx48FCFWF9ogoNr8SLVctShz9UACwORRpMfSsP8f74Da9+oYdMFAeyniOVv0CBZqX4NQwVGbZ X-Received: by 10.98.89.23 with SMTP id n23mr1016653pfb.211.1523379826279; Tue, 10 Apr 2018 10:03:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523379826; cv=none; d=google.com; s=arc-20160816; b=if877Ute3bpw8EmCcbAElcmNBQel2Z/nYunD7mignDzxAX0s8fEpNGIbtpA0wXnxuW G0NteN5pdnD9VDAE9TsOGMfoSkGMMPVZu6yr5QE5Hfn5cCk4HZNHhjsRfdHpPIQsAc+F p5U9UlUVyVcXVPCHVDs9FMH3a8DlINaJT8pcNJD/j3ywInrL94oKduBvK/lcGaZZ2knm pHex7GZMfjWT+rw++Q8DqBllU3N5LKxGvOJn2052fGzx/oSalzR9FbyFDehScEKoQs5C e+iJ4ZCnA2BT2iJ/WXSB5J79Q5mWAAqnDmzKfoMzsveQQp5n7y0vWULM8v7tn2muTJ/4 9W2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:arc-authentication-results; bh=gcIkPHNzEn071/qbSkYxoMYT1tK1NibtMHbjwpBJgZ8=; b=GPi7sI6VOayp1zDL5RWVPhMQt58clTOY/o5QoLPP99Xy04AYPmqpaW5zkJrB0CqFPs /VAla5HBR5U5S0cP/TYZZvlPl5wvGjopjMScnbEq0mLE/J4Q+uG6/8dV/H34xkRNlL2J 64u+zYdyZftW7OxBNtJKEAtJfBoGIj9TbBrOJSbNp6/DzfdZAQ1XFtF4K25aMClwobYE blNKhU+4OIcWDAx5kkPEHjA+iqH6/AN45IsxQ4q7bkbsBH0U3bwtstGu1ZvLH17MbL/9 uVO424CF1AoD4QP7djLKoS4Q1otDnU6AwH5+KrZN373+zE/7fbwkh7xezc154Ck7L45w ZPQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m30-v6si3029567pli.210.2018.04.10.10.03.07; Tue, 10 Apr 2018 10:03:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752147AbeDJQ70 (ORCPT + 99 others); Tue, 10 Apr 2018 12:59:26 -0400 Received: from bues.ch ([80.190.117.144]:60700 "EHLO bues.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751862AbeDJQ7Z (ORCPT ); Tue, 10 Apr 2018 12:59:25 -0400 Received: by bues.ch with esmtpsa (Exim 4.89) (envelope-from ) id 1f5wbz-0004sZ-Sy; Tue, 10 Apr 2018 18:59:15 +0200 Date: Tue, 10 Apr 2018 18:57:56 +0200 From: Michael =?UTF-8?B?QsO8c2No?= To: Jia-Ju Bai Cc: Larry.Finger@lwfinger.net, kvalo@codeaurora.org, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] net: wireless: b43legacy: Replace GFP_ATOMIC with GFP_KERNEL in dma_tx_fragment Message-ID: <20180410185756.35d4f601@wiggum> In-Reply-To: <1523368459-32128-1-git-send-email-baijiaju1990@gmail.com> References: <1523368459-32128-1-git-send-email-baijiaju1990@gmail.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/WVMap.eqQB3oii5eY0bDS=t"; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --Sig_/WVMap.eqQB3oii5eY0bDS=t Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Tue, 10 Apr 2018 21:54:19 +0800 Jia-Ju Bai wrote: > dma_tx_fragment() is never called in atomic context. >=20 > dma_tx_fragment() is only called by b43legacy_dma_tx(), which is=20 > only called by b43legacy_tx_work(). > b43legacy_tx_work() is only set a parameter of INIT_WORK() in=20 > b43legacy_wireless_init(). >=20 > Despite never getting called from atomic context, > dma_tx_fragment() calls alloc_skb() with GFP_ATOMIC, > which does not sleep for allocation. > GFP_ATOMIC is not necessary and can be replaced with GFP_KERNEL, > which can sleep and improve the possibility of sucessful allocation. >=20 > This is found by a static analysis tool named DCNS written by myself. > And I also manually check it. >=20 > Signed-off-by: Jia-Ju Bai > --- > drivers/net/wireless/broadcom/b43legacy/dma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/drivers/net/wireless/broadcom/b43legacy/dma.c b/drivers/net/= wireless/broadcom/b43legacy/dma.c > index cfa617d..2f0c64c 100644 > --- a/drivers/net/wireless/broadcom/b43legacy/dma.c > +++ b/drivers/net/wireless/broadcom/b43legacy/dma.c > @@ -1064,7 +1064,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring= *ring, > meta->dmaaddr =3D map_descbuffer(ring, skb->data, skb->len, 1); > /* create a bounce buffer in zone_dma on mapping failure. */ > if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) { > - bounce_skb =3D alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); > + bounce_skb =3D alloc_skb(skb->len, GFP_KERNEL | GFP_DMA); > if (!bounce_skb) { > ring->current_slot =3D old_top_slot; > ring->used_slots =3D old_used_slots; Ack. I think the GFP_ATOMIC came from the days where we did DMA operations under spinlock instead of mutex. The same thing can be done in b43. Also=20 setup_rx_descbuffer(ring, desc, meta, GFP_ATOMIC) could be GFP_KERNEL in dma_rx(). This function is called from IRQ thread context. --=20 Michael --Sig_/WVMap.eqQB3oii5eY0bDS=t Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEihRzkKVZOnT2ipsS9TK+HZCNiw4FAlrM7RQACgkQ9TK+HZCN iw7W1BAAtHAEX2oOYhWd7U+Yt94oXiUeISSBfPl3GIbE5DCx9R4gAUcT9aknAfEC VOOMmaMDeFbiqsEBfcmWezPOobyBCifS5n+r/IIU8vcTip818LPspmbpOKcTDsLY XDT27WNEvi0vPBuqbauTza+7V+60ZPoMtA0+FmgE7Wfn1wg1Esi85SfGYyf/b7rL ZOFofH9rusxLR3pTvpxdN4qg0Umcgv/+tF+diHKsDnrnFnXF9NV3ZRdI+lTz+U31 8hDFqLTBAlssVQkChrferto50bSDl+DVjaeCe+jTchqisb69Ulb0znzJpbEhJVp6 rrTEujZh1vmoc1aCunKH8UTEGzrSMxoMCCIyChSUUKe7XMWNRFtFAVEFjJINMcEU SwB2d4Mu2bxZPzP2iQROGfLUitA+HRLbNXp3eXqcB5yX/JpyBZYZTGSCtAoOb8M0 5MKdAJ47Cv6rORyySeg2Zv3dgoKeikcDNw+pHoshZsNF/7eobnNYUsGVZKnbk+XY ITTTxPBzTuKDgDRUicEGLfidcks809Z4rChdXRzy7h/NqIhxFHVH1nIXKUW0QU90 N+mfnEkRgERfKQaKcxUl19ygOiWrOsDDeW8SQKIuM41R5qcWYJDu2qUILztMVqOY E6fxGqpiwrZxIpiHKlNpzhokfSxmL3tqGGNOFzvt0g7RLod2kik= =OQBN -----END PGP SIGNATURE----- --Sig_/WVMap.eqQB3oii5eY0bDS=t--