IB/ipath: remove stale references to userspace SMA
When we first submitted a userspace subnet management agent, it was rejected, so we left it out of the final driver submission. This patch removes a number of vestigial references to it. Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
committed by
Roland Dreier
parent
b55f4f06c8
commit
0fd41363e0
@@ -106,9 +106,9 @@ struct infinipath_stats {
|
|||||||
__u64 sps_ether_spkts;
|
__u64 sps_ether_spkts;
|
||||||
/* number of "ethernet" packets received by driver */
|
/* number of "ethernet" packets received by driver */
|
||||||
__u64 sps_ether_rpkts;
|
__u64 sps_ether_rpkts;
|
||||||
/* number of SMA packets sent by driver */
|
/* number of SMA packets sent by driver. Obsolete. */
|
||||||
__u64 sps_sma_spkts;
|
__u64 sps_sma_spkts;
|
||||||
/* number of SMA packets received by driver */
|
/* number of SMA packets received by driver. Obsolete. */
|
||||||
__u64 sps_sma_rpkts;
|
__u64 sps_sma_rpkts;
|
||||||
/* number of times all ports rcvhdrq was full and packet dropped */
|
/* number of times all ports rcvhdrq was full and packet dropped */
|
||||||
__u64 sps_hdrqfull;
|
__u64 sps_hdrqfull;
|
||||||
@@ -138,7 +138,7 @@ struct infinipath_stats {
|
|||||||
__u64 sps_pageunlocks;
|
__u64 sps_pageunlocks;
|
||||||
/*
|
/*
|
||||||
* Number of packets dropped in kernel other than errors (ether
|
* Number of packets dropped in kernel other than errors (ether
|
||||||
* packets if ipath not configured, sma/mad, etc.)
|
* packets if ipath not configured, etc.)
|
||||||
*/
|
*/
|
||||||
__u64 sps_krdrops;
|
__u64 sps_krdrops;
|
||||||
/* pad for future growth */
|
/* pad for future growth */
|
||||||
@@ -153,8 +153,6 @@ struct infinipath_stats {
|
|||||||
#define IPATH_STATUS_DISABLED 0x2 /* hardware disabled */
|
#define IPATH_STATUS_DISABLED 0x2 /* hardware disabled */
|
||||||
/* Device has been disabled via admin request */
|
/* Device has been disabled via admin request */
|
||||||
#define IPATH_STATUS_ADMIN_DISABLED 0x4
|
#define IPATH_STATUS_ADMIN_DISABLED 0x4
|
||||||
#define IPATH_STATUS_OIB_SMA 0x8 /* ipath_mad kernel SMA running */
|
|
||||||
#define IPATH_STATUS_SMA 0x10 /* user SMA running */
|
|
||||||
/* Chip has been found and initted */
|
/* Chip has been found and initted */
|
||||||
#define IPATH_STATUS_CHIP_PRESENT 0x20
|
#define IPATH_STATUS_CHIP_PRESENT 0x20
|
||||||
/* IB link is at ACTIVE, usable for data traffic */
|
/* IB link is at ACTIVE, usable for data traffic */
|
||||||
@@ -465,14 +463,6 @@ struct __ipath_sendpkt {
|
|||||||
struct ipath_iovec sps_iov[4];
|
struct ipath_iovec sps_iov[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Passed into SMA special file's ->read and ->write methods. */
|
|
||||||
struct ipath_sma_pkt
|
|
||||||
{
|
|
||||||
__u32 unit; /* unit on which to send packet */
|
|
||||||
__u64 data; /* address of payload in userspace */
|
|
||||||
__u32 len; /* length of payload */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Data layout in I2C flash (for GUID, etc.)
|
* Data layout in I2C flash (for GUID, etc.)
|
||||||
* All fields are little-endian binary unless otherwise stated
|
* All fields are little-endian binary unless otherwise stated
|
||||||
|
@@ -60,7 +60,6 @@
|
|||||||
#define __IPATH_USER_SEND 0x1000 /* use user mode send */
|
#define __IPATH_USER_SEND 0x1000 /* use user mode send */
|
||||||
#define __IPATH_KERNEL_SEND 0x2000 /* use kernel mode send */
|
#define __IPATH_KERNEL_SEND 0x2000 /* use kernel mode send */
|
||||||
#define __IPATH_EPKTDBG 0x4000 /* print ethernet packet data */
|
#define __IPATH_EPKTDBG 0x4000 /* print ethernet packet data */
|
||||||
#define __IPATH_SMADBG 0x8000 /* sma packet debug */
|
|
||||||
#define __IPATH_IPATHDBG 0x10000 /* Ethernet (IPATH) gen debug */
|
#define __IPATH_IPATHDBG 0x10000 /* Ethernet (IPATH) gen debug */
|
||||||
#define __IPATH_IPATHWARN 0x20000 /* Ethernet (IPATH) warnings */
|
#define __IPATH_IPATHWARN 0x20000 /* Ethernet (IPATH) warnings */
|
||||||
#define __IPATH_IPATHERR 0x40000 /* Ethernet (IPATH) errors */
|
#define __IPATH_IPATHERR 0x40000 /* Ethernet (IPATH) errors */
|
||||||
@@ -84,7 +83,6 @@
|
|||||||
/* print mmap/nopage stuff, not using VDBG any more */
|
/* print mmap/nopage stuff, not using VDBG any more */
|
||||||
#define __IPATH_MMDBG 0x0
|
#define __IPATH_MMDBG 0x0
|
||||||
#define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */
|
#define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */
|
||||||
#define __IPATH_SMADBG 0x0 /* process startup (init)/exit messages */
|
|
||||||
#define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */
|
#define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */
|
||||||
#define __IPATH_IPATHWARN 0x0 /* Ethernet (IPATH) warnings on */
|
#define __IPATH_IPATHWARN 0x0 /* Ethernet (IPATH) warnings on */
|
||||||
#define __IPATH_IPATHERR 0x0 /* Ethernet (IPATH) errors on */
|
#define __IPATH_IPATHERR 0x0 /* Ethernet (IPATH) errors on */
|
||||||
|
@@ -64,7 +64,7 @@ static struct idr unit_table;
|
|||||||
DEFINE_SPINLOCK(ipath_devs_lock);
|
DEFINE_SPINLOCK(ipath_devs_lock);
|
||||||
LIST_HEAD(ipath_dev_list);
|
LIST_HEAD(ipath_dev_list);
|
||||||
|
|
||||||
wait_queue_head_t ipath_sma_state_wait;
|
wait_queue_head_t ipath_state_wait;
|
||||||
|
|
||||||
unsigned ipath_debug = __IPATH_INFO;
|
unsigned ipath_debug = __IPATH_INFO;
|
||||||
|
|
||||||
@@ -618,15 +618,16 @@ void ipath_disarm_piobufs(struct ipath_devdata *dd, unsigned first,
|
|||||||
static int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state,
|
static int ipath_wait_linkstate(struct ipath_devdata *dd, u32 state,
|
||||||
int msecs)
|
int msecs)
|
||||||
{
|
{
|
||||||
dd->ipath_sma_state_wanted = state;
|
dd->ipath_state_wanted = state;
|
||||||
wait_event_interruptible_timeout(ipath_sma_state_wait,
|
wait_event_interruptible_timeout(ipath_state_wait,
|
||||||
(dd->ipath_flags & state),
|
(dd->ipath_flags & state),
|
||||||
msecs_to_jiffies(msecs));
|
msecs_to_jiffies(msecs));
|
||||||
dd->ipath_sma_state_wanted = 0;
|
dd->ipath_state_wanted = 0;
|
||||||
|
|
||||||
if (!(dd->ipath_flags & state)) {
|
if (!(dd->ipath_flags & state)) {
|
||||||
u64 val;
|
u64 val;
|
||||||
ipath_cdbg(SMA, "Didn't reach linkstate %s within %u ms\n",
|
ipath_cdbg(VERBOSE, "Didn't reach linkstate %s within %u"
|
||||||
|
" ms\n",
|
||||||
/* test INIT ahead of DOWN, both can be set */
|
/* test INIT ahead of DOWN, both can be set */
|
||||||
(state & IPATH_LINKINIT) ? "INIT" :
|
(state & IPATH_LINKINIT) ? "INIT" :
|
||||||
((state & IPATH_LINKDOWN) ? "DOWN" :
|
((state & IPATH_LINKDOWN) ? "DOWN" :
|
||||||
@@ -1155,7 +1156,7 @@ int ipath_setrcvhdrsize(struct ipath_devdata *dd, unsigned rhdrsize)
|
|||||||
*
|
*
|
||||||
* do appropriate marking as busy, etc.
|
* do appropriate marking as busy, etc.
|
||||||
* returns buffer number if one found (>=0), negative number is error.
|
* returns buffer number if one found (>=0), negative number is error.
|
||||||
* Used by ipath_sma_send_pkt and ipath_layer_send
|
* Used by ipath_layer_send
|
||||||
*/
|
*/
|
||||||
u32 __iomem *ipath_getpiobuf(struct ipath_devdata *dd, u32 * pbufnum)
|
u32 __iomem *ipath_getpiobuf(struct ipath_devdata *dd, u32 * pbufnum)
|
||||||
{
|
{
|
||||||
@@ -1448,7 +1449,7 @@ static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
|
|||||||
int linkcmd = (which >> INFINIPATH_IBCC_LINKCMD_SHIFT) &
|
int linkcmd = (which >> INFINIPATH_IBCC_LINKCMD_SHIFT) &
|
||||||
INFINIPATH_IBCC_LINKCMD_MASK;
|
INFINIPATH_IBCC_LINKCMD_MASK;
|
||||||
|
|
||||||
ipath_cdbg(SMA, "Trying to move unit %u to %s, current ltstate "
|
ipath_cdbg(VERBOSE, "Trying to move unit %u to %s, current ltstate "
|
||||||
"is %s\n", dd->ipath_unit,
|
"is %s\n", dd->ipath_unit,
|
||||||
what[linkcmd],
|
what[linkcmd],
|
||||||
ipath_ibcstatus_str[
|
ipath_ibcstatus_str[
|
||||||
@@ -1457,7 +1458,7 @@ static void ipath_set_ib_lstate(struct ipath_devdata *dd, int which)
|
|||||||
INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) &
|
INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) &
|
||||||
INFINIPATH_IBCS_LINKTRAININGSTATE_MASK]);
|
INFINIPATH_IBCS_LINKTRAININGSTATE_MASK]);
|
||||||
/* flush all queued sends when going to DOWN or INIT, to be sure that
|
/* flush all queued sends when going to DOWN or INIT, to be sure that
|
||||||
* they don't block SMA and other MAD packets */
|
* they don't block MAD packets */
|
||||||
if (!linkcmd || linkcmd == INFINIPATH_IBCC_LINKCMD_INIT) {
|
if (!linkcmd || linkcmd == INFINIPATH_IBCC_LINKCMD_INIT) {
|
||||||
ipath_write_kreg(dd, dd->ipath_kregs->kr_sendctrl,
|
ipath_write_kreg(dd, dd->ipath_kregs->kr_sendctrl,
|
||||||
INFINIPATH_S_ABORT);
|
INFINIPATH_S_ABORT);
|
||||||
|
@@ -1816,7 +1816,7 @@ int ipath_user_add(struct ipath_devdata *dd)
|
|||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
ipath_dev_err(dd, "Could not create wildcard "
|
ipath_dev_err(dd, "Could not create wildcard "
|
||||||
"minor: error %d\n", -ret);
|
"minor: error %d\n", -ret);
|
||||||
goto bail_sma;
|
goto bail_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_set(&user_setup, 1);
|
atomic_set(&user_setup, 1);
|
||||||
@@ -1832,7 +1832,7 @@ int ipath_user_add(struct ipath_devdata *dd)
|
|||||||
|
|
||||||
goto bail;
|
goto bail;
|
||||||
|
|
||||||
bail_sma:
|
bail_user:
|
||||||
user_cleanup();
|
user_cleanup();
|
||||||
bail:
|
bail:
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -191,8 +191,8 @@ static ssize_t atomic_port_info_read(struct file *file, char __user *buf,
|
|||||||
portinfo[4] = (dd->ipath_lid << 16);
|
portinfo[4] = (dd->ipath_lid << 16);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notimpl yet SMLID (should we store this in the driver, in case
|
* Notimpl yet SMLID.
|
||||||
* SMA dies?) CapabilityMask is 0, we don't support any of these
|
* CapabilityMask is 0, we don't support any of these
|
||||||
* DiagCode is 0; we don't store any diag info for now Notimpl yet
|
* DiagCode is 0; we don't store any diag info for now Notimpl yet
|
||||||
* M_KeyLeasePeriod (we don't support M_Key)
|
* M_KeyLeasePeriod (we don't support M_Key)
|
||||||
*/
|
*/
|
||||||
|
@@ -53,8 +53,8 @@ module_param_named(cfgports, ipath_cfgports, ushort, S_IRUGO);
|
|||||||
MODULE_PARM_DESC(cfgports, "Set max number of ports to use");
|
MODULE_PARM_DESC(cfgports, "Set max number of ports to use");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Number of buffers reserved for driver (layered drivers and SMA
|
* Number of buffers reserved for driver (verbs and layered drivers.)
|
||||||
* send). Reserved at end of buffer list. Initialized based on
|
* Reserved at end of buffer list. Initialized based on
|
||||||
* number of PIO buffers if not set via module interface.
|
* number of PIO buffers if not set via module interface.
|
||||||
* The problem with this is that it's global, but we'll use different
|
* The problem with this is that it's global, but we'll use different
|
||||||
* numbers for different chip types. So the default value is not
|
* numbers for different chip types. So the default value is not
|
||||||
@@ -80,7 +80,7 @@ MODULE_PARM_DESC(kpiobufs, "Set number of PIO buffers for driver");
|
|||||||
*
|
*
|
||||||
* Allocate the eager TID buffers and program them into infinipath.
|
* Allocate the eager TID buffers and program them into infinipath.
|
||||||
* We use the network layer alloc_skb() allocator to allocate the
|
* We use the network layer alloc_skb() allocator to allocate the
|
||||||
* memory, and either use the buffers as is for things like SMA
|
* memory, and either use the buffers as is for things like verbs
|
||||||
* packets, or pass the buffers up to the ipath layered driver and
|
* packets, or pass the buffers up to the ipath layered driver and
|
||||||
* thence the network layer, replacing them as we do so (see
|
* thence the network layer, replacing them as we do so (see
|
||||||
* ipath_rcv_layer()).
|
* ipath_rcv_layer()).
|
||||||
@@ -450,9 +450,9 @@ static void enable_chip(struct ipath_devdata *dd,
|
|||||||
u32 val;
|
u32 val;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!reinit) {
|
if (!reinit)
|
||||||
init_waitqueue_head(&ipath_sma_state_wait);
|
init_waitqueue_head(&ipath_state_wait);
|
||||||
}
|
|
||||||
ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl,
|
ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl,
|
||||||
dd->ipath_rcvctrl);
|
dd->ipath_rcvctrl);
|
||||||
|
|
||||||
|
@@ -201,7 +201,7 @@ static void handle_e_ibstatuschanged(struct ipath_devdata *dd,
|
|||||||
ib_linkstate(lstate));
|
ib_linkstate(lstate));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ipath_cdbg(SMA, "Unit %u link state %s, last "
|
ipath_cdbg(VERBOSE, "Unit %u link state %s, last "
|
||||||
"was %s\n", dd->ipath_unit,
|
"was %s\n", dd->ipath_unit,
|
||||||
ib_linkstate(lstate),
|
ib_linkstate(lstate),
|
||||||
ib_linkstate((unsigned)
|
ib_linkstate((unsigned)
|
||||||
@@ -213,7 +213,7 @@ static void handle_e_ibstatuschanged(struct ipath_devdata *dd,
|
|||||||
if (lstate == IPATH_IBSTATE_INIT ||
|
if (lstate == IPATH_IBSTATE_INIT ||
|
||||||
lstate == IPATH_IBSTATE_ARM ||
|
lstate == IPATH_IBSTATE_ARM ||
|
||||||
lstate == IPATH_IBSTATE_ACTIVE)
|
lstate == IPATH_IBSTATE_ACTIVE)
|
||||||
ipath_cdbg(SMA, "Unit %u link state down"
|
ipath_cdbg(VERBOSE, "Unit %u link state down"
|
||||||
" (state 0x%x), from %s\n",
|
" (state 0x%x), from %s\n",
|
||||||
dd->ipath_unit,
|
dd->ipath_unit,
|
||||||
(u32)val & IPATH_IBSTATE_MASK,
|
(u32)val & IPATH_IBSTATE_MASK,
|
||||||
@@ -269,7 +269,7 @@ static void handle_e_ibstatuschanged(struct ipath_devdata *dd,
|
|||||||
INFINIPATH_IBCS_LINKSTATE_MASK)
|
INFINIPATH_IBCS_LINKSTATE_MASK)
|
||||||
== INFINIPATH_IBCS_L_STATE_ACTIVE)
|
== INFINIPATH_IBCS_L_STATE_ACTIVE)
|
||||||
/* if from up to down be more vocal */
|
/* if from up to down be more vocal */
|
||||||
ipath_cdbg(SMA,
|
ipath_cdbg(VERBOSE,
|
||||||
"Unit %u link now down (%s)\n",
|
"Unit %u link now down (%s)\n",
|
||||||
dd->ipath_unit,
|
dd->ipath_unit,
|
||||||
ipath_ibcstatus_str[ltstate]);
|
ipath_ibcstatus_str[ltstate]);
|
||||||
@@ -596,11 +596,11 @@ static int handle_errors(struct ipath_devdata *dd, ipath_err_t errs)
|
|||||||
|
|
||||||
if (!noprint && *msg)
|
if (!noprint && *msg)
|
||||||
ipath_dev_err(dd, "%s error\n", msg);
|
ipath_dev_err(dd, "%s error\n", msg);
|
||||||
if (dd->ipath_sma_state_wanted & dd->ipath_flags) {
|
if (dd->ipath_state_wanted & dd->ipath_flags) {
|
||||||
ipath_cdbg(VERBOSE, "sma wanted state %x, iflags now %x, "
|
ipath_cdbg(VERBOSE, "driver wanted state %x, iflags now %x, "
|
||||||
"waking\n", dd->ipath_sma_state_wanted,
|
"waking\n", dd->ipath_state_wanted,
|
||||||
dd->ipath_flags);
|
dd->ipath_flags);
|
||||||
wake_up_interruptible(&ipath_sma_state_wait);
|
wake_up_interruptible(&ipath_state_wait);
|
||||||
}
|
}
|
||||||
|
|
||||||
return chkerrpkts;
|
return chkerrpkts;
|
||||||
|
@@ -245,8 +245,8 @@ struct ipath_devdata {
|
|||||||
u32 ipath_pioavregs;
|
u32 ipath_pioavregs;
|
||||||
/* IPATH_POLL, etc. */
|
/* IPATH_POLL, etc. */
|
||||||
u32 ipath_flags;
|
u32 ipath_flags;
|
||||||
/* ipath_flags sma is waiting for */
|
/* ipath_flags driver is waiting for */
|
||||||
u32 ipath_sma_state_wanted;
|
u32 ipath_state_wanted;
|
||||||
/* last buffer for user use, first buf for kernel use is this
|
/* last buffer for user use, first buf for kernel use is this
|
||||||
* index. */
|
* index. */
|
||||||
u32 ipath_lastport_piobuf;
|
u32 ipath_lastport_piobuf;
|
||||||
@@ -306,10 +306,6 @@ struct ipath_devdata {
|
|||||||
u32 ipath_pcibar0;
|
u32 ipath_pcibar0;
|
||||||
/* so we can rewrite it after a chip reset */
|
/* so we can rewrite it after a chip reset */
|
||||||
u32 ipath_pcibar1;
|
u32 ipath_pcibar1;
|
||||||
/* sequential tries for SMA send and no bufs */
|
|
||||||
u32 ipath_nosma_bufs;
|
|
||||||
/* duration (seconds) ipath_nosma_bufs set */
|
|
||||||
u32 ipath_nosma_secs;
|
|
||||||
|
|
||||||
/* HT/PCI Vendor ID (here for NodeInfo) */
|
/* HT/PCI Vendor ID (here for NodeInfo) */
|
||||||
u16 ipath_vendorid;
|
u16 ipath_vendorid;
|
||||||
@@ -534,7 +530,7 @@ int ipath_diag_add(struct ipath_devdata *);
|
|||||||
void ipath_diag_remove(struct ipath_devdata *);
|
void ipath_diag_remove(struct ipath_devdata *);
|
||||||
void ipath_diag_bringup_link(struct ipath_devdata *);
|
void ipath_diag_bringup_link(struct ipath_devdata *);
|
||||||
|
|
||||||
extern wait_queue_head_t ipath_sma_state_wait;
|
extern wait_queue_head_t ipath_state_wait;
|
||||||
|
|
||||||
int ipath_user_add(struct ipath_devdata *dd);
|
int ipath_user_add(struct ipath_devdata *dd);
|
||||||
void ipath_user_remove(struct ipath_devdata *dd);
|
void ipath_user_remove(struct ipath_devdata *dd);
|
||||||
@@ -818,7 +814,6 @@ extern struct mutex ipath_mutex;
|
|||||||
#define IPATH_DRV_NAME "ib_ipath"
|
#define IPATH_DRV_NAME "ib_ipath"
|
||||||
#define IPATH_MAJOR 233
|
#define IPATH_MAJOR 233
|
||||||
#define IPATH_USER_MINOR_BASE 0
|
#define IPATH_USER_MINOR_BASE 0
|
||||||
#define IPATH_SMA_MINOR 128
|
|
||||||
#define IPATH_DIAG_MINOR_BASE 129
|
#define IPATH_DIAG_MINOR_BASE 129
|
||||||
#define IPATH_NMINORS 255
|
#define IPATH_NMINORS 255
|
||||||
|
|
||||||
|
@@ -162,9 +162,6 @@ int ipath_layer_register(void *(*l_add)(int, struct ipath_devdata *),
|
|||||||
if (dd->ipath_layer.l_arg)
|
if (dd->ipath_layer.l_arg)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!(*dd->ipath_statusp & IPATH_STATUS_SMA))
|
|
||||||
*dd->ipath_statusp |= IPATH_STATUS_OIB_SMA;
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipath_devs_lock, flags);
|
spin_unlock_irqrestore(&ipath_devs_lock, flags);
|
||||||
dd->ipath_layer.l_arg = l_add(dd->ipath_unit, dd);
|
dd->ipath_layer.l_arg = l_add(dd->ipath_unit, dd);
|
||||||
spin_lock_irqsave(&ipath_devs_lock, flags);
|
spin_lock_irqsave(&ipath_devs_lock, flags);
|
||||||
|
@@ -66,9 +66,6 @@ int ipath_layer_set_piointbufavail_int(struct ipath_devdata *dd);
|
|||||||
#define IPATH_LAYER_INT_SEND_CONTINUE 0x10
|
#define IPATH_LAYER_INT_SEND_CONTINUE 0x10
|
||||||
#define IPATH_LAYER_INT_BCAST 0x40
|
#define IPATH_LAYER_INT_BCAST 0x40
|
||||||
|
|
||||||
/* _verbs_layer.l_flags */
|
|
||||||
#define IPATH_VERBS_KERNEL_SMA 0x1
|
|
||||||
|
|
||||||
extern unsigned ipath_debug; /* debugging bit mask */
|
extern unsigned ipath_debug; /* debugging bit mask */
|
||||||
|
|
||||||
#endif /* _IPATH_LAYER_H */
|
#endif /* _IPATH_LAYER_H */
|
||||||
|
@@ -644,33 +644,6 @@ __be32 ipath_compute_aeth(struct ipath_qp *qp)
|
|||||||
return cpu_to_be32(aeth);
|
return cpu_to_be32(aeth);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* set_verbs_flags - set the verbs layer flags
|
|
||||||
* @dd: the infinipath device
|
|
||||||
* @flags: the flags to set
|
|
||||||
*/
|
|
||||||
static int set_verbs_flags(struct ipath_devdata *dd, unsigned flags)
|
|
||||||
{
|
|
||||||
struct ipath_devdata *ss;
|
|
||||||
unsigned long lflags;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&ipath_devs_lock, lflags);
|
|
||||||
|
|
||||||
list_for_each_entry(ss, &ipath_dev_list, ipath_list) {
|
|
||||||
if (!(ss->ipath_flags & IPATH_INITTED))
|
|
||||||
continue;
|
|
||||||
if ((flags & IPATH_VERBS_KERNEL_SMA) &&
|
|
||||||
!(*ss->ipath_statusp & IPATH_STATUS_SMA))
|
|
||||||
*ss->ipath_statusp |= IPATH_STATUS_OIB_SMA;
|
|
||||||
else
|
|
||||||
*ss->ipath_statusp &= ~IPATH_STATUS_OIB_SMA;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ipath_devs_lock, lflags);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ipath_create_qp - create a queue pair for a device
|
* ipath_create_qp - create a queue pair for a device
|
||||||
* @ibpd: the protection domain who's device we create the queue pair for
|
* @ibpd: the protection domain who's device we create the queue pair for
|
||||||
@@ -784,10 +757,6 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
|
|||||||
}
|
}
|
||||||
qp->ip = NULL;
|
qp->ip = NULL;
|
||||||
ipath_reset_qp(qp);
|
ipath_reset_qp(qp);
|
||||||
|
|
||||||
/* Tell the core driver that the kernel SMA is present. */
|
|
||||||
if (init_attr->qp_type == IB_QPT_SMI)
|
|
||||||
set_verbs_flags(dev->dd, IPATH_VERBS_KERNEL_SMA);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -862,10 +831,6 @@ int ipath_destroy_qp(struct ib_qp *ibqp)
|
|||||||
struct ipath_ibdev *dev = to_idev(ibqp->device);
|
struct ipath_ibdev *dev = to_idev(ibqp->device);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
/* Tell the core driver that the kernel SMA is gone. */
|
|
||||||
if (qp->ibqp.qp_type == IB_QPT_SMI)
|
|
||||||
set_verbs_flags(dev->dd, 0);
|
|
||||||
|
|
||||||
spin_lock_irqsave(&qp->s_lock, flags);
|
spin_lock_irqsave(&qp->s_lock, flags);
|
||||||
qp->state = IB_QPS_ERR;
|
qp->state = IB_QPS_ERR;
|
||||||
spin_unlock_irqrestore(&qp->s_lock, flags);
|
spin_unlock_irqrestore(&qp->s_lock, flags);
|
||||||
|
@@ -271,33 +271,6 @@ void ipath_get_faststats(unsigned long opaque)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dd->ipath_nosma_bufs) {
|
|
||||||
dd->ipath_nosma_secs += 5;
|
|
||||||
if (dd->ipath_nosma_secs >= 30) {
|
|
||||||
ipath_cdbg(SMA, "No SMA bufs avail %u seconds; "
|
|
||||||
"cancelling pending sends\n",
|
|
||||||
dd->ipath_nosma_secs);
|
|
||||||
/*
|
|
||||||
* issue an abort as well, in case we have a packet
|
|
||||||
* stuck in launch fifo. This could corrupt an
|
|
||||||
* outgoing user packet in the worst case,
|
|
||||||
* but this is a pretty catastrophic, anyway.
|
|
||||||
*/
|
|
||||||
ipath_write_kreg(dd, dd->ipath_kregs->kr_sendctrl,
|
|
||||||
INFINIPATH_S_ABORT);
|
|
||||||
ipath_disarm_piobufs(dd, dd->ipath_lastport_piobuf,
|
|
||||||
dd->ipath_piobcnt2k +
|
|
||||||
dd->ipath_piobcnt4k -
|
|
||||||
dd->ipath_lastport_piobuf);
|
|
||||||
/* start again, if necessary */
|
|
||||||
dd->ipath_nosma_secs = 0;
|
|
||||||
} else
|
|
||||||
ipath_cdbg(SMA, "No SMA bufs avail %u tries, "
|
|
||||||
"after %u seconds\n",
|
|
||||||
dd->ipath_nosma_bufs,
|
|
||||||
dd->ipath_nosma_secs);
|
|
||||||
}
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
mod_timer(&dd->ipath_stats_timer, jiffies + HZ * 5);
|
mod_timer(&dd->ipath_stats_timer, jiffies + HZ * 5);
|
||||||
}
|
}
|
||||||
|
@@ -107,8 +107,8 @@ static const char *ipath_status_str[] = {
|
|||||||
"Initted",
|
"Initted",
|
||||||
"Disabled",
|
"Disabled",
|
||||||
"Admin_Disabled",
|
"Admin_Disabled",
|
||||||
"OIB_SMA",
|
"", /* This used to be the old "OIB_SMA" status. */
|
||||||
"SMA",
|
"", /* This used to be the old "SMA" status. */
|
||||||
"Present",
|
"Present",
|
||||||
"IB_link_up",
|
"IB_link_up",
|
||||||
"IB_configured",
|
"IB_configured",
|
||||||
|
@@ -1573,7 +1573,7 @@ int ipath_register_ib_device(struct ipath_devdata *dd)
|
|||||||
dev->mmap = ipath_mmap;
|
dev->mmap = ipath_mmap;
|
||||||
|
|
||||||
snprintf(dev->node_desc, sizeof(dev->node_desc),
|
snprintf(dev->node_desc, sizeof(dev->node_desc),
|
||||||
IPATH_IDSTR " %s kernel_SMA", system_utsname.nodename);
|
IPATH_IDSTR " %s", system_utsname.nodename);
|
||||||
|
|
||||||
ret = ib_register_device(dev);
|
ret = ib_register_device(dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Reference in New Issue
Block a user