(((GL_MAX_PACKET_LEN + 4) * GL_MAX_TRANSMIT_PACKETS) + 4)
 
 struct gl_packet {
-       u32             packet_length;
+       __le32          packet_length;
        char            packet_data [1];
 };
 
 struct gl_header {
-       u32                     packet_count;
+       __le32                  packet_count;
        struct gl_packet        packets;
 };
 
        struct gl_packet        *packet;
        struct sk_buff          *gl_skb;
        u32                     size;
+       u32                     count;
 
        header = (struct gl_header *) skb->data;
 
        // get the packet count of the received skb
-       le32_to_cpus(&header->packet_count);
-       if ((header->packet_count > GL_MAX_TRANSMIT_PACKETS)
-                       || (header->packet_count < 0)) {
-               dbg("genelink: invalid received packet count %d",
-                       header->packet_count);
+       count = le32_to_cpu(header->packet_count);
+       if (count > GL_MAX_TRANSMIT_PACKETS) {
+               dbg("genelink: invalid received packet count %u", count);
                return 0;
        }
 
        // decrement the length for the packet count size 4 bytes
        skb_pull(skb, 4);
 
-       while (header->packet_count > 1) {
+       while (count > 1) {
                // get the packet length
                size = le32_to_cpu(packet->packet_length);
 
                }
 
                // advance to the next packet
-               packet = (struct gl_packet *)
-                       &packet->packet_data [size];
-               header->packet_count--;
+               packet = (struct gl_packet *)&packet->packet_data[size];
+               count--;
 
                // shift the data pointer to the next gl_packet
                skb_pull(skb, size + 4);
        int     length = skb->len;
        int     headroom = skb_headroom(skb);
        int     tailroom = skb_tailroom(skb);
-       u32     *packet_count;
-       u32     *packet_len;
+       __le32  *packet_count;
+       __le32  *packet_len;
 
        // FIXME:  magic numbers, bleech
        padlen = ((skb->len + (4 + 4*1)) % 64) ? 0 : 1;
        }
 
        // attach the packet count to the header
-       packet_count = (u32 *) skb_push(skb, (4 + 4*1));
+       packet_count = (__le32 *) skb_push(skb, (4 + 4*1));
        packet_len = packet_count + 1;
 
        *packet_count = cpu_to_le32(1);
 
                unsigned int *data, int size)
 {
        struct usb_serial *serial = port->serial;
-       u32 *buf;
+       __le32 *buf;
        int result, i, length;
 
        /* Number of integers required to contain the array */
        length = (((size - 1) | 3) + 1)/4;
 
-       buf = kcalloc(length, sizeof(u32), GFP_KERNEL);
+       buf = kcalloc(length, sizeof(__le32), GFP_KERNEL);
        if (!buf) {
                dev_err(&port->dev, "%s - out of memory.\n", __FUNCTION__);
                return -ENOMEM;
                unsigned int *data, int size)
 {
        struct usb_serial *serial = port->serial;
-       u32 *buf;
+       __le32 *buf;
        int result, i, length;
 
        /* Number of integers required to contain the array */
        length = (((size - 1) | 3) + 1)/4;
 
-       buf = kmalloc(length * sizeof(u32), GFP_KERNEL);
+       buf = kmalloc(length * sizeof(__le32), GFP_KERNEL);
        if (!buf) {
                dev_err(&port->dev, "%s - out of memory.\n",
                                __FUNCTION__);