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
fe8875e5
Commit
fe8875e5
authored
Mar 01, 2010
by
Roland Dreier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'misc' into for-next
Conflicts: drivers/infiniband/core/uverbs_main.c
parents
f5772150
a265e558
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
15 additions
and
71 deletions
+15
-71
drivers/infiniband/Kconfig
drivers/infiniband/Kconfig
+1
-0
drivers/infiniband/core/ud_header.c
drivers/infiniband/core/ud_header.c
+4
-10
drivers/infiniband/core/umem.c
drivers/infiniband/core/umem.c
+1
-1
drivers/infiniband/core/uverbs_main.c
drivers/infiniband/core/uverbs_main.c
+5
-56
drivers/infiniband/hw/ipath/ipath_user_pages.c
drivers/infiniband/hw/ipath/ipath_user_pages.c
+1
-2
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/mlx4/qp.c
+1
-1
drivers/infiniband/hw/mthca/mthca_qp.c
drivers/infiniband/hw/mthca/mthca_qp.c
+1
-1
include/rdma/ib_pack.h
include/rdma/ib_pack.h
+1
-0
No files found.
drivers/infiniband/Kconfig
View file @
fe8875e5
...
...
@@ -20,6 +20,7 @@ config INFINIBAND_USER_MAD
config INFINIBAND_USER_ACCESS
tristate "InfiniBand userspace access (verbs and CM)"
select ANON_INODES
---help---
Userspace InfiniBand access support. This enables the
kernel side of userspace verbs and the userspace
...
...
drivers/infiniband/core/ud_header.c
View file @
fe8875e5
...
...
@@ -181,6 +181,7 @@ static const struct ib_field deth_table[] = {
* ib_ud_header_init - Initialize UD header structure
* @payload_bytes:Length of packet payload
* @grh_present:GRH flag (if non-zero, GRH will be included)
* @immediate_present: specify if immediate data should be used
* @header:Structure to initialize
*
* ib_ud_header_init() initializes the lrh.link_version, lrh.link_next_header,
...
...
@@ -191,21 +192,13 @@ static const struct ib_field deth_table[] = {
*/
void
ib_ud_header_init
(
int
payload_bytes
,
int
grh_present
,
int
immediate_present
,
struct
ib_ud_header
*
header
)
{
int
header_len
;
u16
packet_length
;
memset
(
header
,
0
,
sizeof
*
header
);
header_len
=
IB_LRH_BYTES
+
IB_BTH_BYTES
+
IB_DETH_BYTES
;
if
(
grh_present
)
{
header_len
+=
IB_GRH_BYTES
;
}
header
->
lrh
.
link_version
=
0
;
header
->
lrh
.
link_next_header
=
grh_present
?
IB_LNH_IBA_GLOBAL
:
IB_LNH_IBA_LOCAL
;
...
...
@@ -231,7 +224,8 @@ void ib_ud_header_init(int payload_bytes,
header
->
lrh
.
packet_length
=
cpu_to_be16
(
packet_length
);
if
(
header
->
immediate_present
)
header
->
immediate_present
=
immediate_present
;
if
(
immediate_present
)
header
->
bth
.
opcode
=
IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE
;
else
header
->
bth
.
opcode
=
IB_OPCODE_UD_SEND_ONLY
;
...
...
drivers/infiniband/core/umem.c
View file @
fe8875e5
...
...
@@ -136,7 +136,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
down_write
(
&
current
->
mm
->
mmap_sem
);
locked
=
npages
+
current
->
mm
->
locked_vm
;
lock_limit
=
current
->
signal
->
rlim
[
RLIMIT_MEMLOCK
].
rlim_cur
>>
PAGE_SHIFT
;
lock_limit
=
rlimit
(
RLIMIT_MEMLOCK
)
>>
PAGE_SHIFT
;
if
((
locked
>
lock_limit
)
&&
!
capable
(
CAP_IPC_LOCK
))
{
ret
=
-
ENOMEM
;
...
...
drivers/infiniband/core/uverbs_main.c
View file @
fe8875e5
...
...
@@ -42,7 +42,8 @@
#include <linux/poll.h>
#include <linux/sched.h>
#include <linux/file.h>
#include <linux/mount.h>
#include <linux/cdev.h>
#include <linux/anon_inodes.h>
#include <asm/uaccess.h>
...
...
@@ -52,8 +53,6 @@ MODULE_AUTHOR("Roland Dreier");
MODULE_DESCRIPTION
(
"InfiniBand userspace verbs access"
);
MODULE_LICENSE
(
"Dual BSD/GPL"
);
#define INFINIBANDEVENTFS_MAGIC 0x49426576
/* "IBev" */
enum
{
IB_UVERBS_MAJOR
=
231
,
IB_UVERBS_BASE_MINOR
=
192
,
...
...
@@ -109,8 +108,6 @@ static ssize_t (*uverbs_cmd_table[])(struct ib_uverbs_file *file,
[
IB_USER_VERBS_CMD_DESTROY_SRQ
]
=
ib_uverbs_destroy_srq
,
};
static
struct
vfsmount
*
uverbs_event_mnt
;
static
void
ib_uverbs_add_one
(
struct
ib_device
*
device
);
static
void
ib_uverbs_remove_one
(
struct
ib_device
*
device
);
...
...
@@ -490,7 +487,6 @@ struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
int
is_async
,
int
*
fd
)
{
struct
ib_uverbs_event_file
*
ev_file
;
struct
path
path
;
struct
file
*
filp
;
int
ret
;
...
...
@@ -513,27 +509,16 @@ struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
goto
err
;
}
/*
* fops_get() can't fail here, because we're coming from a
* system call on a uverbs file, which will already have a
* module reference.
*/
path
.
mnt
=
uverbs_event_mnt
;
path
.
dentry
=
uverbs_event_mnt
->
mnt_root
;
path_get
(
&
path
);
filp
=
alloc_file
(
&
path
,
FMODE_READ
,
fops_get
(
&
uverbs_event_fops
));
filp
=
anon_inode_getfile
(
"[uverbs-event]"
,
&
uverbs_event_fops
,
ev_file
,
O_RDONLY
);
if
(
!
filp
)
{
ret
=
-
ENFILE
;
goto
err_fd
;
}
filp
->
private_data
=
ev_file
;
return
filp
;
err_fd:
fops_put
(
&
uverbs_event_fops
);
path_put
(
&
path
);
put_unused_fd
(
*
fd
);
err:
...
...
@@ -854,21 +839,6 @@ static void ib_uverbs_remove_one(struct ib_device *device)
kfree
(
uverbs_dev
);
}
static
int
uverbs_event_get_sb
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
,
struct
vfsmount
*
mnt
)
{
return
get_sb_pseudo
(
fs_type
,
"infinibandevent:"
,
NULL
,
INFINIBANDEVENTFS_MAGIC
,
mnt
);
}
static
struct
file_system_type
uverbs_event_fs
=
{
/* No owner field so module can be unloaded */
.
name
=
"infinibandeventfs"
,
.
get_sb
=
uverbs_event_get_sb
,
.
kill_sb
=
kill_litter_super
};
static
int
__init
ib_uverbs_init
(
void
)
{
int
ret
;
...
...
@@ -893,33 +863,14 @@ static int __init ib_uverbs_init(void)
goto
out_class
;
}
ret
=
register_filesystem
(
&
uverbs_event_fs
);
if
(
ret
)
{
printk
(
KERN_ERR
"user_verbs: couldn't register infinibandeventfs
\n
"
);
goto
out_class
;
}
uverbs_event_mnt
=
kern_mount
(
&
uverbs_event_fs
);
if
(
IS_ERR
(
uverbs_event_mnt
))
{
ret
=
PTR_ERR
(
uverbs_event_mnt
);
printk
(
KERN_ERR
"user_verbs: couldn't mount infinibandeventfs
\n
"
);
goto
out_fs
;
}
ret
=
ib_register_client
(
&
uverbs_client
);
if
(
ret
)
{
printk
(
KERN_ERR
"user_verbs: couldn't register client
\n
"
);
goto
out_
mnt
;
goto
out_
class
;
}
return
0
;
out_mnt:
mntput
(
uverbs_event_mnt
);
out_fs:
unregister_filesystem
(
&
uverbs_event_fs
);
out_class:
class_destroy
(
uverbs_class
);
...
...
@@ -933,8 +884,6 @@ out:
static
void
__exit
ib_uverbs_cleanup
(
void
)
{
ib_unregister_client
(
&
uverbs_client
);
mntput
(
uverbs_event_mnt
);
unregister_filesystem
(
&
uverbs_event_fs
);
class_destroy
(
uverbs_class
);
unregister_chrdev_region
(
IB_UVERBS_BASE_DEV
,
IB_UVERBS_MAX_DEVICES
);
if
(
overflow_maj
)
...
...
drivers/infiniband/hw/ipath/ipath_user_pages.c
View file @
fe8875e5
...
...
@@ -59,8 +59,7 @@ static int __get_user_pages(unsigned long start_page, size_t num_pages,
size_t
got
;
int
ret
;
lock_limit
=
current
->
signal
->
rlim
[
RLIMIT_MEMLOCK
].
rlim_cur
>>
PAGE_SHIFT
;
lock_limit
=
rlimit
(
RLIMIT_MEMLOCK
)
>>
PAGE_SHIFT
;
if
(
num_pages
>
lock_limit
)
{
ret
=
-
ENOMEM
;
...
...
drivers/infiniband/hw/mlx4/qp.c
View file @
fe8875e5
...
...
@@ -1228,7 +1228,7 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_send_wr *wr,
for
(
i
=
0
;
i
<
wr
->
num_sge
;
++
i
)
send_size
+=
wr
->
sg_list
[
i
].
length
;
ib_ud_header_init
(
send_size
,
mlx4_ib_ah_grh_present
(
ah
),
&
sqp
->
ud_header
);
ib_ud_header_init
(
send_size
,
mlx4_ib_ah_grh_present
(
ah
),
0
,
&
sqp
->
ud_header
);
sqp
->
ud_header
.
lrh
.
service_level
=
be32_to_cpu
(
ah
->
av
.
sl_tclass_flowlabel
)
>>
28
;
...
...
drivers/infiniband/hw/mthca/mthca_qp.c
View file @
fe8875e5
...
...
@@ -1494,7 +1494,7 @@ static int build_mlx_header(struct mthca_dev *dev, struct mthca_sqp *sqp,
u16
pkey
;
ib_ud_header_init
(
256
,
/* assume a MAD */
mthca_ah_grh_present
(
to_mah
(
wr
->
wr
.
ud
.
ah
)),
mthca_ah_grh_present
(
to_mah
(
wr
->
wr
.
ud
.
ah
)),
0
,
&
sqp
->
ud_header
);
err
=
mthca_read_ah
(
dev
,
to_mah
(
wr
->
wr
.
ud
.
ah
),
&
sqp
->
ud_header
);
...
...
include/rdma/ib_pack.h
View file @
fe8875e5
...
...
@@ -232,6 +232,7 @@ void ib_unpack(const struct ib_field *desc,
void
ib_ud_header_init
(
int
payload_bytes
,
int
grh_present
,
int
immediate_present
,
struct
ib_ud_header
*
header
);
int
ib_ud_header_pack
(
struct
ib_ud_header
*
header
,
...
...
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