On 3/11/25 11:16 AM, Rorie Reyes wrote:
> Creates an object indicating that an AP configuration change event
> has been received and stores it in a queue. These objects will later
> be used to store event information for an AP configuration change
> when the CHSC instruction is intercepted.
>
> Signed-off-by: Rorie Reyes <rreyes@linux.ibm.com>
Reviewed-by: Anthony Krowiak <krowiak@linux.ibm.com>
> ---
> hw/vfio/ap.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c
> index 3614657218..3fa986ca45 100644
> --- a/hw/vfio/ap.c
> +++ b/hw/vfio/ap.c
> @@ -41,6 +41,13 @@ struct VFIOAPDevice {
> EventNotifier cfg_notifier;
> };
>
> +typedef struct APConfigChgEvent {
> + QTAILQ_ENTRY(APConfigChgEvent) next;
> +} APConfigChgEvent;
> +
> +QTAILQ_HEAD(, APConfigChgEvent) cfg_chg_events =
> + QTAILQ_HEAD_INITIALIZER(cfg_chg_events);
> +
> OBJECT_DECLARE_SIMPLE_TYPE(VFIOAPDevice, VFIO_AP_DEVICE)
>
> static void vfio_ap_compute_needs_reset(VFIODevice *vdev)
> @@ -74,12 +81,17 @@ static void vfio_ap_req_notifier_handler(void *opaque)
>
> static void vfio_ap_cfg_chg_notifier_handler(void *opaque)
> {
> + APConfigChgEvent *cfg_chg_event;
> VFIOAPDevice *vapdev = opaque;
>
> if (!event_notifier_test_and_clear(&vapdev->cfg_notifier)) {
> return;
> }
>
> + cfg_chg_event = g_new0(APConfigChgEvent, 1);
> +
> + QTAILQ_INSERT_TAIL(&cfg_chg_events, cfg_chg_event, next);
> +
> css_generate_css_crws(0);
>
> }