This stray down would cause a permanent sleep which doesn't seem correct. The other uses of this semaphore appear fairly mutex like it's even initialized with init_MUTEX() .. So here a patch for removing this one down(). Signed-off-by: Daniel Walker --- drivers/ps3/ps3-vuart.c | 1 - 1 file changed, 1 deletion(-) Index: linux-2.6.23/drivers/ps3/ps3-vuart.c =================================================================== --- linux-2.6.23.orig/drivers/ps3/ps3-vuart.c +++ linux-2.6.23/drivers/ps3/ps3-vuart.c @@ -1072,7 +1072,6 @@ static int ps3_vuart_probe(struct ps3_sy if (result) { dev_dbg(&dev->core, "%s:%d: drv->probe failed\n", __func__, __LINE__); - down(&vuart_bus_priv.probe_mutex); goto fail_probe; } --