preempt_disable();
        if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {
-               struct flush_tlb_data fd;
+               struct flush_tlb_data fd = {
+                       .vma = vma,
+                       .addr1 = start,
+                       .addr2 = end,
+               };
 
-               fd.vma = vma;
-               fd.addr1 = start;
-               fd.addr2 = end;
                smp_on_other_tlbs(flush_tlb_range_ipi, &fd);
        } else {
                cpumask_t mask = cpu_online_map;
 
 void flush_tlb_kernel_range(unsigned long start, unsigned long end)
 {
-       struct flush_tlb_data fd;
+       struct flush_tlb_data fd = {
+               .addr1 = start,
+               .addr2 = end,
+       };
 
-       fd.addr1 = start;
-       fd.addr2 = end;
        on_each_cpu(flush_tlb_kernel_range_ipi, &fd, 1, 1);
 }
 
 {
        preempt_disable();
        if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) {
-               struct flush_tlb_data fd;
+               struct flush_tlb_data fd = {
+                       .vma = vma,
+                       .addr1 = page,
+               };
 
-               fd.vma = vma;
-               fd.addr1 = page;
                smp_on_other_tlbs(flush_tlb_page_ipi, &fd);
        } else {
                cpumask_t mask = cpu_online_map;