From patchwork Mon Dec 23 09:41:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qi Zheng X-Patchwork-Id: 13918681 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1182BE7718D for ; Mon, 23 Dec 2024 09:46:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 81E856B009F; Mon, 23 Dec 2024 04:46:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CC4E6B00AF; Mon, 23 Dec 2024 04:46:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61EC36B00B0; Mon, 23 Dec 2024 04:46:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 41E846B009F for ; Mon, 23 Dec 2024 04:46:31 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id EC281141700 for ; Mon, 23 Dec 2024 09:46:30 +0000 (UTC) X-FDA: 82925742858.15.06D62D8 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf23.hostedemail.com (Postfix) with ESMTP id DE404140007 for ; Mon, 23 Dec 2024 09:46:03 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Bi4Nnr0n; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734947171; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6vzAxma0H0oGKVF+0yjfVv8ni44DJQgUTcLWSpNFGuY=; b=1lSjKYRZV1xS3hDTjrDJ8kY9YoBzFF2UskbCZSZAvI3A+zNx6Xxkw2jJunBWgVGhvyJIku 8oAyYHK8TPPqdVo5jeOI0+qDcN1tsUTS4VQPjh7CNPoTv8VguptQCzn4+ievwsHVwTnCXa bF4MnzT2QLVu6Jb9vI5lUaoQdlpAvOs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734947171; a=rsa-sha256; cv=none; b=TwXWob7lgHp8p9S+f2t9qBlW1aFicYyXUUEb63mEjQmLcCIkmHBC4Kafd7DCO8JczkDIoR IJ5HVbmTOYwX6Hn15i/GZAZ2WO91LsY0u/8HryrX1+7yyN/9rtEDJYSPRK9G/UZhDjJGMo Rh3sy9kb3w2AL9IJlzypTS2wsanSOW0= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Bi4Nnr0n; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-725f3594965so3283143b3a.3 for ; Mon, 23 Dec 2024 01:46:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1734947188; x=1735551988; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6vzAxma0H0oGKVF+0yjfVv8ni44DJQgUTcLWSpNFGuY=; b=Bi4Nnr0nGTpwL2toKuYkSbY8+l2M5rm3g+R1b1+BN+7brLWwEunGiFIgGNk+dBaS1z UayI9w/LNFNZhfIr0OtXSbSSk1w9wArfKBWDnIRUTAkSgnuS9osDyEVPGFqO2Em7yKgI rt9hxk/6Fh7V+Ev3O0UvK3h9YpllnZoYfZqRcdc8kPfNz/+AcUYf2retoNEZYDIENfTl 93eZld3sX/dmu6CYgagRaCWnBwM0gi2bQgMr4iWBI47Zn+vQRDznE7FtXY10gHNO+Dy8 1L1cv5aAXd9OipbR1V6RYwwq0zk50QQsQ5vz/iEW42qENUaoBJZr/o1a46Jx33pO3NQK oW1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734947188; x=1735551988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6vzAxma0H0oGKVF+0yjfVv8ni44DJQgUTcLWSpNFGuY=; b=RRKEA26ZSoFQ+g9np5pBMwK/o9SpNgP868W+hWccv/xfmbQZAMo3GliibZqWbTFDzE P1G6NBMw5GrQGovxGqUEr5xJxyLRl61ZbuimdDggXqwYZcStmEGXQhiNjdSkBt11wkQJ gfkhrBPFVYmQFm/7DE9AQfWVKG396dZM1GygwH2hDicut181Un9T2z8Q3ixDkf+RRgTT lgTw40yPWRD6EqyQCRGqYJvKle/bFvpyXzaKDxws8kFKZLGounZa0dQmOXa5w9SVEI0j PKlEW9DwGsw+cdD6LYmbTAUbMyeGE/E/ZfabeGO/qfuIBv+UfsKNZstv+E7oeqcgVnQP 05vw== X-Gm-Message-State: AOJu0YySiTfS48ig3dA0kyM1zauvdGnaTH2Qyr4Os2M9rYD3ecpO9X5T pSWIu04fzvvU+psFg4MXc/Rtsvqcc7In3vY/aPRQdg6M0/pullzP9X9cA7B9Fdw= X-Gm-Gg: ASbGncsWOGI8cV9fqO/EcR5RN+wbQAP927dwY0u4UARXsnKKnza3uoqDdpLA4cPwEHN NzV1Yq0XT25dEFF9x0Unnb7rILlAFcjcAjrFjTU2QTUTE0I7Pmz5PGrNxuk6PDtP10V089u1037 yCTSG09oAWV5KilB8lRYoY2y1ZonaJsV+B0RQzASqae1PTygIKMhdsDk6fVc83KXv0nSr0xhTaL nyqJpoVReYpgXbyRL43O+xFd9lUyci0CKYzXjI93FSoQbkLsJho6NgfHiYk7U7eowslhEIAK6R8 76oPhAnuAQ9TbE1hyyJOjA== X-Google-Smtp-Source: AGHT+IGqxRLXXsgzbTBUt4P8wMbb/CAKHFN0NH0iCzAzNT/ELUdunTp3cz3Ieuj7L8l/gUjxiL3RMw== X-Received: by 2002:aa7:888c:0:b0:72a:a9b5:ed91 with SMTP id d2e1a72fcca58-72abde0e6b7mr17804649b3a.13.1734947187839; Mon, 23 Dec 2024 01:46:27 -0800 (PST) Received: from C02DW0BEMD6R.bytedance.net ([203.208.167.150]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad8486c6sm7468309b3a.85.2024.12.23.01.46.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Dec 2024 01:46:27 -0800 (PST) From: Qi Zheng To: peterz@infradead.org, agordeev@linux.ibm.com, kevin.brodsky@arm.com, tglx@linutronix.de, david@redhat.com, jannh@google.com, hughd@google.com, yuzhao@google.com, willy@infradead.org, muchun.song@linux.dev, vbabka@kernel.org, lorenzo.stoakes@oracle.com, akpm@linux-foundation.org, rientjes@google.com, vishal.moola@gmail.com, arnd@arndb.de, will@kernel.org, aneesh.kumar@kernel.org, npiggin@gmail.com, dave.hansen@linux.intel.com, rppt@kernel.org, ryan.roberts@arm.com Cc: linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-arch@vger.kernel.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-sh@vger.kernel.org, linux-um@lists.infradead.org, Qi Zheng Subject: [PATCH v3 16/17] mm: pgtable: remove tlb_remove_ptdesc() Date: Mon, 23 Dec 2024 17:41:02 +0800 Message-Id: <93cce93bf8be04f3a5cd828cc0a48750fb90af44.1734945104.git.zhengqi.arch@bytedance.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: References: MIME-Version: 1.0 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: DE404140007 X-Stat-Signature: n8axtdprm3qrxup11arie9g87giixg9q X-Rspam-User: X-HE-Tag: 1734947163-966085 X-HE-Meta: U2FsdGVkX1+Eco8JJ5zaP4PIq7gwhOSGf9l1gda/3DLuhhKXTDtFDccpcnl2Z5JrbK3sY5AKl0l9hDaYd36JU0yTnBD/gcF+n1WDe5AT5uzeQz8LuO0A12uskY3xK7jiXdND0pBo8y34VlbTJjXXJVgRnTRBBAhq0iax982VF6KqvvKIolkDiKGq1yrBE7KjeBFTH4N6tlG8nkE+uvZLWrLbOcFATelGqpJirV8QF7ciga5YwYPda0Enn+d0dT1aCvjYivRk+NHH6itY/Zp85VDf4tFad7XJGWNkzDyfr/lYDEC9MVHEmdX1ddfyKxXsjOeOlnixxALMLJyqxcJYh2PiGQVtLhbMfRIsRieWe30f/RvpwJthvvJmFG+DbCDY7jDvV/7vMlpHAykUoyUJ6LrL5cPE8Yymibu9YNaVvtbT3q8SSnNkEE2oRVeG3YCK5xtTbd+ZFjfsbeWS+U6GjX8W1CD/NN0acwyw7T52lGL/qBGCFQ+H/uOenkEQ8lNmWzLoXloZMaalgJbKzZ7jAvjZliTj+ETTZ2FYHjMz8h4RrxZSTcmZmTfggdgbegFa55QaIqfi/drF/yY6cEliwjDDIsG73IV869q3aK2Xx2LjVODKj1TwOqbf3BcQ5FkLw5DHiApfDRvMM4RKWh8wrDfUbhLvhQJT57mYH4hefZoDsq136mQObiiJbePozL94aFMnr6OfP+sKlp8oGwZqEva+aNswMjO+1/VDLLvA7fMPu0KMPip3NgVKiN72TJXJ9LvviXqDeMtWwBAZo46OFeWqi2o36CjRIS8HffaxTmKPwxgtjdGtdP2boRMC+r8XftYfVRKdK2McN1+LExiPrCdiILZ8LOBIUlejyDdoyxGBQ2cugryNEcK3g6dqReyr6f5ImaZbIoVramCVGHlM1mS96exlJbPODY6iJlX0HtJT8gKXhx8S27B1bSc8ZcOs2NIBClbJXNUlu66QigQ IPPZLC1x 0FmJuMEffX46R7jvvpev8/NnBgtADhF6Tnc4zRCQjyxcPPNdb/JEDU4GoZ0exaRQL7aOh56zxBnybHGY1kJ9nvoBqOGpMw/mDyPTbAQ9ssqinDljMBkaSQhZ9aQhuFV/4Am+hP67+XLE1S6ZQpiIsdxEsxcuIPeSkEcJHUlpcKrawlsXETh6f92DndmSuGSH4EoiDslW8m/JNgTUXJw98RKxmuEYnovpw+uZH9wi98xQ8YuJupa3ffr0NtURkMI09OxBLwrBql3OmZtRJq+D4qrvixrckKkyTDlPZTkcQNN+9+DWc9qotDGBFmHW3x3PxvaY6Mpkj8DRA3RAx89NJv/pNA4PLtdBOJZvUR4ciD3796vgFUvfsK0xNnBtwUvtKKe/NaecIZu3eQYYP0EShSJt+7TS4zeY5emK0SfqNH/vCADNAZEI/Zyac7Rr8kKUBCbuKb6aMfJX2pH31cQ9OPoOZgH91bxJdmp59qqb+DFef9lE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Just like removing tlb_remove_page_ptdesc(), remove tlb_remove_ptdesc() as well, and make callers call tlb_remove_table() directly. Signed-off-by: Qi Zheng Originally-by: Peter Zijlstra (Intel) --- arch/arm/include/asm/tlb.h | 8 ++------ arch/arm64/include/asm/tlb.h | 16 ++++------------ arch/riscv/include/asm/pgalloc.h | 14 +++++++------- arch/s390/include/asm/tlb.h | 8 ++++---- include/asm-generic/tlb.h | 7 +------ mm/mmu_gather.c | 11 +++++------ 6 files changed, 23 insertions(+), 41 deletions(-) diff --git a/arch/arm/include/asm/tlb.h b/arch/arm/include/asm/tlb.h index ea4fbe7b17f6f..ac3881ec342f1 100644 --- a/arch/arm/include/asm/tlb.h +++ b/arch/arm/include/asm/tlb.h @@ -32,8 +32,6 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) { - struct ptdesc *ptdesc = page_ptdesc(pte); - #ifndef CONFIG_ARM_LPAE /* * With the classic ARM MMU, a pte page has two corresponding pmd @@ -43,16 +41,14 @@ __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) __tlb_adjust_range(tlb, addr - PAGE_SIZE, 2 * PAGE_SIZE); #endif - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, pte); } static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) { #ifdef CONFIG_ARM_LPAE - struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); - - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, virt_to_page(pmdp)); #endif } diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h index 8d762607285cc..4a60569fed696 100644 --- a/arch/arm64/include/asm/tlb.h +++ b/arch/arm64/include/asm/tlb.h @@ -75,18 +75,14 @@ static inline void tlb_flush(struct mmu_gather *tlb) static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) { - struct ptdesc *ptdesc = page_ptdesc(pte); - - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, pte); } #if CONFIG_PGTABLE_LEVELS > 2 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, unsigned long addr) { - struct ptdesc *ptdesc = virt_to_ptdesc(pmdp); - - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, virt_to_page(pmdp)); } #endif @@ -94,12 +90,10 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp, unsigned long addr) { - struct ptdesc *ptdesc = virt_to_ptdesc(pudp); - if (!pgtable_l4_enabled()) return; - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, virt_to_page(pudp)); } #endif @@ -107,12 +101,10 @@ static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp, static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4dp, unsigned long addr) { - struct ptdesc *ptdesc = virt_to_ptdesc(p4dp); - if (!pgtable_l5_enabled()) return; - tlb_remove_ptdesc(tlb, ptdesc); + tlb_remove_table(tlb, virt_to_page(p4dp)); } #endif diff --git a/arch/riscv/include/asm/pgalloc.h b/arch/riscv/include/asm/pgalloc.h index ab4f9b2cf9e11..25c2e2f262810 100644 --- a/arch/riscv/include/asm/pgalloc.h +++ b/arch/riscv/include/asm/pgalloc.h @@ -26,10 +26,10 @@ static inline void riscv_tlb_remove_ptdesc(struct mmu_gather *tlb, void *pt) { if (riscv_use_sbi_for_rfence()) { - tlb_remove_ptdesc(tlb, pt); + tlb_remove_table(tlb, pt); } else { - pagetable_dtor(pt); - tlb_remove_page(tlb, ptdesc_page((struct ptdesc *)pt)); + pagetable_dtor(page_ptdesc((struct page *)pt)); + tlb_remove_page(tlb, pt); } } @@ -108,14 +108,14 @@ static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, unsigned long addr) { if (pgtable_l4_enabled) - riscv_tlb_remove_ptdesc(tlb, virt_to_ptdesc(pud)); + riscv_tlb_remove_ptdesc(tlb, virt_to_page(pud)); } static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, unsigned long addr) { if (pgtable_l5_enabled) - riscv_tlb_remove_ptdesc(tlb, virt_to_ptdesc(p4d)); + riscv_tlb_remove_ptdesc(tlb, virt_to_page(p4d)); } #endif /* __PAGETABLE_PMD_FOLDED */ @@ -144,7 +144,7 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm) static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, unsigned long addr) { - riscv_tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd)); + riscv_tlb_remove_ptdesc(tlb, virt_to_page(pmd)); } #endif /* __PAGETABLE_PMD_FOLDED */ @@ -152,7 +152,7 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, unsigned long addr) { - riscv_tlb_remove_ptdesc(tlb, page_ptdesc(pte)); + riscv_tlb_remove_ptdesc(tlb, pte); } #endif /* CONFIG_MMU */ diff --git a/arch/s390/include/asm/tlb.h b/arch/s390/include/asm/tlb.h index da4a7d175f69c..5eed6300f3d72 100644 --- a/arch/s390/include/asm/tlb.h +++ b/arch/s390/include/asm/tlb.h @@ -86,7 +86,7 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, tlb->cleared_pmds = 1; if (mm_alloc_pgste(tlb->mm)) gmap_unlink(tlb->mm, (unsigned long *)pte, address); - tlb_remove_ptdesc(tlb, virt_to_ptdesc(pte)); + tlb_remove_table(tlb, virt_to_page(pte)); } /* @@ -105,7 +105,7 @@ static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, tlb->mm->context.flush_mm = 1; tlb->freed_tables = 1; tlb->cleared_puds = 1; - tlb_remove_ptdesc(tlb, virt_to_ptdesc(pmd)); + tlb_remove_table(tlb, virt_to_page(pmd)); } /* @@ -123,7 +123,7 @@ static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, tlb->mm->context.flush_mm = 1; tlb->freed_tables = 1; tlb->cleared_p4ds = 1; - tlb_remove_ptdesc(tlb, virt_to_ptdesc(pud)); + tlb_remove_table(tlb, virt_to_page(pud)); } /* @@ -141,7 +141,7 @@ static inline void p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, __tlb_adjust_range(tlb, address, PAGE_SIZE); tlb->mm->context.flush_mm = 1; tlb->freed_tables = 1; - tlb_remove_ptdesc(tlb, virt_to_ptdesc(p4d)); + tlb_remove_table(tlb, virt_to_page(p4d)); } #endif /* _S390_TLB_H */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 8d6cfe5058543..583e95568f52b 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -211,7 +211,7 @@ struct mmu_table_batch { #ifndef __HAVE_ARCH_TLB_REMOVE_TABLE static inline void __tlb_remove_table(void *table) { - struct ptdesc *ptdesc = (struct ptdesc *)table; + struct ptdesc *ptdesc = page_ptdesc((struct page *)table); pagetable_dtor(ptdesc); pagetable_free(ptdesc); @@ -499,11 +499,6 @@ static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) return tlb_remove_page_size(tlb, page, PAGE_SIZE); } -static inline void tlb_remove_ptdesc(struct mmu_gather *tlb, void *pt) -{ - tlb_remove_table(tlb, pt); -} - static inline void tlb_change_page_size(struct mmu_gather *tlb, unsigned int page_size) { diff --git a/mm/mmu_gather.c b/mm/mmu_gather.c index 7aa6f18c500b2..c58ce4539c56f 100644 --- a/mm/mmu_gather.c +++ b/mm/mmu_gather.c @@ -314,18 +314,17 @@ static inline void tlb_table_invalidate(struct mmu_gather *tlb) #ifdef CONFIG_PT_RECLAIM static inline void __tlb_remove_table_one_rcu(struct rcu_head *head) { - struct ptdesc *ptdesc; + struct page *page; - ptdesc = container_of(head, struct ptdesc, pt_rcu_head); - __tlb_remove_table(ptdesc); + page = container_of(head, struct page, rcu_head); + __tlb_remove_table(page); } static inline void __tlb_remove_table_one(void *table) { - struct ptdesc *ptdesc; + struct page *page = (struct page *)table; - ptdesc = table; - call_rcu(&ptdesc->pt_rcu_head, __tlb_remove_table_one_rcu); + call_rcu(&page->rcu_head, __tlb_remove_table_one_rcu); } #else static inline void __tlb_remove_table_one(void *table)