[ checkpatch.pl told someone to introduce a bug and they did... ]
Hello Erik Arfvidson,
The patch 05f1b17ec7aa: "staging: unisys: fix else statement in
visornic_main.c" from Feb 8, 2016, leads to the following static
checker warning:
drivers/staging/unisys/visornic/visornic_main.c:381
visornic_serverdown()
error: double unlock 'spin_lock:&devdata->priv_lock'
drivers/staging/unisys/visornic/visornic_main.c
356 static int
357 visornic_serverdown(struct visornic_devdata *devdata,
358 visorbus_state_complete_func complete_func)
359 {
360 unsigned long flags;
361
362 spin_lock_irqsave(&devdata->priv_lock, flags);
363 if (!devdata->server_down && !devdata->server_change_state) {
364 if (devdata->going_away) {
365 spin_unlock_irqrestore(&devdata->priv_lock,
flags);
366 dev_dbg(&devdata->dev->device,
367 "%s aborting because device removal
pending\n",
368 __func__);
369 return -ENODEV;
370 }
371 devdata->server_change_state = true;
372 devdata->server_down_complete_func = complete_func;
373 spin_unlock_irqrestore(&devdata->priv_lock, flags);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
374 visornic_serverdown_complete(devdata);
375 } else if (devdata->server_change_state) {
376 dev_dbg(&devdata->dev->device, "%s changing state\n",
377 __func__);
378 spin_unlock_irqrestore(&devdata->priv_lock, flags);
379 return -EINVAL;
380 }
381 spin_unlock_irqrestore(&devdata->priv_lock, flags);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
382 return 0;
383 }
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel