All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
@ 2016-09-06  5:32 Daniel Axtens
  2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Daniel Axtens @ 2016-09-06  5:32 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

Sparse checking revealed that it is no longer used.
There is an EXPORT_SYMBOL_GPL, but there's no header that
provides a prototype, so nothing should be using it anyway.

Remove it.

Signed-off-by: Daniel Axtens <dja@axtens.net>
---
 arch/powerpc/platforms/cell/interrupt.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 9f609fc8d331..4d16b368b6f5 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -187,12 +187,6 @@ void iic_message_pass(int cpu, int msg)
 	out_be64(&per_cpu(cpu_iic, cpu).regs->generate, (0xf - msg) << 4);
 }
 
-struct irq_domain *iic_get_irq_host(int node)
-{
-	return iic_host;
-}
-EXPORT_SYMBOL_GPL(iic_get_irq_host);
-
 static void iic_request_ipi(int msg)
 {
 	int virq;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
@ 2016-09-06  5:32 ` Daniel Axtens
  2016-09-13 12:16   ` [v2,2/5] " Michael Ellerman
  2016-09-14  0:11   ` [PATCH v2 2/5] " Michael Ellerman
  2016-09-06  5:32 ` [PATCH v2 3/5] powerpc/kvm: sparse: prototypes for functions called from assembler Daniel Axtens
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 20+ messages in thread
From: Daniel Axtens @ 2016-09-06  5:32 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

Squash a bunch of sparse warnings by making things static.

Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>

---

v2: remove the symbol that I dropped in the previous patch.

This is an omnibus patch - I wrote a Python script to figure out if
sparse warnings could be automatically fixed. These are the fixes
that didn't cause issues.

I have compile tested against arch/powerpc/configs/*defconfig
I haven't recursed into subdirectories or boot tested.

The patch is based on linux-next.
---
 arch/powerpc/kernel/module.c                 | 2 +-
 arch/powerpc/kernel/nvram_64.c               | 2 +-
 arch/powerpc/kvm/book3s_64_mmu_hv.c          | 4 ++--
 arch/powerpc/oprofile/cell/spu_profiler.c    | 2 +-
 arch/powerpc/oprofile/cell/spu_task_sync.c   | 4 ++--
 arch/powerpc/perf/core-book3s.c              | 2 +-
 arch/powerpc/perf/hv-gpci.c                  | 2 +-
 arch/powerpc/perf/power7-pmu.c               | 2 +-
 arch/powerpc/perf/power8-pmu.c               | 2 +-
 arch/powerpc/perf/power9-pmu.c               | 2 +-
 arch/powerpc/platforms/cell/cbe_regs.c       | 2 +-
 arch/powerpc/platforms/cell/iommu.c          | 2 +-
 arch/powerpc/platforms/cell/ras.c            | 2 +-
 arch/powerpc/platforms/maple/setup.c         | 4 ++--
 arch/powerpc/platforms/pasemi/gpio_mdio.c    | 4 ++--
 arch/powerpc/platforms/pasemi/iommu.c        | 2 +-
 arch/powerpc/platforms/pasemi/setup.c        | 4 ++--
 arch/powerpc/platforms/powermac/pfunc_core.c | 2 +-
 arch/powerpc/platforms/powermac/smp.c        | 2 +-
 arch/powerpc/platforms/powernv/npu-dma.c     | 2 +-
 arch/powerpc/platforms/pseries/dlpar.c       | 4 ++--
 arch/powerpc/platforms/pseries/scanlog.c     | 2 +-
 arch/powerpc/sysdev/mmio_nvram.c             | 2 +-
 23 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/arch/powerpc/kernel/module.c b/arch/powerpc/kernel/module.c
index d1f1b35bf0c7..30b89d5cbb03 100644
--- a/arch/powerpc/kernel/module.c
+++ b/arch/powerpc/kernel/module.c
@@ -27,7 +27,7 @@
 #include <linux/sort.h>
 #include <asm/setup.h>
 
-LIST_HEAD(module_bug_list);
+static LIST_HEAD(module_bug_list);
 
 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
 				    const Elf_Shdr *sechdrs,
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index 64174bf95611..46c3c76f171b 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c
@@ -851,7 +851,7 @@ static long dev_nvram_ioctl(struct file *file, unsigned int cmd,
 	}
 }
 
-const struct file_operations nvram_fops = {
+static const struct file_operations nvram_fops = {
 	.owner		= THIS_MODULE,
 	.llseek		= dev_nvram_llseek,
 	.read		= dev_nvram_read,
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index 05f09ae82587..95abca69b168 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -255,7 +255,7 @@ static void kvmppc_mmu_book3s_64_hv_reset_msr(struct kvm_vcpu *vcpu)
 	kvmppc_set_msr(vcpu, msr);
 }
 
-long kvmppc_virtmode_do_h_enter(struct kvm *kvm, unsigned long flags,
+static long kvmppc_virtmode_do_h_enter(struct kvm *kvm, unsigned long flags,
 				long pte_index, unsigned long pteh,
 				unsigned long ptel, unsigned long *pte_idx_ret)
 {
@@ -1608,7 +1608,7 @@ static ssize_t debugfs_htab_read(struct file *file, char __user *buf,
 	return ret;
 }
 
-ssize_t debugfs_htab_write(struct file *file, const char __user *buf,
+static ssize_t debugfs_htab_write(struct file *file, const char __user *buf,
 			   size_t len, loff_t *ppos)
 {
 	return -EACCES;
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c
index b129d007e7fe..b19265de9178 100644
--- a/arch/powerpc/oprofile/cell/spu_profiler.c
+++ b/arch/powerpc/oprofile/cell/spu_profiler.c
@@ -43,7 +43,7 @@ static unsigned int profiling_interval;
 #define SPU_PC_MASK	     0xFFFF
 
 DEFINE_SPINLOCK(oprof_spu_smpl_arry_lck);
-unsigned long oprof_spu_smpl_arry_lck_flags;
+static unsigned long oprof_spu_smpl_arry_lck_flags;
 
 void set_spu_profiling_frequency(unsigned int freq_khz, unsigned int cycles_reset)
 {
diff --git a/arch/powerpc/oprofile/cell/spu_task_sync.c b/arch/powerpc/oprofile/cell/spu_task_sync.c
index ef2142ff7dbd..83d2b4ef7f0d 100644
--- a/arch/powerpc/oprofile/cell/spu_task_sync.c
+++ b/arch/powerpc/oprofile/cell/spu_task_sync.c
@@ -36,7 +36,7 @@
 static DEFINE_SPINLOCK(buffer_lock);
 static DEFINE_SPINLOCK(cache_lock);
 static int num_spu_nodes;
-int spu_prof_num_nodes;
+static int spu_prof_num_nodes;
 
 struct spu_buffer spu_buff[MAX_NUMNODES * SPUS_PER_NODE];
 struct delayed_work spu_work;
@@ -88,7 +88,7 @@ static void spu_buff_add(unsigned long int value, int spu)
 /* This function copies the per SPU buffers to the
  * OProfile kernel buffer.
  */
-void sync_spu_buff(void)
+static void sync_spu_buff(void)
 {
 	int spu;
 	unsigned long flags;
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 4ed377f0f7b2..72c27b8d2cf3 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -2158,7 +2158,7 @@ static void perf_event_interrupt(struct pt_regs *regs)
 		irq_exit();
 }
 
-int power_pmu_prepare_cpu(unsigned int cpu)
+static int power_pmu_prepare_cpu(unsigned int cpu)
 {
 	struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu);
 
diff --git a/arch/powerpc/perf/hv-gpci.c b/arch/powerpc/perf/hv-gpci.c
index 7aa37236bb70..43fabb3cae0f 100644
--- a/arch/powerpc/perf/hv-gpci.c
+++ b/arch/powerpc/perf/hv-gpci.c
@@ -131,7 +131,7 @@ static const struct attribute_group *attr_groups[] = {
 #define HGPCI_MAX_DATA_BYTES \
 	(HGPCI_REQ_BUFFER_SIZE - sizeof(struct hv_get_perf_counter_info_params))
 
-DEFINE_PER_CPU(char, hv_gpci_reqb[HGPCI_REQ_BUFFER_SIZE]) __aligned(sizeof(uint64_t));
+static DEFINE_PER_CPU(char, hv_gpci_reqb[HGPCI_REQ_BUFFER_SIZE]) __aligned(sizeof(uint64_t));
 
 struct hv_gpci_request_buffer {
 	struct hv_get_perf_counter_info_params params;
diff --git a/arch/powerpc/perf/power7-pmu.c b/arch/powerpc/perf/power7-pmu.c
index a383c23a9070..7963658dbc22 100644
--- a/arch/powerpc/perf/power7-pmu.c
+++ b/arch/powerpc/perf/power7-pmu.c
@@ -416,7 +416,7 @@ static struct attribute *power7_pmu_format_attr[] = {
 	NULL,
 };
 
-struct attribute_group power7_pmu_format_group = {
+static struct attribute_group power7_pmu_format_group = {
 	.name = "format",
 	.attrs = power7_pmu_format_attr,
 };
diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c
index 5fde2b192fec..ab830d106ec5 100644
--- a/arch/powerpc/perf/power8-pmu.c
+++ b/arch/powerpc/perf/power8-pmu.c
@@ -204,7 +204,7 @@ static struct attribute *power8_pmu_format_attr[] = {
 	NULL,
 };
 
-struct attribute_group power8_pmu_format_group = {
+static struct attribute_group power8_pmu_format_group = {
 	.name = "format",
 	.attrs = power8_pmu_format_attr,
 };
diff --git a/arch/powerpc/perf/power9-pmu.c b/arch/powerpc/perf/power9-pmu.c
index 788346303852..8e9a81967ff8 100644
--- a/arch/powerpc/perf/power9-pmu.c
+++ b/arch/powerpc/perf/power9-pmu.c
@@ -119,7 +119,7 @@ static struct attribute *power9_pmu_format_attr[] = {
 	NULL,
 };
 
-struct attribute_group power9_pmu_format_group = {
+static struct attribute_group power9_pmu_format_group = {
 	.name = "format",
 	.attrs = power9_pmu_format_attr,
 };
diff --git a/arch/powerpc/platforms/cell/cbe_regs.c b/arch/powerpc/platforms/cell/cbe_regs.c
index 1428d583c238..b926438d73af 100644
--- a/arch/powerpc/platforms/cell/cbe_regs.c
+++ b/arch/powerpc/platforms/cell/cbe_regs.c
@@ -189,7 +189,7 @@ static struct device_node *cbe_get_be_node(int cpu_id)
 	return NULL;
 }
 
-void __init cbe_fill_regs_map(struct cbe_regs_map *map)
+static void __init cbe_fill_regs_map(struct cbe_regs_map *map)
 {
 	if(map->be_node) {
 		struct device_node *be, *np;
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index f7d1a4953ea0..640772af9bcb 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -651,7 +651,7 @@ static int dma_fixed_dma_supported(struct device *dev, u64 mask)
 
 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask);
 
-struct dma_map_ops dma_iommu_fixed_ops = {
+static struct dma_map_ops dma_iommu_fixed_ops = {
 	.alloc          = dma_fixed_alloc_coherent,
 	.free           = dma_fixed_free_coherent,
 	.map_sg         = dma_fixed_map_sg,
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 2d4f60c0119a..460ab392f0e7 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -298,7 +298,7 @@ int cbe_sysreset_hack(void)
 }
 #endif /* CONFIG_PPC_IBM_CELL_RESETBUTTON */
 
-int __init cbe_ptcal_init(void)
+static int __init cbe_ptcal_init(void)
 {
 	int ret;
 	ptcal_start_tok = rtas_token("ibm,cbe-start-ptcal");
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c
index 3c30c7a4534d..b7f937563827 100644
--- a/arch/powerpc/platforms/maple/setup.c
+++ b/arch/powerpc/platforms/maple/setup.c
@@ -156,7 +156,7 @@ static void __noreturn maple_halt(void)
 }
 
 #ifdef CONFIG_SMP
-struct smp_ops_t maple_smp_ops = {
+static struct smp_ops_t maple_smp_ops = {
 	.probe		= smp_mpic_probe,
 	.message_pass	= smp_mpic_message_pass,
 	.kick_cpu	= smp_generic_kick_cpu,
@@ -176,7 +176,7 @@ static void __init maple_use_rtas_reboot_and_halt_if_present(void)
 	}
 }
 
-void __init maple_setup_arch(void)
+static void __init maple_setup_arch(void)
 {
 	/* init to some ~sane value until calibrate_delay() runs */
 	loops_per_jiffy = 50000000;
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c
index ddf635000c6b..c23e60959aa8 100644
--- a/arch/powerpc/platforms/pasemi/gpio_mdio.c
+++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c
@@ -306,7 +306,7 @@ static struct platform_driver gpio_mdio_driver =
 	},
 };
 
-int gpio_mdio_init(void)
+static int gpio_mdio_init(void)
 {
 	struct device_node *np;
 
@@ -326,7 +326,7 @@ int gpio_mdio_init(void)
 }
 module_init(gpio_mdio_init);
 
-void gpio_mdio_exit(void)
+static void gpio_mdio_exit(void)
 {
 	platform_driver_unregister(&gpio_mdio_driver);
 	if (gpio_regs)
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
index c61667e8bb06..e74adc4e7fd8 100644
--- a/arch/powerpc/platforms/pasemi/iommu.c
+++ b/arch/powerpc/platforms/pasemi/iommu.c
@@ -199,7 +199,7 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev)
 	set_iommu_table_base(&dev->dev, &iommu_table_iobmap);
 }
 
-int __init iob_init(struct device_node *dn)
+static int __init iob_init(struct device_node *dn)
 {
 	unsigned long tmp;
 	u32 regword;
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index e86c1bd08f1f..1d0c3a621a38 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -105,7 +105,7 @@ static void pas_take_timebase(void)
 	arch_spin_unlock(&timebase_lock);
 }
 
-struct smp_ops_t pas_smp_ops = {
+static struct smp_ops_t pas_smp_ops = {
 	.probe		= smp_mpic_probe,
 	.message_pass	= smp_mpic_message_pass,
 	.kick_cpu	= smp_generic_kick_cpu,
@@ -115,7 +115,7 @@ struct smp_ops_t pas_smp_ops = {
 };
 #endif /* CONFIG_SMP */
 
-void __init pas_setup_arch(void)
+static void __init pas_setup_arch(void)
 {
 #ifdef CONFIG_SMP
 	/* Setup SMP callback */
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c
index 43075081721f..695e8c4d4224 100644
--- a/arch/powerpc/platforms/powermac/pfunc_core.c
+++ b/arch/powerpc/platforms/powermac/pfunc_core.c
@@ -804,7 +804,7 @@ void pmf_unregister_driver(struct device_node *np)
 }
 EXPORT_SYMBOL_GPL(pmf_unregister_driver);
 
-struct pmf_function *__pmf_find_function(struct device_node *target,
+static struct pmf_function *__pmf_find_function(struct device_node *target,
 					 const char *name, u32 flags)
 {
 	struct device_node *actor = of_node_get(target);
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 834868b9fdc9..5a8564c2092a 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -979,7 +979,7 @@ static void pmac_cpu_die(void)
 #endif /* CONFIG_HOTPLUG_CPU */
 
 /* Core99 Macs (dual G4s and G5s) */
-struct smp_ops_t core99_smp_ops = {
+static struct smp_ops_t core99_smp_ops = {
 	.message_pass	= smp_mpic_message_pass,
 	.probe		= smp_core99_probe,
 #ifdef CONFIG_PPC64
diff --git a/arch/powerpc/platforms/powernv/npu-dma.c b/arch/powerpc/platforms/powernv/npu-dma.c
index 00e1a0195c78..aec85e778028 100644
--- a/arch/powerpc/platforms/powernv/npu-dma.c
+++ b/arch/powerpc/platforms/powernv/npu-dma.c
@@ -115,7 +115,7 @@ static u64 dma_npu_get_required_mask(struct device *dev)
 	return 0;
 }
 
-struct dma_map_ops dma_npu_ops = {
+static struct dma_map_ops dma_npu_ops = {
 	.map_page		= dma_npu_map_page,
 	.map_sg			= dma_npu_map_sg,
 	.alloc			= dma_npu_alloc,
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
index 4748124faa10..2511ccf186af 100644
--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -27,7 +27,7 @@
 #include <asm/uaccess.h>
 #include <asm/rtas.h>
 
-struct workqueue_struct *pseries_hp_wq;
+static struct workqueue_struct *pseries_hp_wq;
 
 struct pseries_hp_work {
 	struct work_struct work;
@@ -377,7 +377,7 @@ static int handle_dlpar_errorlog(struct pseries_hp_errorlog *hp_elog)
 	return rc;
 }
 
-void pseries_hp_work_fn(struct work_struct *work)
+static void pseries_hp_work_fn(struct work_struct *work)
 {
 	struct pseries_hp_work *hp_work =
 			container_of(work, struct pseries_hp_work, work);
diff --git a/arch/powerpc/platforms/pseries/scanlog.c b/arch/powerpc/platforms/pseries/scanlog.c
index b502ab61aafa..7d28cabf1206 100644
--- a/arch/powerpc/platforms/pseries/scanlog.c
+++ b/arch/powerpc/platforms/pseries/scanlog.c
@@ -156,7 +156,7 @@ static int scanlog_release(struct inode * inode, struct file * file)
 	return 0;
 }
 
-const struct file_operations scanlog_fops = {
+static const struct file_operations scanlog_fops = {
 	.owner		= THIS_MODULE,
 	.read		= scanlog_read,
 	.write		= scanlog_write,
diff --git a/arch/powerpc/sysdev/mmio_nvram.c b/arch/powerpc/sysdev/mmio_nvram.c
index 69f5814ae6d4..c31f634f1973 100644
--- a/arch/powerpc/sysdev/mmio_nvram.c
+++ b/arch/powerpc/sysdev/mmio_nvram.c
@@ -89,7 +89,7 @@ static ssize_t mmio_nvram_write(char *buf, size_t count, loff_t *index)
 	return count;
 }
 
-void mmio_nvram_write_val(int addr, unsigned char val)
+static void mmio_nvram_write_val(int addr, unsigned char val)
 {
 	unsigned long flags;
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 3/5] powerpc/kvm: sparse: prototypes for functions called from assembler
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
  2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
@ 2016-09-06  5:32 ` Daniel Axtens
  2016-09-06  5:32 ` [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian Daniel Axtens
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 20+ messages in thread
From: Daniel Axtens @ 2016-09-06  5:32 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

A bunch of KVM functions are only called from assembler.
Give them prototypes in asm-prototypes.h

Signed-off-by: Daniel Axtens <dja@axtens.net>

---
v2: fix compile error when CONFIG_KVM is undefined, thanks 0day bot!
---
 arch/powerpc/include/asm/asm-prototypes.h | 44 +++++++++++++++++++++++++++++++
 arch/powerpc/kvm/book3s_64_vio_hv.c       |  1 +
 arch/powerpc/kvm/book3s_hv_builtin.c      |  1 +
 arch/powerpc/kvm/book3s_hv_ras.c          |  1 +
 arch/powerpc/kvm/book3s_hv_rm_mmu.c       |  1 +
 arch/powerpc/kvm/book3s_hv_rm_xics.c      |  1 +
 6 files changed, 49 insertions(+)

diff --git a/arch/powerpc/include/asm/asm-prototypes.h b/arch/powerpc/include/asm/asm-prototypes.h
index e71b9097594c..ce8c1158a2c0 100644
--- a/arch/powerpc/include/asm/asm-prototypes.h
+++ b/arch/powerpc/include/asm/asm-prototypes.h
@@ -14,6 +14,9 @@
 
 #include <linux/threads.h>
 #include <linux/kprobes.h>
+#ifdef CONFIG_KVM
+#include <linux/kvm_host.h>
+#endif
 
 /* SMP */
 extern struct thread_info *current_set[NR_CPUS];
@@ -72,4 +75,45 @@ void system_reset_exception(struct pt_regs *regs);
 void machine_check_exception(struct pt_regs *regs);
 void __kprobes emulation_assist_interrupt(struct pt_regs *regs);
 
+/* kvm */
+#ifdef CONFIG_KVM
+long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
+			 unsigned long ioba, unsigned long tce);
+long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,
+				  unsigned long liobn, unsigned long ioba,
+				  unsigned long tce_list, unsigned long npages);
+long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu,
+			   unsigned long liobn, unsigned long ioba,
+			   unsigned long tce_value, unsigned long npages);
+long int kvmppc_rm_h_confer(struct kvm_vcpu *vcpu, int target,
+                            unsigned int yield_count);
+long kvmppc_h_random(struct kvm_vcpu *vcpu);
+void kvmhv_commence_exit(int trap);
+long kvmppc_realmode_machine_check(struct kvm_vcpu *vcpu);
+void kvmppc_subcore_enter_guest(void);
+void kvmppc_subcore_exit_guest(void);
+long kvmppc_realmode_hmi_handler(void);
+long kvmppc_h_enter(struct kvm_vcpu *vcpu, unsigned long flags,
+                    long pte_index, unsigned long pteh, unsigned long ptel);
+long kvmppc_h_remove(struct kvm_vcpu *vcpu, unsigned long flags,
+                     unsigned long pte_index, unsigned long avpn);
+long kvmppc_h_bulk_remove(struct kvm_vcpu *vcpu);
+long kvmppc_h_protect(struct kvm_vcpu *vcpu, unsigned long flags,
+                      unsigned long pte_index, unsigned long avpn,
+                      unsigned long va);
+long kvmppc_h_read(struct kvm_vcpu *vcpu, unsigned long flags,
+                   unsigned long pte_index);
+long kvmppc_h_clear_ref(struct kvm_vcpu *vcpu, unsigned long flags,
+                        unsigned long pte_index);
+long kvmppc_h_clear_mod(struct kvm_vcpu *vcpu, unsigned long flags,
+                        unsigned long pte_index);
+long kvmppc_hpte_hv_fault(struct kvm_vcpu *vcpu, unsigned long addr,
+                          unsigned long slb_v, unsigned int status, bool data);
+unsigned long kvmppc_rm_h_xirr(struct kvm_vcpu *vcpu);
+int kvmppc_rm_h_ipi(struct kvm_vcpu *vcpu, unsigned long server,
+                    unsigned long mfrr);
+int kvmppc_rm_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr);
+int kvmppc_rm_h_eoi(struct kvm_vcpu *vcpu, unsigned long xirr);
+#endif
+
 #endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */
diff --git a/arch/powerpc/kvm/book3s_64_vio_hv.c b/arch/powerpc/kvm/book3s_64_vio_hv.c
index d461c440889a..30f83cf1b98e 100644
--- a/arch/powerpc/kvm/book3s_64_vio_hv.c
+++ b/arch/powerpc/kvm/book3s_64_vio_hv.c
@@ -40,6 +40,7 @@
 #include <asm/iommu.h>
 #include <asm/tce.h>
 #include <asm/iommu.h>
+#include <asm/asm-prototypes.h>
 
 #define TCES_PER_PAGE	(PAGE_SIZE / sizeof(u64))
 
diff --git a/arch/powerpc/kvm/book3s_hv_builtin.c b/arch/powerpc/kvm/book3s_hv_builtin.c
index 5f0380db3eab..b997000323a2 100644
--- a/arch/powerpc/kvm/book3s_hv_builtin.c
+++ b/arch/powerpc/kvm/book3s_hv_builtin.c
@@ -25,6 +25,7 @@
 #include <asm/xics.h>
 #include <asm/dbell.h>
 #include <asm/cputhreads.h>
+#include <asm/asm-prototypes.h>
 
 #define KVM_CMA_CHUNK_ORDER	18
 
diff --git a/arch/powerpc/kvm/book3s_hv_ras.c b/arch/powerpc/kvm/book3s_hv_ras.c
index 0fa70a9618d7..be1cee5dc032 100644
--- a/arch/powerpc/kvm/book3s_hv_ras.c
+++ b/arch/powerpc/kvm/book3s_hv_ras.c
@@ -16,6 +16,7 @@
 #include <asm/machdep.h>
 #include <asm/cputhreads.h>
 #include <asm/hmi.h>
+#include <asm/asm-prototypes.h>
 
 /* SRR1 bits for machine check on POWER7 */
 #define SRR1_MC_LDSTERR		(1ul << (63-42))
diff --git a/arch/powerpc/kvm/book3s_hv_rm_mmu.c b/arch/powerpc/kvm/book3s_hv_rm_mmu.c
index 99b4e9d5dd23..6b3d01b024d7 100644
--- a/arch/powerpc/kvm/book3s_hv_rm_mmu.c
+++ b/arch/powerpc/kvm/book3s_hv_rm_mmu.c
@@ -21,6 +21,7 @@
 #include <asm/hvcall.h>
 #include <asm/synch.h>
 #include <asm/ppc-opcode.h>
+#include <asm/asm-prototypes.h>
 
 /* Translate address of a vmalloc'd thing to a linear map address */
 static void *real_vmalloc_addr(void *x)
diff --git a/arch/powerpc/kvm/book3s_hv_rm_xics.c b/arch/powerpc/kvm/book3s_hv_rm_xics.c
index 980d8a6f7284..8524382981a8 100644
--- a/arch/powerpc/kvm/book3s_hv_rm_xics.c
+++ b/arch/powerpc/kvm/book3s_hv_rm_xics.c
@@ -19,6 +19,7 @@
 #include <asm/synch.h>
 #include <asm/cputhreads.h>
 #include <asm/ppc-opcode.h>
+#include <asm/asm-prototypes.h>
 
 #include "book3s_xics.h"
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
  2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
  2016-09-06  5:32 ` [PATCH v2 3/5] powerpc/kvm: sparse: prototypes for functions called from assembler Daniel Axtens
@ 2016-09-06  5:32 ` Daniel Axtens
  2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
  2016-09-13 12:16   ` [v2,4/5] " Michael Ellerman
  2016-09-06  5:32 ` [PATCH v2 5/5] powerpc/sparse: Add more assembler prototypes Daniel Axtens
                   ` (3 subsequent siblings)
  6 siblings, 2 replies; 20+ messages in thread
From: Daniel Axtens @ 2016-09-06  5:32 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens, Mahesh Salgaonkar, Hari Bathini

Firmware Assisted Dump is a facility to dump kernel core with assistance
from firmware.  As part of this process the kernel ELF version is
stored.

Currently, fadump.h defines this to 0 if it is not already defined. This
clashes with a define in elf.h which sets it based on the current task -
not based on the kernel.

When the kernel is compiled on LE, the kernel will always be version
2. Otherwise it will be version 0. So the correct behaviour is to set
the ELF eflags based on the endianness of the kernel. Do that.

Remove the definition in fadump.h, which becomes unused.

Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>

---

Mahesh or Hari: I'm not familiar with this code at all, so if either of
you could check that this makes sense I would really appreciate that.
Thanks!
---
 arch/powerpc/include/asm/fadump.h | 4 ----
 arch/powerpc/kernel/fadump.c      | 6 +++++-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/include/asm/fadump.h b/arch/powerpc/include/asm/fadump.h
index b4407d0add27..0031806475f0 100644
--- a/arch/powerpc/include/asm/fadump.h
+++ b/arch/powerpc/include/asm/fadump.h
@@ -45,10 +45,6 @@
 
 #define memblock_num_regions(memblock_type)	(memblock.memblock_type.cnt)
 
-#ifndef ELF_CORE_EFLAGS
-#define ELF_CORE_EFLAGS 0
-#endif
-
 /* Firmware provided dump sections */
 #define FADUMP_CPU_STATE_DATA	0x0001
 #define FADUMP_HPTE_REGION	0x0002
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 0638b82ce294..457f08e544c6 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
 	elf->e_entry = 0;
 	elf->e_phoff = sizeof(struct elfhdr);
 	elf->e_shoff = 0;
-	elf->e_flags = ELF_CORE_EFLAGS;
+#ifdef __LITTLE_ENDIAN__
+	elf->e_flags = 2;
+#else
+	elf->e_flags = 0;
+#endif
 	elf->e_ehsize = sizeof(struct elfhdr);
 	elf->e_phentsize = sizeof(struct elf_phdr);
 	elf->e_phnum = 0;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH v2 5/5] powerpc/sparse: Add more assembler prototypes
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
                   ` (2 preceding siblings ...)
  2016-09-06  5:32 ` [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian Daniel Axtens
@ 2016-09-06  5:32 ` Daniel Axtens
  2016-09-13 12:16   ` [v2,5/5] " Michael Ellerman
  2016-09-06  6:01 ` [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Andrew Donnellan
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Daniel Axtens @ 2016-09-06  5:32 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

Another set of things that are only called from assembler and so need
prototypes to keep sparse happy.

Signed-off-by: Daniel Axtens <dja@axtens.net>

---

v2: Fix a couple of issues identified by the 0day bot:
    - different definition of sys_swapendian for 32/64
    - the previous fadump patch fixes a weird interaction with headers
      that the bot picked up.

Again, created semi-programatically and compile-tested against
top-level defconfigs.
---
 arch/powerpc/include/asm/asm-prototypes.h | 37 +++++++++++++++++++++++++++++++
 arch/powerpc/kernel/irq.c                 |  1 +
 arch/powerpc/kernel/process.c             |  1 +
 arch/powerpc/kernel/prom_init.c           |  1 +
 arch/powerpc/kernel/ptrace.c              |  1 +
 arch/powerpc/kernel/signal_32.c           |  1 +
 arch/powerpc/kernel/signal_64.c           |  1 +
 arch/powerpc/kernel/syscalls.c            |  1 +
 arch/powerpc/kernel/time.c                |  1 +
 9 files changed, 45 insertions(+)

diff --git a/arch/powerpc/include/asm/asm-prototypes.h b/arch/powerpc/include/asm/asm-prototypes.h
index ce8c1158a2c0..250c04e28670 100644
--- a/arch/powerpc/include/asm/asm-prototypes.h
+++ b/arch/powerpc/include/asm/asm-prototypes.h
@@ -18,6 +18,8 @@
 #include <linux/kvm_host.h>
 #endif
 
+#include <uapi/asm/ucontext.h>
+
 /* SMP */
 extern struct thread_info *current_set[NR_CPUS];
 extern struct thread_info *secondary_ti;
@@ -116,4 +118,39 @@ int kvmppc_rm_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr);
 int kvmppc_rm_h_eoi(struct kvm_vcpu *vcpu, unsigned long xirr);
 #endif
 
+/* signals, syscalls and interrupts */
+#ifdef CONFIG_PPC64
+int sys_swapcontext(struct ucontext __user *old_ctx,
+                    struct ucontext __user *new_ctx,
+                    long ctx_size, long r6, long r7, long r8, struct pt_regs *regs);
+#else
+long sys_swapcontext(struct ucontext __user *old_ctx,
+                    struct ucontext __user *new_ctx,
+                    int ctx_size, int r6, int r7, int r8, struct pt_regs *regs);
+#endif
+long sys_switch_endian(void);
+notrace unsigned int __check_irq_replay(void);
+void notrace restore_interrupts(void);
+
+/* ptrace */
+long do_syscall_trace_enter(struct pt_regs *regs);
+void do_syscall_trace_leave(struct pt_regs *regs);
+
+/* process */
+void restore_math(struct pt_regs *regs);
+void restore_tm_state(struct pt_regs *regs);
+
+/* prom_init (OpenFirmware) */
+unsigned long __init prom_init(unsigned long r3, unsigned long r4,
+                               unsigned long pp,
+                               unsigned long r6, unsigned long r7,
+                               unsigned long kbase);
+
+/* setup */
+void __init early_setup(unsigned long dt_ptr);
+void early_setup_secondary(void);
+
+/* time */
+void accumulate_stolen_time(void);
+
 #endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 08887cf2b20e..9594ac8e7090 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -67,6 +67,7 @@
 #include <asm/smp.h>
 #include <asm/debug.h>
 #include <asm/livepatch.h>
+#include <asm/asm-prototypes.h>
 
 #ifdef CONFIG_PPC64
 #include <asm/paca.h>
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 9ee2623e0f67..ce8a26a0c947 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -59,6 +59,7 @@
 #include <asm/exec.h>
 #include <asm/livepatch.h>
 #include <asm/cpu_has_feature.h>
+#include <asm/asm-prototypes.h>
 
 #include <linux/kprobes.h>
 #include <linux/kdebug.h>
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 4e74fc588a3f..84b0d677f6ce 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -42,6 +42,7 @@
 #include <asm/sections.h>
 #include <asm/machdep.h>
 #include <asm/opal.h>
+#include <asm/asm-prototypes.h>
 
 #include <linux/linux_logo.h>
 
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index bf91658a8a40..2299bf60780d 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -39,6 +39,7 @@
 #include <asm/pgtable.h>
 #include <asm/switch_to.h>
 #include <asm/tm.h>
+#include <asm/asm-prototypes.h>
 
 #define CREATE_TRACE_POINTS
 #include <trace/events/syscalls.h>
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index b6aa378aff63..c35186b46590 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -44,6 +44,7 @@
 #include <asm/vdso.h>
 #include <asm/switch_to.h>
 #include <asm/tm.h>
+#include <asm/asm-prototypes.h>
 #ifdef CONFIG_PPC64
 #include "ppc32.h"
 #include <asm/unistd.h>
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 7e49984d4331..3e8feb1824d8 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -35,6 +35,7 @@
 #include <asm/vdso.h>
 #include <asm/switch_to.h>
 #include <asm/tm.h>
+#include <asm/asm-prototypes.h>
 
 #include "signal.h"
 
diff --git a/arch/powerpc/kernel/syscalls.c b/arch/powerpc/kernel/syscalls.c
index 5fa92706444b..644cce3d8dce 100644
--- a/arch/powerpc/kernel/syscalls.c
+++ b/arch/powerpc/kernel/syscalls.c
@@ -40,6 +40,7 @@
 #include <asm/syscalls.h>
 #include <asm/time.h>
 #include <asm/unistd.h>
+#include <asm/asm-prototypes.h>
 
 static inline unsigned long do_mmap2(unsigned long addr, size_t len,
 			unsigned long prot, unsigned long flags,
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 3efbedefba6a..67859b7d1c97 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -73,6 +73,7 @@
 #include <asm/vdso_datapage.h>
 #include <asm/firmware.h>
 #include <asm/cputime.h>
+#include <asm/asm-prototypes.h>
 
 /* powerpc clocksource/clockevent code */
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
                   ` (3 preceding siblings ...)
  2016-09-06  5:32 ` [PATCH v2 5/5] powerpc/sparse: Add more assembler prototypes Daniel Axtens
@ 2016-09-06  6:01 ` Andrew Donnellan
  2016-09-08  7:44 ` Arnd Bergmann
  2016-09-13 12:16 ` [v2,1/5] " Michael Ellerman
  6 siblings, 0 replies; 20+ messages in thread
From: Andrew Donnellan @ 2016-09-06  6:01 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev

On 06/09/16 15:32, Daniel Axtens wrote:
> Sparse checking revealed that it is no longer used.
> There is an EXPORT_SYMBOL_GPL, but there's no header that
> provides a prototype, so nothing should be using it anyway.
>
> Remove it.
>
> Signed-off-by: Daniel Axtens <dja@axtens.net>

Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan@au1.ibm.com  IBM Australia Limited

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-06  5:32 ` [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian Daniel Axtens
@ 2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
  2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
                       ` (2 more replies)
  2016-09-13 12:16   ` [v2,4/5] " Michael Ellerman
  1 sibling, 3 replies; 20+ messages in thread
From: Mahesh Jagannath Salgaonkar @ 2016-09-08  7:00 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev; +Cc: Hari Bathini

On 09/06/2016 11:02 AM, Daniel Axtens wrote:
> Firmware Assisted Dump is a facility to dump kernel core with assistance
> from firmware.  As part of this process the kernel ELF version is
> stored.
> 
> Currently, fadump.h defines this to 0 if it is not already defined. This
> clashes with a define in elf.h which sets it based on the current task -
> not based on the kernel.
> 
> When the kernel is compiled on LE, the kernel will always be version
> 2. Otherwise it will be version 0. So the correct behaviour is to set
> the ELF eflags based on the endianness of the kernel. Do that.
> 
> Remove the definition in fadump.h, which becomes unused.
> 
> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
> Signed-off-by: Daniel Axtens <dja@axtens.net>
> 
> ---
> 
> Mahesh or Hari: I'm not familiar with this code at all, so if either of
> you could check that this makes sense I would really appreciate that.
> Thanks!
> ---
>  arch/powerpc/include/asm/fadump.h | 4 ----
>  arch/powerpc/kernel/fadump.c      | 6 +++++-
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/fadump.h b/arch/powerpc/include/asm/fadump.h
> index b4407d0add27..0031806475f0 100644
> --- a/arch/powerpc/include/asm/fadump.h
> +++ b/arch/powerpc/include/asm/fadump.h
> @@ -45,10 +45,6 @@
> 
>  #define memblock_num_regions(memblock_type)	(memblock.memblock_type.cnt)
> 
> -#ifndef ELF_CORE_EFLAGS
> -#define ELF_CORE_EFLAGS 0
> -#endif
> -
>  /* Firmware provided dump sections */
>  #define FADUMP_CPU_STATE_DATA	0x0001
>  #define FADUMP_HPTE_REGION	0x0002
> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
> index 0638b82ce294..457f08e544c6 100644
> --- a/arch/powerpc/kernel/fadump.c
> +++ b/arch/powerpc/kernel/fadump.c
> @@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
>  	elf->e_entry = 0;
>  	elf->e_phoff = sizeof(struct elfhdr);
>  	elf->e_shoff = 0;
> -	elf->e_flags = ELF_CORE_EFLAGS;
> +#ifdef __LITTLE_ENDIAN__

Wouldn't '#ifdef PPC64_ELF_ABI_v2' be more appropriate here ?

> +	elf->e_flags = 2;
> +#else
> +	elf->e_flags = 0;
> +#endif
>  	elf->e_ehsize = sizeof(struct elfhdr);
>  	elf->e_phentsize = sizeof(struct elf_phdr);
>  	elf->e_phnum = 0;
> 

Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

Thanks,
-Mahesh.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
                   ` (4 preceding siblings ...)
  2016-09-06  6:01 ` [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Andrew Donnellan
@ 2016-09-08  7:44 ` Arnd Bergmann
  2016-09-09  0:43   ` Daniel Axtens
  2016-09-13 12:16 ` [v2,1/5] " Michael Ellerman
  6 siblings, 1 reply; 20+ messages in thread
From: Arnd Bergmann @ 2016-09-08  7:44 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

On Tuesday, September 6, 2016 3:32:39 PM CEST Daniel Axtens wrote:
> Sparse checking revealed that it is no longer used.
> There is an EXPORT_SYMBOL_GPL, but there's no header that
> provides a prototype, so nothing should be using it anyway.
> 
> Remove it.
> 
> Signed-off-by: Daniel Axtens <dja@axtens.net>
> 

Acked-by: Arnd Bergmann <arnd@arndb.de>

Good catch!

I'm currently experimenting with a patch that adds -Wmissing-declaration to
the normal kernel CFLAGS for everyone, and fixing up the warnings I get with
that on ARM.

Are you looking at all the powerpc specific code? If we can catch all the
existing warnings for some of the major architectures, we can hopefully
enable this in the mainline kernel at some point so we don't need sparse
for it any more.

	Arnd

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
@ 2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
  2016-09-09 10:58       ` Michael Ellerman
  2016-09-08  9:17     ` Michael Ellerman
  2016-09-08  9:35     ` Michael Ellerman
  2 siblings, 1 reply; 20+ messages in thread
From: Mahesh Jagannath Salgaonkar @ 2016-09-08  8:21 UTC (permalink / raw)
  To: linuxppc-dev

On 09/08/2016 12:30 PM, Mahesh Jagannath Salgaonkar wrote:
> On 09/06/2016 11:02 AM, Daniel Axtens wrote:
>> Firmware Assisted Dump is a facility to dump kernel core with assistance
>> from firmware.  As part of this process the kernel ELF version is
>> stored.
>>
>> Currently, fadump.h defines this to 0 if it is not already defined. This
>> clashes with a define in elf.h which sets it based on the current task -
>> not based on the kernel.
>>
>> When the kernel is compiled on LE, the kernel will always be version
>> 2. Otherwise it will be version 0. So the correct behaviour is to set
>> the ELF eflags based on the endianness of the kernel. Do that.
>>
>> Remove the definition in fadump.h, which becomes unused.
>>
>> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
>> Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
>> Signed-off-by: Daniel Axtens <dja@axtens.net>
>>
>> ---
>>
>> Mahesh or Hari: I'm not familiar with this code at all, so if either of
>> you could check that this makes sense I would really appreciate that.
>> Thanks!
>> ---
>>  arch/powerpc/include/asm/fadump.h | 4 ----
>>  arch/powerpc/kernel/fadump.c      | 6 +++++-
>>  2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/fadump.h b/arch/powerpc/include/asm/fadump.h
>> index b4407d0add27..0031806475f0 100644
>> --- a/arch/powerpc/include/asm/fadump.h
>> +++ b/arch/powerpc/include/asm/fadump.h
>> @@ -45,10 +45,6 @@
>>
>>  #define memblock_num_regions(memblock_type)	(memblock.memblock_type.cnt)
>>
>> -#ifndef ELF_CORE_EFLAGS
>> -#define ELF_CORE_EFLAGS 0
>> -#endif
>> -
>>  /* Firmware provided dump sections */
>>  #define FADUMP_CPU_STATE_DATA	0x0001
>>  #define FADUMP_HPTE_REGION	0x0002
>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>> index 0638b82ce294..457f08e544c6 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
>>  	elf->e_entry = 0;
>>  	elf->e_phoff = sizeof(struct elfhdr);
>>  	elf->e_shoff = 0;
>> -	elf->e_flags = ELF_CORE_EFLAGS;
>> +#ifdef __LITTLE_ENDIAN__
> 
> Wouldn't '#ifdef PPC64_ELF_ABI_v2' be more appropriate here ?

Hari just pointed out to me that the upstream commit
[https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?id=918d0355]
introduces ELF_CORE_EFLAGS with correct values.

May be we are just fine by including <asm/elf.h> in fadump.h along with
your first hunk. What do you say?

Thanks,
-Mahesh.

> 
>> +	elf->e_flags = 2;
>> +#else
>> +	elf->e_flags = 0;
>> +#endif
>>  	elf->e_ehsize = sizeof(struct elfhdr);
>>  	elf->e_phentsize = sizeof(struct elf_phdr);
>>  	elf->e_phnum = 0;
>>
> 
> Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> 
> Thanks,
> -Mahesh.
> 
> 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
  2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
@ 2016-09-08  9:17     ` Michael Ellerman
  2016-09-08  9:35     ` Michael Ellerman
  2 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-08  9:17 UTC (permalink / raw)
  To: Mahesh Jagannath Salgaonkar, Daniel Axtens, linuxppc-dev; +Cc: Hari Bathini

Mahesh Jagannath Salgaonkar <mahesh@linux.vnet.ibm.com> writes:

> On 09/06/2016 11:02 AM, Daniel Axtens wrote:
>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>> index 0638b82ce294..457f08e544c6 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
>>  	elf->e_entry = 0;
>>  	elf->e_phoff = sizeof(struct elfhdr);
>>  	elf->e_shoff = 0;
>> -	elf->e_flags = ELF_CORE_EFLAGS;
>> +#ifdef __LITTLE_ENDIAN__
>
> Wouldn't '#ifdef PPC64_ELF_ABI_v2' be more appropriate here ?

Yes! I forgot we had added that and told Daniel to use LITTLE_ENDIAN.

I'll fix it up when I apply it.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
  2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
  2016-09-08  9:17     ` Michael Ellerman
@ 2016-09-08  9:35     ` Michael Ellerman
  2 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-08  9:35 UTC (permalink / raw)
  To: Mahesh Jagannath Salgaonkar, Daniel Axtens, linuxppc-dev; +Cc: Hari Bathini

Mahesh Jagannath Salgaonkar <mahesh@linux.vnet.ibm.com> writes:

> On 09/06/2016 11:02 AM, Daniel Axtens wrote:
>> Firmware Assisted Dump is a facility to dump kernel core with assistance
>> from firmware.  As part of this process the kernel ELF version is
>> stored.
>> 
>> Currently, fadump.h defines this to 0 if it is not already defined. This
>> clashes with a define in elf.h which sets it based on the current task -
>> not based on the kernel.
>> 
>> When the kernel is compiled on LE, the kernel will always be version
>> 2. Otherwise it will be version 0. So the correct behaviour is to set
>> the ELF eflags based on the endianness of the kernel. Do that.
>> 
>> Remove the definition in fadump.h, which becomes unused.
>> 
>> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
>> Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
>> Signed-off-by: Daniel Axtens <dja@axtens.net>
>> 
>> ---
>> 
>> Mahesh or Hari: I'm not familiar with this code at all, so if either of
>> you could check that this makes sense I would really appreciate that.
>> Thanks!
>> ---
>>  arch/powerpc/include/asm/fadump.h | 4 ----
>>  arch/powerpc/kernel/fadump.c      | 6 +++++-
>>  2 files changed, 5 insertions(+), 5 deletions(-)
>> 
>> diff --git a/arch/powerpc/include/asm/fadump.h b/arch/powerpc/include/asm/fadump.h
>> index b4407d0add27..0031806475f0 100644
>> --- a/arch/powerpc/include/asm/fadump.h
>> +++ b/arch/powerpc/include/asm/fadump.h
>> @@ -45,10 +45,6 @@
>> 
>>  #define memblock_num_regions(memblock_type)	(memblock.memblock_type.cnt)
>> 
>> -#ifndef ELF_CORE_EFLAGS
>> -#define ELF_CORE_EFLAGS 0
>> -#endif
>> -
>>  /* Firmware provided dump sections */
>>  #define FADUMP_CPU_STATE_DATA	0x0001
>>  #define FADUMP_HPTE_REGION	0x0002
>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>> index 0638b82ce294..457f08e544c6 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
>>  	elf->e_entry = 0;
>>  	elf->e_phoff = sizeof(struct elfhdr);
>>  	elf->e_shoff = 0;
>> -	elf->e_flags = ELF_CORE_EFLAGS;
>> +#ifdef __LITTLE_ENDIAN__
>
> Wouldn't '#ifdef PPC64_ELF_ABI_v2' be more appropriate here ?

Actually I think even more correct is:

    #if defined(_CALL_ELF)
            elf->e_flags = _CALL_ELF;
    #else
            elf->e_flags = 0;
    #endif

So I'll do that.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-08  7:44 ` Arnd Bergmann
@ 2016-09-09  0:43   ` Daniel Axtens
  2016-09-09  1:14     ` Andrew Donnellan
  2016-09-09  7:42     ` Arnd Bergmann
  0 siblings, 2 replies; 20+ messages in thread
From: Daniel Axtens @ 2016-09-09  0:43 UTC (permalink / raw)
  To: Arnd Bergmann, linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 978 bytes --]

Hi Arnd,

> I'm currently experimenting with a patch that adds -Wmissing-declaration to
> the normal kernel CFLAGS for everyone, and fixing up the warnings I get with
> that on ARM.
>
> Are you looking at all the powerpc specific code? If we can catch all the
> existing warnings for some of the major architectures, we can hopefully
> enable this in the mainline kernel at some point so we don't need sparse
> for it any more.

At the moment I'm just trying to squash sparse warnings on powerpc. This
particular catch came from making something static via a dodgy python
script and then Andrew finding it was EXPORTed. Removing the EXPORT
threw the warning - so it's a bit more complex than just a sparse
warning.

I think powerpc has the missing prototype warnings enabled and -Werror
as well.

Andrew Donellan was telling me there's a Coccinelle script that looks
for things that are both static and EXPORTed - maybe that's worth
following up on this point?

Regards,
Daniel

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 859 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-09  0:43   ` Daniel Axtens
@ 2016-09-09  1:14     ` Andrew Donnellan
  2016-09-09  7:42     ` Arnd Bergmann
  1 sibling, 0 replies; 20+ messages in thread
From: Andrew Donnellan @ 2016-09-09  1:14 UTC (permalink / raw)
  To: Daniel Axtens, Arnd Bergmann, linuxppc-dev

On 09/09/16 10:43, Daniel Axtens wrote:
> Andrew Donellan was telling me there's a Coccinelle script that looks
> for things that are both static and EXPORTed - maybe that's worth
> following up on this point?

https://github.com/coccinelle/coccinellery/blob/master/is_static/is_static.cocci

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan@au1.ibm.com  IBM Australia Limited

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-09  0:43   ` Daniel Axtens
  2016-09-09  1:14     ` Andrew Donnellan
@ 2016-09-09  7:42     ` Arnd Bergmann
  1 sibling, 0 replies; 20+ messages in thread
From: Arnd Bergmann @ 2016-09-09  7:42 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Daniel Axtens

On Friday, September 9, 2016 10:43:33 AM CEST Daniel Axtens wrote:
> Hi Arnd,
> 
> > I'm currently experimenting with a patch that adds -Wmissing-declaration to
> > the normal kernel CFLAGS for everyone, and fixing up the warnings I get with
> > that on ARM.
> >
> > Are you looking at all the powerpc specific code? If we can catch all the
> > existing warnings for some of the major architectures, we can hopefully
> > enable this in the mainline kernel at some point so we don't need sparse
> > for it any more.
> 
> At the moment I'm just trying to squash sparse warnings on powerpc. This
> particular catch came from making something static via a dodgy python
> script and then Andrew finding it was EXPORTed. Removing the EXPORT
> threw the warning - so it's a bit more complex than just a sparse
> warning.

I think we just need to pick one of these three cases each time
we see the warning:

- if it's used elsewhere, include the correct header
- if it's not used at all, remove the function
- if it's only used in the same file, make it static.
- if it's exported, decide whether to add a declaration in a
  header or remove the function along with the export.

> I think powerpc has the missing prototype warnings enabled and -Werror
> as well.

All architectures have -Wstrict-prototypes enabled, but not
-Wmissing-prototypes, -Wmissing-declarations or
-Wmissing-variable-declarations, which are similar to what sparse
does.

	Arnd

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
@ 2016-09-09 10:58       ` Michael Ellerman
  0 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-09 10:58 UTC (permalink / raw)
  To: Mahesh Jagannath Salgaonkar, linuxppc-dev

Mahesh Jagannath Salgaonkar <mahesh@linux.vnet.ibm.com> writes:
> On 09/08/2016 12:30 PM, Mahesh Jagannath Salgaonkar wrote:
>> On 09/06/2016 11:02 AM, Daniel Axtens wrote:
>>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>>> index 0638b82ce294..457f08e544c6 100644
>>> --- a/arch/powerpc/kernel/fadump.c
>>> +++ b/arch/powerpc/kernel/fadump.c
>>> @@ -779,7 +779,11 @@ static int fadump_init_elfcore_header(char *bufp)
>>>  	elf->e_entry = 0;
>>>  	elf->e_phoff = sizeof(struct elfhdr);
>>>  	elf->e_shoff = 0;
>>> -	elf->e_flags = ELF_CORE_EFLAGS;
>>> +#ifdef __LITTLE_ENDIAN__
>> 
>> Wouldn't '#ifdef PPC64_ELF_ABI_v2' be more appropriate here ?
>
> Hari just pointed out to me that the upstream commit
> [https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?id=918d0355]
> introduces ELF_CORE_EFLAGS with correct values.

No that's wrong in this case.

It does:

+#define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)

We are generating a core file for *the kernel itself*. So using
is_elf2_task() is wrong. We need to know if the kernel is built v2 or
not, not whether the currently running process is v2.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [v2,1/5] powerpc/cell: drop unused iic_get_irq_host()
  2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
                   ` (5 preceding siblings ...)
  2016-09-08  7:44 ` Arnd Bergmann
@ 2016-09-13 12:16 ` Michael Ellerman
  6 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-13 12:16 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev; +Cc: Daniel Axtens

On Tue, 2016-06-09 at 05:32:39 UTC, Daniel Axtens wrote:
> Sparse checking revealed that it is no longer used.
> There is an EXPORT_SYMBOL_GPL, but there's no header that
> provides a prototype, so nothing should be using it anyway.
> 
> Remove it.
> 
> Signed-off-by: Daniel Axtens <dja@axtens.net>
> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
> Acked-by: Arnd Bergmann <arnd@arndb.de>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/bc42f1d9f5b31060a3c6b83983

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [v2,2/5] powerpc/sparse: Make a bunch of things static
  2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
@ 2016-09-13 12:16   ` Michael Ellerman
  2016-09-14  0:11   ` [PATCH v2 2/5] " Michael Ellerman
  1 sibling, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-13 12:16 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev; +Cc: Daniel Axtens

On Tue, 2016-06-09 at 05:32:40 UTC, Daniel Axtens wrote:
> Squash a bunch of sparse warnings by making things static.
> 
> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
> Signed-off-by: Daniel Axtens <dja@axtens.net>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/7c98bd72081c44670e2d0b60ae

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [v2,4/5] powerpc/fadump: Make ELF eflags depend on endian
  2016-09-06  5:32 ` [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian Daniel Axtens
  2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
@ 2016-09-13 12:16   ` Michael Ellerman
  1 sibling, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-13 12:16 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev
  Cc: Hari Bathini, Mahesh Salgaonkar, Daniel Axtens

On Tue, 2016-06-09 at 05:32:42 UTC, Daniel Axtens wrote:
> Firmware Assisted Dump is a facility to dump kernel core with assistance
> from firmware.  As part of this process the kernel ELF version is
> stored.
> 
> Currently, fadump.h defines this to 0 if it is not already defined. This
> clashes with a define in elf.h which sets it based on the current task -
> not based on the kernel.
> 
> When the kernel is compiled on LE, the kernel will always be version
> 2. Otherwise it will be version 0. So the correct behaviour is to set
> the ELF eflags based on the endianness of the kernel. Do that.
> 
> Remove the definition in fadump.h, which becomes unused.
> 
> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>
> Signed-off-by: Daniel Axtens <dja@axtens.net>
> Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/d8bced27be25537bde3714cbdb

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [v2,5/5] powerpc/sparse: Add more assembler prototypes
  2016-09-06  5:32 ` [PATCH v2 5/5] powerpc/sparse: Add more assembler prototypes Daniel Axtens
@ 2016-09-13 12:16   ` Michael Ellerman
  0 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-13 12:16 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev; +Cc: Daniel Axtens

On Tue, 2016-06-09 at 05:32:43 UTC, Daniel Axtens wrote:
> Another set of things that are only called from assembler and so need
> prototypes to keep sparse happy.
> 
> Signed-off-by: Daniel Axtens <dja@axtens.net>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/0545d5436aefddff7ca417adc1

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static
  2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
  2016-09-13 12:16   ` [v2,2/5] " Michael Ellerman
@ 2016-09-14  0:11   ` Michael Ellerman
  1 sibling, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2016-09-14  0:11 UTC (permalink / raw)
  To: Daniel Axtens, linuxppc-dev

Daniel Axtens <dja@axtens.net> writes:
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
> index 05f09ae82587..95abca69b168 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
> @@ -1608,7 +1608,7 @@ static ssize_t debugfs_htab_read(struct file *file, char __user *buf,
>  	return ret;
>  }
>  
> -ssize_t debugfs_htab_write(struct file *file, const char __user *buf,
> +static ssize_t debugfs_htab_write(struct file *file, const char __user *buf,
>  			   size_t len, loff_t *ppos)
>  {
>  	return -EACCES;

I dropped these hunks, because they touch arch/powerpc/kvm and so should
technically go via Paul.

Can you resend them to him?

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-09-14  0:11 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-06  5:32 [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Daniel Axtens
2016-09-06  5:32 ` [PATCH v2 2/5] powerpc/sparse: Make a bunch of things static Daniel Axtens
2016-09-13 12:16   ` [v2,2/5] " Michael Ellerman
2016-09-14  0:11   ` [PATCH v2 2/5] " Michael Ellerman
2016-09-06  5:32 ` [PATCH v2 3/5] powerpc/kvm: sparse: prototypes for functions called from assembler Daniel Axtens
2016-09-06  5:32 ` [PATCH v2 4/5] powerpc/fadump: Make ELF eflags depend on endian Daniel Axtens
2016-09-08  7:00   ` Mahesh Jagannath Salgaonkar
2016-09-08  8:21     ` Mahesh Jagannath Salgaonkar
2016-09-09 10:58       ` Michael Ellerman
2016-09-08  9:17     ` Michael Ellerman
2016-09-08  9:35     ` Michael Ellerman
2016-09-13 12:16   ` [v2,4/5] " Michael Ellerman
2016-09-06  5:32 ` [PATCH v2 5/5] powerpc/sparse: Add more assembler prototypes Daniel Axtens
2016-09-13 12:16   ` [v2,5/5] " Michael Ellerman
2016-09-06  6:01 ` [PATCH v2 1/5] powerpc/cell: drop unused iic_get_irq_host() Andrew Donnellan
2016-09-08  7:44 ` Arnd Bergmann
2016-09-09  0:43   ` Daniel Axtens
2016-09-09  1:14     ` Andrew Donnellan
2016-09-09  7:42     ` Arnd Bergmann
2016-09-13 12:16 ` [v2,1/5] " Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.