From 594c3bb71500d8396a187d8dc810048fdf9ded1c Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Mon, 12 Mar 2007 08:47:56 +0000 Subject: [PATCH] Made waiting for device semaphore uninterruptible. --- master/master.c | 7 +------ master/module.c | 13 +++---------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/master/master.c b/master/master.c index 89adc7a4..dfe1a544 100644 --- a/master/master.c +++ b/master/master.c @@ -959,18 +959,13 @@ ssize_t ec_master_info(ec_master_t *master, /**< EtherCAT master */ off += sprintf(buffer + off, "\nDevices:\n"); - if (down_interruptible(&master->device_sem)) { - EC_ERR("Interrupted while waiting for device!\n"); - return -EINVAL; - } - + down(&master->device_sem); off += sprintf(buffer + off, " Main: "); off += ec_master_device_info(&master->main_device, master->main_mac, buffer + off); off += sprintf(buffer + off, " Backup: "); off += ec_master_device_info(&master->backup_device, master->backup_mac, buffer + off); - up(&master->device_sem); off += sprintf(buffer + off, "\nTiming (min/avg/max) [us]:\n"); diff --git a/master/module.c b/master/module.c index 164fe45b..cf7d6890 100644 --- a/master/module.c +++ b/master/module.c @@ -403,11 +403,7 @@ int ecdev_offer(struct net_device *net_dev, /**< net_device to offer */ EC_INFO("Accepting device %s for master %u.\n", str, master->index); - if (down_interruptible(&master->device_sem)) { - EC_ERR("Interrupted while waiting for device semaphore!\n"); - return -1; - } - + down(&master->device_sem); if (master->main_device.dev) { EC_ERR("Master %u already has a device attached.\n", master->index); @@ -542,11 +538,8 @@ ec_master_t *ecrt_request_master(unsigned int master_index master->reserved = 1; up(&master_sem); - if (down_interruptible(&master->device_sem)) { - EC_ERR("Interrupted while waiting for device!\n"); - goto out_release; - } - + down(&master->device_sem); + if (master->mode != EC_MASTER_MODE_IDLE) { up(&master->device_sem); EC_ERR("Master %u still waiting for devices!\n", master_index);