Skip to content

Commit 98a856b

Browse files
weiny2sfrothwell
authored andcommitted
arch/kunmap: remove duplicate kunmap implementations
All architectures do exactly the same thing for kunmap(); remove all the duplicate definitions and lift the call to the core. This also has the benefit of changing kmap_unmap() on a number of architectures to be an inline call rather than an actual function. Link: http://lkml.kernel.org/r/20200507150004.1423069-5-ira.weiny@intel.com Signed-off-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andy Lutomirski <luto@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Christian König <christian.koenig@amd.com> Cc: Chris Zankel <chris@zankel.net> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Helge Deller <deller@gmx.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
1 parent 0941a38 commit 98a856b

File tree

16 files changed

+9
-110
lines changed

16 files changed

+9
-110
lines changed

arch/arc/include/asm/highmem.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232

3333
extern void *kmap_atomic(struct page *page);
3434
extern void __kunmap_atomic(void *kvaddr);
35-
extern void kunmap_high(struct page *page);
3635

3736
extern void kmap_init(void);
3837

@@ -41,15 +40,6 @@ static inline void flush_cache_kmaps(void)
4140
flush_cache_all();
4241
}
4342

44-
static inline void kunmap(struct page *page)
45-
{
46-
might_sleep();
47-
if (!PageHighMem(page))
48-
return;
49-
kunmap_high(page);
50-
}
51-
52-
5343
#endif
5444

5545
#endif

arch/arm/include/asm/highmem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
extern pte_t *pkmap_page_table;
2222

23-
extern void kunmap_high(struct page *page);
24-
2523
/*
2624
* The reason for kmap_high_get() is to ensure that the currently kmap'd
2725
* page usage count does not decrease to zero while we're using its
@@ -62,7 +60,6 @@ static inline void *kmap_high_get(struct page *page)
6260
* when CONFIG_HIGHMEM is not set.
6361
*/
6462
#ifdef CONFIG_HIGHMEM
65-
extern void kunmap(struct page *page);
6663
extern void *kmap_atomic(struct page *page);
6764
extern void __kunmap_atomic(void *kvaddr);
6865
extern void *kmap_atomic_pfn(unsigned long pfn);

arch/arm/mm/highmem.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,6 @@ static inline pte_t get_fixmap_pte(unsigned long vaddr)
3131
return *ptep;
3232
}
3333

34-
void kunmap(struct page *page)
35-
{
36-
might_sleep();
37-
if (!PageHighMem(page))
38-
return;
39-
kunmap_high(page);
40-
}
41-
EXPORT_SYMBOL(kunmap);
42-
4334
void *kmap_atomic(struct page *page)
4435
{
4536
unsigned int idx;

arch/csky/include/asm/highmem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,8 @@ extern pte_t *pkmap_page_table;
3030
#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
3131
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
3232

33-
extern void kunmap_high(struct page *page);
34-
3533
#define ARCH_HAS_KMAP_FLUSH_TLB
3634
extern void kmap_flush_tlb(unsigned long addr);
37-
extern void kunmap(struct page *page);
3835
extern void *kmap_atomic(struct page *page);
3936
extern void __kunmap_atomic(void *kvaddr);
4037
extern void *kmap_atomic_pfn(unsigned long pfn);

arch/csky/mm/highmem.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,6 @@ EXPORT_SYMBOL(kmap_flush_tlb);
2121

2222
EXPORT_SYMBOL(kmap);
2323

24-
void kunmap(struct page *page)
25-
{
26-
might_sleep();
27-
if (!PageHighMem(page))
28-
return;
29-
kunmap_high(page);
30-
}
31-
EXPORT_SYMBOL(kunmap);
32-
3324
void *kmap_atomic(struct page *page)
3425
{
3526
unsigned long vaddr;

arch/microblaze/include/asm/highmem.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,9 @@ extern pte_t *pkmap_page_table;
5151
#define PKMAP_NR(virt) ((virt - PKMAP_BASE) >> PAGE_SHIFT)
5252
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
5353

54-
extern void kunmap_high(struct page *page);
5554
extern void *kmap_atomic_prot(struct page *page, pgprot_t prot);
5655
extern void __kunmap_atomic(void *kvaddr);
5756

58-
static inline void kunmap(struct page *page)
59-
{
60-
might_sleep();
61-
if (!PageHighMem(page))
62-
return;
63-
kunmap_high(page);
64-
}
65-
6657
static inline void *kmap_atomic(struct page *page)
6758
{
6859
return kmap_atomic_prot(page, kmap_prot);

arch/mips/include/asm/highmem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,8 @@ extern pte_t *pkmap_page_table;
4646
#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
4747
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
4848

49-
extern void kunmap_high(struct page *page);
50-
5149
#define ARCH_HAS_KMAP_FLUSH_TLB
5250
extern void kmap_flush_tlb(unsigned long addr);
53-
extern void kunmap(struct page *page);
5451
extern void *kmap_atomic(struct page *page);
5552
extern void __kunmap_atomic(void *kvaddr);
5653
extern void *kmap_atomic_pfn(unsigned long pfn);

arch/mips/mm/highmem.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,6 @@ void kmap_flush_tlb(unsigned long addr)
1818
}
1919
EXPORT_SYMBOL(kmap_flush_tlb);
2020

21-
void kunmap(struct page *page)
22-
{
23-
might_sleep();
24-
if (!PageHighMem(page))
25-
return;
26-
kunmap_high(page);
27-
}
28-
EXPORT_SYMBOL(kunmap);
29-
3021
/*
3122
* kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because
3223
* no global lock is needed and because the kmap code must perform a global TLB

arch/nds32/include/asm/highmem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,13 @@ extern unsigned long highstart_pfn, highend_pfn;
4444

4545
extern pte_t *pkmap_page_table;
4646

47-
extern void kunmap_high(struct page *page);
48-
4947
extern void kmap_init(void);
5048

5149
/*
5250
* The following functions are already defined by <linux/highmem.h>
5351
* when CONFIG_HIGHMEM is not set.
5452
*/
5553
#ifdef CONFIG_HIGHMEM
56-
extern void kunmap(struct page *page);
5754
extern void *kmap_atomic(struct page *page);
5855
extern void __kunmap_atomic(void *kvaddr);
5956
extern void *kmap_atomic_pfn(unsigned long pfn);

arch/nds32/mm/highmem.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@
1010
#include <asm/fixmap.h>
1111
#include <asm/tlbflush.h>
1212

13-
void kunmap(struct page *page)
14-
{
15-
might_sleep();
16-
if (!PageHighMem(page))
17-
return;
18-
kunmap_high(page);
19-
}
20-
21-
EXPORT_SYMBOL(kunmap);
22-
2313
void *kmap_atomic(struct page *page)
2414
{
2515
unsigned int idx;

0 commit comments

Comments
 (0)