equal
deleted
inserted
replaced
471 EC_ERR("Invalid master index %u.\n", master_index); |
471 EC_ERR("Invalid master index %u.\n", master_index); |
472 goto out_return; |
472 goto out_return; |
473 } |
473 } |
474 master = &masters[master_index]; |
474 master = &masters[master_index]; |
475 |
475 |
476 down(&master_sem); |
476 if (down_interruptible(&master_sem)) |
|
477 goto out_return; |
|
478 |
477 if (master->reserved) { |
479 if (master->reserved) { |
478 up(&master_sem); |
480 up(&master_sem); |
479 EC_ERR("Master %u is already in use!\n", master_index); |
481 EC_ERR("Master %u is already in use!\n", master_index); |
480 goto out_return; |
482 goto out_return; |
481 } |
483 } |
482 master->reserved = 1; |
484 master->reserved = 1; |
483 up(&master_sem); |
485 up(&master_sem); |
484 |
486 |
485 down(&master->device_sem); |
487 if (down_interruptible(&master->device_sem)) |
|
488 goto out_release; |
486 |
489 |
487 if (master->phase != EC_IDLE) { |
490 if (master->phase != EC_IDLE) { |
488 up(&master->device_sem); |
491 up(&master->device_sem); |
489 EC_ERR("Master %u still waiting for devices!\n", master_index); |
492 EC_ERR("Master %u still waiting for devices!\n", master_index); |
490 goto out_release; |
493 goto out_release; |