timer fixes
Subsystems (3)
Linus,
Please pull the latest timers-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git timers-urgent-for-linus
Thanks,
Ingo
------------------>
Dan Carpenter (2):
ptp: Return -EFAULT on copy_to_user() errors
ptp: Fix some locking bugs in ptp_read()
John Stultz (1):
rtc: Fix ioctl error path return
Mark Brown (1):
rtc: Staticize non-exported __rtc_set_alarm()
drivers/ptp/ptp_chardev.c | 11 ++++++----- drivers/rtc/interface.c | 2 +- drivers/rtc/rtc-dev.c | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-)
drivers/ptp/ptp_chardev.c +6 -5
@@ -46,7 +46,8 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg) caps.n_ext_ts = ptp->info->n_ext_ts; caps.n_per_out = ptp->info->n_per_out; caps.pps = ptp->info->pps; - err =copy_to_user ((void __user *)arg, &caps,sizeof (caps)); +if (copy_to_user ((void __user *)arg, &caps,sizeof (caps))) + err = -EFAULT ;break ;case PTP_EXTTS_REQUEST :
@@ -129,8 +130,10 @@ ssize_t ptp_read(struct posix_clock *pc,return -ERESTARTSYS ; } -if (ptp->defunct) +if (ptp->defunct) { +mutex_unlock (&ptp->tsevq_mux);return -ENODEV ; + }spin_lock_irqsave (&queue->lock, flags);
@@ -150,10 +153,8 @@ ssize_t ptp_read(struct posix_clock *pc,mutex_unlock (&ptp->tsevq_mux); -if (copy_to_user (buf, event, cnt)) { -mutex_unlock (&ptp->tsevq_mux); +if (copy_to_user (buf, event, cnt))return -EFAULT ; - }return cnt; }
drivers/rtc/interface.c +1 -1
@@ -318,7 +318,7 @@ int rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) }EXPORT_SYMBOL_GPL (rtc_read_alarm); -int __rtc_set_alarm (struct rtc_device *rtc,struct rtc_wkalrm *alarm) +static int __rtc_set_alarm (struct rtc_device *rtc,struct rtc_wkalrm *alarm) {struct rtc_time tm;long now, scheduled;
drivers/rtc/rtc-dev.c +2 -1
@@ -421,7 +421,8 @@ static long rtc_dev_ioctl(struct file *file, err = ops->ioctl (rtc->dev.parent, cmd, arg);if (err == -ENOIOCTLCMD ) err = -ENOTTY ; - } + }else + err = -ENOTTY ;break ; }