Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
0636b33c
Commit
0636b33c
authored
Mar 12, 2010
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'cxgb3', 'ipoib', 'misc' and 'nes' into for-next
parents
69960a27
a48f509b
070e140c
a72042c0
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
53 additions
and
9 deletions
+53
-9
drivers/infiniband/core/mad.c
drivers/infiniband/core/mad.c
+3
-0
drivers/infiniband/hw/nes/nes_hw.c
drivers/infiniband/hw/nes/nes_hw.c
+8
-0
drivers/infiniband/hw/nes/nes_hw.h
drivers/infiniband/hw/nes/nes_hw.h
+1
-0
drivers/infiniband/hw/nes/nes_nic.c
drivers/infiniband/hw/nes/nes_nic.c
+28
-2
drivers/infiniband/hw/nes/nes_verbs.c
drivers/infiniband/hw/nes/nes_verbs.c
+1
-0
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_cm.c
+7
-3
drivers/infiniband/ulp/ipoib/ipoib_ib.c
drivers/infiniband/ulp/ipoib/ipoib_ib.c
+5
-4
No files found.
drivers/infiniband/core/mad.c
View file @
0636b33c
...
...
@@ -2953,6 +2953,9 @@ static void ib_mad_remove_device(struct ib_device *device)
{
int
i
,
num_ports
,
cur_port
;
if
(
rdma_node_get_transport
(
device
->
node_type
)
!=
RDMA_TRANSPORT_IB
)
return
;
if
(
device
->
node_type
==
RDMA_NODE_IB_SWITCH
)
{
num_ports
=
1
;
cur_port
=
0
;
...
...
drivers/infiniband/hw/nes/nes_hw.c
View file @
0636b33c
...
...
@@ -1899,9 +1899,14 @@ void nes_destroy_nic_qp(struct nes_vnic *nesvnic)
u16
wqe_fragment_index
;
u64
wqe_frag
;
u32
cqp_head
;
u32
wqm_cfg0
;
unsigned
long
flags
;
int
ret
;
/* clear wqe stall before destroying NIC QP */
wqm_cfg0
=
nes_read_indexed
(
nesdev
,
NES_IDX_WQM_CONFIG0
);
nes_write_indexed
(
nesdev
,
NES_IDX_WQM_CONFIG0
,
wqm_cfg0
&
0xFFFF7FFF
);
/* Free remaining NIC receive buffers */
while
(
nesvnic
->
nic
.
rq_head
!=
nesvnic
->
nic
.
rq_tail
)
{
nic_rqe
=
&
nesvnic
->
nic
.
rq_vbase
[
nesvnic
->
nic
.
rq_tail
];
...
...
@@ -2020,6 +2025,9 @@ void nes_destroy_nic_qp(struct nes_vnic *nesvnic)
pci_free_consistent
(
nesdev
->
pcidev
,
nesvnic
->
nic_mem_size
,
nesvnic
->
nic_vbase
,
nesvnic
->
nic_pbase
);
/* restore old wqm_cfg0 value */
nes_write_indexed
(
nesdev
,
NES_IDX_WQM_CONFIG0
,
wqm_cfg0
);
}
/**
...
...
drivers/infiniband/hw/nes/nes_hw.h
View file @
0636b33c
...
...
@@ -160,6 +160,7 @@ enum indexed_regs {
NES_IDX_ENDNODE0_NSTAT_TX_OCTETS_HI
=
0x7004
,
NES_IDX_ENDNODE0_NSTAT_TX_FRAMES_LO
=
0x7008
,
NES_IDX_ENDNODE0_NSTAT_TX_FRAMES_HI
=
0x700c
,
NES_IDX_WQM_CONFIG0
=
0x5000
,
NES_IDX_WQM_CONFIG1
=
0x5004
,
NES_IDX_CM_CONFIG
=
0x5100
,
NES_IDX_NIC_LOGPORT_TO_PHYPORT
=
0x6000
,
...
...
drivers/infiniband/hw/nes/nes_nic.c
View file @
0636b33c
...
...
@@ -1595,7 +1595,6 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
struct
nes_vnic
*
nesvnic
;
struct
net_device
*
netdev
;
struct
nic_qp_map
*
curr_qp_map
;
u32
u32temp
;
u8
phy_type
=
nesdev
->
nesadapter
->
phy_type
[
nesdev
->
mac_index
];
netdev
=
alloc_etherdev
(
sizeof
(
struct
nes_vnic
));
...
...
@@ -1707,6 +1706,10 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
((
phy_type
==
NES_PHY_TYPE_PUMA_1G
)
&&
(((
PCI_FUNC
(
nesdev
->
pcidev
->
devfn
)
==
1
)
&&
(
nesdev
->
mac_index
==
2
))
||
((
PCI_FUNC
(
nesdev
->
pcidev
->
devfn
)
==
2
)
&&
(
nesdev
->
mac_index
==
1
))))))
{
u32
u32temp
;
u32
link_mask
;
u32
link_val
;
u32temp
=
nes_read_indexed
(
nesdev
,
NES_IDX_PHY_PCS_CONTROL_STATUS0
+
(
0x200
*
(
nesdev
->
mac_index
&
1
)));
if
(
phy_type
!=
NES_PHY_TYPE_PUMA_1G
)
{
...
...
@@ -1715,13 +1718,36 @@ struct net_device *nes_netdev_init(struct nes_device *nesdev,
(
0x200
*
(
nesdev
->
mac_index
&
1
)),
u32temp
);
}
/* Check and set linkup here. This is for back to back */
/* configuration where second port won't get link interrupt */
switch
(
phy_type
)
{
case
NES_PHY_TYPE_PUMA_1G
:
if
(
nesdev
->
mac_index
<
2
)
{
link_mask
=
0x01010000
;
link_val
=
0x01010000
;
}
else
{
link_mask
=
0x02020000
;
link_val
=
0x02020000
;
}
break
;
default:
link_mask
=
0x0f1f0000
;
link_val
=
0x0f0f0000
;
break
;
}
u32temp
=
nes_read_indexed
(
nesdev
,
NES_IDX_PHY_PCS_CONTROL_STATUS0
+
(
0x200
*
(
nesdev
->
mac_index
&
1
)));
if
((
u32temp
&
link_mask
)
==
link_val
)
nesvnic
->
linkup
=
1
;
/* clear the MAC interrupt status, assumes direct logical to physical mapping */
u32temp
=
nes_read_indexed
(
nesdev
,
NES_IDX_MAC_INT_STATUS
+
(
0x200
*
nesdev
->
mac_index
));
nes_debug
(
NES_DBG_INIT
,
"Phy interrupt status = 0x%X.
\n
"
,
u32temp
);
nes_write_indexed
(
nesdev
,
NES_IDX_MAC_INT_STATUS
+
(
0x200
*
nesdev
->
mac_index
),
u32temp
);
nes_init_phy
(
nesdev
);
}
return
netdev
;
...
...
drivers/infiniband/hw/nes/nes_verbs.c
View file @
0636b33c
...
...
@@ -1323,6 +1323,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
nesqp
->
nesqp_context
->
aeq_token_low
=
cpu_to_le32
((
u32
)((
unsigned
long
)(
nesqp
)));
nesqp
->
nesqp_context
->
aeq_token_high
=
cpu_to_le32
((
u32
)(
upper_32_bits
((
unsigned
long
)(
nesqp
))));
nesqp
->
nesqp_context
->
ird_ord_sizes
=
cpu_to_le32
(
NES_QPCONTEXT_ORDIRD_ALSMM
|
NES_QPCONTEXT_ORDIRD_AAH
|
((((
u32
)
nesadapter
->
max_irrq_wr
)
<<
NES_QPCONTEXT_ORDIRD_IRDSIZE_SHIFT
)
&
NES_QPCONTEXT_ORDIRD_IRDSIZE_MASK
));
if
(
disable_mpa_crc
)
{
...
...
drivers/infiniband/ulp/ipoib/ipoib_cm.c
View file @
0636b33c
...
...
@@ -708,6 +708,7 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
struct
ipoib_cm_tx_buf
*
tx_req
;
u64
addr
;
int
rc
;
if
(
unlikely
(
skb
->
len
>
tx
->
mtu
))
{
ipoib_warn
(
priv
,
"packet len %d (> %d) too long to send, dropping
\n
"
,
...
...
@@ -739,9 +740,10 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
tx_req
->
mapping
=
addr
;
if
(
unlikely
(
post_send
(
priv
,
tx
,
tx
->
tx_head
&
(
ipoib_sendq_size
-
1
),
addr
,
skb
->
len
)))
{
ipoib_warn
(
priv
,
"post_send failed
\n
"
);
rc
=
post_send
(
priv
,
tx
,
tx
->
tx_head
&
(
ipoib_sendq_size
-
1
),
addr
,
skb
->
len
);
if
(
unlikely
(
rc
))
{
ipoib_warn
(
priv
,
"post_send failed, error %d
\n
"
,
rc
);
++
dev
->
stats
.
tx_errors
;
ib_dma_unmap_single
(
priv
->
ca
,
addr
,
skb
->
len
,
DMA_TO_DEVICE
);
dev_kfree_skb_any
(
skb
);
...
...
@@ -752,6 +754,8 @@ void ipoib_cm_send(struct net_device *dev, struct sk_buff *skb, struct ipoib_cm_
if
(
++
priv
->
tx_outstanding
==
ipoib_sendq_size
)
{
ipoib_dbg
(
priv
,
"TX ring 0x%x full, stopping kernel net queue
\n
"
,
tx
->
qp
->
qp_num
);
if
(
ib_req_notify_cq
(
priv
->
send_cq
,
IB_CQ_NEXT_COMP
))
ipoib_warn
(
priv
,
"request notify on send CQ failed
\n
"
);
netif_stop_queue
(
dev
);
}
}
...
...
drivers/infiniband/ulp/ipoib/ipoib_ib.c
View file @
0636b33c
...
...
@@ -529,7 +529,7 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
{
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
struct
ipoib_tx_buf
*
tx_req
;
int
hlen
;
int
hlen
,
rc
;
void
*
phead
;
if
(
skb_is_gso
(
skb
))
{
...
...
@@ -585,9 +585,10 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
netif_stop_queue
(
dev
);
}
if
(
unlikely
(
post_send
(
priv
,
priv
->
tx_head
&
(
ipoib_sendq_size
-
1
),
address
->
ah
,
qpn
,
tx_req
,
phead
,
hlen
)))
{
ipoib_warn
(
priv
,
"post_send failed
\n
"
);
rc
=
post_send
(
priv
,
priv
->
tx_head
&
(
ipoib_sendq_size
-
1
),
address
->
ah
,
qpn
,
tx_req
,
phead
,
hlen
);
if
(
unlikely
(
rc
))
{
ipoib_warn
(
priv
,
"post_send failed, error %d
\n
"
,
rc
);
++
dev
->
stats
.
tx_errors
;
--
priv
->
tx_outstanding
;
ipoib_dma_unmap_tx
(
priv
->
ca
,
tx_req
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment