[PATCH v2 00/23] powerpc: Fix W=1 compile errors
STALE2010d
Revision v2 of 2 in this series.
25 messages,
2 authors,
2021-02-03 · open the first message on its own page
Hello,
Here is an assorted collection of fixes for W=1.
After this series, only a few errors are left, some missing declarations
in arch/powerpc/kernel/sys_ppc32.c, panic_smp_self_stop() declaration
and a few of these which I don't know how to fix :
./arch/powerpc/xmon/xmon.c: In function ‘xmon_print_symbol’:
./arch/powerpc/xmon/xmon.c:3656:14: error: variable ‘name’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
3656 | const char *name = NULL;
| ^~~~
Cheers,
C.
Changes in v2 :
- improved commit logs
- reworked some changes to reduce the number of lines.
- fixed misuse of asm/asm-prototypes.h for soft_nmi_interrupt()
Cédric Le Goater (23):
powerpc/mm: Include __find_linux_pte() prototype
powerpc/pseries/ras: Remove unused variable 'status'
powerpc/pseries/eeh: Make pseries_pcibios_bus_add_device() static
powerpc/pseries/ras: Make init_ras_hotplug_IRQ() static
powerpc/pmem: Include pmem prototypes
powerpc/setup_64: Make some routines static
powerpc/mce: Include prototypes
powerpc/smp: Include tick_broadcast() prototype
powerpc/smp: Make debugger_ipi_callback() static
powerpc/optprobes: Remove unused routine patch_imm32_load_insns()
powerpc/optprobes: Make patch_imm64_load_insns() static
powerpc/mm: Declare some prototypes
powerpc/mm: Move hpte_insert_repeating() prototype
powerpc/mm: Declare preload_new_slb_context() prototype
powerpc/mm/hugetlb: Make pseries_alloc_bootmem_huge_page() static
powerpc/mm: Declare arch_report_meminfo() prototype.
powerpc/watchdog: Declare soft_nmi_interrupt() prototype
KVM: PPC: Make the VMX instruction emulation routines static
KVM: PPC: Book3S HV: Include prototypes
KVM: PPC: Book3S HV: Declare some prototypes
powerpc/pseries: Make IOV setup routines static
powerpc/pcidn: Make IOV setup routines static
powerpc/pseries/eeh: Make pseries_send_allow_unfreeze() static
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 5 +++++
arch/powerpc/include/asm/kvm_book3s.h | 7 +++++++
arch/powerpc/include/asm/nmi.h | 1 +
arch/powerpc/include/asm/pgtable.h | 3 +++
arch/powerpc/kernel/mce.c | 1 +
arch/powerpc/kernel/optprobes.c | 21 +------------------
arch/powerpc/kernel/setup_64.c | 7 ++++---
arch/powerpc/kernel/smp.c | 3 ++-
arch/powerpc/kernel/watchdog.c | 1 +
arch/powerpc/kvm/book3s_64_mmu_hv.c | 1 +
arch/powerpc/kvm/powerpc.c | 8 +++----
arch/powerpc/lib/pmem.c | 1 +
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 4 ----
arch/powerpc/mm/hugetlbpage.c | 2 +-
arch/powerpc/mm/pgtable.c | 1 +
arch/powerpc/platforms/pseries/eeh_pseries.c | 5 ++---
arch/powerpc/platforms/pseries/pci.c | 15 +++++++------
arch/powerpc/platforms/pseries/ras.c | 15 +++++--------
arch/powerpc/platforms/pseries/setup.c | 8 +++----
19 files changed, 51 insertions(+), 58 deletions(-)
--
2.26.2
pseries_pcibios_bus_add_device() is a local routine defining the
pcibios_bus_add_device() handler of the pseries machine in
eeh_pseries_init(). It doesn't need to be external.
It fixes this W=1 compile error:
../arch/powerpc/platforms/pseries/eeh_pseries.c:46:6: error: no previous prototype for ‘pseries_pcibios_bus_add_device’ [-Werror=missing-prototypes]
46 | void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes: dae7253f9f78 ("powerpc/pseries: Add pseries SR-IOV Machine dependent calls")
Cc: Alexey Kardashevskiy <redacted>
Cc: Frédéric Barrat <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/eeh_pseries.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c b/arch/powerpc/platforms/pseries/eeh_pseries.c
index cf024fa37bda..de45ceb634f9 100644
--- a/arch/powerpc/platforms/pseries/eeh_pseries.c
+++ b/arch/powerpc/platforms/pseries/eeh_pseries.c @@ -43,7 +43,7 @@ static int ibm_get_config_addr_info;
static int ibm_get_config_addr_info2 ;
static int ibm_configure_pe ;
- void pseries_pcibios_bus_add_device ( struct pci_dev * pdev )
+ static void pseries_pcibios_bus_add_device ( struct pci_dev * pdev )
{
struct pci_dn * pdn = pci_get_pdn ( pdev );
--
2.26.2
It fixes these W=1 compile errors :
../arch/powerpc/kernel/mce.c:591:14: error: no previous prototype for ‘machine_check_early’ [-Werror=missing-prototypes]
591 | long notrace machine_check_early(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~
../arch/powerpc/kernel/mce.c:725:6: error: no previous prototype for ‘hmi_exception_realmode’ [-Werror=missing-prototypes]
725 | long hmi_exception_realmode(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~
Cc: Ganesh Goudar <redacted>
Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/mce.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
index 9f3e133b57b7..c381dc2f9858 100644
--- a/arch/powerpc/kernel/mce.c
+++ b/arch/powerpc/kernel/mce.c @@ -21,6 +21,7 @@
#include <asm/machdep.h>
#include <asm/mce.h>
#include <asm/nmi.h>
+ #include <asm/asm-prototypes.h>
static DEFINE_PER_CPU ( int , mce_nest_count );
static DEFINE_PER_CPU ( struct machine_check_event [ MAX_MC_EVT ], mce_event ); --
2.26.2
init_ras_hotplug_IRQ() is a local routine used by a machine init call
and it doesn't need to be external.
It fixes this W=1 compile error:
../arch/powerpc/platforms/pseries/ras.c:125:12: error: no previous prototype for ‘init_ras_hotplug_IRQ’ [-Werror=missing-prototypes]
125 | int __init init_ras_hotplug_IRQ(void)
| ^~~~~~~~~~~~~~~~~~~~
Fixes: c9dccf1d074a ("powerpc/pseries: Enable RAS hotplug events later")
Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Cc: Ganesh Goudar <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/ras.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index bcb614ffce6a..d2fca1aa6742 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c @@ -122,7 +122,7 @@ static inline u8 rtas_mc_error_sub_type(const struct pseries_mc_errorlog *mlog)
* devices or systems ( e . g . hugepages ) that have not been initialized at the
* subsys stage .
*/
- int __init init_ras_hotplug_IRQ ( void )
+ static int __init init_ras_hotplug_IRQ ( void )
{
struct device_node * np ;
--
2.26.2
patch_imm64_load_insns() is only used locally in
arch_prepare_optimized_kprobe() and does not need to be external.
It fixes this W=1 compile error :
../arch/powerpc/kernel/optprobes.c:149:6: error: no previous prototype for ‘patch_imm64_load_insns’ [-Werror=missing-prototypes]
149 | void patch_imm64_load_insns(unsigned int val, kprobe_opcode_t *addr)
Cc: Jordan Niethe <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/optprobes.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/optprobes.c b/arch/powerpc/kernel/optprobes.c
index da6b88b80ba4..7f7cdbeacd1a 100644
--- a/arch/powerpc/kernel/optprobes.c
+++ b/arch/powerpc/kernel/optprobes.c @@ -145,7 +145,7 @@ void arch_remove_optimized_kprobe(struct optimized_kprobe *op)
* Generate instructions to load provided immediate 64 - bit value
* to register ' reg ' and patch these instructions at ' addr ' .
*/
- void patch_imm64_load_insns ( unsigned long val , int reg , kprobe_opcode_t * addr )
+ static void patch_imm64_load_insns ( unsigned long val , int reg , kprobe_opcode_t * addr )
{
/* lis reg,(op)@highest */
patch_instruction (( struct ppc_inst * ) addr , --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/mm/book3s64/hash_utils.c:1867:6: error: no previous prototype for ‘hpte_insert_repeating’ [-Werror=missing-prototypes]
1867 | long hpte_insert_repeating(unsigned long hash, unsigned long vpn,
| ^~~~~~~~~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 ++
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 4 ----
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/mmu-hash.h b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
index cb95b16e9a7b..2bffc7a0fdb8 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu-hash.h @@ -454,6 +454,8 @@ static inline unsigned long hpt_hash(unsigned long vpn,
#define HPTE_NOHPTE_UPDATE 0x2
#define HPTE_USE_KERNEL_KEY 0x4
+ long hpte_insert_repeating ( unsigned long hash , unsigned long vpn , unsigned long pa ,
+ unsigned long rlags , unsigned long vflags , int psize , int ssize );
extern int __hash_page_4K ( unsigned long ea , unsigned long access ,
unsigned long vsid , pte_t * ptep , unsigned long trap ,
unsigned long flags , int ssize , int subpage_prot ); diff --git a/arch/powerpc/mm/book3s64/hash_hugetlbpage.c b/arch/powerpc/mm/book3s64/hash_hugetlbpage.c
index b5e9fff8c217..a688e1324ae5 100644
--- a/arch/powerpc/mm/book3s64/hash_hugetlbpage.c
+++ b/arch/powerpc/mm/book3s64/hash_hugetlbpage.c @@ -16,10 +16,6 @@
unsigned int hpage_shift ;
EXPORT_SYMBOL ( hpage_shift );
- extern long hpte_insert_repeating ( unsigned long hash , unsigned long vpn ,
- unsigned long pa , unsigned long rlags ,
- unsigned long vflags , int psize , int ssize );
-
int __hash_page_huge ( unsigned long ea , unsigned long access , unsigned long vsid ,
pte_t * ptep , unsigned long trap , unsigned long flags ,
int ssize , unsigned int shift , unsigned int mmu_psize ) --
2.26.2
pseries_alloc_bootmem_huge_page() is only used locally in
alloc_bootmem_huge_page() and does not need to be external.
It fixes this W=1 compile error :
../arch/powerpc/mm/hugetlbpage.c:220:12: error: no previous prototype for ‘pseries_alloc_bootmem_huge_page’ [-Werror=missing-prototypes]
220 | int __init pseries_alloc_bootmem_huge_page(struct hstate *hstate)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/mm/hugetlbpage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 8b3cc4d688e8..4e7d9b91f1da 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c @@ -217,7 +217,7 @@ void __init pseries_add_gpage(u64 addr, u64 page_size, unsigned long number_of_p
}
}
- int __init pseries_alloc_bootmem_huge_page ( struct hstate * hstate )
+ static int __init pseries_alloc_bootmem_huge_page ( struct hstate * hstate )
{
struct huge_bootmem_page * m ;
if ( nr_gpages == 0 ) --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/kernel/smp.c:569:6: error: no previous prototype for ‘tick_broadcast’ [-Werror=missing-prototypes]
569 | void tick_broadcast(const struct cpumask *mask)
| ^~~~~~~~~~~~~~
Cc: "Gautham R. Shenoy" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/smp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 9e2246e80efd..a96d90d7c442 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c @@ -34,6 +34,7 @@
#include <linux/random.h>
#include <linux/stackprotector.h>
#include <linux/pgtable.h>
+ #include <linux/clockchips.h>
#include <asm/ptrace.h>
#include <linux/atomic.h> --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/mm/book3s64/hash_utils.c:1515:5: error: no previous prototype for ‘__hash_page’ [-Werror=missing-prototypes]
1515 | int __hash_page(unsigned long trap, unsigned long ea, unsigned long dsisr,
| ^~~~~~~~~~~
../arch/powerpc/mm/book3s64/hash_utils.c:1850:6: error: no previous prototype for ‘low_hash_fault’ [-Werror=missing-prototypes]
1850 | void low_hash_fault(struct pt_regs *regs, unsigned long address, int rc)
| ^~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/powerpc/include/asm/book3s/64/mmu-hash.h b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
index 066b1d34c7bc..cb95b16e9a7b 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu-hash.h @@ -467,6 +467,8 @@ extern int hash_page_mm(struct mm_struct *mm, unsigned long ea,
unsigned long flags );
extern int hash_page ( unsigned long ea , unsigned long access , unsigned long trap ,
unsigned long dsisr );
+ void low_hash_fault ( struct pt_regs * regs , unsigned long address , int rc );
+ int __hash_page ( unsigned long trap , unsigned long ea , unsigned long dsisr , unsigned long msr );
int __hash_page_huge ( unsigned long ea , unsigned long access , unsigned long vsid ,
pte_t * ptep , unsigned long trap , unsigned long flags ,
int ssize , unsigned int shift , unsigned int mmu_psize ); --
2.26.2
Commit 650b55b707fd ("powerpc: Add prefixed instructions to instruction
data type") removed the use of patch_imm32_load_insns(). Clean it up
to fix this W=1 compile error :
../arch/powerpc/kernel/optprobes.c:149:6: error: no previous prototype for ‘patch_imm32_load_insns’ [-Werror=missing-prototypes]
149 | void patch_imm32_load_insns(unsigned int val, kprobe_opcode_t *addr)
Cc: Jordan Niethe <redacted>
Fixes: 650b55b707fd ("powerpc: Add prefixed instructions to instruction data type")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/optprobes.c | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/arch/powerpc/kernel/optprobes.c b/arch/powerpc/kernel/optprobes.c
index 69bfe96884e2..da6b88b80ba4 100644
--- a/arch/powerpc/kernel/optprobes.c
+++ b/arch/powerpc/kernel/optprobes.c @@ -141,25 +141,6 @@ void arch_remove_optimized_kprobe(struct optimized_kprobe *op)
}
}
- /*
- * emulate_step () requires insn to be emulated as
- * second parameter . Load register ' r4 ' with the
- * instruction .
- */
- void patch_imm32_load_insns ( unsigned int val , kprobe_opcode_t * addr )
- {
- /* addis r4,0,(insn)@h */
- patch_instruction (( struct ppc_inst * ) addr ,
- ppc_inst ( PPC_INST_ADDIS | ___PPC_RT ( 4 ) |
- (( val >> 16 ) & 0xffff )));
- addr ++ ;
-
- /* ori r4,r4,(insn)@l */
- patch_instruction (( struct ppc_inst * ) addr ,
- ppc_inst ( PPC_INST_ORI | ___PPC_RA ( 4 ) |
- ___PPC_RS ( 4 ) | ( val & 0xffff )));
- }
-
/*
* Generate instructions to load provided immediate 64 - bit value
* to register ' reg ' and patch these instructions at ' addr ' . --
2.26.2
debugger_ipi_callback() is a local routine used as a NMI IPI handler and
does not need to be external.
It fixes this W=1 compile error :
../arch/powerpc/kernel/smp.c:579:6: error: no previous prototype for ‘debugger_ipi_callback’ [-Werror=missing-prototypes]
579 | void debugger_ipi_callback(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/smp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index a96d90d7c442..5a4d59a1070d 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c @@ -577,7 +577,7 @@ void tick_broadcast(const struct cpumask *mask)
#endif
#ifdef CONFIG_DEBUGGER
- void debugger_ipi_callback ( struct pt_regs * regs )
+ static void debugger_ipi_callback ( struct pt_regs * regs )
{
debugger_ipi ( regs );
} --
2.26.2
The last use of 'status' was removed in 2012. Remove the variable to
fix this W=1 compile error.
../arch/powerpc/platforms/pseries/ras.c: In function ‘ras_epow_interrupt’:
../arch/powerpc/platforms/pseries/ras.c:318:6: error: variable ‘status’ set but not used [-Werror=unused-but-set-variable]
318 | int status;
| ^~~~~~
Fixes: 55fc0c561742 ("powerpc/pseries: Parse and handle EPOW interrupts")
Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Cc: Ganesh Goudar <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/ras.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index 149cec2212e6..bcb614ffce6a 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c @@ -315,12 +315,10 @@ static irqreturn_t ras_hotplug_interrupt(int irq, void *dev_id)
/* Handle environmental and power warning (EPOW) interrupts. */
static irqreturn_t ras_epow_interrupt ( int irq , void * dev_id )
{
- int status ;
int state ;
int critical ;
- status = rtas_get_sensor_fast ( EPOW_SENSOR_TOKEN , EPOW_SENSOR_INDEX ,
- & state );
+ rtas_get_sensor_fast ( EPOW_SENSOR_TOKEN , EPOW_SENSOR_INDEX , & state );
if ( state > 3 )
critical = 1 ; /* Time Critical */ @@ -329,12 +327,9 @@ static irqreturn_t ras_epow_interrupt(int irq, void *dev_id)
spin_lock ( & ras_log_buf_lock );
- status = rtas_call ( ras_check_exception_token , 6 , 1 , NULL ,
- RTAS_VECTOR_EXTERNAL_INTERRUPT ,
- virq_to_hw ( irq ),
- RTAS_EPOW_WARNING ,
- critical , __pa ( & ras_log_buf ),
- rtas_get_error_log_max ());
+ rtas_call ( ras_check_exception_token , 6 , 1 , NULL , RTAS_VECTOR_EXTERNAL_INTERRUPT ,
+ virq_to_hw ( irq ), RTAS_EPOW_WARNING , critical , __pa ( & ras_log_buf ),
+ rtas_get_error_log_max ());
log_error ( ras_log_buf , ERR_TYPE_RTAS_LOG , 0 );
--
2.26.2
Only used locally. It fixes this W=1 compile error :
../arch/powerpc/platforms/pseries/eeh_pseries.c:697:5: error: no previous prototype for ‘pseries_send_allow_unfreeze’ [-Werror=missing-prototypes]
697 | int pseries_send_allow_unfreeze(struct pci_dn *pdn,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Cc: Frederic Barrat <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/eeh_pseries.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c b/arch/powerpc/platforms/pseries/eeh_pseries.c
index de45ceb634f9..bc15200852b7 100644
--- a/arch/powerpc/platforms/pseries/eeh_pseries.c
+++ b/arch/powerpc/platforms/pseries/eeh_pseries.c @@ -694,8 +694,7 @@ static int pseries_eeh_write_config(struct eeh_dev *edev, int where, int size, u
}
#ifdef CONFIG_PCI_IOV
- int pseries_send_allow_unfreeze ( struct pci_dn * pdn ,
- u16 * vf_pe_array , int cur_vfs )
+ static int pseries_send_allow_unfreeze ( struct pci_dn * pdn , u16 * vf_pe_array , int cur_vfs )
{
int rc ;
int ibm_allow_unfreeze = rtas_token ( "ibm,open-sriov-allow-unfreeze" ); --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/mm/book3s64/slb.c:380:6: error: no previous prototype for ‘preload_new_slb_context’ [-Werror=missing-prototypes]
380 | void preload_new_slb_context(unsigned long start, unsigned long sp)
| ^~~~~~~~~~~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/include/asm/book3s/64/mmu-hash.h b/arch/powerpc/include/asm/book3s/64/mmu-hash.h
index 2bffc7a0fdb8..f911bdb68d8b 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu-hash.h @@ -525,6 +525,7 @@ void slb_dump_contents(struct slb_entry *slb_ptr);
extern void slb_vmalloc_update ( void );
extern void slb_set_size ( u16 size );
+ void preload_new_slb_context ( unsigned long start , unsigned long sp );
#endif /* __ASSEMBLY__ */
/* --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/mm/book3s64/pgtable.c:411:6: error: no previous prototype for ‘arch_report_meminfo’ [-Werror=missing-prototypes]
411 | void arch_report_meminfo(struct seq_file *m)
| ^~~~~~~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/pgtable.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index f7613f43c9cf..4eed82172e33 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h @@ -162,6 +162,9 @@ static inline bool is_ioremap_addr(const void *x)
return addr >= IOREMAP_BASE && addr < IOREMAP_END ;
}
+
+ struct seq_file ;
+ void arch_report_meminfo ( struct seq_file * m );
#endif /* CONFIG_PPC64 */
#endif /* __ASSEMBLY__ */ --
2.26.2
These are only used locally. It fixes these W=1 compile errors :
../arch/powerpc/kvm/powerpc.c:1521:5: error: no previous prototype for ‘kvmppc_get_vmx_dword’ [-Werror=missing-prototypes]
1521 | int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
| ^~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/powerpc.c:1539:5: error: no previous prototype for ‘kvmppc_get_vmx_word’ [-Werror=missing-prototypes]
1539 | int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
| ^~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/powerpc.c:1557:5: error: no previous prototype for ‘kvmppc_get_vmx_hword’ [-Werror=missing-prototypes]
1557 | int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
| ^~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/powerpc.c:1575:5: error: no previous prototype for ‘kvmppc_get_vmx_byte’ [-Werror=missing-prototypes]
1575 | int kvmppc_get_vmx_byte(struct kvm_vcpu *vcpu, int index, u64 *val)
| ^~~~~~~~~~~~~~~~~~~
Cc: Paul Mackerras <redacted>
Fixes: acc9eb9305fe ("KVM: PPC: Reimplement LOAD_VMX/STORE_VMX instruction mmio emulation with analyse_instr() input")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kvm/powerpc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index cf52d26f49cd..25966ae3271e 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c @@ -1518,7 +1518,7 @@ int kvmppc_handle_vmx_load(struct kvm_vcpu *vcpu,
return emulated ;
}
- int kvmppc_get_vmx_dword ( struct kvm_vcpu * vcpu , int index , u64 * val )
+ static int kvmppc_get_vmx_dword ( struct kvm_vcpu * vcpu , int index , u64 * val )
{
union kvmppc_one_reg reg ;
int vmx_offset = 0 ; @@ -1536,7 +1536,7 @@ int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)
return result ;
}
- int kvmppc_get_vmx_word ( struct kvm_vcpu * vcpu , int index , u64 * val )
+ static int kvmppc_get_vmx_word ( struct kvm_vcpu * vcpu , int index , u64 * val )
{
union kvmppc_one_reg reg ;
int vmx_offset = 0 ; @@ -1554,7 +1554,7 @@ int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)
return result ;
}
- int kvmppc_get_vmx_hword ( struct kvm_vcpu * vcpu , int index , u64 * val )
+ static int kvmppc_get_vmx_hword ( struct kvm_vcpu * vcpu , int index , u64 * val )
{
union kvmppc_one_reg reg ;
int vmx_offset = 0 ; @@ -1572,7 +1572,7 @@ int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)
return result ;
}
- int kvmppc_get_vmx_byte ( struct kvm_vcpu * vcpu , int index , u64 * val )
+ static int kvmppc_get_vmx_byte ( struct kvm_vcpu * vcpu , int index , u64 * val )
{
union kvmppc_one_reg reg ;
int vmx_offset = 0 ; --
2.26.2
It fixes these W=1 compile errors :
CC [M] arch/powerpc/kvm/book3s_64_mmu_hv.o
../arch/powerpc/kvm/book3s_64_mmu_hv.c:879:5: error: no previous prototype for ‘kvm_unmap_hva_range_hv’ [-Werror=missing-prototypes]
879 | int kvm_unmap_hva_range_hv(struct kvm *kvm, unsigned long start, unsigned long end)
| ^~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_64_mmu_hv.c:888:6: error: no previous prototype for ‘kvmppc_core_flush_memslot_hv’ [-Werror=missing-prototypes]
888 | void kvmppc_core_flush_memslot_hv(struct kvm *kvm,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_64_mmu_hv.c:970:5: error: no previous prototype for ‘kvm_age_hva_hv’ [-Werror=missing-prototypes]
970 | int kvm_age_hva_hv(struct kvm *kvm, unsigned long start, unsigned long end)
| ^~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_64_mmu_hv.c:1011:5: error: no previous prototype for ‘kvm_test_age_hva_hv’ [-Werror=missing-prototypes]
1011 | int kvm_test_age_hva_hv(struct kvm *kvm, unsigned long hva)
| ^~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_64_mmu_hv.c:1019:6: error: no previous prototype for ‘kvm_set_spte_hva_hv’ [-Werror=missing-prototypes]
1019 | void kvm_set_spte_hva_hv(struct kvm *kvm, unsigned long hva, pte_t pte)
| ^~~~~~~~~~~~~~~~~~~
Cc: Paul Mackerras <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kvm/book3s_64_mmu_hv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index 38ea396a23d6..c77f2d4f44ca 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c @@ -27,6 +27,7 @@
#include <asm/cputable.h>
#include <asm/pte-walk.h>
+ #include "book3s.h"
#include "trace_hv.h"
//#define DEBUG_RESIZE_HPT 1 --
2.26.2
soft_nmi_interrupt() usage requires PPC_WATCHDOG to be configured.
Check the CONFIG definition to declare the prototype.
It fixes this W=1 compile error :
../arch/powerpc/kernel/watchdog.c:250:6: error: no previous prototype for ‘soft_nmi_interrupt’ [-Werror=missing-prototypes]
250 | void soft_nmi_interrupt(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~
Cc: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/nmi.h | 1 +
arch/powerpc/kernel/watchdog.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/powerpc/include/asm/nmi.h b/arch/powerpc/include/asm/nmi.h
index 84b4cfe73edd..63eccea93796 100644
--- a/arch/powerpc/include/asm/nmi.h
+++ b/arch/powerpc/include/asm/nmi.h @@ -4,6 +4,7 @@
#ifdef CONFIG_PPC_WATCHDOG
extern void arch_touch_nmi_watchdog ( void );
+ void soft_nmi_interrupt ( struct pt_regs * regs );
#else
static inline void arch_touch_nmi_watchdog ( void ) {}
#endif diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
index af3c15a1d41e..3ae13c2a10cf 100644
--- a/arch/powerpc/kernel/watchdog.c
+++ b/arch/powerpc/kernel/watchdog.c @@ -27,6 +27,7 @@
#include <linux/smp.h>
#include <asm/paca.h>
+ #include <asm/nmi.h>
/*
* The powerpc watchdog ensures that each CPU is able to service timers . --
2.26.2
These are only used locally. It fixes these W=1 compile errors :
../arch/powerpc/platforms/pseries/setup.c:610:17: error: no previous prototype for ‘pseries_get_iov_fw_value’ [-Werror=missing-prototypes]
610 | resource_size_t pseries_get_iov_fw_value(struct pci_dev *dev, int resno,
| ^~~~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/setup.c:646:6: error: no previous prototype for ‘of_pci_set_vf_bar_size’ [-Werror=missing-prototypes]
646 | void of_pci_set_vf_bar_size(struct pci_dev *dev, const int *indexes)
| ^~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/setup.c:668:6: error: no previous prototype for ‘of_pci_parse_iov_addrs’ [-Werror=missing-prototypes]
668 | void of_pci_parse_iov_addrs(struct pci_dev *dev, const int *indexes)
| ^~~~~~~~~~~~~~~~~~~~~~
Cc: Frédéric Barrat <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/setup.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 090c13f6c881..0272aa4e74e3 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c @@ -607,8 +607,8 @@ enum get_iov_fw_value_index {
WDW_SIZE = 3 /* Get Window Size */
};
- resource_size_t pseries_get_iov_fw_value ( struct pci_dev * dev , int resno ,
- enum get_iov_fw_value_index value )
+ static resource_size_t pseries_get_iov_fw_value ( struct pci_dev * dev , int resno ,
+ enum get_iov_fw_value_index value )
{
const int * indexes ;
struct device_node * dn = pci_device_to_OF_node ( dev ); @@ -643,7 +643,7 @@ resource_size_t pseries_get_iov_fw_value(struct pci_dev *dev, int resno,
return ret ;
}
- void of_pci_set_vf_bar_size ( struct pci_dev * dev , const int * indexes )
+ static void of_pci_set_vf_bar_size ( struct pci_dev * dev , const int * indexes )
{
struct resource * res ;
resource_size_t base , size ; @@ -665,7 +665,7 @@ void of_pci_set_vf_bar_size(struct pci_dev *dev, const int *indexes)
}
}
- void of_pci_parse_iov_addrs ( struct pci_dev * dev , const int * indexes )
+ static void of_pci_parse_iov_addrs ( struct pci_dev * dev , const int * indexes )
{
struct resource * res , * root , * conflict ;
resource_size_t base , size ; --
2.26.2
This fixes these W=1 compile errors:
../arch/powerpc/kvm/book3s_hv_builtin.c:425:6: error: no previous prototype for ‘kvmppc_read_intr’ [-Werror=missing-prototypes]
425 | long kvmppc_read_intr(void)
| ^~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_hv_builtin.c:652:6: error: no previous prototype for ‘kvmppc_bad_interrupt’ [-Werror=missing-prototypes]
652 | void kvmppc_bad_interrupt(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_hv_builtin.c:695:6: error: no previous prototype for ‘kvmhv_p9_set_lpcr’ [-Werror=missing-prototypes]
695 | void kvmhv_p9_set_lpcr(struct kvm_split_mode *sip)
| ^~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_hv_builtin.c:740:6: error: no previous prototype for ‘kvmhv_p9_restore_lpcr’ [-Werror=missing-prototypes]
740 | void kvmhv_p9_restore_lpcr(struct kvm_split_mode *sip)
| ^~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_hv_builtin.c:768:6: error: no previous prototype for ‘kvmppc_set_msr_hv’ [-Werror=missing-prototypes]
768 | void kvmppc_set_msr_hv(struct kvm_vcpu *vcpu, u64 msr)
| ^~~~~~~~~~~~~~~~~
../arch/powerpc/kvm/book3s_hv_builtin.c:817:6: error: no previous prototype for ‘kvmppc_inject_interrupt_hv’ [-Werror=missing-prototypes]
817 | void kvmppc_inject_interrupt_hv(struct kvm_vcpu *vcpu, int vec, u64 srr1_flags)
Cc: Paul Mackerras <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/include/asm/kvm_book3s.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index d32ec9ae73bd..2f5f919f6cd3 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h @@ -277,6 +277,13 @@ extern int kvmppc_hcall_impl_hv_realmode(unsigned long cmd);
extern void kvmppc_copy_to_svcpu ( struct kvm_vcpu * vcpu );
extern void kvmppc_copy_from_svcpu ( struct kvm_vcpu * vcpu );
+ long kvmppc_read_intr ( void );
+ void kvmppc_bad_interrupt ( struct pt_regs * regs );
+ void kvmhv_p9_set_lpcr ( struct kvm_split_mode * sip );
+ void kvmhv_p9_restore_lpcr ( struct kvm_split_mode * sip );
+ void kvmppc_set_msr_hv ( struct kvm_vcpu * vcpu , u64 msr );
+ void kvmppc_inject_interrupt_hv ( struct kvm_vcpu * vcpu , int vec , u64 srr1_flags );
+
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
void kvmppc_save_tm_pr ( struct kvm_vcpu * vcpu );
void kvmppc_restore_tm_pr ( struct kvm_vcpu * vcpu ); --
2.26.2
These are only used locally. It fixes these W=1 compile errors :
../arch/powerpc/platforms/pseries/pci.c:58:5: error: no previous prototype for ‘pseries_send_map_pe’ [-Werror=missing-prototypes]
58 | int pseries_send_map_pe(struct pci_dev *pdev,
| ^~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/pci.c:91:6: error: no previous prototype for ‘pseries_set_pe_num’ [-Werror=missing-prototypes]
91 | void pseries_set_pe_num(struct pci_dev *pdev, u16 vf_index, __be16 pe_num)
| ^~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/pci.c:105:5: error: no previous prototype for ‘pseries_associate_pes’ [-Werror=missing-prototypes]
105 | int pseries_associate_pes(struct pci_dev *pdev, u16 num_vfs)
| ^~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/pci.c:149:5: error: no previous prototype for ‘pseries_pci_sriov_enable’ [-Werror=missing-prototypes]
149 | int pseries_pci_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
| ^~~~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/pci.c:192:5: error: no previous prototype for ‘pseries_pcibios_sriov_enable’ [-Werror=missing-prototypes]
192 | int pseries_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../arch/powerpc/platforms/pseries/pci.c:199:5: error: no previous prototype for ‘pseries_pcibios_sriov_disable’ [-Werror=missing-prototypes]
199 | int pseries_pcibios_sriov_disable(struct pci_dev *pdev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cc: Frédéric Barrat <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/platforms/pseries/pci.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/platforms/pseries/pci.c b/arch/powerpc/platforms/pseries/pci.c
index 72a4d4167849..1bffbd1c9a94 100644
--- a/arch/powerpc/platforms/pseries/pci.c
+++ b/arch/powerpc/platforms/pseries/pci.c @@ -55,9 +55,8 @@ struct pe_map_bar_entry {
__be32 reserved ; /* Reserved Space */
};
- int pseries_send_map_pe ( struct pci_dev * pdev ,
- u16 num_vfs ,
- struct pe_map_bar_entry * vf_pe_array )
+ static int pseries_send_map_pe ( struct pci_dev * pdev , u16 num_vfs ,
+ struct pe_map_bar_entry * vf_pe_array )
{
struct pci_dn * pdn ;
int rc ; @@ -88,7 +87,7 @@ int pseries_send_map_pe(struct pci_dev *pdev,
return rc ;
}
- void pseries_set_pe_num ( struct pci_dev * pdev , u16 vf_index , __be16 pe_num )
+ static void pseries_set_pe_num ( struct pci_dev * pdev , u16 vf_index , __be16 pe_num )
{
struct pci_dn * pdn ;
@@ -102,7 +101,7 @@ void pseries_set_pe_num(struct pci_dev *pdev, u16 vf_index, __be16 pe_num)
pdn -> pe_num_map [ vf_index ]);
}
- int pseries_associate_pes ( struct pci_dev * pdev , u16 num_vfs )
+ static int pseries_associate_pes ( struct pci_dev * pdev , u16 num_vfs )
{
struct pci_dn * pdn ;
int i , rc , vf_index ; @@ -146,7 +145,7 @@ int pseries_associate_pes(struct pci_dev *pdev, u16 num_vfs)
return rc ;
}
- int pseries_pci_sriov_enable ( struct pci_dev * pdev , u16 num_vfs )
+ static int pseries_pci_sriov_enable ( struct pci_dev * pdev , u16 num_vfs )
{
struct pci_dn * pdn ;
int rc ; @@ -189,14 +188,14 @@ int pseries_pci_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
return rc ;
}
- int pseries_pcibios_sriov_enable ( struct pci_dev * pdev , u16 num_vfs )
+ static int pseries_pcibios_sriov_enable ( struct pci_dev * pdev , u16 num_vfs )
{
/* Allocate PCI data */
add_sriov_vf_pdns ( pdev );
return pseries_pci_sriov_enable ( pdev , num_vfs );
}
- int pseries_pcibios_sriov_disable ( struct pci_dev * pdev )
+ static int pseries_pcibios_sriov_disable ( struct pci_dev * pdev )
{
struct pci_dn * pdn ;
--
2.26.2
The following routines are only called by local services and do not
need to be external symbols.
It fixes these W=1 errors :
../arch/powerpc/kernel/setup_64.c:261:13: error: no previous prototype for ‘record_spr_defaults’ [-Werror=missing-prototypes]
261 | void __init record_spr_defaults(void)
| ^~~~~~~~~~~~~~~~~~~
../arch/powerpc/kernel/setup_64.c:1011:6: error: no previous prototype for ‘entry_flush_enable’ [-Werror=missing-prototypes]
1011 | void entry_flush_enable(bool enable)
| ^~~~~~~~~~~~~~~~~~
../arch/powerpc/kernel/setup_64.c:1023:6: error: no previous prototype for ‘uaccess_flush_enable’ [-Werror=missing-prototypes]
1023 | void uaccess_flush_enable(bool enable)
| ^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/kernel/setup_64.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index c28e949cc222..560ed8b975e7 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c @@ -67,6 +67,7 @@
#include <asm/kup.h>
#include <asm/early_ioremap.h>
#include <asm/pgalloc.h>
+ #include <asm/asm-prototypes.h>
#include "setup.h"
@@ -258,7 +259,7 @@ static void cpu_ready_for_interrupts(void)
unsigned long spr_default_dscr = 0 ;
- void __init record_spr_defaults ( void )
+ static void __init record_spr_defaults ( void )
{
if ( early_cpu_has_feature ( CPU_FTR_DSCR ))
spr_default_dscr = mfspr ( SPRN_DSCR ); @@ -1008,7 +1009,7 @@ void rfi_flush_enable(bool enable)
rfi_flush = enable ;
}
- void entry_flush_enable ( bool enable )
+ static void entry_flush_enable ( bool enable )
{
if ( enable ) {
do_entry_flush_fixups ( enabled_flush_types ); @@ -1020,7 +1021,7 @@ void entry_flush_enable(bool enable)
entry_flush = enable ;
}
- void uaccess_flush_enable ( bool enable )
+ static void uaccess_flush_enable ( bool enable )
{
if ( enable ) {
do_uaccess_flush_fixups ( enabled_flush_types ); --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/mm/pgtable.c:337:8: error: no previous prototype for ‘__find_linux_pte’ [-Werror=missing-prototypes]
337 | pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
| ^~~~~~~~~~~~~~~~
Cc: "Aneesh Kumar K.V" <redacted>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/mm/pgtable.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 15555c95cebc..3a41545e5c07 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c @@ -26,6 +26,7 @@
#include <asm/tlbflush.h>
#include <asm/tlb.h>
#include <asm/hugetlb.h>
+ #include <asm/pte-walk.h>
static inline int is_exec_fault ( void )
{ --
2.26.2
It fixes this W=1 compile error :
../arch/powerpc/lib/pmem.c:51:6: error: no previous prototype for ‘arch_wb_cache_pmem’ [-Werror=missing-prototypes]
51 | void arch_wb_cache_pmem(void *addr, size_t size)
| ^~~~~~~~~~~~~~~~~~
../arch/powerpc/lib/pmem.c:58:6: error: no previous prototype for ‘arch_invalidate_pmem’ [-Werror=missing-prototypes]
58 | void arch_invalidate_pmem(void *addr, size_t size)
| ^~~~~~~~~~~~~~~~~~~~
Fixes: 32ce3862af3c ("powerpc/lib: Implement PMEM API")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
arch/powerpc/lib/pmem.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/lib/pmem.c b/arch/powerpc/lib/pmem.c
index 1550e0d2513a..eb2919ddf9b9 100644
--- a/arch/powerpc/lib/pmem.c
+++ b/arch/powerpc/lib/pmem.c @@ -6,6 +6,7 @@
#include <linux/string.h>
#include <linux/export.h>
#include <linux/uaccess.h>
+ #include <linux/libnvdimm.h>
#include <asm/cacheflush.h>
--
2.26.2
On Mon, 4 Jan 2021 15:31:43 +0100, C��dric Le Goater wrote: Here is an assorted collection of fixes for W=1.
After this series, only a few errors are left, some missing declarations
in arch/powerpc/kernel/sys_ppc32.c, panic_smp_self_stop() declaration
and a few of these which I don't know how to fix :
./arch/powerpc/xmon/xmon.c: In function ���xmon_print_symbol���:
./arch/powerpc/xmon/xmon.c:3656:14: error: variable ���name��� might be clobbered by ���longjmp��� or ���vfork��� [-Werror=clobbered]
3656 | const char *name = NULL;
| ^~~~
[...]
Applied to powerpc/next.
[01/23] powerpc/mm: Include __find_linux_pte() prototype
https://git.kernel.org/powerpc/c/d25da505c3f567a8667adb0118de1400468172ac
[02/23] powerpc/pseries/ras: Remove unused variable 'status'
https://git.kernel.org/powerpc/c/aa23ea0c5f7f9a46e6aa3be0a4cfdfb80fabca6d
[03/23] powerpc/pseries/eeh: Make pseries_pcibios_bus_add_device() static
https://git.kernel.org/powerpc/c/44159329e0ad160af7cc7e84fa6d97531c8ed78f
[04/23] powerpc/pseries/ras: Make init_ras_hotplug_IRQ() static
https://git.kernel.org/powerpc/c/90db8bf24d133654032a1c7dd46aa5096627b9ff
[05/23] powerpc/pmem: Include pmem prototypes
https://git.kernel.org/powerpc/c/d03f210e6ed8f5d64b00f0f07b03db74aa5b95a1
[06/23] powerpc/setup_64: Make some routines static
https://git.kernel.org/powerpc/c/692e592895266bafb1e0d688e960b4bdd8e165a8
[07/23] powerpc/mce: Include prototypes
https://git.kernel.org/powerpc/c/1cc2fd75934454be024cd7609b6d7890de6e724b
[08/23] powerpc/smp: Include tick_broadcast() prototype
https://git.kernel.org/powerpc/c/cd7aa5d2fae11794a00ea34b10ee58434d718bc3
[09/23] powerpc/smp: Make debugger_ipi_callback() static
https://git.kernel.org/powerpc/c/157c9f409d11fe79f09c69e78bfc7f8fe7410744
[10/23] powerpc/optprobes: Remove unused routine patch_imm32_load_insns()
https://git.kernel.org/powerpc/c/d47d307f1049be545d45cf0f2332495ec9a89cc0
[11/23] powerpc/optprobes: Make patch_imm64_load_insns() static
https://git.kernel.org/powerpc/c/bb21e1b6c5352d62d866e9236ed427f632cd537b
[12/23] powerpc/mm: Declare some prototypes
https://git.kernel.org/powerpc/c/cccaf1a10abf03d91321d29ff333d6d5d4cef542
[13/23] powerpc/mm: Move hpte_insert_repeating() prototype
https://git.kernel.org/powerpc/c/11f9c1d2fb497f69f83d4fab6fb7fc8a6884eded
[14/23] powerpc/mm: Declare preload_new_slb_context() prototype
https://git.kernel.org/powerpc/c/1f55aefea3c1431f662aafa02ef9ac18d8880751
[15/23] powerpc/mm/hugetlb: Make pseries_alloc_bootmem_huge_page() static
https://git.kernel.org/powerpc/c/94b87d72fc852b6995702d74541136a65f88624a
[16/23] powerpc/mm: Declare arch_report_meminfo() prototype.
https://git.kernel.org/powerpc/c/1429ff51480fe5a21a3d17158d259a4b4b04808f
[17/23] powerpc/watchdog: Declare soft_nmi_interrupt() prototype
https://git.kernel.org/powerpc/c/9ae440fb3d7d1c91ada7d6b13e009bd9f4f00e6c
[18/23] KVM: PPC: Make the VMX instruction emulation routines static
https://git.kernel.org/powerpc/c/9236f57a9e51c72ce426ccd2e53e123de7196a0f
[19/23] KVM: PPC: Book3S HV: Include prototypes
https://git.kernel.org/powerpc/c/d834915e8ee28884f1180dc566ba77c8768ec00a
[20/23] KVM: PPC: Book3S HV: Declare some prototypes
https://git.kernel.org/powerpc/c/ce275179b6c98032361271927b7458884e9708b1
[21/23] powerpc/pseries: Make IOV setup routines static
https://git.kernel.org/powerpc/c/42c1f400d1da50dd1cd9f874df72dc827f9fe2d2
[22/23] powerpc/pcidn: Make IOV setup routines static
https://git.kernel.org/powerpc/c/53137a9b51e49e0399ad322e4a39bc5f9bf0a1de
[23/23] powerpc/pseries/eeh: Make pseries_send_allow_unfreeze() static
https://git.kernel.org/powerpc/c/22f1de2e13b066921dedf6a00d2cc414f3cbab05
cheers