mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] rtc subsystem, fix capability checks in kernel interface
@ 2006-05-17  0:11 Alessandro Zummo
  2006-05-18  6:57 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Alessandro Zummo @ 2006-05-17  0:11 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


 Remove CAP_SYS_XXX checks from the in kernel interface. Those
 functions are meant to be used in-kernel only.

Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
---
 drivers/rtc/interface.c |   22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

--- linux-rtc.orig/drivers/rtc/interface.c	2006-05-17 01:18:19.000000000 +0200
+++ linux-rtc/drivers/rtc/interface.c	2006-05-17 01:41:17.000000000 +0200
@@ -229,6 +229,9 @@ int rtc_irq_set_state(struct class_devic
 	unsigned long flags;
 	struct rtc_device *rtc = to_rtc_device(class_dev);
 
+	if (rtc->ops->irq_set_state == NULL)
+		return -ENXIO;
+
 	spin_lock_irqsave(&rtc->irq_task_lock, flags);
 	if (rtc->irq_task != task)
 		err = -ENXIO;
@@ -243,25 +246,12 @@ EXPORT_SYMBOL_GPL(rtc_irq_set_state);
 
 int rtc_irq_set_freq(struct class_device *class_dev, struct rtc_task *task, int freq)
 {
-	int err = 0, tmp = 0;
+	int err = 0;
 	unsigned long flags;
 	struct rtc_device *rtc = to_rtc_device(class_dev);
 
-	/* allowed range is 2-8192 */
-	if (freq < 2 || freq > 8192)
-		return -EINVAL;
-/*
-	FIXME: this does not belong here, will move where appropriate
-	at a later stage. It cannot hurt right now, trust me :)
-	if ((freq > rtc_max_user_freq) && (!capable(CAP_SYS_RESOURCE)))
-		return -EACCES;
-*/
-	/* check if freq is a power of 2 */
-	while (freq > (1 << tmp))
-		tmp++;
-
-	if (freq != (1 << tmp))
-		return -EINVAL;
+	if (rtc->ops->irq_set_freq == NULL)
+		return -ENXIO;
 
 	spin_lock_irqsave(&rtc->irq_task_lock, flags);
 	if (rtc->irq_task != task)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] rtc subsystem, fix capability checks in kernel interface
  2006-05-17  0:11 [PATCH] rtc subsystem, fix capability checks in kernel interface Alessandro Zummo
@ 2006-05-18  6:57 ` Andrew Morton
  2006-05-18  8:12   ` Alessandro Zummo
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2006-05-18  6:57 UTC (permalink / raw)
  To: Alessandro Zummo; +Cc: linux-kernel

Alessandro Zummo <alessandro.zummo@towertech.it> wrote:
>
> 
>  Remove CAP_SYS_XXX checks from the in kernel interface. Those
>  functions are meant to be used in-kernel only.
> 
> Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
> ---
>  drivers/rtc/interface.c |   22 ++++++----------------
>  1 file changed, 6 insertions(+), 16 deletions(-)
> 
> --- linux-rtc.orig/drivers/rtc/interface.c	2006-05-17 01:18:19.000000000 +0200
> +++ linux-rtc/drivers/rtc/interface.c	2006-05-17 01:41:17.000000000 +0200
> @@ -229,6 +229,9 @@ int rtc_irq_set_state(struct class_devic
>  	unsigned long flags;
>  	struct rtc_device *rtc = to_rtc_device(class_dev);
>  
> +	if (rtc->ops->irq_set_state == NULL)
> +		return -ENXIO;
> +
>  	spin_lock_irqsave(&rtc->irq_task_lock, flags);
>  	if (rtc->irq_task != task)
>  		err = -ENXIO;
> @@ -243,25 +246,12 @@ EXPORT_SYMBOL_GPL(rtc_irq_set_state);
>  
>  int rtc_irq_set_freq(struct class_device *class_dev, struct rtc_task *task, int freq)
>  {
> -	int err = 0, tmp = 0;
> +	int err = 0;
>  	unsigned long flags;
>  	struct rtc_device *rtc = to_rtc_device(class_dev);
>  
> -	/* allowed range is 2-8192 */
> -	if (freq < 2 || freq > 8192)
> -		return -EINVAL;
> -/*
> -	FIXME: this does not belong here, will move where appropriate
> -	at a later stage. It cannot hurt right now, trust me :)
> -	if ((freq > rtc_max_user_freq) && (!capable(CAP_SYS_RESOURCE)))
> -		return -EACCES;
> -*/
> -	/* check if freq is a power of 2 */
> -	while (freq > (1 << tmp))
> -		tmp++;
> -
> -	if (freq != (1 << tmp))
> -		return -EINVAL;
> +	if (rtc->ops->irq_set_freq == NULL)
> +		return -ENXIO;
>  
>  	spin_lock_irqsave(&rtc->irq_task_lock, flags);
>  	if (rtc->irq_task != task)

The changelog and the patch don't have much correlation.

Are you sure this was the right patch?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] rtc subsystem, fix capability checks in kernel interface
  2006-05-18  6:57 ` Andrew Morton
@ 2006-05-18  8:12   ` Alessandro Zummo
  0 siblings, 0 replies; 3+ messages in thread
From: Alessandro Zummo @ 2006-05-18  8:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Wed, 17 May 2006 23:57:40 -0700
Andrew Morton <akpm@osdl.org> wrote:

> Alessandro Zummo <alessandro.zummo@towertech.it> wrote:
> >
> > 
> >  Remove CAP_SYS_XXX checks from the in kernel interface. Those
> >  functions are meant to be used in-kernel only.

> The changelog and the patch don't have much correlation.
> 
> Are you sure this was the right patch?

 I should have said "remove commented capability checks and
 add some others" :(

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Turin, Italy

  http://www.towertech.it


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-05-18  8:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-17  0:11 [PATCH] rtc subsystem, fix capability checks in kernel interface Alessandro Zummo
2006-05-18  6:57 ` Andrew Morton
2006-05-18  8:12   ` Alessandro Zummo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®