From patchwork Tue Mar 9 08:42:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Gleixner X-Patchwork-Id: 397177 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0658EC43142 for ; Tue, 9 Mar 2021 08:46:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DB9DE652B8 for ; Tue, 9 Mar 2021 08:46:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230421AbhCIIqR (ORCPT ); Tue, 9 Mar 2021 03:46:17 -0500 Received: from Galois.linutronix.de ([193.142.43.55]:51322 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230449AbhCIIpn (ORCPT ); Tue, 9 Mar 2021 03:45:43 -0500 Message-Id: <20210309084242.415583839@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1615279542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=QGpDfJMmIlACx05EM2bvuZB38xRW2f8VO628eoWh8rs=; b=ZPPTU832YYY3DB5bNt/1hbd+LTin0b21UuB+bOwFJWUlHhEek9cGKByRTNzYAr7Snrynx8 Q3cQeFv1TdHNsWclb9ML6GsTk0XnBu66XRnJx0xKJAa2FsfJgB9aemHbcfMOHByQXJ+5mz pfgIw57fa0RqtWjPq4sbjsTIS9LG23r5sUeQxkSOP9i622HZ7aIyW9FwO+bQXhcOF2Tl2F uM4ewrlYRxcuEJOen8YYySETwpa5AhmuSH/p9pCuxzUGwqryk9YIHkJpFnKwan99X6M6dY tqy+gR5bYO7qMlT8IhX/xBDxEOtIt8+7gkkhMktGDDcLjXmcG0oopYKufm+wSQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1615279542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=QGpDfJMmIlACx05EM2bvuZB38xRW2f8VO628eoWh8rs=; b=QPBa77aA1llDmSjFe4gs4pYWyd/5xnN8oPYCQFBpl1rPtJDQokKJpFiaqMjegedA/WihG9 gtjUJGH5B1Kd6iCQ== Date: Tue, 09 Mar 2021 09:42:14 +0100 From: Thomas Gleixner To: LKML Cc: Frederic Weisbecker , Sebastian Andrzej Siewior , "Ahmed S. Darwish" , Chas Williams <3chas3@gmail.com>, linux-atm-general@lists.sourceforge.net, netdev@vger.kernel.org, Peter Zijlstra , Denis Kirjanov , "David S. Miller" , Jakub Kicinski , ath9k-devel@qca.qualcomm.com, Kalle Valo , linux-wireless@vger.kernel.org, "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Lorenzo Pieralisi , Rob Herring , Bjorn Helgaas , linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, Stefan Richter , linux1394-devel@lists.sourceforge.net Subject: [patch 11/14] atm: eni: Use tasklet_disable_in_atomic() in the send() callback References: <20210309084203.995862150@linutronix.de> MIME-Version: 1.0 Content-transfer-encoding: 8-bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Sebastian Andrzej Siewior The atmdev_ops::send callback which calls tasklet_disable() is invoked with bottom halfs disabled from net_device_ops::ndo_start_xmit(). All other invocations of tasklet_disable() in this driver happen in preemptible context. Change the send() call to use tasklet_disable_in_atomic() which allows tasklet_disable() to be made sleepable once the remaining atomic context usage sites are cleaned up. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Cc: Chas Williams <3chas3@gmail.com> Cc: linux-atm-general@lists.sourceforge.net Cc: netdev@vger.kernel.org --- drivers/atm/eni.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c @@ -2054,7 +2054,7 @@ static int eni_send(struct atm_vcc *vcc, } submitted++; ATM_SKB(skb)->vcc = vcc; - tasklet_disable(&ENI_DEV(vcc->dev)->task); + tasklet_disable_in_atomic(&ENI_DEV(vcc->dev)->task); res = do_tx(skb); tasklet_enable(&ENI_DEV(vcc->dev)->task); if (res == enq_ok) return 0;