drivers/char/keyboard.c:205: warning: use of conditional expressions as lvalues is deprecated


---

 drivers/char/keyboard.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletion(-)

diff -puN drivers/char/keyboard.c~gcc-35-keyboard-fixes drivers/char/keyboard.c
--- 25/drivers/char/keyboard.c~gcc-35-keyboard-fixes	2004-01-17 14:24:33.000000000 -0800
+++ 25-akpm/drivers/char/keyboard.c	2004-01-17 14:31:05.000000000 -0800
@@ -202,7 +202,23 @@ int setkeycode(unsigned int scancode, un
 		return -EINVAL;
 
 	oldkey = INPUT_KEYCODE(dev, scancode);
-	INPUT_KEYCODE(dev, scancode) = keycode;
+	switch (dev->keycodesize) {
+		case 1: {
+			u8 *k = (u8 *)dev->keycode;
+			k[scancode] = keycode;
+			break;
+		}
+		case 2: {
+			u16 *k = (u16 *)dev->keycode;
+			k[scancode] = keycode;
+			break;
+		}
+		case 4: {
+			u32 *k = (u32 *)dev->keycode;
+			k[scancode] = keycode;
+			break;
+		}
+	}
 
 	clear_bit(oldkey, dev->keybit);
 	set_bit(keycode, dev->keybit);

_