net: irda: init spinlock after memcpy
authorDeepak Saxena <dsaxena@mvista.com>
Mon, 27 Jul 2009 17:49:44 +0000 (10:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2009 17:49:44 +0000 (10:49 -0700)
irttp_dup() copies a tsap_cb struct, but does not initialize the
spinlock in the new structure, which confuses lockdep.

Signed-off-by: Deepak Saxena <dsaxena@mvista.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/irda/irttp.c

index ecf4eb2717cb0c4d75b77aa006c8d15235c7d867..9cb79f95bf63953c9bcdf2b379b4ccbb37089ff5 100644 (file)
@@ -1453,6 +1453,7 @@ struct tsap_cb *irttp_dup(struct tsap_cb *orig, void *instance)
        }
        /* Dup */
        memcpy(new, orig, sizeof(struct tsap_cb));
+       spin_lock_init(&new->lock);
 
        /* We don't need the old instance any more */
        spin_unlock_irqrestore(&irttp->tsaps->hb_spinlock, flags);