10 Jan, 2006
1 commit
-
Add a node_guid field to struct ib_device. It is the responsibility
of the low-level driver to initialize this field before registering a
device with the midlayer. Convert everyone to looking at this field
instead of calling ib_query_device() when all they want is the node
GUID, and remove the node_guid field from struct ib_device_attr.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
11 Nov, 2005
2 commits
-
Move the computation of QP capabilities (max scatter/gather entries,
max inline data, etc) into the kernel, and have the uverbs module
return the values as part of the create QP response. This keeps
precise knowledge of device limits in the low-level kernel driver.This requires an ABI bump, so while we're making changes, get rid of
the max_sge parameter for the modify SRQ command -- it's not used and
shouldn't be there.Signed-off-by: Jack Morgenstein
Signed-off-by: Michael S. Tsirkin
Signed-off-by: Roland Dreier -
Change the struct ib_device.resize_cq() method to take a plain integer
that holds the new CQ size, rather than a pointer to an integer that
it uses to return the new size. This makes the interface match the
exported ib_resize_cq() signature, and allows the low-level driver to
update the CQ size with proper locking if necessary.No in-tree drivers are exporting this method yet.
Signed-off-by: Roland Dreier
02 Nov, 2005
1 commit
-
Fix structure layouts to ensure same size on 32-bit and 64-bit architectures.
This permits 32-bit userspace apps on a 64-bit kernel.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
26 Oct, 2005
1 commit
-
The MAD layer was violating the DMA API by touching data buffers used
for sends after the DMA mapping was done. This causes problems on
non-cache-coherent architectures, because the device doing DMA won't
see updates to the payload buffers that exist only in the CPU cache.Fix this by having all MAD consumers use ib_create_send_mad() to
allocate their send buffers, and moving the DMA mapping into the MAD
layer so it can be done just before calling send (and after any
modifications of the send buffer by the MAD layer).Tested on a non-cache-coherent PowerPC 440SPe system.
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
18 Oct, 2005
5 commits
-
Bind communication identifiers to a device to support device removal.
Export per HCA CM devices to userspace.Signed-off-by: Sean Hefty
-
Add kernel/user ABI structures for marshalling poll CQ, request CQ
notification, post send, post receive, post SRQ receive, create AH and
destroy AH commands. These commands allow us to support userspace
verbs for devices that can't perform these operations directly from
userspace (eg the PathScale HCA).Signed-off-by: Roland Dreier
-
Give each device a uverbs_cmd_mask, so that a low-level driver can
control which methods may be called on behalf of userspace.Signed-off-by: Roland Dreier
-
Add abi_version attribute to uverbs class devices to allow for
ABI versioning of device-specific interfaces.Signed-off-by: Roland Dreier
-
Introduce new userspace verbs ABI version 3. This eliminates some
unneeded commands, and adds support for user-created completion
channels. This cleans up problems with file leaks on error paths, and
also makes sure that file descriptors are always installed into the
correct process.Signed-off-by: Roland Dreier
09 Oct, 2005
1 commit
-
- added typedef unsigned int __nocast gfp_t;
- replaced __nocast uses for gfp flags with gfp_t - it gives exactly
the same warnings as far as sparse is concerned, doesn't change
generated code (from gcc point of view we replaced unsigned int with
typedef) and documents what's going on far better.Signed-off-by: Al Viro
Signed-off-by: Linus Torvalds
27 Sep, 2005
1 commit
-
Al Viro pointed out that the current IB userspace verbs interface
allows userspace to cause mischief by closing file descriptors before
we're ready, or issuing the same command twice at the same time. This
patch closes those races, and fixes other obvious problems such as a
module reference leak.Some other interface bogosities will require an ABI change to fix
properly, so I'm deferring those fixes until 2.6.15.Signed-off-by: Roland Dreier
22 Sep, 2005
1 commit
-
Clean up code by using enums instead of hard-coded magic numbers.
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
10 Sep, 2005
5 commits
-
Changes to CM to support CM and port redirection (REJ reason 24).
Signed-off-by: John Kingman storagegear.com>
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
completion events after destroying a CQ, QP or SRQ. We do this by
sweeping the event lists before returning from a destroy calls, and
then return the number of events already reported before the destroy
call. This allows userspace wait until it has processed all events
for an object returned from the kernel before it frees its context for
the object.The ABI of the destroy CQ, destroy QP and destroy SRQ commands has to
change to return the event count, so bump the ABI version from 1 to 2.
The userspace libibverbs library has already been updated to handle
both the old and new ABI versions.Signed-off-by: Roland Dreier
-
Add structure definition for ClassPortInfo format. This is
needed for (at least) handling CM redirects.Signed-off-by: Roland Dreier
-
SA: Move SA attributes to ib_sa.h so are accessible to more than
sa_query.c. Also, remove deprecated attributes and add one missing one.Signed-off-by: Hal Rosenstock
Signed-off-by: Roland Dreier -
ib_sa.h: Define more SA methods (initially for madeye decode)
Signed-off-by: Hal Rosenstock
Signed-off-by: Roland Dreier
08 Sep, 2005
1 commit
-
- Add user specified context to all uCM events. Users will not retrieve
any events associated with the context after destroying the corresponding
cm_id.
- Provide the ib_cm_init_qp_attr() call to userspace clients of the CM.
This call may be used to set QP attributes properly before modifying the QP.
- Fixes some error handling synchonization and cleanup issues.
- Performs some minor code cleanup.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
27 Aug, 2005
1 commit
-
Move the InfiniBand headers from drivers/infiniband/include to include/rdma.
This allows InfiniBand-using code to live elsewhere, and lets us remove the
ugly EXTRA_CFLAGS include path from the InfiniBand Makefiles.Signed-off-by: Roland Dreier