master/module.c
changeset 648 0a6d38ec463f
parent 647 dc556a8c8fed
child 653 33aa0e7e5a68
equal deleted inserted replaced
647:dc556a8c8fed 648:0a6d38ec463f
   401         if (ec_mac_equal(master->main_mac, net_dev->dev_addr)) {
   401         if (ec_mac_equal(master->main_mac, net_dev->dev_addr)) {
   402             ec_mac_print(master->main_mac, str);
   402             ec_mac_print(master->main_mac, str);
   403             EC_INFO("Accepting device %s for master %u.\n",
   403             EC_INFO("Accepting device %s for master %u.\n",
   404                     str, master->index);
   404                     str, master->index);
   405 
   405 
   406             if (down_interruptible(&master->device_sem)) {
   406             down(&master->device_sem);
   407                 EC_ERR("Interrupted while waiting for device semaphore!\n");
       
   408                 return -1;
       
   409             }
       
   410 
       
   411             if (master->main_device.dev) {
   407             if (master->main_device.dev) {
   412                 EC_ERR("Master %u already has a device attached.\n",
   408                 EC_ERR("Master %u already has a device attached.\n",
   413                         master->index);
   409                         master->index);
   414                 up(&master->device_sem);
   410                 up(&master->device_sem);
   415                 return -1;
   411                 return -1;
   540         goto out_return;
   536         goto out_return;
   541     }
   537     }
   542     master->reserved = 1;
   538     master->reserved = 1;
   543     up(&master_sem);
   539     up(&master_sem);
   544 
   540 
   545     if (down_interruptible(&master->device_sem)) {
   541     down(&master->device_sem);
   546         EC_ERR("Interrupted while waiting for device!\n");
   542     
   547         goto out_release;
       
   548     }
       
   549 
       
   550     if (master->mode != EC_MASTER_MODE_IDLE) {
   543     if (master->mode != EC_MASTER_MODE_IDLE) {
   551         up(&master->device_sem);
   544         up(&master->device_sem);
   552         EC_ERR("Master %u still waiting for devices!\n", master_index);
   545         EC_ERR("Master %u still waiting for devices!\n", master_index);
   553         goto out_release;
   546         goto out_release;
   554     }
   547     }