From patchwork Mon May 14 22:32:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 913316 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=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="o+dwSjDK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40lFnz2h1tz9s0q for ; Tue, 15 May 2018 08:32:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752284AbeENWcw (ORCPT ); Mon, 14 May 2018 18:32:52 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:38595 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752222AbeENWct (ORCPT ); Mon, 14 May 2018 18:32:49 -0400 Received: by mail-pg0-f66.google.com with SMTP id n9-v6so6078082pgq.5 for ; Mon, 14 May 2018 15:32:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UhfoF0UtnRNqJryJ5Dacui0ifvGNLMinJIlqWdPyuSA=; b=o+dwSjDK8+Zter438tnbhpDirCl79EIMadKNc1xzBjZ7cKeKKBsleGpede37tnmPrT c6f/SOkTKrWAM71yS8mBzdxkrQJLd5e7dTzktrgZniX9U3ZkGzfv6Ynwh6v1elmOjCxA iyxl3h77Gz7ITtg6o0BcM/gzY+P/cH9oxEMl9RW1c+J+qae+6r4trsKnCFgCnpwlgpRI re2wDD6LRoYuIDr3p1BWudKFStte2kP+gpj7GUhZ1o3uiy7lUIKb7qvchyHPg8CqdUzQ 5X97l3SgZIaJhhpzYErEyAJcY+9yrgVZt0HHno8wvyTx1An2ivDbxcSBODAEpBXfTfQz HuvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UhfoF0UtnRNqJryJ5Dacui0ifvGNLMinJIlqWdPyuSA=; b=qiIz2GGujkqu4oTZ0BiKya3ejHeNxkpnc2f0gwDrJsWGZgrq/+Pf/kQEMyF6Q9bM6j 2Zth9JYvq7u0MOxXN/4Kt5+LTQpbf2qGs1qPKgFlDWgcERbg0dwnau+8XCIUUeQv+vPq O/r5UJ8u85xQsyRd3BqTpJ+t2xTSEReg0AjNuYiv24warH6tIn1+UOG845+WS/7rF2O7 /anVMtdaUGJL9K6XqV+/40WEJLywtxrzNaKiD9GfhhQufDyi7QJZ3gso58Sy0VJWylDZ ZYxYRuLrOEOjAGtwpaIPxPIwrgf3g1k2AN67O5UPr5PNnlGTzShQ9XWXvv17xB/qgYMK fMJA== X-Gm-Message-State: ALKqPwdNrMFIGPQG4Azr+ODHw2bAOZExxKNLC43CjV+5LYxM1kENoy0l tNyJH+jybuBL1iKuGwsv5uJR9Q== X-Google-Smtp-Source: AB8JxZoGNo69W80pJrj/jNxZddNnO/jZ+i70xQ7rZN97OG6+b8jRUtXYm+nLg6g8qOTvbo0hss2ysg== X-Received: by 2002:a65:4586:: with SMTP id o6-v6mr2473045pgq.197.1526337169147; Mon, 14 May 2018 15:32:49 -0700 (PDT) Received: from xeon-e3.lan (204-195-35-107.wavecable.com. [204.195.35.107]) by smtp.gmail.com with ESMTPSA id y29-v6sm23827830pff.42.2018.05.14.15.32.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 14 May 2018 15:32:48 -0700 (PDT) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: davem@davemloft.net Cc: netdev@vger.kernel.org, Stephen Hemminger , Stephen Hemminger Subject: [PATCH net-stable 13/24] hv_netvsc: cancel subchannel setup before halting device Date: Mon, 14 May 2018 15:32:12 -0700 Message-Id: <20180514223223.25433-14-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180514223223.25433-1-sthemmin@microsoft.com> References: <20180514223223.25433-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger commit a7483ec0267c69b34e818738da60b392623da94b upstream Block setup of multiple channels earlier in the teardown process. This avoids possible races between halt and subchannel initialization. Suggested-by: Haiyang Zhang Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller --- drivers/net/hyperv/rndis_filter.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c index 05109ed5377c..5a312b2d5a7b 100644 --- a/drivers/net/hyperv/rndis_filter.c +++ b/drivers/net/hyperv/rndis_filter.c @@ -1340,6 +1340,9 @@ void rndis_filter_device_remove(struct hv_device *dev, { struct rndis_device *rndis_dev = net_dev->extension; + /* Don't try and setup sub channels if about to halt */ + cancel_work_sync(&net_dev->subchan_work); + /* Halt and release the rndis device */ rndis_filter_halt_device(rndis_dev);