Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
rtc: Staticize non-exported __rtc_set_alarm()
rtc: Fix ioctl error path return
ptp: Fix some locking bugs in ptp_read()
ptp: Return -EFAULT on copy_to_user() errors

Changed files
+9 -7
drivers
+6 -5
drivers/ptp/ptp_chardev.c
··· 46 46 caps.n_ext_ts = ptp->info->n_ext_ts; 47 47 caps.n_per_out = ptp->info->n_per_out; 48 48 caps.pps = ptp->info->pps; 49 - err = copy_to_user((void __user *)arg, &caps, sizeof(caps)); 49 + if (copy_to_user((void __user *)arg, &caps, sizeof(caps))) 50 + err = -EFAULT; 50 51 break; 51 52 52 53 case PTP_EXTTS_REQUEST: ··· 130 129 return -ERESTARTSYS; 131 130 } 132 131 133 - if (ptp->defunct) 132 + if (ptp->defunct) { 133 + mutex_unlock(&ptp->tsevq_mux); 134 134 return -ENODEV; 135 + } 135 136 136 137 spin_lock_irqsave(&queue->lock, flags); 137 138 ··· 153 150 154 151 mutex_unlock(&ptp->tsevq_mux); 155 152 156 - if (copy_to_user(buf, event, cnt)) { 157 - mutex_unlock(&ptp->tsevq_mux); 153 + if (copy_to_user(buf, event, cnt)) 158 154 return -EFAULT; 159 - } 160 155 161 156 return cnt; 162 157 }
+1 -1
drivers/rtc/interface.c
··· 318 318 } 319 319 EXPORT_SYMBOL_GPL(rtc_read_alarm); 320 320 321 - int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) 321 + static int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm) 322 322 { 323 323 struct rtc_time tm; 324 324 long now, scheduled;
+2 -1
drivers/rtc/rtc-dev.c
··· 421 421 err = ops->ioctl(rtc->dev.parent, cmd, arg); 422 422 if (err == -ENOIOCTLCMD) 423 423 err = -ENOTTY; 424 - } 424 + } else 425 + err = -ENOTTY; 425 426 break; 426 427 } 427 428