Merge branch 'fixes-rc1' into fixes
[linux-2.6-microblaze.git] / drivers / infiniband / core / uverbs_cmd.c
index f5b8be3..d5e15a8 100644 (file)
@@ -364,7 +364,7 @@ static void copy_query_dev_fields(struct ib_ucontext *ucontext,
        resp->max_srq_sge               = attr->max_srq_sge;
        resp->max_pkeys                 = attr->max_pkeys;
        resp->local_ca_ack_delay        = attr->local_ca_ack_delay;
-       resp->phys_port_cnt             = ib_dev->phys_port_cnt;
+       resp->phys_port_cnt = min_t(u32, ib_dev->phys_port_cnt, U8_MAX);
 }
 
 static int ib_uverbs_query_device(struct uverbs_attr_bundle *attrs)
@@ -2002,12 +2002,13 @@ static int ib_uverbs_destroy_qp(struct uverbs_attr_bundle *attrs)
 
 static void *alloc_wr(size_t wr_size, __u32 num_sge)
 {
-       if (num_sge >= (U32_MAX - ALIGN(wr_size, sizeof (struct ib_sge))) /
-                      sizeof (struct ib_sge))
+       if (num_sge >= (U32_MAX - ALIGN(wr_size, sizeof(struct ib_sge))) /
+                              sizeof(struct ib_sge))
                return NULL;
 
-       return kmalloc(ALIGN(wr_size, sizeof (struct ib_sge)) +
-                        num_sge * sizeof (struct ib_sge), GFP_KERNEL);
+       return kmalloc(ALIGN(wr_size, sizeof(struct ib_sge)) +
+                              num_sge * sizeof(struct ib_sge),
+                      GFP_KERNEL);
 }
 
 static int ib_uverbs_post_send(struct uverbs_attr_bundle *attrs)
@@ -2216,7 +2217,7 @@ ib_uverbs_unmarshall_recv(struct uverbs_req_iter *iter, u32 wr_count,
        const struct ib_sge __user *sgls;
        const void __user *wqes;
 
-       if (wqe_size < sizeof (struct ib_uverbs_recv_wr))
+       if (wqe_size < sizeof(struct ib_uverbs_recv_wr))
                return ERR_PTR(-EINVAL);
 
        wqes = uverbs_request_next_ptr(iter, wqe_size * wr_count);
@@ -2249,14 +2250,14 @@ ib_uverbs_unmarshall_recv(struct uverbs_req_iter *iter, u32 wr_count,
                }
 
                if (user_wr->num_sge >=
-                   (U32_MAX - ALIGN(sizeof *next, sizeof (struct ib_sge))) /
-                   sizeof (struct ib_sge)) {
+                   (U32_MAX - ALIGN(sizeof(*next), sizeof(struct ib_sge))) /
+                           sizeof(struct ib_sge)) {
                        ret = -EINVAL;
                        goto err;
                }
 
-               next = kmalloc(ALIGN(sizeof *next, sizeof (struct ib_sge)) +
-                              user_wr->num_sge * sizeof (struct ib_sge),
+               next = kmalloc(ALIGN(sizeof(*next), sizeof(struct ib_sge)) +
+                                      user_wr->num_sge * sizeof(struct ib_sge),
                               GFP_KERNEL);
                if (!next) {
                        ret = -ENOMEM;
@@ -2274,8 +2275,8 @@ ib_uverbs_unmarshall_recv(struct uverbs_req_iter *iter, u32 wr_count,
                next->num_sge    = user_wr->num_sge;
 
                if (next->num_sge) {
-                       next->sg_list = (void *) next +
-                               ALIGN(sizeof *next, sizeof (struct ib_sge));
+                       next->sg_list = (void *)next +
+                               ALIGN(sizeof(*next), sizeof(struct ib_sge));
                        if (copy_from_user(next->sg_list, sgls + sg_ind,
                                           next->num_sge *
                                                   sizeof(struct ib_sge))) {