Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
8c9ea7fe
Commit
8c9ea7fe
authored
Jan 12, 2009
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'ehca', 'ipoib', 'iser', 'mlx4' and 'nes' into for-next
parents
7ddccb23
50df48f5
f5eb3b76
22e7ef9c
03080e5c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
46 additions
and
30 deletions
+46
-30
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx4/main.c
+9
-4
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.c
+9
-3
drivers/infiniband/hw/nes/nes_utils.c
drivers/infiniband/hw/nes/nes_utils.c
+3
-1
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
+19
-19
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+3
-0
drivers/infiniband/ulp/iser/Kconfig
drivers/infiniband/ulp/iser/Kconfig
+1
-1
drivers/net/mlx4/main.c
drivers/net/mlx4/main.c
+2
-2
No files found.
drivers/infiniband/hw/mlx4/main.c
View file @
8c9ea7fe
...
@@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
...
@@ -543,14 +543,21 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
{
{
static
int
mlx4_ib_version_printed
;
static
int
mlx4_ib_version_printed
;
struct
mlx4_ib_dev
*
ibdev
;
struct
mlx4_ib_dev
*
ibdev
;
int
num_ports
=
0
;
int
i
;
int
i
;
if
(
!
mlx4_ib_version_printed
)
{
if
(
!
mlx4_ib_version_printed
)
{
printk
(
KERN_INFO
"%s"
,
mlx4_ib_version
);
printk
(
KERN_INFO
"%s"
,
mlx4_ib_version
);
++
mlx4_ib_version_printed
;
++
mlx4_ib_version_printed
;
}
}
mlx4_foreach_port
(
i
,
dev
,
MLX4_PORT_TYPE_IB
)
num_ports
++
;
/* No point in registering a device with no ports... */
if
(
num_ports
==
0
)
return
NULL
;
ibdev
=
(
struct
mlx4_ib_dev
*
)
ib_alloc_device
(
sizeof
*
ibdev
);
ibdev
=
(
struct
mlx4_ib_dev
*
)
ib_alloc_device
(
sizeof
*
ibdev
);
if
(
!
ibdev
)
{
if
(
!
ibdev
)
{
dev_err
(
&
dev
->
pdev
->
dev
,
"Device struct alloc failed
\n
"
);
dev_err
(
&
dev
->
pdev
->
dev
,
"Device struct alloc failed
\n
"
);
...
@@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
...
@@ -574,9 +581,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
ibdev
->
ib_dev
.
owner
=
THIS_MODULE
;
ibdev
->
ib_dev
.
owner
=
THIS_MODULE
;
ibdev
->
ib_dev
.
node_type
=
RDMA_NODE_IB_CA
;
ibdev
->
ib_dev
.
node_type
=
RDMA_NODE_IB_CA
;
ibdev
->
ib_dev
.
local_dma_lkey
=
dev
->
caps
.
reserved_lkey
;
ibdev
->
ib_dev
.
local_dma_lkey
=
dev
->
caps
.
reserved_lkey
;
ibdev
->
num_ports
=
0
;
ibdev
->
num_ports
=
num_ports
;
mlx4_foreach_port
(
i
,
dev
,
MLX4_PORT_TYPE_IB
)
ibdev
->
num_ports
++
;
ibdev
->
ib_dev
.
phys_port_cnt
=
ibdev
->
num_ports
;
ibdev
->
ib_dev
.
phys_port_cnt
=
ibdev
->
num_ports
;
ibdev
->
ib_dev
.
num_comp_vectors
=
dev
->
caps
.
num_comp_vectors
;
ibdev
->
ib_dev
.
num_comp_vectors
=
dev
->
caps
.
num_comp_vectors
;
ibdev
->
ib_dev
.
dma_device
=
&
dev
->
pdev
->
dev
;
ibdev
->
ib_dev
.
dma_device
=
&
dev
->
pdev
->
dev
;
...
...
drivers/infiniband/hw/nes/nes_cm.c
View file @
8c9ea7fe
...
@@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
...
@@ -778,12 +778,13 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
unsigned
long
flags
;
unsigned
long
flags
;
struct
list_head
*
hte
;
struct
list_head
*
hte
;
struct
nes_cm_node
*
cm_node
;
struct
nes_cm_node
*
cm_node
;
__be32
tmp_addr
=
cpu_to_be32
(
loc_addr
);
/* get a handle on the hte */
/* get a handle on the hte */
hte
=
&
cm_core
->
connected_nodes
;
hte
=
&
cm_core
->
connected_nodes
;
nes_debug
(
NES_DBG_CM
,
"Searching for an owner node: %pI4:%x from core %p->%p
\n
"
,
nes_debug
(
NES_DBG_CM
,
"Searching for an owner node: %pI4:%x from core %p->%p
\n
"
,
&
loc
_addr
,
loc_port
,
cm_core
,
hte
);
&
tmp
_addr
,
loc_port
,
cm_core
,
hte
);
/* walk list and find cm_node associated with this session ID */
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave
(
&
cm_core
->
ht_lock
,
flags
);
spin_lock_irqsave
(
&
cm_core
->
ht_lock
,
flags
);
...
@@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
...
@@ -816,6 +817,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
{
{
unsigned
long
flags
;
unsigned
long
flags
;
struct
nes_cm_listener
*
listen_node
;
struct
nes_cm_listener
*
listen_node
;
__be32
tmp_addr
=
cpu_to_be32
(
dst_addr
);
/* walk list and find cm_node associated with this session ID */
/* walk list and find cm_node associated with this session ID */
spin_lock_irqsave
(
&
cm_core
->
listen_list_lock
,
flags
);
spin_lock_irqsave
(
&
cm_core
->
listen_list_lock
,
flags
);
...
@@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
...
@@ -833,7 +835,7 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
spin_unlock_irqrestore
(
&
cm_core
->
listen_list_lock
,
flags
);
spin_unlock_irqrestore
(
&
cm_core
->
listen_list_lock
,
flags
);
nes_debug
(
NES_DBG_CM
,
"Unable to find listener for %pI4:%x
\n
"
,
nes_debug
(
NES_DBG_CM
,
"Unable to find listener for %pI4:%x
\n
"
,
&
dst
_addr
,
dst_port
);
&
tmp
_addr
,
dst_port
);
/* no listener */
/* no listener */
return
NULL
;
return
NULL
;
...
@@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
...
@@ -2059,6 +2061,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
struct
tcphdr
*
tcph
;
struct
tcphdr
*
tcph
;
struct
nes_cm_info
nfo
;
struct
nes_cm_info
nfo
;
int
skb_handled
=
1
;
int
skb_handled
=
1
;
__be32
tmp_daddr
,
tmp_saddr
;
if
(
!
skb
)
if
(
!
skb
)
return
0
;
return
0
;
...
@@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
...
@@ -2074,8 +2077,11 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
nfo
.
rem_addr
=
ntohl
(
iph
->
saddr
);
nfo
.
rem_addr
=
ntohl
(
iph
->
saddr
);
nfo
.
rem_port
=
ntohs
(
tcph
->
source
);
nfo
.
rem_port
=
ntohs
(
tcph
->
source
);
tmp_daddr
=
cpu_to_be32
(
iph
->
daddr
);
tmp_saddr
=
cpu_to_be32
(
iph
->
saddr
);
nes_debug
(
NES_DBG_CM
,
"Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X
\n
"
,
nes_debug
(
NES_DBG_CM
,
"Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X
\n
"
,
&
iph
->
daddr
,
tcph
->
dest
,
&
iph
->
saddr
,
tcph
->
source
);
&
tmp_daddr
,
tcph
->
dest
,
&
tmp_
saddr
,
tcph
->
source
);
do
{
do
{
cm_node
=
find_node
(
cm_core
,
cm_node
=
find_node
(
cm_core
,
...
...
drivers/infiniband/hw/nes/nes_utils.c
View file @
8c9ea7fe
...
@@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
...
@@ -655,6 +655,7 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
struct
nes_adapter
*
nesadapter
=
nesdev
->
nesadapter
;
struct
nes_adapter
*
nesadapter
=
nesdev
->
nesadapter
;
int
arp_index
;
int
arp_index
;
int
err
=
0
;
int
err
=
0
;
__be32
tmp_addr
;
for
(
arp_index
=
0
;
(
u32
)
arp_index
<
nesadapter
->
arp_table_size
;
arp_index
++
)
{
for
(
arp_index
=
0
;
(
u32
)
arp_index
<
nesadapter
->
arp_table_size
;
arp_index
++
)
{
if
(
nesadapter
->
arp_table
[
arp_index
].
ip_addr
==
ip_addr
)
if
(
nesadapter
->
arp_table
[
arp_index
].
ip_addr
==
ip_addr
)
...
@@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
...
@@ -682,8 +683,9 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
/* DELETE or RESOLVE */
/* DELETE or RESOLVE */
if
(
arp_index
==
nesadapter
->
arp_table_size
)
{
if
(
arp_index
==
nesadapter
->
arp_table_size
)
{
tmp_addr
=
cpu_to_be32
(
ip_addr
);
nes_debug
(
NES_DBG_NETDEV
,
"MAC for %pI4 not in ARP table - cannot %s
\n
"
,
nes_debug
(
NES_DBG_NETDEV
,
"MAC for %pI4 not in ARP table - cannot %s
\n
"
,
&
i
p_addr
,
action
==
NES_ARP_RESOLVE
?
"resolve"
:
"delete"
);
&
tm
p_addr
,
action
==
NES_ARP_RESOLVE
?
"resolve"
:
"delete"
);
return
-
1
;
return
-
1
;
}
}
...
...
drivers/infiniband/ulp/ipoib/ipoib_main.c
View file @
8c9ea7fe
...
@@ -711,26 +711,26 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
...
@@ -711,26 +711,26 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
neigh
=
*
to_ipoib_neigh
(
skb
->
dst
->
neighbour
);
neigh
=
*
to_ipoib_neigh
(
skb
->
dst
->
neighbour
);
if
(
neigh
->
ah
)
if
(
unlikely
((
memcmp
(
&
neigh
->
dgid
.
raw
,
if
(
unlikely
((
memcmp
(
&
neigh
->
dgid
.
raw
,
skb
->
dst
->
neighbour
->
ha
+
4
,
skb
->
dst
->
neighbour
->
ha
+
4
,
sizeof
(
union
ib_gid
)))
||
sizeof
(
union
ib_gid
)))
||
(
neigh
->
dev
!=
dev
)))
{
(
neigh
->
dev
!=
dev
)))
{
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
/*
/*
* It's safe to call ipoib_put_ah() inside
* It's safe to call ipoib_put_ah() inside
* priv->lock here, because we know that
* priv->lock here, because we know that
* path->ah will always hold one more reference,
* path->ah will always hold one more reference,
* so ipoib_put_ah() will never do more than
* so ipoib_put_ah() will never do more than
* decrement the ref count.
* decrement the ref count.
*/
*/
if
(
neigh
->
ah
)
ipoib_put_ah
(
neigh
->
ah
);
ipoib_put_ah
(
neigh
->
ah
);
list_del
(
&
neigh
->
list
);
list_del
(
&
neigh
->
list
);
ipoib_neigh_free
(
dev
,
neigh
);
ipoib_neigh_free
(
dev
,
neigh
);
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
ipoib_path_lookup
(
skb
,
dev
);
ipoib_path_lookup
(
skb
,
dev
);
return
NETDEV_TX_OK
;
return
NETDEV_TX_OK
;
}
}
if
(
ipoib_cm_get
(
neigh
))
{
if
(
ipoib_cm_get
(
neigh
))
{
if
(
ipoib_cm_up
(
neigh
))
{
if
(
ipoib_cm_up
(
neigh
))
{
...
...
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
View file @
8c9ea7fe
...
@@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work)
...
@@ -529,6 +529,9 @@ void ipoib_mcast_join_task(struct work_struct *work)
if
(
!
priv
->
broadcast
)
{
if
(
!
priv
->
broadcast
)
{
struct
ipoib_mcast
*
broadcast
;
struct
ipoib_mcast
*
broadcast
;
if
(
!
test_bit
(
IPOIB_FLAG_ADMIN_UP
,
&
priv
->
flags
))
return
;
broadcast
=
ipoib_mcast_alloc
(
dev
,
1
);
broadcast
=
ipoib_mcast_alloc
(
dev
,
1
);
if
(
!
broadcast
)
{
if
(
!
broadcast
)
{
ipoib_warn
(
priv
,
"failed to allocate broadcast group
\n
"
);
ipoib_warn
(
priv
,
"failed to allocate broadcast group
\n
"
);
...
...
drivers/infiniband/ulp/iser/Kconfig
View file @
8c9ea7fe
config INFINIBAND_ISER
config INFINIBAND_ISER
tristate "iSCSI Extensions for RDMA (iSER)"
tristate "iSCSI Extensions for RDMA (iSER)"
depends on SCSI && INET
depends on SCSI && INET
&& INFINIBAND_ADDR_TRANS
select SCSI_ISCSI_ATTRS
select SCSI_ISCSI_ATTRS
---help---
---help---
Support for the iSCSI Extensions for RDMA (iSER) Protocol
Support for the iSCSI Extensions for RDMA (iSER) Protocol
...
...
drivers/net/mlx4/main.c
View file @
8c9ea7fe
...
@@ -912,8 +912,8 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
...
@@ -912,8 +912,8 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
int
i
;
int
i
;
if
(
msi_x
)
{
if
(
msi_x
)
{
nreq
=
min
(
dev
->
caps
.
num_eqs
-
dev
->
caps
.
reserved_eqs
,
nreq
=
min
_t
(
int
,
dev
->
caps
.
num_eqs
-
dev
->
caps
.
reserved_eqs
,
num_possible_cpus
()
+
1
);
num_possible_cpus
()
+
1
);
entries
=
kcalloc
(
nreq
,
sizeof
*
entries
,
GFP_KERNEL
);
entries
=
kcalloc
(
nreq
,
sizeof
*
entries
,
GFP_KERNEL
);
if
(
!
entries
)
if
(
!
entries
)
goto
no_msi
;
goto
no_msi
;
...
...
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