@@ -1731,7 +1731,6 @@ loop_info64_from_compat(const struct compat_loop_info __user *arg,
if (copy_from_user(&info, arg, sizeof(info)))
return -EFAULT;
- memset(info64, 0, sizeof(*info64));
info64->lo_number = info.lo_number;
info64->lo_device = info.lo_device;
info64->lo_inode = info.lo_inode;
@@ -1794,7 +1793,7 @@ loop_info64_to_compat(const struct loop_info64 *info64,
static int loop_set_status_compat(struct loop_device *lo,
const struct compat_loop_info __user *arg)
{
- struct loop_info64 info64;
+ struct loop_info64 info64 = { };
int ret;
ret = loop_info64_from_compat(arg, &info64);
In current code loop_info64_from_compat() is only called from the one caller loop_set_status_compat(). Initialize the info64 local variable to zero before we pass it to the loop_info64_compat() so that we can get rid of the memset in the loop_info64_from_compat(). Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> --- drivers/block/loop.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)