diff mbox series

mm/page_table_check: Drop all redundant EXPORT_SYMBOL()

Message ID 20220420060221.1107736-1-anshuman.khandual@arm.com (mailing list archive)
State New
Headers show
Series mm/page_table_check: Drop all redundant EXPORT_SYMBOL() | expand

Commit Message

Anshuman Khandual April 20, 2022, 6:02 a.m. UTC
Function definitions need not be exported via EXPORT_SYMBOL() mechanism. In
this case these functions just get called only inside their wrappers. Even
__page_table_check_zero() gets called without such an export. Just drop all
these redundant EXPORT_SYMBOL().

Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
This applies on v5.18-rc3

 mm/page_table_check.c | 6 ------
 1 file changed, 6 deletions(-)

Comments

Pasha Tatashin April 20, 2022, 4:54 p.m. UTC | #1
On Wed, Apr 20, 2022 at 2:01 AM Anshuman Khandual
<anshuman.khandual@arm.com> wrote:
>
> Function definitions need not be exported via EXPORT_SYMBOL() mechanism. In
> this case these functions just get called only inside their wrappers. Even
> __page_table_check_zero() gets called without such an export. Just drop all
> these redundant EXPORT_SYMBOL().
>
> Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> This applies on v5.18-rc3
>
>  mm/page_table_check.c | 6 ------
>  1 file changed, 6 deletions(-)
>
> diff --git a/mm/page_table_check.c b/mm/page_table_check.c
> index 2458281bff89..5c2a96159832 100644
> --- a/mm/page_table_check.c
> +++ b/mm/page_table_check.c
> @@ -167,7 +167,6 @@ void __page_table_check_pte_clear(struct mm_struct *mm, unsigned long addr,
>                                        PAGE_SIZE >> PAGE_SHIFT);
>         }
>  }
> -EXPORT_SYMBOL(__page_table_check_pte_clear);
>
>  void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
>                                   pmd_t pmd)
> @@ -180,7 +179,6 @@ void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
>                                        PMD_PAGE_SIZE >> PAGE_SHIFT);
>         }
>  }
> -EXPORT_SYMBOL(__page_table_check_pmd_clear);
>
>  void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
>                                   pud_t pud)
> @@ -193,7 +191,6 @@ void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
>                                        PUD_PAGE_SIZE >> PAGE_SHIFT);
>         }
>  }
> -EXPORT_SYMBOL(__page_table_check_pud_clear);
>
>  void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
>                                 pte_t *ptep, pte_t pte)
> @@ -208,7 +205,6 @@ void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
>                                      pte_write(pte));
>         }
>  }
> -EXPORT_SYMBOL(__page_table_check_pte_set);

Hi Anshuman,

See this:
https://lore.kernel.org/all/20211124234754.l5co34dUK%25akpm@linux-foundation.org/

The rest of EXPORTs were added to be symmetric, and allow other
drivers to use set_*p**()/clear_p** calls.

Pasha
Matthew Wilcox April 21, 2022, 3:23 a.m. UTC | #2
On Wed, Apr 20, 2022 at 12:54:08PM -0400, Pasha Tatashin wrote:
> The rest of EXPORTs were added to be symmetric, and allow other
> drivers to use set_*p**()/clear_p** calls.

EXPORT_SYMBOLs actually have a real cost.  We don't add them "for
symmetry".
Pasha Tatashin April 21, 2022, 3:32 a.m. UTC | #3
On Wed, Apr 20, 2022 at 11:23 PM Matthew Wilcox <willy@infradead.org> wrote:
>
> On Wed, Apr 20, 2022 at 12:54:08PM -0400, Pasha Tatashin wrote:
> > The rest of EXPORTs were added to be symmetric, and allow other
> > drivers to use set_*p**()/clear_p** calls.
>
> EXPORT_SYMBOLs actually have a real cost.  We don't add them "for
> symmetry".

Sure, the rest of exports can be removed, but:

> -EXPORT_SYMBOL(__page_table_check_pte_set);

must stay because of

ERROR: modpost: "__page_table_check_pte_set"
[drivers/gpu/drm/i915/i915.ko] undefined!

Pasha
Anshuman Khandual April 21, 2022, 3:47 a.m. UTC | #4
On 4/21/22 09:02, Pasha Tatashin wrote:
> On Wed, Apr 20, 2022 at 11:23 PM Matthew Wilcox <willy@infradead.org> wrote:
>>
>> On Wed, Apr 20, 2022 at 12:54:08PM -0400, Pasha Tatashin wrote:
>>> The rest of EXPORTs were added to be symmetric, and allow other
>>> drivers to use set_*p**()/clear_p** calls.
>>
>> EXPORT_SYMBOLs actually have a real cost.  We don't add them "for
>> symmetry".
> 
> Sure, the rest of exports can be removed, but:
> 
>> -EXPORT_SYMBOL(__page_table_check_pte_set);
> 
> must stay because of
> 
> ERROR: modpost: "__page_table_check_pte_set"
> [drivers/gpu/drm/i915/i915.ko] undefined!

Sure, will resend.
diff mbox series

Patch

diff --git a/mm/page_table_check.c b/mm/page_table_check.c
index 2458281bff89..5c2a96159832 100644
--- a/mm/page_table_check.c
+++ b/mm/page_table_check.c
@@ -167,7 +167,6 @@  void __page_table_check_pte_clear(struct mm_struct *mm, unsigned long addr,
 				       PAGE_SIZE >> PAGE_SHIFT);
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pte_clear);
 
 void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
 				  pmd_t pmd)
@@ -180,7 +179,6 @@  void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
 				       PMD_PAGE_SIZE >> PAGE_SHIFT);
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pmd_clear);
 
 void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
 				  pud_t pud)
@@ -193,7 +191,6 @@  void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
 				       PUD_PAGE_SIZE >> PAGE_SHIFT);
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pud_clear);
 
 void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
 				pte_t *ptep, pte_t pte)
@@ -208,7 +205,6 @@  void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
 				     pte_write(pte));
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pte_set);
 
 void __page_table_check_pmd_set(struct mm_struct *mm, unsigned long addr,
 				pmd_t *pmdp, pmd_t pmd)
@@ -223,7 +219,6 @@  void __page_table_check_pmd_set(struct mm_struct *mm, unsigned long addr,
 				     pmd_write(pmd));
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pmd_set);
 
 void __page_table_check_pud_set(struct mm_struct *mm, unsigned long addr,
 				pud_t *pudp, pud_t pud)
@@ -238,7 +233,6 @@  void __page_table_check_pud_set(struct mm_struct *mm, unsigned long addr,
 				     pud_write(pud));
 	}
 }
-EXPORT_SYMBOL(__page_table_check_pud_set);
 
 void __page_table_check_pte_clear_range(struct mm_struct *mm,
 					unsigned long addr,