|
@@ -641,15 +641,13 @@ struct lsap_cb *irlmp_dup(struct lsap_cb *orig, void *instance)
|
|
}
|
|
}
|
|
|
|
|
|
/* Allocate a new instance */
|
|
/* Allocate a new instance */
|
|
- new = kmalloc(sizeof(struct lsap_cb), GFP_ATOMIC);
|
|
|
|
|
|
+ new = kmemdup(orig, sizeof(*new), GFP_ATOMIC);
|
|
if (!new) {
|
|
if (!new) {
|
|
IRDA_DEBUG(0, "%s(), unable to kmalloc\n", __FUNCTION__);
|
|
IRDA_DEBUG(0, "%s(), unable to kmalloc\n", __FUNCTION__);
|
|
spin_unlock_irqrestore(&irlmp->unconnected_lsaps->hb_spinlock,
|
|
spin_unlock_irqrestore(&irlmp->unconnected_lsaps->hb_spinlock,
|
|
flags);
|
|
flags);
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
- /* Dup */
|
|
|
|
- memcpy(new, orig, sizeof(struct lsap_cb));
|
|
|
|
/* new->lap = orig->lap; => done in the memcpy() */
|
|
/* new->lap = orig->lap; => done in the memcpy() */
|
|
/* new->slsap_sel = orig->slsap_sel; => done in the memcpy() */
|
|
/* new->slsap_sel = orig->slsap_sel; => done in the memcpy() */
|
|
new->conn_skb = NULL;
|
|
new->conn_skb = NULL;
|