svn commit: r216936 - in projects/ofed/head/sys/ofed/drivers/infiniband: core ulp/ipoib

Jeff Roberson jeff at FreeBSD.org
Mon Jan 3 22:59:16 UTC 2011


Author: jeff
Date: Mon Jan  3 22:59:15 2011
New Revision: 216936
URL: http://svn.freebsd.org/changeset/base/216936

Log:
   - Add link_state_change calls to ipoib.
   - Fix a corrupt filp pointer that can occur now that I've switched back
     to kmalloc from kzalloc.
  
  Sponsored by:	Isilon Systems, iX Systems, and Panasas.

Modified:
  projects/ofed/head/sys/ofed/drivers/infiniband/core/uverbs_main.c
  projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c
  projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
  projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c

Modified: projects/ofed/head/sys/ofed/drivers/infiniband/core/uverbs_main.c
==============================================================================
--- projects/ofed/head/sys/ofed/drivers/infiniband/core/uverbs_main.c	Mon Jan  3 22:58:22 2011	(r216935)
+++ projects/ofed/head/sys/ofed/drivers/infiniband/core/uverbs_main.c	Mon Jan  3 22:59:15 2011	(r216936)
@@ -552,6 +552,7 @@ struct file *ib_uverbs_alloc_event_file(
 	ev_file->async_queue = NULL;
 	ev_file->is_async    = is_async;
 	ev_file->is_closed   = 0;
+	ev_file->filp	     = NULL;
 
 	*fd = get_unused_fd();
 	if (*fd < 0) {

Modified: projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c
==============================================================================
--- projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c	Mon Jan  3 22:58:22 2011	(r216935)
+++ projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c	Mon Jan  3 22:59:15 2011	(r216936)
@@ -660,6 +660,7 @@ int ipoib_ib_dev_down(struct ifnet *dev,
 	ipoib_dbg(priv, "downing ib_dev\n");
 
 	clear_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
+	if_link_state_change(dev, LINK_STATE_DOWN);
 
 	/* Shutdown the P_Key thread if still active */
 	if (!test_bit(IPOIB_PKEY_ASSIGNED, &priv->flags)) {

Modified: projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
==============================================================================
--- projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Mon Jan  3 22:58:22 2011	(r216935)
+++ projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Mon Jan  3 22:59:15 2011	(r216936)
@@ -855,6 +855,7 @@ ipoib_intf_alloc(const char *name)
 	sdl->sdl_type = IFT_INFINIBAND;
 	sdl->sdl_alen = dev->if_addrlen;
 	priv->dev = dev;
+	if_link_state_change(dev, LINK_STATE_DOWN);
 
 	bpfattach(dev, DLT_EN10MB, IPOIB_HEADER_LEN);
 

Modified: projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
==============================================================================
--- projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	Mon Jan  3 22:58:22 2011	(r216935)
+++ projects/ofed/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c	Mon Jan  3 22:59:15 2011	(r216936)
@@ -331,6 +331,7 @@ void ipoib_mcast_carrier_on_task(struct 
 		ipoib_dbg(priv, "Keeping carrier off until IB port is active\n");
 		return;
 	}
+	if_link_state_change(priv->dev, LINK_STATE_UP);
 }
 
 static int ipoib_mcast_join_complete(int status,


More information about the svn-src-projects mailing list