From: Konrad Lipinski Date: Wed, 16 Nov 2016 15:54:05 +0000 (+0100) Subject: kdbus: pool_slice_copy() fix: off_src now advanced after each write X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d00429cf42c8e2526f1f9b9d3dd4530ffc02b652;p=platform%2Fkernel%2Flinux-exynos.git kdbus: pool_slice_copy() fix: off_src now advanced after each write --- diff --git a/ipc/kdbus/pool.c b/ipc/kdbus/pool.c index 769ef023c398..254dd9f99c54 100644 --- a/ipc/kdbus/pool.c +++ b/ipc/kdbus/pool.c @@ -552,7 +552,7 @@ int kdbus_pool_slice_copy(struct kdbus_pool *dst_pool, const struct kdbus_pool_s struct address_space *mapping_dst = f_dst->f_mapping; const struct address_space_operations *aops = mapping_dst->a_ops; unsigned long len = slice_src->size; - unsigned off_src = slice_src->off; + loff_t off_src = slice_src->off; unsigned off_dst = slice_dst->off; mm_segment_t old_fs; int ret = 0; @@ -585,10 +585,7 @@ int kdbus_pool_slice_copy(struct kdbus_pool *dst_pool, const struct kdbus_pool_s } kaddr = (char __force __user *)kmap(page) + page_off; - { - loff_t off_src_ = off_src; - n_read = __vfs_read(f_src, kaddr, copy_len, &off_src_); - } + n_read = __vfs_read(f_src, kaddr, copy_len, &off_src); kunmap(page); mark_page_accessed(page); flush_dcache_page(page); diff --git a/tools/testing/selftests/kdbus/kdbus-util.c b/tools/testing/selftests/kdbus/kdbus-util.c index 32bf0cb002da..7addb4409e79 100644 --- a/tools/testing/selftests/kdbus/kdbus-util.c +++ b/tools/testing/selftests/kdbus/kdbus-util.c @@ -735,8 +735,9 @@ wur int kdbus_msg_dump(const struct kdbus_msg *msg) { else cookie_reply = msg->cookie_reply; - kdbus_printf("MESSAGE: %s (%llu bytes) flags=0x%08llx, %s → %s, " + kdbus_printf("MESSAGE(%p): %s (%llu bytes) flags=0x%08llx, %s → %s, " "cookie=%llu, timeout=%llu cookie_reply=%llu priority=%lli\n", + msg, enum_PAYLOAD(msg->payload_type), (unsigned long long)msg->size, (unsigned long long)msg->flags, msg_id(msg->src_id, buf_src), msg_id(msg->dst_id, buf_dst),