Messages in this thread | | | Date | Thu, 22 Apr 2004 09:31:13 +0200 | From | Vojtech Pavlik <> | Subject | Re: [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/
| |