staging: unisys: Lock visorchannels associated with devices
authorDavid Kershner <david.kershner@unisys.com>
Tue, 14 Jul 2015 18:43:29 +0000 (14:43 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2015 01:38:31 +0000 (18:38 -0700)
A visorchannel associated with a device should have its writing to
the channel protected by a lock.

Fixes: b32c4997c ('staging: unisys: Move channel creation up the stack')
Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/visorbus/visorchipset.c

index 4be9318..fb08f95 100644 (file)
@@ -1247,10 +1247,11 @@ my_device_create(struct controlvm_message *inmsg)
        POSTCODE_LINUX_4(DEVICE_CREATE_ENTRY_PC, dev_no, bus_no,
                         POSTCODE_SEVERITY_INFO);
 
-       visorchannel = visorchannel_create(cmd->create_device.channel_addr,
-                                          cmd->create_device.channel_bytes,
-                                          GFP_KERNEL,
-                                          cmd->create_device.data_type_uuid);
+       visorchannel =
+              visorchannel_create_with_lock(cmd->create_device.channel_addr,
+                                            cmd->create_device.channel_bytes,
+                                            GFP_KERNEL,
+                                            cmd->create_device.data_type_uuid);
 
        if (!visorchannel) {
                POSTCODE_LINUX_4(DEVICE_CREATE_FAILURE_PC, dev_no, bus_no,