Am Dienstag, 22. Dezember 2009 11:04:52 schrieb Andy Green: > + mutex_lock(&arbitration_wait_mutex); > + > + sprintf(buf, "REQUEST_ARBITRATION=%s", > + mod_data.file[curlun->lun_index]); > + envp[0] = buf; > + envp[1] = NULL; > + kobject_uevent_env(&curlun->dev.kobj, KOBJ_CHANGE, envp); > + sysfs_notify(&curlun->dev.kobj, NULL, "arbitration"); > + > + INIT_COMPLETION(curlun->arbitration_completion); > + ret = wait_for_completion_interruptible_timeout( > + &curlun->arbitration_completion, HZ * 5); You race. The completion must be ready before you trigger an event. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html