RE: [PATCH] PCI: hv: fix wslot_to_devfn()

From: Haiyang Zhang
Date: Tue Feb 07 2017 - 11:18:08 EST




> -----Original Message-----
> From: Dexuan Cui
> Sent: Tuesday, February 7, 2017 4:00 AM
> To: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; linux-pci@xxxxxxxxxxxxxxx;
> devel@xxxxxxxxxxxxxxxxxxxxxx; Jake Oshins <jakeo@xxxxxxxxxxxxx>
> Cc: KY Srinivasan <kys@xxxxxxxxxxxxx>; Stephen Hemminger
> <sthemmin@xxxxxxxxxxxxx>; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>;
> olaf@xxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> apw@xxxxxxxxxxxxx; jasowang@xxxxxxxxxx; Vitaly Kuznetsov
> <vkuznets@xxxxxxxxxx>
> Subject: [PATCH] PCI: hv: fix wslot_to_devfn()
>
> The devfn of 00:02.0 is 0x10.
> devfn_to_wslot(0x10) == 0x2, and wslot_to_devfn(0x2) should be 0x10,
> while it's 0x2 in the current code.
>
> Due to this, hv_eject_device_work() -> pci_get_domain_bus_and_slot()
> returns NULL and pci_stop_and_remove_bus_device() is not called.
>
> Later when the real device driver's .remove() is invoked by
> hv_pci_remove() -> pci_stop_root_bus(), some warnings can be noticed
> because the VM has lost the access to the underlying device at that time.
>
> Signed-off-by: Jake Oshins <jakeo@xxxxxxxxxxxxx>
> Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> CC: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> Cc: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>
> ---
> drivers/pci/host/pci-hyperv.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> The patch is co-made by Jake and me.

I think this line should be put together with other comments.

Thanks.
Acked-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>