linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / net / irda / irttp.c
index be0d8fa..8aff254 100644 (file)
@@ -24,6 +24,7 @@
  *
  ********************************************************************/
 
+#include <linux/config.h>
 #include <linux/skbuff.h>
 #include <linux/init.h>
 #include <linux/seq_file.h>
@@ -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: