linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: hv: fix bus domain ID corruption
@ 2018-03-09  4:55 Sridhar Pitchai
  2018-03-09  5:02 ` Sridhar Pitchai
  0 siblings, 1 reply; 3+ messages in thread
From: Sridhar Pitchai @ 2018-03-09  4:55 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Bjorn Helgaas, Jake Oshins, Haiyang Zhang,
	Stephen Hemminger, Dexuan Cui
  Cc: KY Srinivasan, devel, linux-pci, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 5 bytes --]

 


[-- Attachment #2: 0001-PCI-BUS-domain-ID-corruption.patch --]
[-- Type: application/octet-stream, Size: 1898 bytes --]

From 97716cf4cae9779c180c00fb4becacd2da139359 Mon Sep 17 00:00:00 2001
From: Sridhar Pitchai <sridhar.pitchai@gmail.com>
Date: Thu, 8 Mar 2018 14:17:51 -0800
Subject: [PATCH] PCI BUS domain ID corruption

When PCI BUS is added, PCI_BUS domain ID is set. When PCI_BUS and a device
added to the bus is racing against each other, the first device tends to
overwrite the domain ID. In order to avoid the race, this patch make sure
when a device is added to a bus, it never updated the bus domain ID. Since
we have the transparent SRIOV mode now, the short VF device name is no
longer needed.

Fixes: 4a9b0933bdfc("PCI:hv:Use device serial number as PCI domain")
Cc: stable@vger.kernel.org
Signed-off-by: Sridhar Pitchai <srpitcha@microsoft.com>
---
 drivers/pci/host/pci-hyperv.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
index 2faf38e..ac67e56 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -1518,17 +1518,6 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus,
 	get_pcichild(hpdev, hv_pcidev_ref_childlist);
 	spin_lock_irqsave(&hbus->device_list_lock, flags);
 
-	/*
-	 * When a device is being added to the bus, we set the PCI domain
-	 * number to be the device serial number, which is non-zero and
-	 * unique on the same VM.  The serial numbers start with 1, and
-	 * increase by 1 for each device.  So device names including this
-	 * can have shorter names than based on the bus instance UUID.
-	 * Only the first device serial number is used for domain, so the
-	 * domain number will not change after the first device is added.
-	 */
-	if (list_empty(&hbus->children))
-		hbus->sysdata.domain = desc->ser;
 	list_add_tail(&hpdev->list_entry, &hbus->children);
 	spin_unlock_irqrestore(&hbus->device_list_lock, flags);
 	return hpdev;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] PCI: hv: fix bus domain ID corruption
  2018-03-09  4:55 [PATCH] PCI: hv: fix bus domain ID corruption Sridhar Pitchai
@ 2018-03-09  5:02 ` Sridhar Pitchai
  2018-03-09 15:39   ` Lorenzo Pieralisi
  0 siblings, 1 reply; 3+ messages in thread
From: Sridhar Pitchai @ 2018-03-09  5:02 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Bjorn Helgaas, Jake Oshins, Haiyang Zhang,
	Stephen Hemminger, Dexuan Cui
  Cc: KY Srinivasan, devel, linux-pci, linux-kernel

V2hlbiBQQ0kgQlVTIGlzIGFkZGVkLCBQQ0lfQlVTIGRvbWFpbiBJRCBpcyBzZXQuIFdoZW4gUENJ
X0JVUyBhbmQgYSBkZXZpY2UNCmFkZGVkIHRvIHRoZSBidXMgaXMgcmFjaW5nIGFnYWluc3QgZWFj
aCBvdGhlciwgdGhlIGZpcnN0IGRldmljZSB0ZW5kcyB0bw0Kb3ZlcndyaXRlIHRoZSBkb21haW4g
SUQuIEluIG9yZGVyIHRvIGF2b2lkIHRoZSByYWNlLCB0aGlzIHBhdGNoIG1ha2Ugc3VyZQ0Kd2hl
biBhIGRldmljZSBpcyBhZGRlZCB0byBhIGJ1cywgaXQgbmV2ZXIgdXBkYXRlZCB0aGUgYnVzIGRv
bWFpbiBJRC4gU2luY2UNCndlIGhhdmUgdGhlIHRyYW5zcGFyZW50IFNSSU9WIG1vZGUgbm93LCB0
aGUgc2hvcnQgVkYgZGV2aWNlIG5hbWUgaXMgbm8NCmxvbmdlciBuZWVkZWQuDQoNCkZpeGVzOiA0
YTliMDkzM2JkZmMoIlBDSTpodjpVc2UgZGV2aWNlIHNlcmlhbCBudW1iZXIgYXMgUENJIGRvbWFp
biIpDQpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZw0KU2lnbmVkLW9mZi1ieTogU3JpZGhhciBQ
aXRjaGFpIDxzcnBpdGNoYUBtaWNyb3NvZnQuY29tPg0KLS0tDQogZHJpdmVycy9wY2kvaG9zdC9w
Y2ktaHlwZXJ2LmMgfCAxMSAtLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBkZWxldGlv
bnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvc3QvcGNpLWh5cGVydi5jIGIvZHJp
dmVycy9wY2kvaG9zdC9wY2ktaHlwZXJ2LmMNCmluZGV4IDJmYWYzOGUuLmFjNjdlNTYgMTAwNjQ0
DQotLS0gYS9kcml2ZXJzL3BjaS9ob3N0L3BjaS1oeXBlcnYuYw0KKysrIGIvZHJpdmVycy9wY2kv
aG9zdC9wY2ktaHlwZXJ2LmMNCkBAIC0xNTE4LDE3ICsxNTE4LDYgQEAgc3RhdGljIHN0cnVjdCBo
dl9wY2lfZGV2ICpuZXdfcGNpY2hpbGRfZGV2aWNlKHN0cnVjdCBodl9wY2lidXNfZGV2aWNlICpo
YnVzLA0KIAlnZXRfcGNpY2hpbGQoaHBkZXYsIGh2X3BjaWRldl9yZWZfY2hpbGRsaXN0KTsNCiAJ
c3Bpbl9sb2NrX2lycXNhdmUoJmhidXMtPmRldmljZV9saXN0X2xvY2ssIGZsYWdzKTsNCiANCi0J
LyoNCi0JICogV2hlbiBhIGRldmljZSBpcyBiZWluZyBhZGRlZCB0byB0aGUgYnVzLCB3ZSBzZXQg
dGhlIFBDSSBkb21haW4NCi0JICogbnVtYmVyIHRvIGJlIHRoZSBkZXZpY2Ugc2VyaWFsIG51bWJl
ciwgd2hpY2ggaXMgbm9uLXplcm8gYW5kDQotCSAqIHVuaXF1ZSBvbiB0aGUgc2FtZSBWTS4gIFRo
ZSBzZXJpYWwgbnVtYmVycyBzdGFydCB3aXRoIDEsIGFuZA0KLQkgKiBpbmNyZWFzZSBieSAxIGZv
ciBlYWNoIGRldmljZS4gIFNvIGRldmljZSBuYW1lcyBpbmNsdWRpbmcgdGhpcw0KLQkgKiBjYW4g
aGF2ZSBzaG9ydGVyIG5hbWVzIHRoYW4gYmFzZWQgb24gdGhlIGJ1cyBpbnN0YW5jZSBVVUlELg0K
LQkgKiBPbmx5IHRoZSBmaXJzdCBkZXZpY2Ugc2VyaWFsIG51bWJlciBpcyB1c2VkIGZvciBkb21h
aW4sIHNvIHRoZQ0KLQkgKiBkb21haW4gbnVtYmVyIHdpbGwgbm90IGNoYW5nZSBhZnRlciB0aGUg
Zmlyc3QgZGV2aWNlIGlzIGFkZGVkLg0KLQkgKi8NCi0JaWYgKGxpc3RfZW1wdHkoJmhidXMtPmNo
aWxkcmVuKSkNCi0JCWhidXMtPnN5c2RhdGEuZG9tYWluID0gZGVzYy0+c2VyOw0KIAlsaXN0X2Fk
ZF90YWlsKCZocGRldi0+bGlzdF9lbnRyeSwgJmhidXMtPmNoaWxkcmVuKTsNCiAJc3Bpbl91bmxv
Y2tfaXJxcmVzdG9yZSgmaGJ1cy0+ZGV2aWNlX2xpc3RfbG9jaywgZmxhZ3MpOw0KIAlyZXR1cm4g
aHBkZXY7DQotLSANCjIuNy40DQogDQoNCg==

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] PCI: hv: fix bus domain ID corruption
  2018-03-09  5:02 ` Sridhar Pitchai
