26 May, 2016
1 commit
-
Change struct ib_class_port_info to conform to IB Spec 1.3
That in order to get specific capability mask from ClassPortInfo mad.>From the IB Spec, ClassPortInfo section:
"CapabilityMask2 Bits 0-26: Additional class-specific capabilities...
RespTimeValue the rest 5 bits"The new struct now has one field for capabilitymask2 (previously was the
reserved field) and the resp_time field.And it fixes up qib and srpt, use of the field repurposed to be used as
capabilitymask2:
IB/qib: Change pma_get_classportinfo
IB/srpt: Adjust the use of ib_class_port_infoSigned-off-by: Erez Shitrit
Reviewed-by: Leon Romanovsky
Reviewed-by: Hal Rosenstock
Signed-off-by: Doug Ledford
04 Mar, 2016
1 commit
-
In ib_mad.h, ib_mad_snoop_handler uses send_buf rather than send_wr
Signed-off-by: Hal Rosenstock
Reviewed-by: Ira Weiny
Signed-off-by: Doug Ledford
20 Jan, 2016
1 commit
-
Stop abusing wr_id and just pass the parameter explicitly.
Signed-off-by: Christoph Hellwig
Reviewed-by: Hal Rosenstock
Reviewed-by: Ira Weiny
Reviewed-by: Sagi Grimberg
Signed-off-by: Doug Ledford
09 Dec, 2015
1 commit
-
Receipt of CM MAD with other than the Send method for an attribute
other than the ClassPortInfo attribute is invalid.CM attributes other than ClassPortInfo only use the send method.
The SRP initiator does not maintain a timeout policy for CM connect
requests relies on the CM layer to do that. The result was that
the SRP initiator hung as the connect request never completed.A new SRP target has been observed to respond to Send CM REQ
with GetResp of CM REQ with bad status. This is non conformant
with IBA spec but exposes a vulnerability in the current MAD/CM
code which will respond to the incoming GetResp of CM REQ as if
it was a valid incoming Send of CM REQ rather than tossing
this on the floor. It also causes the MAD layer not to
retransmit the original REQ even though it has not received a REP.Reviewed-by: Sagi Grimberg
Signed-off-by: Hal Rosenstock
Reviewed-by: Ira Weiny
Signed-off-by: Doug Ledford
04 Sep, 2015
2 commits
-
When the hfi1 driver was added these definitions were moved from the qib driver
to ib_mad.h to be used by both qib and hfi1. They should have been moved to
ib_smi.h instead.Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA")
Reviewed-by: Hal Rosenstock
Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford -
Remove the unused IB_NOTICE_REPRESS_* defines.
When the hfi1 driver was added these definitions were moved from the qib driver
to ib_mad.h. They should have been removed instead.Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA")
Signed-off-by: Ira Weiny
Reviewed-by: Hal Rosenstock
Signed-off-by: Doug Ledford
31 Aug, 2015
1 commit
-
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.Signed-off-by: Jason Gunthorpe
Signed-off-by: Doug Ledford
29 Aug, 2015
1 commit
-
This patch adds the value of the CNP opcode to the existing list of enumerated
opcodes in ib_pack.hAdd common OPA header definitions for driver
build:
- opa_port_info.h
- opa_smi.h
- hfi1_user.hAdditionally, ib_mad.h, has additional definitions
that are common to ib_drivers including:
- trap support
- cca supportThe qib driver has the duplication removed in favor
those in ib_mad.hReviewed-by: Mike Marciniszyn
Reviewed-by: John, Jubin
Signed-off-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford
13 Jun, 2015
4 commits
-
For devices which support OPA MADs
1) Use previously defined SMP support functions.
2) Pass correct base version to ib_create_send_mad when processing OPA MADs.
3) Process out_mad_key_index returned by agents for a response. This is
necessary because OPA SMP packets must carry a valid pkey.4) Carry the correct segment size (OPA vs IBTA) of RMPP messages within
ib_mad_recv_wc.5) Handle variable length OPA MADs by:
* Adjusting the 'fake' WC for locally routed SMP's to represent the
proper incoming byte_len
* out_mad_size is used from the local HCA agents
1) when sending agent responses on the wire
2) when passing responses through the local_completions
functionNOTE: wc.byte_len includes the GRH length and therefore is different
from the in_mad_size specified to the local HCA agents.
out_mad_size should _not_ include the GRH length as it is addedSigned-off-by: Ira Weiny
Signed-off-by: Doug Ledford -
This patch is the first of 3 which adds processing of OPA MADs
1) Add Intel Omni-Path Architecture defines
2) Increase max management version to accommodate OPA
3) update ib_create_send_mad
If the device supports OPA MADs and the MAD being sent is the OPA base
version alter the MAD size and sg lengths as appropriateSigned-off-by: Ira Weiny
Signed-off-by: Doug Ledford -
Add max MAD size to the device immutable data set and have all drivers that
support MADs report the current IB MAD size (IB_MGMT_MAD_SIZE) to the core.Verify MAD size data in both the MAD core and when reading the immutable data.
OPA drivers will report alternate MAD sizes in subsequent patches.
Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford -
In preparation to support the new OPA MAD Base version, add a base version
parameter to ib_create_send_mad and set it to IB_MGMT_BASE_VERSION for current
users.Definition of the new base version and it's processing will occur in later
patches.Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford
21 May, 2015
2 commits
-
The following functions only need read access to the data passed to them.
ib_mad_kernel_rmpp_agent
is_rmpp_data_mad
rcv_has_same_gid
ib_find_send_madClarify with const specifiers
Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford -
ib_response_mad only needs read access to the MAD header, not write access
to the entire mad struct, so replace struct ib_mad with const struct
ib_mad_hdrReviewed-By: Jason Gunthorpe
Reviewed-by: Sean Hefty
Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford
11 Aug, 2014
2 commits
-
Using the new registration mechanism, define a flag that indicates the
user wishes to process RMPP messages in user space rather than have
the kernel process them.Signed-off-by: Ira Weiny
Signed-off-by: Roland Dreier -
Registrations options are specified through flags. Definitions of flags will
be in subsequent patches.Signed-off-by: Ira Weiny
Signed-off-by: Roland Dreier
19 May, 2012
1 commit
-
It needs parentheses around the argument, so that it can be used with
complex arguments (e.g., "n+5").Signed-off-by: Jack Morgenstein
Signed-off-by: Roland Dreier
26 Feb, 2012
1 commit
-
Add defines for MAD error codes so that they can be used when
returning error responses.Signed-off-by: Swapna Thete
Signed-off-by: Roland Dreier
25 Mar, 2009
1 commit
-
…', 'mthca', 'nes' and 'sysfs' into for-next
28 Feb, 2009
1 commit
-
Fix ib_set_rmpp_flags() to use the correct bit mask for RRespTime. In
the 8-bit field of the RMPP header, the first 5 bits are RRespTime and
next 3 bits are RMPPFlags. Hence to retain the first 5 bits, the mask
should be 0xF8 instead of 0xF1.ack_recv()-->format_ack() calls ib_set_rmpp_flags() and due to the
incorrect ANDing with 0xF1, RRespTime got changed incorrectly and RMPP
Acks sent back always had a RRespTime of 0x1E (30) which caused the
other end to consider the time outs to be approximately 4297 seconds
(i.e. in the order of 4*2^30) instead of the usual ~4 seconds (order
of 4*2^20).Signed-off-by: Ramachandra K
Acked-by: Sean Hefty
Signed-off-by: Roland Dreier
18 Jan, 2009
1 commit
-
The base versions handle constant folding just fine, use them
directly. The replacements are OK in the include/ files as they are
not exported to userspace so we don't need the __ prefixed versions.This patch does not affect code generation at all.
Signed-off-by: Harvey Harrison
Signed-off-by: Roland Dreier
15 Jul, 2008
1 commit
-
Remove subversion $Id lines and improve readability by fixing other
coding style problems pointed out by checkpatch.pl.Signed-off-by: Dotan Barak
Signed-off-by: Roland Dreier
26 Jan, 2008
1 commit
-
To allow ULPs to tune timeout values and capture retry statistics,
report the number of times that a mad send operation was retried.For RMPP mads, report the total number of times that the any portion
(send window) of the send operation was retried.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
04 Aug, 2007
1 commit
-
ib_mad.h uses struct list_head, so while linux/list.h seems to be
pulled in indirectly by one of the headers it includes, the right
thing is to include linux/list.h directly.Signed-off-by: Dotan Barak
Signed-off-by: Roland Dreier
11 Jul, 2007
1 commit
-
MADs sent to the SA should use the the default P_Key (0x7fff/0xffff).
There's no requirement that the default P_Key is stored at index 0 in
the local P_Key table, so add code to the sa_query module to look up
the index of the default P_Key when creating an address handle for the
SA (which is done any time the P_Key table might change), and use this
index for all SA queries.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
03 May, 2007
1 commit
-
I noticed that many source files include while they do
not appear to need it. Here is an attempt to clean it all up.In order to find all possibly affected files, I searched for all
files including but without any other occurence of "pci"
or "PCI". I removed the include statement from all of these, then I
compiled an allmodconfig kernel on both i386 and x86_64 and fixed the
false positives manually.My tests covered 66% of the affected files, so there could be false
positives remaining. Untested files are:arch/alpha/kernel/err_common.c
arch/alpha/kernel/err_ev6.c
arch/alpha/kernel/err_ev7.c
arch/ia64/sn/kernel/huberror.c
arch/ia64/sn/kernel/xpnet.c
arch/m68knommu/kernel/dma.c
arch/mips/lib/iomap.c
arch/powerpc/platforms/pseries/ras.c
arch/ppc/8260_io/enet.c
arch/ppc/8260_io/fcc_enet.c
arch/ppc/8xx_io/enet.c
arch/ppc/syslib/ppc4xx_sgdma.c
arch/sh64/mach-cayman/iomap.c
arch/xtensa/kernel/xtensa_ksyms.c
arch/xtensa/platform-iss/setup.c
drivers/i2c/busses/i2c-at91.c
drivers/i2c/busses/i2c-mpc.c
drivers/media/video/saa711x.c
drivers/misc/hdpuftrs/hdpu_cpustate.c
drivers/misc/hdpuftrs/hdpu_nexus.c
drivers/net/au1000_eth.c
drivers/net/fec_8xx/fec_main.c
drivers/net/fec_8xx/fec_mii.c
drivers/net/fs_enet/fs_enet-main.c
drivers/net/fs_enet/mac-fcc.c
drivers/net/fs_enet/mac-fec.c
drivers/net/fs_enet/mac-scc.c
drivers/net/fs_enet/mii-bitbang.c
drivers/net/fs_enet/mii-fec.c
drivers/net/ibm_emac/ibm_emac_core.c
drivers/net/lasi_82596.c
drivers/parisc/hppb.c
drivers/sbus/sbus.c
drivers/video/g364fb.c
drivers/video/platinumfb.c
drivers/video/stifb.c
drivers/video/valkyriefb.c
include/asm-arm/arch-ixp4xx/dma.h
sound/oss/au1550_ac97.cI would welcome test reports for these files. I am fine with removing
the untested files from the patch if the general opinion is that these
changes aren't safe. The tested part would still be nice to have.Note that this patch depends on another header fixup patch I submitted
to LKML yesterday:
[PATCH] scatterlist.h needs types.h
http://lkml.org/lkml/2007/3/01/141Signed-off-by: Jean Delvare
Cc: Badari Pulavarty
Signed-off-by: Greg Kroah-Hartman
25 Jul, 2006
1 commit
-
Validate MADs sent by userspace clients for spec compliance with
C13-18.1.1 (prevent duplicate requests and responses sent on the
same port). Without this, RMPP transactions get aborted because
of duplicate packets.This patch is similar to that provided by Jack Morgenstein.
Signed-off-by: Sean Hefty
Signed-off-by: Michael S. Tsirkin
Signed-off-by: Jack Morgenstein
Signed-off-by: Roland Dreier
30 Mar, 2006
1 commit
-
Add RMPP support for additional management classes that support it.
Also, validate RMPP is consistent with management class specified.Signed-off-by: Hal Rosenstock
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
21 Mar, 2006
1 commit
-
Add support for sending and receiving large RMPP transfers. The old
code supports transfers only as large as a single contiguous kernel
memory allocation. This patch uses linked list of memory buffers when
sending and receiving data to avoid needing contiguous pages for
larger transfers.Receive side: copy the arriving MADs in chunks instead of coalescing
to one large buffer in kernel space.Send side: split a multipacket MAD buffer to a list of segments,
(multipacket_list) and send these using a gather list of size 2.
Also, save pointer to last sent segment, and retrieve requested
segments by walking list starting at last sent segment. Finally,
save pointer to last-acked segment. When retrying, retrieve
segments for resending relative to this pointer. When updating last
ack, start at this pointer.Signed-off-by: Jack Morgenstein
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
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
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
1 commit
-
Add structure definition for ClassPortInfo format. This is
needed for (at least) handling CM redirects.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