From: Dan Carpenter <erro...@gmail.com>

It's possible that we wanted to resize to a smaller size but we didn't
have enough memory to create the new table.  We need to test for that here
so we don't try to lock twice and dead lock.  Also we free the "oldkeymap"
on that path and that would be bad.

Signed-off-by: Dan Carpenter <erro...@gmail.com>
Cc: Mauro Carvalho Chehab <mche...@infradead.org>
Cc: Dmitry Torokhov <d...@mail.ru>
Signed-off-by: Andrew Morton <a...@linux-foundation.org>
---

 drivers/media/IR/ir-keytable.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/media/IR/ir-keytable.c~ir-keytable-avoid-double-lock 
drivers/media/IR/ir-keytable.c
--- a/drivers/media/IR/ir-keytable.c~ir-keytable-avoid-double-lock
+++ a/drivers/media/IR/ir-keytable.c
@@ -217,7 +217,7 @@ static void ir_delete_key(struct ir_scan
                memcpy(&newkeymap[elem], &oldkeymap[elem + 1],
                       (newsize - elem) * sizeof(*newkeymap));
 
-       if (resize) {
+       if (resize && newkeymap != oldkeymap) {
                /*
                 * As the copy happened to a temporary table, only here
                 * it needs to lock while replacing the table pointers
_
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to