diff options
author | David S. Miller <davem@davemloft.net> | 2013-10-23 16:28:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-23 16:49:34 -0400 |
commit | c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b (patch) | |
tree | 6cf2896a77b65bec64284681e1c3851eb3263e09 /drivers/infiniband/core | |
parent | 34d92d5315b64a3e5292b7e9511c1bb617227fb6 (diff) | |
parent | 320437af954cbe66478f1f5e8b34cb5a8d072191 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/usb/qmi_wwan.c
include/net/dst.h
Trivial merge conflicts, both were overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/uverbs.h | 2 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_cmd.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 6 |
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs.h b/drivers/infiniband/core/uverbs.h index d040b877475f..d8f9c6c272d7 100644 --- a/drivers/infiniband/core/uverbs.h +++ b/drivers/infiniband/core/uverbs.h | |||
@@ -217,7 +217,9 @@ IB_UVERBS_DECLARE_CMD(destroy_srq); | |||
217 | IB_UVERBS_DECLARE_CMD(create_xsrq); | 217 | IB_UVERBS_DECLARE_CMD(create_xsrq); |
218 | IB_UVERBS_DECLARE_CMD(open_xrcd); | 218 | IB_UVERBS_DECLARE_CMD(open_xrcd); |
219 | IB_UVERBS_DECLARE_CMD(close_xrcd); | 219 | IB_UVERBS_DECLARE_CMD(close_xrcd); |
220 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
220 | IB_UVERBS_DECLARE_CMD(create_flow); | 221 | IB_UVERBS_DECLARE_CMD(create_flow); |
221 | IB_UVERBS_DECLARE_CMD(destroy_flow); | 222 | IB_UVERBS_DECLARE_CMD(destroy_flow); |
223 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
222 | 224 | ||
223 | #endif /* UVERBS_H */ | 225 | #endif /* UVERBS_H */ |
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c index f2b81b9ee0d6..2f0f01b70e3b 100644 --- a/drivers/infiniband/core/uverbs_cmd.c +++ b/drivers/infiniband/core/uverbs_cmd.c | |||
@@ -54,7 +54,9 @@ static struct uverbs_lock_class qp_lock_class = { .name = "QP-uobj" }; | |||
54 | static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" }; | 54 | static struct uverbs_lock_class ah_lock_class = { .name = "AH-uobj" }; |
55 | static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" }; | 55 | static struct uverbs_lock_class srq_lock_class = { .name = "SRQ-uobj" }; |
56 | static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; | 56 | static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; |
57 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
57 | static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" }; | 58 | static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" }; |
59 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
58 | 60 | ||
59 | #define INIT_UDATA(udata, ibuf, obuf, ilen, olen) \ | 61 | #define INIT_UDATA(udata, ibuf, obuf, ilen, olen) \ |
60 | do { \ | 62 | do { \ |
@@ -2599,6 +2601,7 @@ out_put: | |||
2599 | return ret ? ret : in_len; | 2601 | return ret ? ret : in_len; |
2600 | } | 2602 | } |
2601 | 2603 | ||
2604 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
2602 | static int kern_spec_to_ib_spec(struct ib_kern_spec *kern_spec, | 2605 | static int kern_spec_to_ib_spec(struct ib_kern_spec *kern_spec, |
2603 | union ib_flow_spec *ib_spec) | 2606 | union ib_flow_spec *ib_spec) |
2604 | { | 2607 | { |
@@ -2824,6 +2827,7 @@ ssize_t ib_uverbs_destroy_flow(struct ib_uverbs_file *file, | |||
2824 | 2827 | ||
2825 | return ret ? ret : in_len; | 2828 | return ret ? ret : in_len; |
2826 | } | 2829 | } |
2830 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
2827 | 2831 | ||
2828 | static int __uverbs_create_xsrq(struct ib_uverbs_file *file, | 2832 | static int __uverbs_create_xsrq(struct ib_uverbs_file *file, |
2829 | struct ib_uverbs_create_xsrq *cmd, | 2833 | struct ib_uverbs_create_xsrq *cmd, |
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index 75ad86c4abf8..2df31f68ea09 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c | |||
@@ -115,8 +115,10 @@ static ssize_t (*uverbs_cmd_table[])(struct ib_uverbs_file *file, | |||
115 | [IB_USER_VERBS_CMD_CLOSE_XRCD] = ib_uverbs_close_xrcd, | 115 | [IB_USER_VERBS_CMD_CLOSE_XRCD] = ib_uverbs_close_xrcd, |
116 | [IB_USER_VERBS_CMD_CREATE_XSRQ] = ib_uverbs_create_xsrq, | 116 | [IB_USER_VERBS_CMD_CREATE_XSRQ] = ib_uverbs_create_xsrq, |
117 | [IB_USER_VERBS_CMD_OPEN_QP] = ib_uverbs_open_qp, | 117 | [IB_USER_VERBS_CMD_OPEN_QP] = ib_uverbs_open_qp, |
118 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
118 | [IB_USER_VERBS_CMD_CREATE_FLOW] = ib_uverbs_create_flow, | 119 | [IB_USER_VERBS_CMD_CREATE_FLOW] = ib_uverbs_create_flow, |
119 | [IB_USER_VERBS_CMD_DESTROY_FLOW] = ib_uverbs_destroy_flow | 120 | [IB_USER_VERBS_CMD_DESTROY_FLOW] = ib_uverbs_destroy_flow |
121 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
120 | }; | 122 | }; |
121 | 123 | ||
122 | static void ib_uverbs_add_one(struct ib_device *device); | 124 | static void ib_uverbs_add_one(struct ib_device *device); |
@@ -605,6 +607,7 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf, | |||
605 | if (!(file->device->ib_dev->uverbs_cmd_mask & (1ull << hdr.command))) | 607 | if (!(file->device->ib_dev->uverbs_cmd_mask & (1ull << hdr.command))) |
606 | return -ENOSYS; | 608 | return -ENOSYS; |
607 | 609 | ||
610 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
608 | if (hdr.command >= IB_USER_VERBS_CMD_THRESHOLD) { | 611 | if (hdr.command >= IB_USER_VERBS_CMD_THRESHOLD) { |
609 | struct ib_uverbs_cmd_hdr_ex hdr_ex; | 612 | struct ib_uverbs_cmd_hdr_ex hdr_ex; |
610 | 613 | ||
@@ -621,6 +624,7 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf, | |||
621 | (hdr_ex.out_words + | 624 | (hdr_ex.out_words + |
622 | hdr_ex.provider_out_words) * 4); | 625 | hdr_ex.provider_out_words) * 4); |
623 | } else { | 626 | } else { |
627 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
624 | if (hdr.in_words * 4 != count) | 628 | if (hdr.in_words * 4 != count) |
625 | return -EINVAL; | 629 | return -EINVAL; |
626 | 630 | ||
@@ -628,7 +632,9 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf, | |||
628 | buf + sizeof(hdr), | 632 | buf + sizeof(hdr), |
629 | hdr.in_words * 4, | 633 | hdr.in_words * 4, |
630 | hdr.out_words * 4); | 634 | hdr.out_words * 4); |
635 | #ifdef CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING | ||
631 | } | 636 | } |
637 | #endif /* CONFIG_INFINIBAND_EXPERIMENTAL_UVERBS_FLOW_STEERING */ | ||
632 | } | 638 | } |
633 | 639 | ||
634 | static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma) | 640 | static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma) |