[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/6] pcie: add power indicator blink check
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH 3/6] pcie: add power indicator blink check |
Date: |
Mon, 15 Nov 2021 06:29:18 -0500 |
On Mon, Oct 11, 2021 at 02:05:01PM +0200, Gerd Hoffmann wrote:
> Refuse to push the attention button in case the guest is busy with some
> hotplug operation (as indicated by the power indicator blinking).
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Can't we do better and press the button later after
indicator stops blinking?
> ---
> hw/pci/pcie.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
> index 4a52c250615e..c455f92e16bf 100644
> --- a/hw/pci/pcie.c
> +++ b/hw/pci/pcie.c
> @@ -506,6 +506,7 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler
> *hotplug_dev,
> PCIDevice *hotplug_pdev = PCI_DEVICE(hotplug_dev);
> uint8_t *exp_cap = hotplug_pdev->config + hotplug_pdev->exp.exp_cap;
> uint32_t sltcap = pci_get_word(exp_cap + PCI_EXP_SLTCAP);
> + uint16_t sltctl = pci_get_word(exp_cap + PCI_EXP_SLTCTL);
>
> /* Check if hot-unplug is disabled on the slot */
> if ((sltcap & PCI_EXP_SLTCAP_HPC) == 0) {
> @@ -521,6 +522,12 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler
> *hotplug_dev,
> return;
> }
>
> + if ((sltctl & PCI_EXP_SLTCTL_PIC) == PCI_EXP_SLTCTL_PWR_IND_BLINK) {
> + error_setg(errp, "Hot-unplug failed: "
> + "guest is busy (power indicator blinking)");
> + return;
> + }
> +
> dev->pending_deleted_event = true;
>
> /* In case user cancel the operation of multi-function hot-add,
> --
> 2.31.1
- Re: [PATCH 3/6] pcie: add power indicator blink check,
Michael S. Tsirkin <=