Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757476AbbGQKA7 (ORCPT ); Fri, 17 Jul 2015 06:00:59 -0400 Received: from mail-by2on0135.outbound.protection.outlook.com ([207.46.100.135]:56064 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752542AbbGQKA5 convert rfc822-to-8bit (ORCPT ); Fri, 17 Jul 2015 06:00:57 -0400 Authentication-Results: spf=pass (sender IP is 206.191.229.116) smtp.mailfrom=microsoft.com; davemloft.net; dkim=none (message not signed) header.d=none; From: Dexuan Cui To: KY Srinivasan , "davem@davemloft.net" , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devel@linuxdriverproject.org" , "olaf@aepfle.de" , "apw@canonical.com" , "jasowang@redhat.com" , "vkuznets@redhat.com" CC: KY Srinivasan Subject: RE: [PATCH net-next 1/1] hv_netvsc: Wait for sub-channels to be processed during probe Thread-Topic: [PATCH net-next 1/1] hv_netvsc: Wait for sub-channels to be processed during probe Thread-Index: AQHQv/BG8tKnHymnuUOSalik/ODCIp3faxCw Date: Fri, 17 Jul 2015 10:00:43 +0000 Message-ID: <4fd650437f864cf2a58e8334253f5dcd@SIXPR30MB031.064d.mgd.msft.net> References: <1437074222-13020-1-git-send-email-kys@microsoft.com> In-Reply-To: <1437074222-13020-1-git-send-email-kys@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [141.251.57.69] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD018;1:w2/PP/eyncd8Rihdk8ThAm33s6Xv49RXqOl9ZAUycmgFTIgFynshCsTX8b9l/ikIWqLDxPlrLm82yeT9QlVHpbqMOKJD3UcMm+Tg29/PMebPrDchgMggqVQRZ7g5Yq9WTpwlgsoa+XfFfEMp7edpXEPxNxqqhx4IA6AK+EvLVCKcyKYH2ALZCHDFa5lOg5IQTPxib1QuHT601xI0RA5JweyauoBrgX9S6NNsUAj4lMuoIoPxKsY5bqeGGbuaXhy1HcxaOIFk3KEU3v10S7HtNUlqkDnT5ELpn3JTXtgt+ojfF3XKOC7IhwFYfzDm4ZKv4OpEMazhP01STW+aDz0FkBkf36yofIRTdYtX+wIOddcW7u9p7+QQTI7XI0BUznjAY5DzpX0cribVtgfa6fY6S3tHzRlX+KcFwoJrvvrX0KA= X-Forefront-Antispam-Report: CIP:206.191.229.116;CTRY:US;IPV:CAL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(438002)(199003)(189002)(102836002)(106116001)(2201001)(86362001)(106466001)(33646002)(87936001)(2656002)(2421001)(23726002)(2950100001)(108616004)(2561002)(97756001)(2900100001)(5001960100002)(107886002)(47776003)(6806004)(189998001)(92566002)(77156002)(66066001)(24736003)(50986999)(76176999)(46102003)(54356999)(5001770100001)(86612001)(1511001)(86146001)(16796002)(2501003)(5003600100002)(50466002)(46406003)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0301MB0667;H:064-smtp-out.microsoft.com;FPR:;SPF:Pass;MLV:sfv;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0667;2:PNV+I18wU/QKREQ1B86URm6/yqEbreME2EKPP98brY86MXxhUN1r/067v+AC8YL4;3:wewviiIplwbW/5ShNltkU+XY8LLnTcy4N0ZmEV3ftmxapvsWxktlGU/yvQQL0KYUVntgMX79v5LFQATLnMRLqZWLvvPlU9YPJZPXo3SOOWSVKBH5oYoIvc7D7SNQkh9YE0X0+BMHfFjV9OEcsQhUDMaQy50QAVPfA/y/3gSKrekbD9BGKpUiGC5bP1BJQRnUEOChKH0hzeu3NJIaLJznkXZhh4aq+moj4at2Ry0K/5bz+Rfq7rWipTdWF0QZgVNn;25:g/uv0PT1T86nm45jaqPtvrKWcioKtRPVSZvh7Tm84CMosZhpxxlFYgY8BgqDyJr/zMaQNvl534bFS/Qv21Ze/YOWBonXJZz6E5qP3Y/yj+A9k4axUc/J82HvcS8POvLAOja+utXCDkD+vuDArU0NmVohYk0qXhdBgz8bCYKttWntCji5AumYEljB7VnQvccN6kUPuKIhf50wmXzdMr5yjBPdfHQgDjhF1wF12NgOGQxpP44ycMPqJ7uNg+9ESs7aSjcFwZ5DnQjSKs3RNwaVCg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0667; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0667;20:+OPrOTp6l+E00beuKazDAMBfuStW+qps+YL4goKasqWN1M2iC8zeteVXXgz9/pyKLWQCeEuhZPVUD0mhWtcIY1rz287M7NXBpHINqM7eljMfQcpJuCm5Gei2k3wTwPOmfohre45qq6mmnmcxXpuv6wZtFY652RjjMTMgsoQSgZ2Aff+2UiTK/XlZMSmm84ti/qrh/gbpXPH9AbR4jEDPVIZyqjAv4tRLRjz6TJ92tjePPcCftSRjqMPSbV5IqdgmUMiUzgTJ0r5uxteV0ZgsbL2jSx5J8o/s4S3lIqh+PPDfjxh0fdqFL5gVJkaZk+Zhwl158zRjSqjvuq/4SkpLzZ+93ITIbtgKa+d9569UhS4goRYmTChR8qQq8ZUSGnRlHrviFxAnIJUJkQspahVHcaL1gS8cXCkUYDwyuBzo9Sb21WZgrOlzbZDxNmJbQ1pR3T0dcRAqHlBEQRBeE8jo7/ZOyH7e2K+7umbt0fAhVGrE9HZ2zyrRBwNHbhmDkWyd;4:0r5bDQsPKBTKbzwmOs+nC2R0XpAZ4rxBgXEa1M0p7X9C9m7AC+KOUZgDeT6edQhVBg0rTKC/mgzKYaTize7A2jYrxAfgQsqjtcS+9JC+MMslrx5LmUusfMM7eqd7G92sPeX/4UIW3kPkqj37xDLYw+l8T6ib7Zft+b186tGyJQI1obW2wAFQnkqHjVT/MYmP31f1LkxgEyHn4FrCaNCX2doe0lWuskC68rqvwsDZuA1AhGt/zVnOPnrkwQ6yJK/HOg3mEso8KcU6R7LYnBQiDAD4I8BsAGUDiTURsmy0y5+qWSd90cMo2PI6gvO+6few CY1PR0301MB0667: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401001)(5005006)(3002001);SRVR:CY1PR0301MB0667;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0667; X-Forefront-PRVS: 06400060E1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB0667;23:2mCUk8CZZrxK3Ehog8u+EiFTCyvC8scwwff/rQf?= =?us-ascii?Q?HuRUEFXPLuixujEWL1V/jhIeTKa2BuhmhD2VCK/CA9wfwjwWSZF7WUv7jtwc?= =?us-ascii?Q?Ar6LefYzFwDq3vXaJdYFZGA3S3WHsIVbDyOcqcPvChfizVLoetH0EtV5HNaE?= =?us-ascii?Q?/GKlgRPvxcZoxR1RHZS8pavFO1SkfE7ygtw64Dkzfud9/JrgXUIN+fBQ8XSc?= =?us-ascii?Q?VDd+fIz69Lj6rTZTUJ0sEZARNybZQbw0Ts3ZAJR46I321E+CmyReLFV2N3Bz?= =?us-ascii?Q?QHuNBgx79LjpL5KG4l7LG9/TZX9tOuqwucuQf2FU7s9ngKnOe8pPTDPhHqAB?= =?us-ascii?Q?DkZholGWipdoszvnQj9KFNi+X+fEvOc4l5OVAuTQd3ueKBU9Tn4kWPZtUH1e?= =?us-ascii?Q?q61wwxWj/gKJfOnfNsdsotdllA16P0K/FvG5QOWLl4GDkLB/1wiYw1WdNZCz?= =?us-ascii?Q?ZWqQJxH9/w1WPbrWMFoeY928O83zOHqt4wRu5kM00FiNSnva6euQD7f1cyxN?= =?us-ascii?Q?WZ0Nj5wOdHvjWoHry62/u+Hf8jDMJf9ihgK53Ncr+Nycx2N5P46rlTX6WtZb?= =?us-ascii?Q?VrkYor5mexPXWfXyXaukq2sz4qeFJF+OFoa3eSvedHKA3e6VULBcr6xFHVQu?= =?us-ascii?Q?hqiuo1/SCW7LUer7Z52TGRXXSxnrSfmmCgOb+g4/ZWJT6e9qa9zPbYbWChJg?= =?us-ascii?Q?dKL9do6F4chRBwp6k5pe+vmMoxfn7Lr6ULAv5LznD+1FoQzoJQynfggI5MVR?= =?us-ascii?Q?5jJX/QhigSmk12VLqtEVeCb7my2LH/tUQa/3mpYpwh9hgIOsxHdk7KqFMZfj?= =?us-ascii?Q?5KRVVKeLDMbcydR4R3l25CfCQkJjfpl+aOrQLdjmIc7d7cXeFugNN9I8kUr+?= =?us-ascii?Q?DPu+F1bRWnWoVy2upwXGultIRS/3T0MJa8Bbm8yhmjSZX9QQlKTCb9Nb1n22?= =?us-ascii?Q?LqWvyY+1Pan1xfiHAB0V5iBlUAE38FOeu2z9FrYU824pAf/0M5pchbb1u3Yk?= =?us-ascii?Q?1Y/Ow8E1zb17bfgQTQVrH1iJoudV1sSTlMwXBPcHNe4cgu62wXbibl8p+gju?= =?us-ascii?Q?r9DWKZNLudQut8vVU+NKsktdrif9uMVTVZsw+sTaxMWigSSO/Cg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB0667;5:0dZbzLqvqvFVJexlnZMwdvBGhABwNj3JB1O86OZJvU2HygV5dob5WktZkq0VpEoq5dVVB0C2jDx+FSEmKT02whmmR7mmAXw33UuxD57nnbeCjYq3maZS6NzNB91xlO90jIs5HhQ0zOavH0N7KKoskw==;24:lrOz/ZRGjS16CJ7tALQPKIBXF+iTU1pxGboecgT/Nb0paKHwKHLtItvng8MgeWZMzEijqzYQDXY8ehwhcWj+Iurlf8mi9/zUIa4mEJiK+BQ=;20:jir3EC+I8NAUtWwCVsv7Axze/Cvtws5y43lfRrKey94PN5rbTkPa/+0Kl9yIopdsyYzEl2DIheL0CtDldj7P/A== X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2015 10:00:51.9100 (UTC) X-MS-Exchange-CrossTenant-Id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=72f988bf-86f1-41af-91ab-2d7cd011db47;Ip=[206.191.229.116];Helo=[064-smtp-out.microsoft.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB0667 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1862 Lines: 52 > From: K. Y. Srinivasan > Sent: Friday, July 17, 2015 3:17 > Subject: [PATCH net-next 1/1] hv_netvsc: Wait for sub-channels to be processed > during probe > diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h > ... > @@ -1116,6 +1127,9 @@ int rndis_filter_device_add(struct hv_device *dev, > num_possible_rss_qs = cpumask_weight(node_cpu_mask); > net_device->num_chn = min(num_possible_rss_qs, num_rss_qs); > > + num_rss_qs = net_device->num_chn - 1; > + net_device->num_sc_offered = num_rss_qs; > + > if (net_device->num_chn == 1) > goto out; > > @@ -1157,11 +1171,22 @@ int rndis_filter_device_add(struct hv_device *dev, > > ret = rndis_filter_set_rss_param(rndis_device, net_device->num_chn); > > + /* > + * Wait for the host to send us the sub-channel offers. > + */ > + spin_lock_irqsave(&net_device->sc_lock, flags); > + sc_delta = net_device->num_chn - 1 - num_rss_qs; > + net_device->num_sc_offered -= sc_delta; Hi KY, IMO here the "-= " should be "+="? I think sc_delta is usually <= 0, meaning the host may allocate less subchannels than we expect. With "-=", net_device->num_sc_offered can become bigger -- this doesn't seem correct. Why not use "net_device->num_sc_offered = net_device->num_chn - 1;" directly? At this point, net_device->num_chn has been the number of the actual channels. > + spin_unlock_irqrestore(&net_device->sc_lock, flags); > + > + if (net_device->num_sc_offered != 0) > + wait_for_completion(&net_device->channel_init_wait); BTW, I also tested the patch and I can confirm the panic I saw disappeared with the patch. -- Dexuan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/