[ 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 devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel