--- a/drivers/ps3/ps3stor_lib.c 2014-05-29 12:57:04.121254704 +0200 +++ b/drivers/ps3/ps3stor_lib.c 2014-05-29 12:57:27.407922725 +0200 @@ -342,8 +342,13 @@ return -1; } - wait_for_completion(&dev->done); - if (dev->lv1_status) { + res = wait_for_completion_timeout(&dev->done, msecs_to_jiffies(2000)); + if (res == 0) { + dev_err(&dev->sbd.core, + "%s:%u: send_device_command 0x%llx timed out\n", + __func__, __LINE__, cmd); + return -1; + } else if (dev->lv1_status) { dev_dbg(&dev->sbd.core, "%s:%u: command 0x%llx failed 0x%llx\n", __func__, __LINE__, cmd, dev->lv1_status); return dev->lv1_status;