On 02/05/2018 09:46, Dong Jia Shi wrote:
* Cornelia Huck <cohuck@xxxxxxxxxx> [2018-04-30 17:33:05 +0200]:
On Thu, 26 Apr 2018 15:48:06 +0800
Dong Jia Shi <bjsdjshi@xxxxxxxxxxxxxxxxxx> wrote:
* Dong Jia Shi <bjsdjshi@xxxxxxxxxxxxxxxxxx> [2018-04-26 15:30:54 +0800]:
[...]
@@ -179,7 +160,7 @@ static int fsm_irq(struct vfio_ccw_private *private,
if (private->io_trigger)
eventfd_signal(private->io_trigger, 1);
- return private->state;
+ return VFIO_CCW_STATE_IDLE;
This is not right. For example, if we are in STANDBY state (subch driver
is probed, but mdev device is not created), we can not jump to IDLE
state.
I see my problem, for STANDBY state, we should introduce another event
callback for VFIO_CCW_EVENT_INTERRUPT. It doesn't make sense to call
fsm_irq() which tries to signal userspace with interrupt notification
when mdev is not created yet... So we'd need a separated fix for this
issue too.
But how do we even get into that situation when we don't have an mdev
yet?
We cann't... So let's assign fsm_nop() as the interrupt callback for
STANDBY state?
:) Isn't it exactly what my patch series handle?
--
Pierre Morel
Linux/KVM/QEMU in Böblingen - Germany