Loading drivers/infiniband/hw/mlx4/main.c +9 −4 Original line number Original line Diff line number Diff line Loading @@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) { { static int mlx4_ib_version_printed; static int mlx4_ib_version_printed; struct mlx4_ib_dev *ibdev; struct mlx4_ib_dev *ibdev; int num_ports = 0; int i; int i; if (!mlx4_ib_version_printed) { if (!mlx4_ib_version_printed) { printk(KERN_INFO "%s", mlx4_ib_version); printk(KERN_INFO "%s", mlx4_ib_version); ++mlx4_ib_version_printed; ++mlx4_ib_version_printed; } } mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) num_ports++; /* No point in registering a device with no ports... */ if (num_ports == 0) return NULL; ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev); ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev); if (!ibdev) { if (!ibdev) { dev_err(&dev->pdev->dev, "Device struct alloc failed\n"); dev_err(&dev->pdev->dev, "Device struct alloc failed\n"); Loading @@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) ibdev->ib_dev.owner = THIS_MODULE; ibdev->ib_dev.owner = THIS_MODULE; ibdev->ib_dev.node_type = RDMA_NODE_IB_CA; ibdev->ib_dev.node_type = RDMA_NODE_IB_CA; ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey; ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey; ibdev->num_ports = 0; ibdev->num_ports = num_ports; mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) ibdev->num_ports++; ibdev->ib_dev.phys_port_cnt = ibdev->num_ports; ibdev->ib_dev.phys_port_cnt = ibdev->num_ports; ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors; ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors; ibdev->ib_dev.dma_device = &dev->pdev->dev; ibdev->ib_dev.dma_device = &dev->pdev->dev; Loading drivers/infiniband/hw/nes/nes_cm.c +9 −3 Original line number Original line Diff line number Diff line Loading @@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core, unsigned long flags; unsigned long flags; struct list_head *hte; struct list_head *hte; struct nes_cm_node *cm_node; struct nes_cm_node *cm_node; __be32 tmp_addr = cpu_to_be32(loc_addr); /* get a handle on the hte */ /* get a handle on the hte */ hte = &cm_core->connected_nodes; hte = &cm_core->connected_nodes; nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n", nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n", &loc_addr, loc_port, cm_core, hte); &tmp_addr, loc_port, cm_core, hte); /* walk list and find cm_node associated with this session ID */ /* walk list and find cm_node associated with this session ID */ spin_lock_irqsave(&cm_core->ht_lock, flags); spin_lock_irqsave(&cm_core->ht_lock, flags); Loading Loading @@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core, { { unsigned long flags; unsigned long flags; struct nes_cm_listener *listen_node; struct nes_cm_listener *listen_node; __be32 tmp_addr = cpu_to_be32(dst_addr); /* walk list and find cm_node associated with this session ID */ /* walk list and find cm_node associated with this session ID */ spin_lock_irqsave(&cm_core->listen_list_lock, flags); spin_lock_irqsave(&cm_core->listen_list_lock, flags); Loading @@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core, spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n", nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n", &dst_addr, dst_port); &tmp_addr, dst_port); /* no listener */ /* no listener */ return NULL; return NULL; Loading Loading @@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, struct tcphdr *tcph; struct tcphdr *tcph; struct nes_cm_info nfo; struct nes_cm_info nfo; int skb_handled = 1; int skb_handled = 1; __be32 tmp_daddr, tmp_saddr; if (!skb) if (!skb) return 0; return 0; Loading @@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, nfo.rem_addr = ntohl(iph->saddr); nfo.rem_addr = ntohl(iph->saddr); nfo.rem_port = ntohs(tcph->source); nfo.rem_port = ntohs(tcph->source); tmp_daddr = cpu_to_be32(iph->daddr); tmp_saddr = cpu_to_be32(iph->saddr); nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n", nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n", &iph->daddr, tcph->dest, &iph->saddr, tcph->source); &tmp_daddr, tcph->dest, &tmp_saddr, tcph->source); do { do { cm_node = find_node(cm_core, cm_node = find_node(cm_core, Loading drivers/infiniband/hw/nes/nes_utils.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti struct nes_adapter *nesadapter = nesdev->nesadapter; struct nes_adapter *nesadapter = nesdev->nesadapter; int arp_index; int arp_index; int err = 0; int err = 0; __be32 tmp_addr; for (arp_index = 0; (u32) arp_index < nesadapter->arp_table_size; arp_index++) { for (arp_index = 0; (u32) arp_index < nesadapter->arp_table_size; arp_index++) { if (nesadapter->arp_table[arp_index].ip_addr == ip_addr) if (nesadapter->arp_table[arp_index].ip_addr == ip_addr) Loading Loading @@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti /* DELETE or RESOLVE */ /* DELETE or RESOLVE */ if (arp_index == nesadapter->arp_table_size) { if (arp_index == nesadapter->arp_table_size) { tmp_addr = cpu_to_be32(ip_addr); nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n", nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n", &ip_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete"); &tmp_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete"); return -1; return -1; } } Loading drivers/infiniband/ulp/ipoib/ipoib_main.c +19 −19 Original line number Original line Diff line number Diff line Loading @@ -711,7 +711,6 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev) neigh = *to_ipoib_neigh(skb->dst->neighbour); neigh = *to_ipoib_neigh(skb->dst->neighbour); if (neigh->ah) if (unlikely((memcmp(&neigh->dgid.raw, if (unlikely((memcmp(&neigh->dgid.raw, skb->dst->neighbour->ha + 4, skb->dst->neighbour->ha + 4, sizeof(union ib_gid))) || sizeof(union ib_gid))) || Loading @@ -724,6 +723,7 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev) * so ipoib_put_ah() will never do more than * so ipoib_put_ah() will never do more than * decrement the ref count. * decrement the ref count. */ */ if (neigh->ah) ipoib_put_ah(neigh->ah); ipoib_put_ah(neigh->ah); list_del(&neigh->list); list_del(&neigh->list); ipoib_neigh_free(dev, neigh); ipoib_neigh_free(dev, neigh); Loading drivers/infiniband/ulp/ipoib/ipoib_multicast.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work) if (!priv->broadcast) { if (!priv->broadcast) { struct ipoib_mcast *broadcast; struct ipoib_mcast *broadcast; if (!test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)) return; broadcast = ipoib_mcast_alloc(dev, 1); broadcast = ipoib_mcast_alloc(dev, 1); if (!broadcast) { if (!broadcast) { ipoib_warn(priv, "failed to allocate broadcast group\n"); ipoib_warn(priv, "failed to allocate broadcast group\n"); Loading Loading
drivers/infiniband/hw/mlx4/main.c +9 −4 Original line number Original line Diff line number Diff line Loading @@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) { { static int mlx4_ib_version_printed; static int mlx4_ib_version_printed; struct mlx4_ib_dev *ibdev; struct mlx4_ib_dev *ibdev; int num_ports = 0; int i; int i; if (!mlx4_ib_version_printed) { if (!mlx4_ib_version_printed) { printk(KERN_INFO "%s", mlx4_ib_version); printk(KERN_INFO "%s", mlx4_ib_version); ++mlx4_ib_version_printed; ++mlx4_ib_version_printed; } } mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) num_ports++; /* No point in registering a device with no ports... */ if (num_ports == 0) return NULL; ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev); ibdev = (struct mlx4_ib_dev *) ib_alloc_device(sizeof *ibdev); if (!ibdev) { if (!ibdev) { dev_err(&dev->pdev->dev, "Device struct alloc failed\n"); dev_err(&dev->pdev->dev, "Device struct alloc failed\n"); Loading @@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) ibdev->ib_dev.owner = THIS_MODULE; ibdev->ib_dev.owner = THIS_MODULE; ibdev->ib_dev.node_type = RDMA_NODE_IB_CA; ibdev->ib_dev.node_type = RDMA_NODE_IB_CA; ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey; ibdev->ib_dev.local_dma_lkey = dev->caps.reserved_lkey; ibdev->num_ports = 0; ibdev->num_ports = num_ports; mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) ibdev->num_ports++; ibdev->ib_dev.phys_port_cnt = ibdev->num_ports; ibdev->ib_dev.phys_port_cnt = ibdev->num_ports; ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors; ibdev->ib_dev.num_comp_vectors = dev->caps.num_comp_vectors; ibdev->ib_dev.dma_device = &dev->pdev->dev; ibdev->ib_dev.dma_device = &dev->pdev->dev; Loading
drivers/infiniband/hw/nes/nes_cm.c +9 −3 Original line number Original line Diff line number Diff line Loading @@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core, unsigned long flags; unsigned long flags; struct list_head *hte; struct list_head *hte; struct nes_cm_node *cm_node; struct nes_cm_node *cm_node; __be32 tmp_addr = cpu_to_be32(loc_addr); /* get a handle on the hte */ /* get a handle on the hte */ hte = &cm_core->connected_nodes; hte = &cm_core->connected_nodes; nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n", nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n", &loc_addr, loc_port, cm_core, hte); &tmp_addr, loc_port, cm_core, hte); /* walk list and find cm_node associated with this session ID */ /* walk list and find cm_node associated with this session ID */ spin_lock_irqsave(&cm_core->ht_lock, flags); spin_lock_irqsave(&cm_core->ht_lock, flags); Loading Loading @@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core, { { unsigned long flags; unsigned long flags; struct nes_cm_listener *listen_node; struct nes_cm_listener *listen_node; __be32 tmp_addr = cpu_to_be32(dst_addr); /* walk list and find cm_node associated with this session ID */ /* walk list and find cm_node associated with this session ID */ spin_lock_irqsave(&cm_core->listen_list_lock, flags); spin_lock_irqsave(&cm_core->listen_list_lock, flags); Loading @@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core, spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n", nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n", &dst_addr, dst_port); &tmp_addr, dst_port); /* no listener */ /* no listener */ return NULL; return NULL; Loading Loading @@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, struct tcphdr *tcph; struct tcphdr *tcph; struct nes_cm_info nfo; struct nes_cm_info nfo; int skb_handled = 1; int skb_handled = 1; __be32 tmp_daddr, tmp_saddr; if (!skb) if (!skb) return 0; return 0; Loading @@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, nfo.rem_addr = ntohl(iph->saddr); nfo.rem_addr = ntohl(iph->saddr); nfo.rem_port = ntohs(tcph->source); nfo.rem_port = ntohs(tcph->source); tmp_daddr = cpu_to_be32(iph->daddr); tmp_saddr = cpu_to_be32(iph->saddr); nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n", nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n", &iph->daddr, tcph->dest, &iph->saddr, tcph->source); &tmp_daddr, tcph->dest, &tmp_saddr, tcph->source); do { do { cm_node = find_node(cm_core, cm_node = find_node(cm_core, Loading
drivers/infiniband/hw/nes/nes_utils.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti struct nes_adapter *nesadapter = nesdev->nesadapter; struct nes_adapter *nesadapter = nesdev->nesadapter; int arp_index; int arp_index; int err = 0; int err = 0; __be32 tmp_addr; for (arp_index = 0; (u32) arp_index < nesadapter->arp_table_size; arp_index++) { for (arp_index = 0; (u32) arp_index < nesadapter->arp_table_size; arp_index++) { if (nesadapter->arp_table[arp_index].ip_addr == ip_addr) if (nesadapter->arp_table[arp_index].ip_addr == ip_addr) Loading Loading @@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti /* DELETE or RESOLVE */ /* DELETE or RESOLVE */ if (arp_index == nesadapter->arp_table_size) { if (arp_index == nesadapter->arp_table_size) { tmp_addr = cpu_to_be32(ip_addr); nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n", nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n", &ip_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete"); &tmp_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete"); return -1; return -1; } } Loading
drivers/infiniband/ulp/ipoib/ipoib_main.c +19 −19 Original line number Original line Diff line number Diff line Loading @@ -711,7 +711,6 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev) neigh = *to_ipoib_neigh(skb->dst->neighbour); neigh = *to_ipoib_neigh(skb->dst->neighbour); if (neigh->ah) if (unlikely((memcmp(&neigh->dgid.raw, if (unlikely((memcmp(&neigh->dgid.raw, skb->dst->neighbour->ha + 4, skb->dst->neighbour->ha + 4, sizeof(union ib_gid))) || sizeof(union ib_gid))) || Loading @@ -724,6 +723,7 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev) * so ipoib_put_ah() will never do more than * so ipoib_put_ah() will never do more than * decrement the ref count. * decrement the ref count. */ */ if (neigh->ah) ipoib_put_ah(neigh->ah); ipoib_put_ah(neigh->ah); list_del(&neigh->list); list_del(&neigh->list); ipoib_neigh_free(dev, neigh); ipoib_neigh_free(dev, neigh); Loading
drivers/infiniband/ulp/ipoib/ipoib_multicast.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work) if (!priv->broadcast) { if (!priv->broadcast) { struct ipoib_mcast *broadcast; struct ipoib_mcast *broadcast; if (!test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)) return; broadcast = ipoib_mcast_alloc(dev, 1); broadcast = ipoib_mcast_alloc(dev, 1); if (!broadcast) { if (!broadcast) { ipoib_warn(priv, "failed to allocate broadcast group\n"); ipoib_warn(priv, "failed to allocate broadcast group\n"); Loading