posix-timers: Make clock_getres and clock_get mandatory
Richard said: "I would think that we can require k_clocks to provide the read function. This could be checked and enforced in register_posix_clock()." Add checks for clock_getres and clock_get in the register function. Suggested-by: Richard Cochran <richardcochran@gmail.com> Cc: John Stultz <johnstul@us.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
4228577763
commit
4359ac0ace
1 changed files with 12 additions and 3 deletions
|
@ -485,7 +485,18 @@ static struct pid *good_sigevent(sigevent_t * event)
|
||||||
void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock)
|
void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock)
|
||||||
{
|
{
|
||||||
if ((unsigned) clock_id >= MAX_CLOCKS) {
|
if ((unsigned) clock_id >= MAX_CLOCKS) {
|
||||||
printk("POSIX clock register failed for clock_id %d\n",
|
printk(KERN_WARNING "POSIX clock register failed for clock_id %d\n",
|
||||||
|
clock_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!new_clock->clock_get) {
|
||||||
|
printk(KERN_WARNING "POSIX clock id %d lacks clock_get()\n",
|
||||||
|
clock_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!new_clock->clock_getres) {
|
||||||
|
printk(KERN_WARNING "POSIX clock id %d lacks clock_getres()\n",
|
||||||
clock_id);
|
clock_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -961,8 +972,6 @@ SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,
|
||||||
|
|
||||||
if (!kc)
|
if (!kc)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (!kc->clock_get)
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
|
|
||||||
error = kc->clock_get(which_clock, &kernel_tp);
|
error = kc->clock_get(which_clock, &kernel_tp);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue