From 8b9114dca5a7b4b3ae892e6964def978d21d08b9 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Sun, 30 Oct 2005 15:03:37 -0800 Subject: [PATCH] --- yaml --- r: 11907 b: refs/heads/master c: 8e8505be9c0ba608cbd634faa8fba361f17d2512 h: refs/heads/master i: 11905: 5156c541dee74f8e17f1cd6d812e0d047c4c0d57 11903: 06145c45d7c79b441e123bb795e8fb33c477f3f9 v: v3 --- [refs] | 2 +- trunk/drivers/char/hpet.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 0d2ed2e565c3..2ad545353347 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7811fb8f400a3dbfa027d86bb583a31c66fddfc3 +refs/heads/master: 8e8505be9c0ba608cbd634faa8fba361f17d2512 diff --git a/trunk/drivers/char/hpet.c b/trunk/drivers/char/hpet.c index 8e59639fb03c..c85d11de5feb 100644 --- a/trunk/drivers/char/hpet.c +++ b/trunk/drivers/char/hpet.c @@ -500,8 +500,12 @@ hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, int kernel) readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK; info.hi_hpet = devp->hd_hpets->hp_which; info.hi_timer = devp - devp->hd_hpets->hp_dev; - if (copy_to_user((void __user *)arg, &info, sizeof(info))) - err = -EFAULT; + if (kernel) + memcpy((void *)arg, &info, sizeof(info)); + else + if (copy_to_user((void __user *)arg, &info, + sizeof(info))) + err = -EFAULT; break; } case HPET_EPI: