提交 bd381934 编写于 作者: L Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  RDMA/addr: Fix resolution of local IPv6 addresses
  RDMA/cxgb3: Handle NULL inetdev pointer in iwch_query_port()
  mlx4_core: Add 40GigE device ID
  RDMA/iwcm: Don't call provider reject func with irqs disabled
  IB: Fix typo in udev rule documentation
...@@ -128,8 +128,8 @@ Setting IsSM Capability Bit ...@@ -128,8 +128,8 @@ Setting IsSM Capability Bit
To create the appropriate character device files automatically with To create the appropriate character device files automatically with
udev, a rule like udev, a rule like
KERNEL="umad*", NAME="infiniband/%k" KERNEL=="umad*", NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k" KERNEL=="issm*", NAME="infiniband/%k"
can be used. This will create device nodes named can be used. This will create device nodes named
......
...@@ -58,7 +58,7 @@ Memory pinning ...@@ -58,7 +58,7 @@ Memory pinning
To create the appropriate character device files automatically with To create the appropriate character device files automatically with
udev, a rule like udev, a rule like
KERNEL="uverbs*", NAME="infiniband/%k" KERNEL=="uverbs*", NAME="infiniband/%k"
can be used. This will create device nodes named can be used. This will create device nodes named
......
...@@ -393,7 +393,7 @@ static int addr_resolve_local(struct sockaddr *src_in, ...@@ -393,7 +393,7 @@ static int addr_resolve_local(struct sockaddr *src_in,
for_each_netdev(&init_net, dev) for_each_netdev(&init_net, dev)
if (ipv6_chk_addr(&init_net, if (ipv6_chk_addr(&init_net,
&((struct sockaddr_in6 *) addr)->sin6_addr, &((struct sockaddr_in6 *) dst_in)->sin6_addr,
dev, 1)) dev, 1))
break; break;
......
...@@ -362,7 +362,9 @@ static void destroy_cm_id(struct iw_cm_id *cm_id) ...@@ -362,7 +362,9 @@ static void destroy_cm_id(struct iw_cm_id *cm_id)
* In either case, must tell the provider to reject. * In either case, must tell the provider to reject.
*/ */
cm_id_priv->state = IW_CM_STATE_DESTROYING; cm_id_priv->state = IW_CM_STATE_DESTROYING;
spin_unlock_irqrestore(&cm_id_priv->lock, flags);
cm_id->device->iwcm->reject(cm_id, NULL, 0); cm_id->device->iwcm->reject(cm_id, NULL, 0);
spin_lock_irqsave(&cm_id_priv->lock, flags);
break; break;
case IW_CM_STATE_CONN_SENT: case IW_CM_STATE_CONN_SENT:
case IW_CM_STATE_DESTROYING: case IW_CM_STATE_DESTROYING:
......
...@@ -1199,11 +1199,14 @@ static int iwch_query_port(struct ib_device *ibdev, ...@@ -1199,11 +1199,14 @@ static int iwch_query_port(struct ib_device *ibdev,
props->state = IB_PORT_DOWN; props->state = IB_PORT_DOWN;
else { else {
inetdev = in_dev_get(netdev); inetdev = in_dev_get(netdev);
if (inetdev->ifa_list) if (inetdev) {
props->state = IB_PORT_ACTIVE; if (inetdev->ifa_list)
else props->state = IB_PORT_ACTIVE;
else
props->state = IB_PORT_INIT;
in_dev_put(inetdev);
} else
props->state = IB_PORT_INIT; props->state = IB_PORT_INIT;
in_dev_put(inetdev);
} }
props->port_cap_flags = props->port_cap_flags =
......
...@@ -1282,6 +1282,7 @@ static struct pci_device_id mlx4_pci_table[] = { ...@@ -1282,6 +1282,7 @@ static struct pci_device_id mlx4_pci_table[] = {
{ PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */ { PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */
{ PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */ { PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
{ PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/ { PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/
{ PCI_VDEVICE(MELLANOX, 0x676e) }, /* MT26478 ConnectX2 40GigE PCIe gen2 */
{ 0, } { 0, }
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册