> -----Original Message----- > From: LKML haiyangz <lkmlhyz@xxxxxxxxxxxxx> On Behalf Of Haiyang > Zhang > Sent: Tuesday, August 6, 2019 7:52 PM > To: sashal@xxxxxxxxxx; bhelgaas@xxxxxxxxxx; lorenzo.pieralisi@xxxxxxx; > linux-hyperv@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx > Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; KY Srinivasan > <kys@xxxxxxxxxxxxx>; Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>; > olaf@xxxxxxxxx; vkuznets <vkuznets@xxxxxxxxxx>; linux- > kernel@xxxxxxxxxxxxxxx > Subject: [PATCH v2] PCI: hv: Detect and fix Hyper-V PCI domain number > collision > > Currently in Azure cloud, for passthrough devices including GPU, the > host sets the device instance ID's bytes 8 - 15 to a value derived from > the host HWID, which is the same on all devices in a VM. So, the device > instance ID's bytes 8 and 9 provided by the host are no longer unique. > > This can cause device passthrough to VMs to fail because the bytes 8 and > 9 is used as PCI domain number. So, as recommended by Azure host team, > we now use the bytes 4 and 5 which usually contain unique numbers as PCI > domain. The chance of collision is greatly reduced. In the rare cases of > collision, we will detect and find another number that is not in use. > > Thanks to Michael Kelley <mikelley@xxxxxxxxxxxxx> for proposing this idea. > > Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> > Acked-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > drivers/pci/controller/pci-hyperv.c | 92 Hi Lorenzo, This patch has been updated based on Bjorn's comments. Do you have any further comments? Could you take it from your tree? Thanks, - Haiyang