master/ioctl.c
branchstable-1.5
changeset 2529 c7e1f2616a9d
parent 2522 ec403cf308eb
child 2693 8051d05cb935
equal deleted inserted replaced
2528:8bb574da5da2 2529:c7e1f2616a9d
  1142     if (down_interruptible(&master->master_sem)) {
  1142     if (down_interruptible(&master->master_sem)) {
  1143         ec_reg_request_clear(&request);
  1143         ec_reg_request_clear(&request);
  1144         return -EINTR;
  1144         return -EINTR;
  1145     }
  1145     }
  1146 
  1146 
  1147     if (!(slave = ec_master_find_slave(master, 0, io.slave_position))) {
  1147     if (io.emergency) {
  1148         up(&master->master_sem);
  1148         request.ring_position = io.slave_position;
  1149         ec_reg_request_clear(&request);
  1149         // schedule request.
  1150         EC_MASTER_ERR(master, "Slave %u does not exist!\n",
  1150         list_add_tail(&request.list, &master->emerg_reg_requests);
  1151                 io.slave_position);
  1151     }
  1152         return -EINVAL;
  1152     else {
  1153     }
  1153         if (!(slave = ec_master_find_slave(master, 0, io.slave_position))) {
  1154 
  1154             up(&master->master_sem);
  1155     // schedule request.
  1155             ec_reg_request_clear(&request);
  1156     list_add_tail(&request.list, &slave->reg_requests);
  1156             EC_MASTER_ERR(master, "Slave %u does not exist!\n",
       
  1157                     io.slave_position);
       
  1158             return -EINVAL;
       
  1159         }
       
  1160 
       
  1161         // schedule request.
       
  1162         list_add_tail(&request.list, &slave->reg_requests);
       
  1163     }
  1157 
  1164 
  1158     up(&master->master_sem);
  1165     up(&master->master_sem);
  1159 
  1166 
  1160     // wait for processing through FSM
  1167     // wait for processing through FSM
  1161     if (wait_event_interruptible(master->request_queue,
  1168     if (wait_event_interruptible(master->request_queue,