mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-02-06 03:41:52 +08:00
Merge branch 'fix_eoe_usermode_lock' into 'stable-1.5'
ioctl.c: FIX: must take io_sem around ecrt_master_send/ecrt_master_receive See merge request etherlab.org/ethercat!36
This commit is contained in:
@@ -1899,7 +1899,9 @@ static ATTRIBUTES int ec_ioctl_send(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_send(master);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1919,7 +1921,9 @@ static ATTRIBUTES int ec_ioctl_receive(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_receive(master);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2018,7 +2022,9 @@ static ATTRIBUTES int ec_ioctl_sync_ref(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_sync_reference_clock(master);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2043,7 +2049,9 @@ static ATTRIBUTES int ec_ioctl_sync_ref_to(
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_sync_reference_clock_to(master, time);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2063,7 +2071,9 @@ static ATTRIBUTES int ec_ioctl_sync_slaves(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_sync_slave_clocks(master);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2114,7 +2124,9 @@ static ATTRIBUTES int ec_ioctl_sync_mon_queue(
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_master_sync_monitor_queue(master);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3177,7 +3189,9 @@ static ATTRIBUTES int ec_ioctl_domain_queue(
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
ecrt_domain_queue(domain);
|
||||
up( & master->io_sem );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3895,7 +3909,9 @@ static ATTRIBUTES int ec_ioctl_voe_exec(
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
down( & master->io_sem );
|
||||
data.state = ecrt_voe_handler_execute(voe);
|
||||
up( & master->io_sem );
|
||||
if (data.state == EC_REQUEST_SUCCESS && voe->dir == EC_DIR_INPUT)
|
||||
data.size = ecrt_voe_handler_data_size(voe);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user