On 08/12/18 09:11, Marcel Apfelbaum wrote: > On 08/07/2018 06:59 PM, Laszlo Ersek wrote:
>> First, under the label "shpc_error", we call pci_bridge_exitfn(), which >> seems to clean up everything (checking individually for each thing to >> clean up). Given this, I wonder why we introduced the "slotid_error" and >> "msi_error" labels at all. Cascading teardown on the error path, and >> invkoing a function that checks everything individually and then tears >> it all down, are usually mutually exclusive. > > I think is possible you miss-interpreted pci_bridge_dev_exitfn > with pci_bridge_exitfn. The first one is the "catch all", the second > one that is used in the error path is for the bridge specific cleanup. Ah, you are correct, I totally mistook the call to pci_bridge_exitfn() for pci_bridge_dev_exitfn(). I do see the difference now, so it's clear that the error path in pci_bridge_dev_realize() is of the "cascading" kind, and not of the "call a catch-all function" kind. That gives this patch a clear pattern to follow. Thank you! Laszlo