Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp3812741pxy; Tue, 4 May 2021 10:26:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwVqvGoMGnvU2euMbU3f9CIH6oHJGQzF+hBUn3tdj7vj+I3mFVPtrcFvLhV5KBC59hA8KBP X-Received: by 2002:a17:90a:a78c:: with SMTP id f12mr6380582pjq.219.1620149206040; Tue, 04 May 2021 10:26:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620149206; cv=none; d=google.com; s=arc-20160816; b=Qt5zISQqv7UnPypUjCrqm2lBqbNFn1JVmca6NyfL4qKqBVJwp7MkfiXlF+oqEpeaBo 45iJ4Ir7xV7XP8lrGInyQ1uEOnK9GcY2cEyI6W+Zi40WGg7B3rJobXxd/3omJ+xaiFKP 4iWym97UfuVJ/lQN6lM0qkUecmZb7QlyvDdQ7fJbFRlUJt4dTPledYHoSQ1eBTIxcSLE 6+WhQ5OpCH3rdW0jPGX78mw8MLjP1hyMc3I2yIeg7NGpffNMLdObb47qtBiO03mu0W4Y mQ6fiQTEDv2S+W93Qqh5p+EiuT5vXGjzq87mIaehqEPStrC/4ZAk7HLljYUf9oHCmw8e Ijgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:subject:reply-to:cc:from:to:dkim-signature:date; bh=4VXUpqUkQHnQnHXSQVZldgHqnsafUJMYO36/7cP3I44=; b=inZjrhUqmDzQ/ATLmMweIcKIbTI7iyjQ4JnsIMwwT/uCRrpD+UqdWpJ3lU0KCp7hul bpmVY7X4NibjrQ8Pg2BAQiOqf4vZZ8Fh7vOecRCSW87cq1++xHRcv8O9hGNQR6uK31MB iQ/5kVoP/CDxAwI3gcECmTOz8vEv1ysRKqqLsXQz8fl9uxkyQj1Y05f/fEsVuqb/pntv bFZA4TME2SmCFNPgL90lzccKOh0bMreR5SZ7TiDcfsZJPHbqHUAt0CU+MVgP9ZhOdDu2 GK2OsoaVTuSoqDIYzImk2gGxI1hDL9H2XkhGx15qCU7ODZQw43gUpPR097XTp3wZw98v tU5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=eSbIrYpH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x8si4051691plo.55.2021.05.04.10.26.31; Tue, 04 May 2021 10:26:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=eSbIrYpH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230319AbhEDRZi (ORCPT + 99 others); Tue, 4 May 2021 13:25:38 -0400 Received: from mail-40135.protonmail.ch ([185.70.40.135]:54144 "EHLO mail-40135.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230289AbhEDRZi (ORCPT ); Tue, 4 May 2021 13:25:38 -0400 Date: Tue, 04 May 2021 17:24:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1620149081; bh=4VXUpqUkQHnQnHXSQVZldgHqnsafUJMYO36/7cP3I44=; h=Date:To:From:Cc:Reply-To:Subject:From; b=eSbIrYpHihhLoFfhYrocltw8AKCHo97bh2r4Av2mubvrcDvjOoVifAQkLJ5uX/OLy uBgSoaqTz+RHbOuc7uOOR3rfFacSpmAHpgCX4yF3+kceituh8tIyETgGVAHYLFp84r 8ekwY8CWO7GDhYecsIPmY3NclDVDz1eOv88KBHLc= To: Greg Kroah-Hartman From: Jari Ruusu Cc: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" , Jiri Kosina , Kalle Valo Reply-To: Jari Ruusu Subject: Backport for 5.4 and 4.19, iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() upstream commit e7020bb068d8be50a92f48e36b236a1a1ef9282e, backport for linux-5.4.y and linux-4.19.y (booted and ping tested) Signed-off-by: Jari Ruusu --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c @@ -705,6 +705,7 @@ static int iwl_pcie_gen2_enqueue_hcmd(struct iwl_trans = *trans, =09const u8 *cmddata[IWL_MAX_CMD_TBS_PER_TFD]; =09u16 cmdlen[IWL_MAX_CMD_TBS_PER_TFD]; =09struct iwl_tfh_tfd *tfd; +=09unsigned long flags2; =09copy_size =3D sizeof(struct iwl_cmd_header_wide); =09cmd_size =3D sizeof(struct iwl_cmd_header_wide); @@ -773,14 +774,14 @@ static int iwl_pcie_gen2_enqueue_hcmd(struct iwl_tran= s *trans, =09=09goto free_dup_buf; =09} -=09spin_lock_bh(&txq->lock); +=09spin_lock_irqsave(&txq->lock, flags2); =09idx =3D iwl_pcie_get_cmd_index(txq, txq->write_ptr); =09tfd =3D iwl_pcie_get_tfd(trans, txq, txq->write_ptr); =09memset(tfd, 0, sizeof(*tfd)); =09if (iwl_queue_space(trans, txq) < ((cmd->flags & CMD_ASYNC) ? 2 : 1)) { -=09=09spin_unlock_bh(&txq->lock); +=09=09spin_unlock_irqrestore(&txq->lock, flags2); =09=09IWL_ERR(trans, "No space in command queue\n"); =09=09iwl_op_mode_cmd_queue_full(trans->op_mode); @@ -915,7 +916,7 @@ static int iwl_pcie_gen2_enqueue_hcmd(struct iwl_trans = *trans, =09spin_unlock_irqrestore(&trans_pcie->reg_lock, flags); out: -=09spin_unlock_bh(&txq->lock); +=09spin_unlock_irqrestore(&txq->lock, flags2); free_dup_buf: =09if (idx < 0) =09=09kfree(dup_buf); -- Jari Ruusu=C2=A0 4096R/8132F189 12D6 4C3A DCDA 0AA4 27BD=C2=A0 ACDF F073 3C= 80 8132 F189