Hello file (standard input) matches, The patch ad4e09b16ad3: "[PATCH] OMAP: Add keypad driver", leads to the following static checker warning: drivers/input/keyboard/omap-keypad.c:158 omap_kp_tasklet() warn: 'keycodes[]' is never negative. drivers/input/keyboard/omap-keypad.c 129 static void omap_kp_tasklet(unsigned long data) 130 { 131 struct omap_kp *omap_kp_data = (struct omap_kp *) data; 132 unsigned short *keycodes = omap_kp_data->input->keycode; ^^^^^^^^^^^^^^^^^^^^^^^^ 133 unsigned int row_shift = get_count_order(omap_kp_data->cols); 134 unsigned char new_state[8], changed, key_down = 0; 135 int col, row; 136 int spurious = 0; 137 138 /* check for any changes */ 139 omap_kp_scan_keypad(omap_kp_data, new_state); 140 141 /* check for changes and print those */ 142 for (col = 0; col < omap_kp_data->cols; col++) { 143 changed = new_state[col] ^ keypad_state[col]; 144 key_down |= new_state[col]; 145 if (changed == 0) 146 continue; 147 148 for (row = 0; row < omap_kp_data->rows; row++) { 149 int key; ^^^^^^^ 150 if (!(changed & (1 << row))) 151 continue; 152 #ifdef NEW_BOARD_LEARNING_MODE 153 printk(KERN_INFO "omap-keypad: key %d-%d %s\n", col, 154 row, (new_state[col] & (1 << row)) ? 155 "pressed" : "released"); 156 #else 157 key = keycodes[MATRIX_SCAN_CODE(row, col, row_shift)]; 158 if (key < 0) { ^^^^^^^ Never true. Not sure what was intended. 159 printk(KERN_WARNING 160 "omap-keypad: Spurious key event %d-%d\n", 161 col, row); 162 /* We scan again after a couple of seconds */ 163 spurious = 1; 164 continue; 165 } 166 167 if (!(kp_cur_group == (key & GROUP_MASK) || 168 kp_cur_group == -1)) 169 continue; 170 regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html