lkml.org 
[lkml]   [2004]   [Apr]   [22]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateThu, 22 Apr 2004 09:31:13 +0200
FromVojtech Pavlik <>
SubjectRe: [PATCH 8/15] New set of input patches: atkbd - use bitfields
On Wed, Apr 21, 2004 at 12:57:51AM -0500, Dmitry Torokhov wrote:
> 
> ===================================================================
> 
> 
> ChangeSet@1.1909, 2004-04-20 22:29:12-05:00, dtor_core@ameritech.net
>   Input: remove unneeded fields in atkbd structure, convert to bitfields

I think this is incorrect. We cannot set the bits in bitfields
atomically, which we need in some cases. We probably need to add
volatiles to some of them, too.


> diff -Nru a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> --- a/drivers/input/keyboard/atkbd.c	Tue Apr 20 23:08:14 2004
> +++ b/drivers/input/keyboard/atkbd.c	Tue Apr 20 23:08:14 2004
> @@ -26,7 +26,6 @@
>  #include <linux/input.h>
>  #include <linux/serio.h>
>  #include <linux/workqueue.h>
> -#include <linux/timer.h>
> 
>  MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>");
>  MODULE_DESCRIPTION("AT and PS/2 keyboard driver");
> @@ -173,22 +172,23 @@
>  	unsigned char keycode[512];
>  	struct input_dev dev;
>  	struct serio *serio;
> -	struct timer_list timer;
> +
>  	char name[64];
>  	char phys[32];
> +	unsigned short id;
> +	unsigned char set;
> +	unsigned int translated:1;
> +	unsigned int extra:1;
> +	unsigned int write:1;
> +
>  	unsigned char cmdbuf[4];
>  	unsigned char cmdcnt;
> -	unsigned char set;
> -	unsigned char extra;
> -	unsigned char release;
> -	int lastkey;
>  	volatile signed char ack;
>  	unsigned char emul;
> -	unsigned short id;
> -	unsigned char write;
> -	unsigned char translated;
> -	unsigned char resend;
> -	unsigned char bat_xl;
> +	unsigned int resend:1;
> +	unsigned int release:1;
> +	unsigned int bat_xl:1;
> +
>  	unsigned int last;
>  	unsigned long time;
>  };
> 

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:02    [from the cache]
©2003-2008