@ 2018-03-09 15:39   ` Lorenzo Pieralisi
  0 siblings, 0 replies; 3+ messages in thread
From: Lorenzo Pieralisi @ 2018-03-09 15:39 UTC (permalink / raw)
  To: Sridhar Pitchai
  Cc: Bjorn Helgaas, Jake Oshins, Haiyang Zhang, Stephen Hemminger,
	Dexuan Cui, KY Srinivasan, devel, linux-pci, linux-kernel

On Fri, Mar 09, 2018 at 05:02:34AM +0000, Sridhar Pitchai wrote:
> When PCI BUS is added, PCI_BUS domain ID is set. When PCI_BUS and a device
> added to the bus is racing against each other, the first device tends to
> overwrite the domain ID. In order to avoid the race, this patch make sure
> when a device is added to a bus, it never updated the bus domain ID. Since
> we have the transparent SRIOV mode now, the short VF device name is no
> longer needed.

This commit log may be clear to you, it is not clear to me at all so
you will have to improve it and explain why it is safe to apply this
patch.

> Fixes: 4a9b0933bdfc("PCI:hv:Use device serial number as PCI domain")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sridhar Pitchai <srpitcha@microsoft.com>
> ---
>  drivers/pci/host/pci-hyperv.c | 11 -----------
>  1 file changed, 11 deletions(-)

Are you 100% sure this patch won't trigger a regression on current
systems ? I need ACKs/reviews from hyperv maintainers to apply it.

Lorenzo

> diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
> index 2faf38e..ac67e56 100644
> --- a/drivers/pci/host/pci-hyperv.c
> +++ b/drivers/pci/host/pci-hyperv.c
> @@ -1518,17 +1518,6 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus,
>  	get_pcichild(hpdev, hv_pcidev_ref_childlist);
>  	spin_lock_irqsave(&hbus->device_list_lock, flags);
>  
> -	/*
> -	 * When a device is being added to the bus, we set the PCI domain
> -	 * number to be the device serial number, which is non-zero and
> -	 * unique on the same VM.  The serial numbers start with 1, and
> -	 * increase by 1 for each device.  So device names including this
> -	 * can have shorter names than based on the bus instance UUID.
> -	 * Only the first device serial number is used for domain, so the
> -	 * domain number will not change after the first device is added.
> -	 */
> -	if (list_empty(&hbus->children))
> -		hbus->sysdata.domain = desc->ser;
>  	list_add_tail(&hpdev->list_entry, &hbus->children);
>  	spin_unlock_irqrestore(&hbus->device_list_lock, flags);
>  	return hpdev;
> -- 
> 2.7.4
>  
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-09 15:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-09  4:55 [PATCH] PCI: hv: fix bus domain ID corruption Sridhar Pitchai
2018-03-09  5:02 ` Sridhar Pitchai
2018-03-09 15:39   ` Lorenzo Pieralisi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).