* new value of pte
                 */
                new_pte = (old_pte | set) & ~clr;
-               /*
-                * If we are trying to clear the pte, we can skip
-                * the below sequence and batch the tlb flush. The
-                * tlb flush batching is done by mmu gather code
-                */
-               if (new_pte) {
-                       asm volatile("ptesync" : : : "memory");
-                       radix__flush_tlb_pte_p9_dd1(old_pte, mm, addr);
+               asm volatile("ptesync" : : : "memory");
+               radix__flush_tlb_pte_p9_dd1(old_pte, mm, addr);
+               if (new_pte)
                        __radix_pte_update(ptep, 0, new_pte);
-               }
        } else
                old_pte = __radix_pte_update(ptep, clr, set);
        asm volatile("ptesync" : : : "memory");