Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: IB/ipath: Fix SM trap forwarding IB/ehca: Reject send WRs only for RESET, INIT and RTR state MAINTAINERS: Update NetEffect (iw_nes) entry IB/ipath: Fix device capability flags IB/ipath: Avoid test_bit() on u64 SDMA status value
This commit is contained in:
commit
06a1578e24
6 changed files with 21 additions and 13 deletions
|
@ -2865,8 +2865,8 @@ S: Maintained
|
|||
NETEFFECT IWARP RNIC DRIVER (IW_NES)
|
||||
P: Faisal Latif
|
||||
M: flatif@neteffect.com
|
||||
P: Nishi Gupta
|
||||
M: ngupta@neteffect.com
|
||||
P: Chien Tung
|
||||
M: ctung@neteffect.com
|
||||
P: Glenn Streiff
|
||||
M: gstreiff@neteffect.com
|
||||
L: general@lists.openfabrics.org
|
||||
|
|
|
@ -421,8 +421,10 @@ int ehca_post_send(struct ib_qp *qp,
|
|||
int ret = 0;
|
||||
unsigned long flags;
|
||||
|
||||
if (unlikely(my_qp->state != IB_QPS_RTS)) {
|
||||
ehca_err(qp->device, "QP not in RTS state qpn=%x", qp->qp_num);
|
||||
/* Reject WR if QP is in RESET, INIT or RTR state */
|
||||
if (unlikely(my_qp->state < IB_QPS_RTS)) {
|
||||
ehca_err(qp->device, "Invalid QP state qp_state=%d qpn=%x",
|
||||
my_qp->state, qp->qp_num);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
|
@ -232,6 +232,11 @@ struct ipath_sdma_desc {
|
|||
#define IPATH_SDMA_TXREQ_S_ABORTED 2
|
||||
#define IPATH_SDMA_TXREQ_S_SHUTDOWN 3
|
||||
|
||||
#define IPATH_SDMA_STATUS_SCORE_BOARD_DRAIN_IN_PROG (1ull << 63)
|
||||
#define IPATH_SDMA_STATUS_ABORT_IN_PROG (1ull << 62)
|
||||
#define IPATH_SDMA_STATUS_INTERNAL_SDMA_ENABLE (1ull << 61)
|
||||
#define IPATH_SDMA_STATUS_SCB_EMPTY (1ull << 30)
|
||||
|
||||
/* max dwords in small buffer packet */
|
||||
#define IPATH_SMALLBUF_DWORDS (dd->ipath_piosize2k >> 2)
|
||||
|
||||
|
|
|
@ -1492,6 +1492,10 @@ static int process_subn(struct ib_device *ibdev, int mad_flags,
|
|||
goto bail;
|
||||
}
|
||||
|
||||
case IB_MGMT_METHOD_TRAP:
|
||||
case IB_MGMT_METHOD_REPORT:
|
||||
case IB_MGMT_METHOD_REPORT_RESP:
|
||||
case IB_MGMT_METHOD_TRAP_REPRESS:
|
||||
case IB_MGMT_METHOD_GET_RESP:
|
||||
/*
|
||||
* The ib_mad module will call us to process responses
|
||||
|
|
|
@ -263,14 +263,10 @@ static void sdma_abort_task(unsigned long opaque)
|
|||
hwstatus = ipath_read_kreg64(dd,
|
||||
dd->ipath_kregs->kr_senddmastatus);
|
||||
|
||||
if (/* ScoreBoardDrainInProg */
|
||||
test_bit(63, &hwstatus) ||
|
||||
/* AbortInProg */
|
||||
test_bit(62, &hwstatus) ||
|
||||
/* InternalSDmaEnable */
|
||||
test_bit(61, &hwstatus) ||
|
||||
/* ScbEmpty */
|
||||
!test_bit(30, &hwstatus)) {
|
||||
if ((hwstatus & (IPATH_SDMA_STATUS_SCORE_BOARD_DRAIN_IN_PROG |
|
||||
IPATH_SDMA_STATUS_ABORT_IN_PROG |
|
||||
IPATH_SDMA_STATUS_INTERNAL_SDMA_ENABLE)) ||
|
||||
!(hwstatus & IPATH_SDMA_STATUS_SCB_EMPTY)) {
|
||||
if (dd->ipath_sdma_reset_wait > 0) {
|
||||
/* not done shutting down sdma */
|
||||
--dd->ipath_sdma_reset_wait;
|
||||
|
|
|
@ -1494,7 +1494,8 @@ static int ipath_query_device(struct ib_device *ibdev,
|
|||
|
||||
props->device_cap_flags = IB_DEVICE_BAD_PKEY_CNTR |
|
||||
IB_DEVICE_BAD_QKEY_CNTR | IB_DEVICE_SHUTDOWN_PORT |
|
||||
IB_DEVICE_SYS_IMAGE_GUID;
|
||||
IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN |
|
||||
IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE;
|
||||
props->page_size_cap = PAGE_SIZE;
|
||||
props->vendor_id = dev->dd->ipath_vendorid;
|
||||
props->vendor_part_id = dev->dd->ipath_deviceid;
|
||||
|
|
Loading…
Reference in a new issue