diff options
Diffstat (limited to 'drivers/media/IR/ir-keytable.c')
-rw-r--r-- | drivers/media/IR/ir-keytable.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/media/IR/ir-keytable.c b/drivers/media/IR/ir-keytable.c index 4c11a0167fc9..161d70b57965 100644 --- a/drivers/media/IR/ir-keytable.c +++ b/drivers/media/IR/ir-keytable.c | |||
@@ -185,18 +185,14 @@ static void ir_delete_key(struct ir_scancode_table *rc_tab, int elem) | |||
185 | int newsize = rc_tab->size - 1; | 185 | int newsize = rc_tab->size - 1; |
186 | int resize = ir_is_resize_needed(rc_tab, newsize); | 186 | int resize = ir_is_resize_needed(rc_tab, newsize); |
187 | struct ir_scancode *oldkeymap = rc_tab->scan; | 187 | struct ir_scancode *oldkeymap = rc_tab->scan; |
188 | struct ir_scancode *newkeymap; | 188 | struct ir_scancode *newkeymap = NULL; |
189 | 189 | ||
190 | if (resize) { | 190 | if (resize) |
191 | newkeymap = kzalloc(ir_roundup_tablesize(newsize) * | 191 | newkeymap = kzalloc(ir_roundup_tablesize(newsize) * |
192 | sizeof(*newkeymap), GFP_ATOMIC); | 192 | sizeof(*newkeymap), GFP_ATOMIC); |
193 | 193 | ||
194 | /* There's no memory for resize. Keep the old table */ | 194 | /* There's no memory for resize. Keep the old table */ |
195 | if (!newkeymap) | 195 | if (!resize || !newkeymap) { |
196 | resize = 0; | ||
197 | } | ||
198 | |||
199 | if (!resize) { | ||
200 | newkeymap = oldkeymap; | 196 | newkeymap = oldkeymap; |
201 | 197 | ||
202 | /* We'll modify the live table. Lock it */ | 198 | /* We'll modify the live table. Lock it */ |