Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1669954
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] pci-hyperv: Use only 16 bit integer for PCI domain |
| Date | 2017-06-19 23:10 +0200 |
| Message-ID | <tUc5Q-7Wx-15@gated-at.bofh.it> (permalink) |
| References | <tKLod-76t-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
[+cc Christoph] On Wed, May 24, 2017 at 01:39:15PM -0700, Haiyang Zhang wrote: > From: Haiyang Zhang <haiyangz@microsoft.com> > > This patch uses the lower 16 bits of the serial number as PCI > domain, otherwise some drivers may not be able to handle it. > > Besides Nvidia drivers, we also found X.org, and DPDK handle > only 16 bit PCI domain. If you've sent patches to X.org and DPDK, please includes URLs to them. Christoph pointed out the conflict with VMD: vmd_find_free_domain() allocates domains starting at 0x10000 to avoid the 16-bit domains returned by ACPI _SEG. I think we need a solution that works for both Nvidia/Hyper-V and VMD. As it is, it looks like this will fix one place but break things elsewhere. If you believe that this will not break VMD, please explain. Bjorn > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> > --- > drivers/pci/host/pci-hyperv.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c > index 8493638..51a815d 100644 > --- a/drivers/pci/host/pci-hyperv.c > +++ b/drivers/pci/host/pci-hyperv.c > @@ -1335,9 +1335,11 @@ static void put_pcichild(struct hv_pci_dev *hpdev, > * 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. > + * The lower 16 bits of the serial number is used, otherwise some > + * drivers may not be able to handle it. > */ > if (list_empty(&hbus->children)) > - hbus->sysdata.domain = desc->ser; > + hbus->sysdata.domain = desc->ser & 0xFFFF; > list_add_tail(&hpdev->list_entry, &hbus->children); > spin_unlock_irqrestore(&hbus->device_list_lock, flags); > return hpdev; > -- > 1.7.1 >
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH] pci-hyperv: Use only 16 bit integer for PCI domain Bjorn Helgaas <helgaas@kernel.org> - 2017-06-19 23:10 +0200 Re: [PATCH] pci-hyperv: Use only 16 bit integer for PCI domain Christoph Hellwig <hch@infradead.org> - 2017-06-19 23:20 +0200
csiph-web