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
b0f43dcc
Commit
b0f43dcc
authored
Dec 01, 2008
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'ehca' and 'mlx4' into for-linus
parents
7ec4f463
42ab01c3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
53 additions
and
1 deletion
+53
-1
drivers/infiniband/hw/mlx4/cq.c
drivers/infiniband/hw/mlx4/cq.c
+5
-0
drivers/net/mlx4/main.c
drivers/net/mlx4/main.c
+8
-0
drivers/net/mlx4/mlx4.h
drivers/net/mlx4/mlx4.h
+1
-0
drivers/net/mlx4/port.c
drivers/net/mlx4/port.c
+38
-1
include/linux/mlx4/device.h
include/linux/mlx4/device.h
+1
-0
No files found.
drivers/infiniband/hw/mlx4/cq.c
View file @
b0f43dcc
...
...
@@ -343,6 +343,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
{
struct
mlx4_ib_dev
*
dev
=
to_mdev
(
ibcq
->
device
);
struct
mlx4_ib_cq
*
cq
=
to_mcq
(
ibcq
);
struct
mlx4_mtt
mtt
;
int
outst_cqe
;
int
err
;
...
...
@@ -376,10 +377,13 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto
out
;
}
mtt
=
cq
->
buf
.
mtt
;
err
=
mlx4_cq_resize
(
dev
->
dev
,
&
cq
->
mcq
,
entries
,
&
cq
->
resize_buf
->
buf
.
mtt
);
if
(
err
)
goto
err_buf
;
mlx4_mtt_cleanup
(
dev
->
dev
,
&
mtt
);
if
(
ibcq
->
uobject
)
{
cq
->
buf
=
cq
->
resize_buf
->
buf
;
cq
->
ibcq
.
cqe
=
cq
->
resize_buf
->
cqe
;
...
...
@@ -406,6 +410,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
goto
out
;
err_buf:
mlx4_mtt_cleanup
(
dev
->
dev
,
&
cq
->
resize_buf
->
buf
.
mtt
);
if
(
!
ibcq
->
uobject
)
mlx4_ib_free_cq_buf
(
dev
,
&
cq
->
resize_buf
->
buf
,
cq
->
resize_buf
->
cqe
);
...
...
drivers/net/mlx4/main.c
View file @
b0f43dcc
...
...
@@ -753,6 +753,7 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
struct
mlx4_priv
*
priv
=
mlx4_priv
(
dev
);
int
err
;
int
port
;
__be32
ib_port_default_caps
;
err
=
mlx4_init_uar_table
(
dev
);
if
(
err
)
{
...
...
@@ -852,6 +853,13 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
}
for
(
port
=
1
;
port
<=
dev
->
caps
.
num_ports
;
port
++
)
{
ib_port_default_caps
=
0
;
err
=
mlx4_get_port_ib_caps
(
dev
,
port
,
&
ib_port_default_caps
);
if
(
err
)
mlx4_warn
(
dev
,
"failed to get port %d default "
"ib capabilities (%d). Continuing with "
"caps = 0
\n
"
,
port
,
err
);
dev
->
caps
.
ib_port_def_cap
[
port
]
=
ib_port_default_caps
;
err
=
mlx4_SET_PORT
(
dev
,
port
);
if
(
err
)
{
mlx4_err
(
dev
,
"Failed to set port %d, aborting
\n
"
,
...
...
drivers/net/mlx4/mlx4.h
View file @
b0f43dcc
...
...
@@ -385,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table);
void
mlx4_init_vlan_table
(
struct
mlx4_dev
*
dev
,
struct
mlx4_vlan_table
*
table
);
int
mlx4_SET_PORT
(
struct
mlx4_dev
*
dev
,
u8
port
);
int
mlx4_get_port_ib_caps
(
struct
mlx4_dev
*
dev
,
u8
port
,
__be32
*
caps
);
#endif
/* MLX4_H */
drivers/net/mlx4/port.c
View file @
b0f43dcc
...
...
@@ -258,6 +258,42 @@ void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index)
}
EXPORT_SYMBOL_GPL
(
mlx4_unregister_vlan
);
int
mlx4_get_port_ib_caps
(
struct
mlx4_dev
*
dev
,
u8
port
,
__be32
*
caps
)
{
struct
mlx4_cmd_mailbox
*
inmailbox
,
*
outmailbox
;
u8
*
inbuf
,
*
outbuf
;
int
err
;
inmailbox
=
mlx4_alloc_cmd_mailbox
(
dev
);
if
(
IS_ERR
(
inmailbox
))
return
PTR_ERR
(
inmailbox
);
outmailbox
=
mlx4_alloc_cmd_mailbox
(
dev
);
if
(
IS_ERR
(
outmailbox
))
{
mlx4_free_cmd_mailbox
(
dev
,
inmailbox
);
return
PTR_ERR
(
outmailbox
);
}
inbuf
=
inmailbox
->
buf
;
outbuf
=
outmailbox
->
buf
;
memset
(
inbuf
,
0
,
256
);
memset
(
outbuf
,
0
,
256
);
inbuf
[
0
]
=
1
;
inbuf
[
1
]
=
1
;
inbuf
[
2
]
=
1
;
inbuf
[
3
]
=
1
;
*
(
__be16
*
)
(
&
inbuf
[
16
])
=
cpu_to_be16
(
0x0015
);
*
(
__be32
*
)
(
&
inbuf
[
20
])
=
cpu_to_be32
(
port
);
err
=
mlx4_cmd_box
(
dev
,
inmailbox
->
dma
,
outmailbox
->
dma
,
port
,
3
,
MLX4_CMD_MAD_IFC
,
MLX4_CMD_TIME_CLASS_C
);
if
(
!
err
)
*
caps
=
*
(
__be32
*
)
(
outbuf
+
84
);
mlx4_free_cmd_mailbox
(
dev
,
inmailbox
);
mlx4_free_cmd_mailbox
(
dev
,
outmailbox
);
return
err
;
}
int
mlx4_SET_PORT
(
struct
mlx4_dev
*
dev
,
u8
port
)
{
struct
mlx4_cmd_mailbox
*
mailbox
;
...
...
@@ -273,7 +309,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
((
u8
*
)
mailbox
->
buf
)[
3
]
=
6
;
((
__be16
*
)
mailbox
->
buf
)[
4
]
=
cpu_to_be16
(
1
<<
15
);
((
__be16
*
)
mailbox
->
buf
)[
6
]
=
cpu_to_be16
(
1
<<
15
);
}
}
else
((
__be32
*
)
mailbox
->
buf
)[
1
]
=
dev
->
caps
.
ib_port_def_cap
[
port
];
err
=
mlx4_cmd
(
dev
,
mailbox
->
dma
,
port
,
is_eth
,
MLX4_CMD_SET_PORT
,
MLX4_CMD_TIME_CLASS_B
);
...
...
include/linux/mlx4/device.h
View file @
b0f43dcc
...
...
@@ -179,6 +179,7 @@ struct mlx4_caps {
int
num_ports
;
int
vl_cap
[
MLX4_MAX_PORTS
+
1
];
int
ib_mtu_cap
[
MLX4_MAX_PORTS
+
1
];
__be32
ib_port_def_cap
[
MLX4_MAX_PORTS
+
1
];
u64
def_mac
[
MLX4_MAX_PORTS
+
1
];
int
eth_mtu_cap
[
MLX4_MAX_PORTS
+
1
];
int
gid_table_len
[
MLX4_MAX_PORTS
+
1
];
...
...
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