pci/shpc: refactor shpc_device_plug_common()

Rename it to shpc_device_get_slot(), to mention what it does rather
than how it is used. It also helps to reuse it in further commit.

Also, add a return value and get rid of local_err.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Anton Kuchin <antonkuchin@yandex-team.ru>
Message-Id: <20230216180356.156832-7-vsementsov@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Vladimir Sementsov-Ogievskiy 2023-02-16 21:03:44 +03:00 committed by Michael S. Tsirkin
parent 0adc05f480
commit 05d8a107db

View File

@ -496,8 +496,9 @@ static const MemoryRegionOps shpc_mmio_ops = {
.max_access_size = 4, .max_access_size = 4,
}, },
}; };
static void shpc_device_plug_common(PCIDevice *affected_dev, int *slot,
SHPCDevice *shpc, Error **errp) static bool shpc_device_get_slot(PCIDevice *affected_dev, int *slot,
SHPCDevice *shpc, Error **errp)
{ {
int pci_slot = PCI_SLOT(affected_dev->devfn); int pci_slot = PCI_SLOT(affected_dev->devfn);
*slot = SHPC_PCI_TO_IDX(pci_slot); *slot = SHPC_PCI_TO_IDX(pci_slot);
@ -507,21 +508,20 @@ static void shpc_device_plug_common(PCIDevice *affected_dev, int *slot,
"controller. Valid slots are between %d and %d.", "controller. Valid slots are between %d and %d.",
pci_slot, SHPC_IDX_TO_PCI(0), pci_slot, SHPC_IDX_TO_PCI(0),
SHPC_IDX_TO_PCI(shpc->nslots) - 1); SHPC_IDX_TO_PCI(shpc->nslots) - 1);
return; return false;
} }
return true;
} }
void shpc_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, void shpc_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
Error **errp) Error **errp)
{ {
Error *local_err = NULL;
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev); PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
SHPCDevice *shpc = pci_hotplug_dev->shpc; SHPCDevice *shpc = pci_hotplug_dev->shpc;
int slot; int slot;
shpc_device_plug_common(PCI_DEVICE(dev), &slot, shpc, &local_err); if (!shpc_device_get_slot(PCI_DEVICE(dev), &slot, shpc, errp)) {
if (local_err) {
error_propagate(errp, local_err);
return; return;
} }
@ -563,16 +563,13 @@ void shpc_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
void shpc_device_unplug_request_cb(HotplugHandler *hotplug_dev, void shpc_device_unplug_request_cb(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp) DeviceState *dev, Error **errp)
{ {
Error *local_err = NULL;
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev); PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
SHPCDevice *shpc = pci_hotplug_dev->shpc; SHPCDevice *shpc = pci_hotplug_dev->shpc;
uint8_t state; uint8_t state;
uint8_t led; uint8_t led;
int slot; int slot;
shpc_device_plug_common(PCI_DEVICE(dev), &slot, shpc, &local_err); if (!shpc_device_get_slot(PCI_DEVICE(dev), &slot, shpc, errp)) {
if (local_err) {
error_propagate(errp, local_err);
return; return;
} }