svn commit: r211443 -
projects/ofed/head/sys/ofed/drivers/infiniband/core
Jeff Roberson
jeff at FreeBSD.org
Wed Aug 18 07:34:59 UTC 2010
Author: jeff
Date: Wed Aug 18 07:34:58 2010
New Revision: 211443
URL: http://svn.freebsd.org/changeset/base/211443
Log:
- selwakeup() when we wakeup the recv_wait waiters as bsd select can
not use the linux waitqueue.
Sponsored by: Isilon Systems, iX Systems, and Panasas.
Modified:
projects/ofed/head/sys/ofed/drivers/infiniband/core/user_mad.c
Modified: projects/ofed/head/sys/ofed/drivers/infiniband/core/user_mad.c
==============================================================================
--- projects/ofed/head/sys/ofed/drivers/infiniband/core/user_mad.c Wed Aug 18 07:32:24 2010 (r211442)
+++ projects/ofed/head/sys/ofed/drivers/infiniband/core/user_mad.c Wed Aug 18 07:34:58 2010 (r211443)
@@ -111,6 +111,7 @@ struct ib_umad_device {
struct ib_umad_file {
struct mutex mutex;
struct ib_umad_port *port;
+ struct file *filp;
struct list_head recv_list;
struct list_head send_list;
struct list_head port_list;
@@ -174,6 +175,7 @@ static int queue_packet(struct ib_umad_f
packet->mad.hdr.id++)
if (agent == __get_agent(file, packet->mad.hdr.id)) {
list_add_tail(&packet->list, &file->recv_list);
+ selwakeup(&file->filp->f_selinfo);
wake_up_interruptible(&file->recv_wait);
ret = 0;
break;
@@ -824,6 +826,7 @@ static int ib_umad_open(struct inode *in
init_waitqueue_head(&file->recv_wait);
file->port = port;
+ file->filp = filp;
filp->private_data = file;
list_add_tail(&file->port_list, &port->file_list);
More information about the svn-src-projects
mailing list