Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1142874imm; Wed, 1 Aug 2018 10:54:11 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfXoM5Zd4/eN2aapRRBAaXWQUz7V/LQ0Q9YBY2dkJkI1UwrDJI6XPg6GqmZz7tkHfJLDl4S X-Received: by 2002:a62:6104:: with SMTP id v4-v6mr27843046pfb.122.1533146051260; Wed, 01 Aug 2018 10:54:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533146051; cv=none; d=google.com; s=arc-20160816; b=i/pOq2/sNnF8wzQ3RsCGeqmjI11acavU9wkX0Ts0tQokEM4ydWFgey1MYhAKII6Ood 4PB43kQPqkYH6jj0pMIhvcTVwJiuBfTSzxx3kBfe1Tqd63mh+KQMzbD3oqH+bLOCHm9M /7lvQBsArIMbt92dWDzPTEng5QcdN91dp7aBGmtuSf/ZyICXdAUnHsYh+ytLXD8KX8et BfBGK2oUZlCknt3umYpM/2QZ1MP6SYGchgL3RWmeqVLFA2M0Z8xn83Z7q14kzrSi6LRj 0StjLy/MDBzcuW0RUqycsc/8umfX+mYrnJa5igFt8xhUu0L/yBfO5jx23yznbRMi3B7S CoIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=f7oegwO2/9IbcHG441GEp7C3U0g/auNOxUrOn8piV0Q=; b=er3A1pfA2l9QAfifxsQCGcVbvg6iHpBd2RW+DbzvQjciLPVpt4NWMuifgsxgvPMUOG lnkJ8UjMxgaM/PhkqI/1SZhEdUUngjCwfMit6vTKo5hNrWQsiFPfz1NEMoO0cHhLVG11 8nltvWjM5nO/LJIfdxPapKAveOQ0NTo6TjraCKgVotL/qeFDSPPqkEUUtMSIyfmIodte 9Kb3c6qQ80W/pmtgHxDGm8O6T7MD0dr23L0nTS6rzIP2QXa2Ttqt9zv+FX94bRkhM2bq EeTcCQfV6fyFvjtJgo0M+UMW1NxY5718Q3yuefKoCgntW+8JHV+nsri+oPfs3oIMmLwt jfiA== 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 e14-v6si15147997pgg.345.2018.08.01.10.53.56; Wed, 01 Aug 2018 10:54:11 -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 S2404740AbeHATjs (ORCPT + 99 others); Wed, 1 Aug 2018 15:39:48 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:49794 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2406006AbeHATIl (ORCPT ); Wed, 1 Aug 2018 15:08:41 -0400 Received: from localhost (D57E6652.static.ziggozakelijk.nl [213.126.102.82]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 4118813B7; Wed, 1 Aug 2018 17:15:24 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Shaul Triebitz , Luca Coelho , Sasha Levin Subject: [PATCH 4.14 072/246] iwlwifi: pcie: fix race in Rx buffer allocator Date: Wed, 1 Aug 2018 18:49:42 +0200 Message-Id: <20180801165015.156042452@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180801165011.700991984@linuxfoundation.org> References: <20180801165011.700991984@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Shaul Triebitz [ Upstream commit 0f22e40053bd5378ad1e3250e65c574fd61c0cd6 ] Make sure the rx_allocator worker is canceled before running the rx_init routine. rx_init frees and re-allocates all rxb's pages. The rx_allocator worker also allocates pages for the used rxb's. Running rx_init and rx_allocator simultaniously causes a kernel panic. Fix that by canceling the work in rx_init. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c @@ -901,6 +901,8 @@ static int _iwl_pcie_rx_init(struct iwl_ } def_rxq = trans_pcie->rxq; + cancel_work_sync(&rba->rx_alloc); + spin_lock(&rba->lock); atomic_set(&rba->req_pending, 0); atomic_set(&rba->req_ready, 0);