tunnels: fix netns vs proto registration ordering
[safe/jmp/linux-2.6] / drivers / net / ehea / ehea_main.c
index 41bd7ae..99e4f83 100644 (file)
@@ -189,8 +189,8 @@ static void ehea_update_firmware_handles(void)
                for (k = 0; k < EHEA_MAX_PORTS; k++) {
                        struct ehea_port *port = adapter->port[k];
 
-                       if (!port || (port->state != EHEA_PORT_UP)
-                               || (num_ports == 0))
+                       if (!port || (port->state != EHEA_PORT_UP) ||
+                           (num_ports == 0))
                                continue;
 
                        for (l = 0;
@@ -447,7 +447,9 @@ static int ehea_refill_rq_def(struct ehea_port_res *pr,
        max_index_mask = q_skba->len - 1;
        for (i = 0; i < fill_wqes; i++) {
                u64 tmp_addr;
-               struct sk_buff *skb = netdev_alloc_skb(dev, packet_size);
+               struct sk_buff *skb;
+
+               skb = netdev_alloc_skb_ip_align(dev, packet_size);
                if (!skb) {
                        q_skba->os_skbs = fill_wqes - i;
                        if (q_skba->os_skbs == q_skba->len - 2) {
@@ -457,7 +459,6 @@ static int ehea_refill_rq_def(struct ehea_port_res *pr,
                        }
                        break;
                }
-               skb_reserve(skb, NET_IP_ALIGN);
 
                skb_arr[index] = skb;
                tmp_addr = ehea_map_vaddr(skb->data);
@@ -500,7 +501,7 @@ static int ehea_refill_rq2(struct ehea_port_res *pr, int nr_of_wqes)
 {
        return ehea_refill_rq_def(pr, &pr->rq2_skba, 2,
                                  nr_of_wqes, EHEA_RWQE2_TYPE,
-                                 EHEA_RQ2_PKT_SIZE + NET_IP_ALIGN);
+                                 EHEA_RQ2_PKT_SIZE);
 }
 
 
@@ -508,7 +509,7 @@ static int ehea_refill_rq3(struct ehea_port_res *pr, int nr_of_wqes)
 {
        return ehea_refill_rq_def(pr, &pr->rq3_skba, 3,
                                  nr_of_wqes, EHEA_RWQE3_TYPE,
-                                 EHEA_MAX_PACKET_SIZE + NET_IP_ALIGN);
+                                 EHEA_MAX_PACKET_SIZE);
 }
 
 static inline int ehea_check_cqe(struct ehea_cqe *cqe, int *rq_num)
@@ -656,8 +657,8 @@ static int get_skb_hdr(struct sk_buff *skb, void **iphdr,
 static void ehea_proc_skb(struct ehea_port_res *pr, struct ehea_cqe *cqe,
                          struct sk_buff *skb)
 {
-       int vlan_extracted = (cqe->status & EHEA_CQE_VLAN_TAG_XTRACT)
-               && pr->port->vgrp;
+       int vlan_extracted = ((cqe->status & EHEA_CQE_VLAN_TAG_XTRACT) &&
+                             pr->port->vgrp);
 
        if (use_lro) {
                if (vlan_extracted)
@@ -1388,8 +1389,8 @@ out:
 
 int ehea_rem_smrs(struct ehea_port_res *pr)
 {
-       if ((ehea_rem_mr(&pr->send_mr))
-           || (ehea_rem_mr(&pr->recv_mr)))
+       if ((ehea_rem_mr(&pr->send_mr)) ||
+           (ehea_rem_mr(&pr->recv_mr)))
                return -EIO;
        else
                return 0;
@@ -1980,7 +1981,7 @@ static void ehea_set_multicast_list(struct net_device *dev)
        }
        ehea_allmulti(dev, 0);
 
-       if (dev->mc_count) {
+       if (!netdev_mc_empty(dev)) {
                ret = ehea_drop_multicast_list(dev);
                if (ret) {
                        /* Dropping the current multicast list failed.
@@ -1989,14 +1990,14 @@ static void ehea_set_multicast_list(struct net_device *dev)
                        ehea_allmulti(dev, 1);
                }
 
-               if (dev->mc_count > port->adapter->max_mc_mac) {
+               if (netdev_mc_count(dev) > port->adapter->max_mc_mac) {
                        ehea_info("Mcast registration limit reached (0x%llx). "
                                  "Use ALLMULTI!",
                                  port->adapter->max_mc_mac);
                        goto out;
                }
 
-               for (i = 0, k_mcl_entry = dev->mc_list; i < dev->mc_count; i++,
+               for (i = 0, k_mcl_entry = dev->mc_list; i < netdev_mc_count(dev); i++,
                             k_mcl_entry = k_mcl_entry->next)
                        ehea_add_multicast_entry(port, k_mcl_entry->dmi_addr);
 
@@ -2030,8 +2031,8 @@ static void ehea_xmit2(struct sk_buff *skb, struct net_device *dev,
                write_ip_start_end(swqe, skb);
 
                if (iph->protocol == IPPROTO_UDP) {
-                       if ((iph->frag_off & IP_MF)
-                           || (iph->frag_off & IP_OFFSET))
+                       if ((iph->frag_off & IP_MF) ||
+                           (iph->frag_off & IP_OFFSET))
                                /* IP fragment, so don't change cs */
                                swqe->tx_control &= ~EHEA_SWQE_TCP_CHECKSUM;
                        else
@@ -2076,8 +2077,8 @@ static void ehea_xmit3(struct sk_buff *skb, struct net_device *dev,
                        write_tcp_offset_end(swqe, skb);
 
                } else if (iph->protocol == IPPROTO_UDP) {
-                       if ((iph->frag_off & IP_MF)
-                           || (iph->frag_off & IP_OFFSET))
+                       if ((iph->frag_off & IP_MF) ||
+                           (iph->frag_off & IP_OFFSET))
                                /* IP fragment, so don't change cs */
                                swqe->tx_control |= EHEA_SWQE_CRC
                                                 | EHEA_SWQE_IMM_DATA_PRESENT;