X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Firda%2Firttp.c;fp=net%2Firda%2Firttp.c;h=8aff254cb41851e7e53e0f96f13bd83d1a6346b2;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=be0d8fa852a8b16e3cdcbe06fb936053e9d82a7c;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/net/irda/irttp.c b/net/irda/irttp.c index be0d8fa85..8aff254cb 100644 --- a/net/irda/irttp.c +++ b/net/irda/irttp.c @@ -24,6 +24,7 @@ * ********************************************************************/ +#include #include #include #include @@ -85,9 +86,10 @@ static pi_param_info_t param_info = { pi_major_call_table, 1, 0x0f, 4 }; */ int __init irttp_init(void) { - irttp = kzalloc(sizeof(struct irttp_cb), GFP_KERNEL); + irttp = kmalloc(sizeof(struct irttp_cb), GFP_KERNEL); if (irttp == NULL) return -ENOMEM; + memset(irttp, 0, sizeof(struct irttp_cb)); irttp->magic = TTP_MAGIC; @@ -305,8 +307,7 @@ static inline void irttp_fragment_skb(struct tsap_cb *self, IRDA_DEBUG(2, "%s(), fragmenting ...\n", __FUNCTION__); /* Make new segment */ - frag = alloc_skb(self->max_seg_size+self->max_header_size, - GFP_ATOMIC); + frag = dev_alloc_skb(self->max_seg_size+self->max_header_size); if (!frag) return; @@ -389,11 +390,12 @@ struct tsap_cb *irttp_open_tsap(__u8 stsap_sel, int credit, notify_t *notify) return NULL; } - self = kzalloc(sizeof(struct tsap_cb), GFP_ATOMIC); + self = kmalloc(sizeof(struct tsap_cb), GFP_ATOMIC); if (self == NULL) { IRDA_DEBUG(0, "%s(), unable to kmalloc!\n", __FUNCTION__); return NULL; } + memset(self, 0, sizeof(struct tsap_cb)); spin_lock_init(&self->lock); /* Initialise todo timer */ @@ -804,7 +806,7 @@ static inline void irttp_give_credit(struct tsap_cb *self) self->send_credit, self->avail_credit, self->remote_credit); /* Give credit to peer */ - tx_skb = alloc_skb(64, GFP_ATOMIC); + tx_skb = dev_alloc_skb(64); if (!tx_skb) return; @@ -1093,12 +1095,12 @@ int irttp_connect_request(struct tsap_cb *self, __u8 dtsap_sel, /* Any userdata supplied? */ if (userdata == NULL) { - tx_skb = alloc_skb(64, GFP_ATOMIC); + tx_skb = dev_alloc_skb(64); if (!tx_skb) return -ENOMEM; /* Reserve space for MUX_CONTROL and LAP header */ - skb_reserve(tx_skb, TTP_MAX_HEADER + TTP_SAR_HEADER); + skb_reserve(tx_skb, TTP_MAX_HEADER); } else { tx_skb = userdata; /* @@ -1341,12 +1343,12 @@ int irttp_connect_response(struct tsap_cb *self, __u32 max_sdu_size, /* Any userdata supplied? */ if (userdata == NULL) { - tx_skb = alloc_skb(64, GFP_ATOMIC); + tx_skb = dev_alloc_skb(64); if (!tx_skb) return -ENOMEM; /* Reserve space for MUX_CONTROL and LAP header */ - skb_reserve(tx_skb, TTP_MAX_HEADER + TTP_SAR_HEADER); + skb_reserve(tx_skb, TTP_MAX_HEADER); } else { tx_skb = userdata; /* @@ -1540,7 +1542,7 @@ int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *userdata, if (!userdata) { struct sk_buff *tx_skb; - tx_skb = alloc_skb(64, GFP_ATOMIC); + tx_skb = dev_alloc_skb(64); if (!tx_skb) return -ENOMEM; @@ -1875,7 +1877,7 @@ static int irttp_seq_open(struct inode *inode, struct file *file) int rc = -ENOMEM; struct irttp_iter_state *s; - s = kzalloc(sizeof(*s), GFP_KERNEL); + s = kmalloc(sizeof(*s), GFP_KERNEL); if (!s) goto out; @@ -1885,6 +1887,7 @@ static int irttp_seq_open(struct inode *inode, struct file *file) seq = file->private_data; seq->private = s; + memset(s, 0, sizeof(*s)); out: return rc; out_kfree: