diff options
Diffstat (limited to 'net/irda/irlmp.c')
-rw-r--r-- | net/irda/irlmp.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c index fede83763095..7e5d12ab3b90 100644 --- a/net/irda/irlmp.c +++ b/net/irda/irlmp.c | |||
@@ -641,15 +641,13 @@ struct lsap_cb *irlmp_dup(struct lsap_cb *orig, void *instance) | |||
641 | } | 641 | } |
642 | 642 | ||
643 | /* Allocate a new instance */ | 643 | /* Allocate a new instance */ |
644 | new = kmalloc(sizeof(struct lsap_cb), GFP_ATOMIC); | 644 | new = kmemdup(orig, sizeof(*new), GFP_ATOMIC); |
645 | if (!new) { | 645 | if (!new) { |
646 | IRDA_DEBUG(0, "%s(), unable to kmalloc\n", __FUNCTION__); | 646 | IRDA_DEBUG(0, "%s(), unable to kmalloc\n", __FUNCTION__); |
647 | spin_unlock_irqrestore(&irlmp->unconnected_lsaps->hb_spinlock, | 647 | spin_unlock_irqrestore(&irlmp->unconnected_lsaps->hb_spinlock, |
648 | flags); | 648 | flags); |
649 | return NULL; | 649 | return NULL; |
650 | } | 650 | } |
651 | /* Dup */ | ||
652 | memcpy(new, orig, sizeof(struct lsap_cb)); | ||
653 | /* new->lap = orig->lap; => done in the memcpy() */ | 651 | /* new->lap = orig->lap; => done in the memcpy() */ |
654 | /* new->slsap_sel = orig->slsap_sel; => done in the memcpy() */ | 652 | /* new->slsap_sel = orig->slsap_sel; => done in the memcpy() */ |
655 | new->conn_skb = NULL; | 653 | new->conn_skb = NULL; |