1. 08 1月, 2007 2 次提交
    • S
      RDMA/ucma: Don't report events with invalid user context · 0cefcf0b
      Sean Hefty 提交于
      There's a problem with how rdma cm events are reported to userspace
      that can lead to application crashes.
      
      When a new connection request arrives, a context for the connection is
      allocated in the kernel.  The connection event is then reported to
      userspace.  The userspace library retrieves the event and allocates
      its own context for the connection.  The userspace context is
      associated with the kernel's context when accepting.  This allows the
      kernel to give userspace context with other events.
      
      A problem occurs if a second event for the same connection occurs
      before the user has had a chance to call accept.  The userspace
      context has not yet been set, which causes the librdmacm to crash.
      (This has been seen when the app takes too long to call accept,
      resulting in the remote side timing out and rejecting the connection)
      
      Fix this by ignoring events for new connections until userspace has
      set their context.  This can only happen if an error occurs on a new
      connection before the user accepts it.  This is okay, since the accept
      will just fail later.
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      0cefcf0b
    • S
      RDMA/ucma: Fix struct ucma_event leak when backlog is full · 30a5ec98
      Sean Hefty 提交于
      We discard new connection requests while the listen backlog is full,
      but leak a struct ucma_event in the process.  Free the structure in
      this case.
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      30a5ec98
  2. 13 12月, 2006 1 次提交