Message ID | 20190228130607.19118-1-marcelo.cerri@canonical.com |
---|---|
State | New |
Headers | show |
Series | [c/azure] UBUNTU: SAUCE: pci-hyperv: Use only 16 bit integer for PCI domain | expand |
On 28.02.19 14:06, Marcelo Henrique Cerri wrote: > From: Haiyang Zhang <haiyangz@microsoft.com> > > BugLink: http://bugs.launchpad.net/bugs/1684971 > > This patch uses the lower 16 bits of the serial number as PCI > domain, otherwise some drivers may not be able to handle it. > > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> > Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- Really should go upstream or at least into unstable to make sure its not lost again. Looks like it had to repeatedly be applied again. -Stefan > drivers/pci/controller/pci-hyperv.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c > index 003b355c2627..cf6ef9b1b3f3 100644 > --- a/drivers/pci/controller/pci-hyperv.c > +++ b/drivers/pci/controller/pci-hyperv.c > @@ -1618,9 +1618,11 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus, > * 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; >
It had to be reapplied after a different change from stable caused problems. Longer term solution will go upstream. On Thu, Feb 28, 2019 at 5:22 AM Stefan Bader <stefan.bader@canonical.com> wrote: > > On 28.02.19 14:06, Marcelo Henrique Cerri wrote: > > From: Haiyang Zhang <haiyangz@microsoft.com> > > > > BugLink: http://bugs.launchpad.net/bugs/1684971 > > > > This patch uses the lower 16 bits of the serial number as PCI > > domain, otherwise some drivers may not be able to handle it. > > > > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> > > Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com> > Acked-by: Stefan Bader <stefan.bader@canonical.com> > > --- > > Really should go upstream or at least into unstable to make sure its not lost > again. Looks like it had to repeatedly be applied again. > > -Stefan > > > drivers/pci/controller/pci-hyperv.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c > > index 003b355c2627..cf6ef9b1b3f3 100644 > > --- a/drivers/pci/controller/pci-hyperv.c > > +++ b/drivers/pci/controller/pci-hyperv.c > > @@ -1618,9 +1618,11 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus, > > * 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; > > > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
On 2/28/19 2:06 PM, Marcelo Henrique Cerri wrote: > From: Haiyang Zhang <haiyangz@microsoft.com> > > BugLink: http://bugs.launchpad.net/bugs/1684971 > > This patch uses the lower 16 bits of the serial number as PCI > domain, otherwise some drivers may not be able to handle it. > > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> > Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com> Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> > --- > drivers/pci/controller/pci-hyperv.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c > index 003b355c2627..cf6ef9b1b3f3 100644 > --- a/drivers/pci/controller/pci-hyperv.c > +++ b/drivers/pci/controller/pci-hyperv.c > @@ -1618,9 +1618,11 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus, > * 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;
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c index 003b355c2627..cf6ef9b1b3f3 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -1618,9 +1618,11 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus, * 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;