linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / net / irda / irlmp.c
index c440913..c19e9ce 100644 (file)
@@ -24,6 +24,7 @@
  *
  ********************************************************************/
 
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/string.h>
@@ -43,8 +44,6 @@
 #include <net/irda/irlmp.h>
 #include <net/irda/irlmp_frame.h>
 
-#include <asm/unaligned.h>
-
 static __u8 irlmp_find_free_slsap(void);
 static int irlmp_slsap_inuse(__u8 slsap_sel);
 
@@ -78,9 +77,10 @@ int __init irlmp_init(void)
 {
        IRDA_DEBUG(1, "%s()\n", __FUNCTION__);
        /* Initialize the irlmp structure. */
-       irlmp = kzalloc( sizeof(struct irlmp_cb), GFP_KERNEL);
+       irlmp = kmalloc( sizeof(struct irlmp_cb), GFP_KERNEL);
        if (irlmp == NULL)
                return -ENOMEM;
+       memset(irlmp, 0, sizeof(struct irlmp_cb));
 
        irlmp->magic = LMP_MAGIC;
 
@@ -159,11 +159,12 @@ struct lsap_cb *irlmp_open_lsap(__u8 slsap_sel, notify_t *notify, __u8 pid)
                return NULL;
 
        /* Allocate new instance of a LSAP connection */
-       self = kzalloc(sizeof(struct lsap_cb), GFP_ATOMIC);
+       self = kmalloc(sizeof(struct lsap_cb), GFP_ATOMIC);
        if (self == NULL) {
                IRDA_ERROR("%s: can't allocate memory\n", __FUNCTION__);
                return NULL;
        }
+       memset(self, 0, sizeof(struct lsap_cb));
 
        self->magic = LMP_LSAP_MAGIC;
        self->slsap_sel = slsap_sel;
@@ -286,11 +287,12 @@ void irlmp_register_link(struct irlap_cb *irlap, __u32 saddr, notify_t *notify)
        /*
         *  Allocate new instance of a LSAP connection
         */
-       lap = kzalloc(sizeof(struct lap_cb), GFP_KERNEL);
+       lap = kmalloc(sizeof(struct lap_cb), GFP_KERNEL);
        if (lap == NULL) {
                IRDA_ERROR("%s: unable to kmalloc\n", __FUNCTION__);
                return;
        }
+       memset(lap, 0, sizeof(struct lap_cb));
 
        lap->irlap = irlap;
        lap->magic = LMP_LAP_MAGIC;
@@ -392,7 +394,7 @@ int irlmp_connect_request(struct lsap_cb *self, __u8 dlsap_sel,
 
        /* Any userdata? */
        if (tx_skb == NULL) {
-               tx_skb = alloc_skb(64, GFP_ATOMIC);
+               tx_skb = dev_alloc_skb(64);
                if (!tx_skb)
                        return -ENOMEM;
 
@@ -838,7 +840,6 @@ void irlmp_do_expiry(void)
 void irlmp_do_discovery(int nslots)
 {
        struct lap_cb *lap;
-       __u16 *data_hintsp;
 
        /* Make sure the value is sane */
        if ((nslots != 1) && (nslots != 6) && (nslots != 8) && (nslots != 16)){
@@ -848,8 +849,7 @@ void irlmp_do_discovery(int nslots)
        }
 
        /* Construct new discovery info to be used by IrLAP, */
-       data_hintsp = (__u16 *) irlmp->discovery_cmd.data.hints;
-       put_unaligned(irlmp->hints.word, data_hintsp);
+       u16ho(irlmp->discovery_cmd.data.hints) = irlmp->hints.word;
 
        /*
         *  Set character set for device name (we use ASCII), and