• Sebastian Andrzej Siewior's avatar
    virtio scsi: Convert to hotplug state machine · 8904f5a5
    Sebastian Andrzej Siewior authored
    Install the callbacks via the state machine. It uses the multi instance
    infrastructure of the hotplug code to handle each interface.
    
    virtscsi_set_affinity() is removed from virtscsi_init() because
    virtscsi_cpu_notif_add() (the function which registers the instance) is invoked
    right after it and the cpuhp_state_add_instance() functions invokes the startup
    callback on all online CPUs.
    
    The same thing can not be applied virtscsi_cpu_notif_remove() because
    virtscsi_remove_vqs() invokes virtscsi_set_affinity() with affinity = false as
    argument but the old CPU_DEAD state invoked the function with affinity = true
    (which does not match the DEAD callback).
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
    Cc: linux-scsi@vger.kernel.org
    Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: virtualization@lists.linux-foundation.org
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/20160906170457.32393-11-bigeasy@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    8904f5a5
virtio_scsi.c 30.5 KB