> -----Original Message----- > From: Michael Kelley <mikelley@xxxxxxxxxxxxx> > > @@ -3136,7 +3166,7 @@ static int hv_pci_probe(struct hv_device *hdev, > > > > ret = hv_pci_allocate_bridge_windows(hbus); > > if (ret) > > - goto free_irq_domain; > > + goto exit_d0; > > > > ret = hv_send_resources_allocated(hdev); > > if (ret) > > The above is good. But there's another error case that isn't handled > correctly. If create_root_hv_pci_bus() fails, hv_send_resources_released() > should be called. > > Fixing these two error cases should probably go in a separate patch: One > patch for the retry problem in kdump, and a separate patch for these error > cases. [Wei Hu] hv_send_resources_released() is called in the added hv_pci_bus_exit(). If hv_send_resources_allocated() fails, is it correct to call hv_send_resources_released()? Allocation can fail in the middle. So I am not sure if calling hv_send_resources_released() won't cause any side effect. Agree it should to into a separate patch. Wei > > Michael > > > > @@ -3154,6 +3184,8 @@ static int hv_pci_probe(struct hv_device *hdev, > > > > free_windows: > > hv_pci_free_bridge_windows(hbus); > > +exit_d0: > > + (void) hv_pci_bus_exit(hdev, true); > > free_irq_domain: > > irq_domain_remove(hbus->irq_domain); > > free_fwnode: > > -- > > 2.20.1