ARM cleanups
Subsystems (3)
cover ARM cleanups
The following series is partly a result of reviewing differences between ARM and ARM64, and cleans up ARM with some of the changes made to ARM64. Many of these changes are trivial cleanups.
I've also dropped some of the kernel boot messages - removing the "SMP: Total of %d processors activated" message which was redundant, and dropping a couple of others to debug level.
I've moved the ftrace assembly code to its own separate file, just like on ARM64.
I've been running stuff with this for a number of weeks now, and haven't noticed any regressions.
arch/arm/common/sa1111.c | 13 +-- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/atags_compat.c | 6 +- arch/arm/kernel/atags_parse.c | 5 +- arch/arm/kernel/atags_proc.c | 4 +- arch/arm/kernel/bios32.c | 2 +- arch/arm/kernel/dma-isa.c | 4 +- arch/arm/kernel/dma.c | 26 ++--- arch/arm/kernel/entry-common.S | 235 -------------------------------------- arch/arm/kernel/entry-ftrace.S | 243 ++++++++++++++++++++++++++++++++++++++++ arch/arm/kernel/etm.c | 12 +- arch/arm/kernel/fiq.c | 2 +- arch/arm/kernel/io.c | 5 +- arch/arm/kernel/irq.c | 8 +- arch/arm/kernel/machine_kexec.c | 6 +- arch/arm/kernel/module.c | 2 +- arch/arm/kernel/setup.c | 1 + arch/arm/kernel/smp.c | 15 +-- arch/arm/kernel/smp_twd.c | 4 +- arch/arm/kernel/swp_emulate.c | 2 +- arch/arm/kernel/thumbee.c | 2 +- arch/arm/kernel/topology.c | 4 +- arch/arm/kernel/traps.c | 42 +++---- arch/arm/kernel/xscale-cp0.c | 7 +- arch/arm/mm/alignment.c | 10 +- arch/arm/mm/cache-feroceon-l2.c | 6 +- arch/arm/mm/cache-tauros2.c | 12 +- arch/arm/mm/fault-armv.c | 6 +- arch/arm/mm/fault.c | 31 +++-- arch/arm/mm/init.c | 4 +- arch/arm/mm/mmu.c | 38 +++---- arch/arm/nwfpe/fpmodule.c | 8 +- arch/arm/vfp/vfpsingle.c | 2 +- 33 files changed, 378 insertions(+), 390 deletions(-)
Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up according to speedtest.net.
PATCH 1/8 ARM: convert printk(KERN_* to pr_*
Convert many (but not all) printk(KERN_* to pr_* to simplify the code. We take the opportunity to join some printk lines together so we don't split the message across several lines, and we also add a few levels to some messages which were previously missing them.
--- arch/arm/common/sa1111.c | 13 ++++++------- arch/arm/kernel/atags_compat.c | 6 ++---- arch/arm/kernel/atags_parse.c | 5 ++--- arch/arm/kernel/atags_proc.c | 4 ++-- arch/arm/kernel/bios32.c | 2 +- arch/arm/kernel/dma-isa.c | 4 ++-- arch/arm/kernel/dma.c | 26 +++++++++++-------------- arch/arm/kernel/etm.c | 12 ++++++------ arch/arm/kernel/fiq.c | 2 +- arch/arm/kernel/irq.c | 2 +- arch/arm/kernel/machine_kexec.c | 6 +++--- arch/arm/kernel/module.c | 2 +- arch/arm/kernel/smp.c | 16 ++++++++-------- arch/arm/kernel/smp_twd.c | 4 ++-- arch/arm/kernel/swp_emulate.c | 2 +- arch/arm/kernel/thumbee.c | 2 +- arch/arm/kernel/topology.c | 4 ++-- arch/arm/kernel/traps.c | 42 ++++++++++++++++++++--------------------- arch/arm/kernel/xscale-cp0.c | 7 +++---- arch/arm/mm/alignment.c | 10 +++++----- arch/arm/mm/cache-feroceon-l2.c | 6 +++--- arch/arm/mm/cache-tauros2.c | 12 ++++++------ arch/arm/mm/fault-armv.c | 6 +++--- arch/arm/mm/fault.c | 31 +++++++++++++++--------------- arch/arm/mm/init.c | 4 ++-- arch/arm/mm/mmu.c | 38 +++++++++++++++---------------------- arch/arm/nwfpe/fpmodule.c | 4 ++-- arch/arm/vfp/vfpsingle.c | 2 +- 28 files changed, 128 insertions(+), 146 deletions(-)
arch/arm/common/sa1111.c +6 -7
@@ -282,8 +282,8 @@ static int sa1111_retrigger_lowirq(struct irq_data *d) }if (i ==8 ) -printk (KERN_ERR "Danger Will Robinson: failed to " -"re-trigger IRQ%d\n" , d->irq); +pr_err ("Danger Will Robinson: failed to re-trigger IRQ%d\n" , + d->irq);return i ==8 ?-1 :0 ; }
@@ -384,8 +384,8 @@ static int sa1111_retrigger_highirq(struct irq_data *d) }if (i ==8 ) -printk (KERN_ERR "Danger Will Robinson: failed to " -"re-trigger IRQ%d\n" , d->irq); +pr_err ("Danger Will Robinson: failed to re-trigger IRQ%d\n" , + d->irq);return i ==8 ?-1 :0 ; }
@@ -740,9 +740,8 @@ static int __sa1111_probe(struct device *me, struct resource *mem, int irq) goto err_unmap; } -printk (KERN_INFO "SA1111 Microprocessor Companion Chip: " -"silicon revision %lx, metal revision %lx\n" , - (id &SKID_SIREV_MASK )>>4 , (id &SKID_MTREV_MASK )); +pr_info ("SA1111 Microprocessor Companion Chip: silicon revision %lx, metal revision %lx\n" , + (id &SKID_SIREV_MASK ) >>4 , id &SKID_MTREV_MASK );/* * We found it. Wake the chip up, and initialise.
arch/arm/kernel/atags_compat.c +2 -4
@@ -97,8 +97,7 @@ static void __init build_tag_list(struct param_struct *params, void *taglist)struct tag *tag = taglist;if (params->u1.s.page_size !=PAGE_SIZE ) { -printk (KERN_WARNING "Warning: bad configuration page, " -"trying to continue\n" ); +pr_warn ("Warning: bad configuration page, trying to continue\n" );return ; }
@@ -109,8 +108,7 @@ static void __init build_tag_list(struct param_struct *params, void *taglist) params->u1.s.nr_pages != 0x04000 && params->u1.s.nr_pages != 0x08000 && params->u1.s.nr_pages != 0x10000) { -printk (KERN_WARNING "Warning: bad NeTTrom parameters " -"detected, using defaults\n" ); +pr_warn ("Warning: bad NeTTrom parameters detected, using defaults\n" ); params->u1.s.nr_pages =0x1000 ;/* 16MB */ params->u1.s.ramdisk_size =0 ;
arch/arm/kernel/atags_parse.c +2 -3
@@ -167,8 +167,7 @@ static void __init parse_tags(const struct tag *t) {for (; t->hdr.size; t =tag_next (t))if (!parse_tag (t)) -printk (KERN_WARNING -"Ignoring unrecognised tag 0x%08x\n" , +pr_warn ("Ignoring unrecognised tag 0x%08x\n" , t->hdr.tag); }
@@ -193,7 +192,7 @@ setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)*/ for_each_machine_desc (p)if (machine_nr == p->nr) { -printk ("Machine: %s\n" , p->name); +pr_info ("Machine: %s\n" , p->name); mdesc = p;break ; }
arch/arm/kernel/atags_proc.c +2 -2
@@ -41,7 +41,7 @@ static int __init init_atags_procfs(void)size_t size;if (tag->hdr.tag !=ATAG_CORE ) { -printk (KERN_INFO "No ATAGs?" ); +pr_info ("No ATAGs?" );return -EINVAL ; }
@@ -68,7 +68,7 @@ static int __init init_atags_procfs(void) nomem:kfree (b); -printk (KERN_ERR "Exporting ATAGs: not enough memory\n" ); +pr_err ("Exporting ATAGs: not enough memory\n" );return -ENOMEM ; }
arch/arm/kernel/bios32.c +1 -1
@@ -355,7 +355,7 @@ void pcibios_fixup_bus(struct pci_bus *bus)/* * Report what we did for this bus */ -printk (KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n" , +pr_info ("PCI: bus%d: Fast back to back transfers %sabled\n" , bus->number, (features &PCI_COMMAND_FAST_BACK ) ?"en" :"dis" ); }EXPORT_SYMBOL (pcibios_fixup_bus);
arch/arm/kernel/dma-isa.c +2 -2
@@ -213,8 +213,8 @@ void __init isa_init_dma(void)for (chan =0 ; chan <8 ; chan++) {int ret =isa_dma_add (chan, &isa_dma[chan]);if (ret) -printk (KERN_ERR "ISADMA%u: unable to register: %d\n" , - chan, ret); +pr_err ("ISADMA%u: unable to register: %d\n" , + chan, ret); }request_dma (DMA_ISA_CASCADE ,"cascade" );
arch/arm/kernel/dma.c +11 -15
@@ -79,7 +79,7 @@ int request_dma(unsigned int chan, const char *device_id)return ret; bad_dma: -printk (KERN_ERR "dma: trying to allocate DMA%d\n" , chan); +pr_err ("dma: trying to allocate DMA%d\n" , chan);return -EINVAL ; busy:
@@ -100,7 +100,7 @@ void free_dma(unsigned int chan) goto bad_dma;if (dma->active) { -printk (KERN_ERR "dma%d: freeing active DMA\n" , chan); +pr_err ("dma%d: freeing active DMA\n" , chan); dma->d_ops->disable (chan, dma); dma->active =0 ; }
@@ -111,11 +111,11 @@ void free_dma(unsigned int chan)return ; } -printk (KERN_ERR "dma%d: trying to free free DMA\n" , chan); +pr_err ("dma%d: trying to free free DMA\n" , chan);return ; bad_dma: -printk (KERN_ERR "dma: trying to free DMA%d\n" , chan); +pr_err ("dma: trying to free DMA%d\n" , chan); }EXPORT_SYMBOL (free_dma);
@@ -126,8 +126,7 @@ void set_dma_sg (unsigned int chan, struct scatterlist *sg, int nr_sg)dma_t *dma =dma_channel (chan);if (dma->active) -printk (KERN_ERR "dma%d: altering DMA SG while " -"DMA active\n" , chan); +pr_err ("dma%d: altering DMA SG while DMA active\n" , chan); dma->sg = sg; dma->sgcount = nr_sg;
@@ -144,8 +143,7 @@ void __set_dma_addr (unsigned int chan, void *addr)dma_t *dma =dma_channel (chan);if (dma->active) -printk (KERN_ERR "dma%d: altering DMA address while " -"DMA active\n" , chan); +pr_err ("dma%d: altering DMA address while DMA active\n" , chan); dma->sg =NULL ; dma->addr = addr;
@@ -162,8 +160,7 @@ void set_dma_count (unsigned int chan, unsigned long count)dma_t *dma =dma_channel (chan);if (dma->active) -printk (KERN_ERR "dma%d: altering DMA count while " -"DMA active\n" , chan); +pr_err ("dma%d: altering DMA count while DMA active\n" , chan); dma->sg =NULL ; dma->count = count;
@@ -178,8 +175,7 @@ void set_dma_mode (unsigned int chan, unsigned int mode)dma_t *dma =dma_channel (chan);if (dma->active) -printk (KERN_ERR "dma%d: altering DMA mode while " -"DMA active\n" , chan); +pr_err ("dma%d: altering DMA mode while DMA active\n" , chan); dma->dma_mode = mode; dma->invalid =1 ;
@@ -202,7 +198,7 @@ void enable_dma (unsigned int chan)return ; free_dma: -printk (KERN_ERR "dma%d: trying to enable free DMA\n" , chan); +pr_err ("dma%d: trying to enable free DMA\n" , chan);BUG (); }EXPORT_SYMBOL (enable_dma);
@@ -223,7 +219,7 @@ void disable_dma (unsigned int chan)return ; free_dma: -printk (KERN_ERR "dma%d: trying to disable free DMA\n" , chan); +pr_err ("dma%d: trying to disable free DMA\n" , chan);BUG (); }EXPORT_SYMBOL (disable_dma);
@@ -240,7 +236,7 @@ EXPORT_SYMBOL(dma_channel_active);void set_dma_page (unsigned int chan,char pagenr) { -printk (KERN_ERR "dma%d: trying to set_dma_page\n" , chan); +pr_err ("dma%d: trying to set_dma_page\n" , chan); }EXPORT_SYMBOL (set_dma_page);
arch/arm/kernel/etm.c +6 -6
@@ -213,7 +213,7 @@ static void etm_dump(void)int length;if (!t->etb_regs) { -printk (KERN_INFO "No tracing hardware found\n" ); +pr_info ("No tracing hardware found\n" );return ; }
@@ -229,11 +229,11 @@ static void etm_dump(void)etb_writel (t, first,ETBR_READADDR ); -printk (KERN_INFO "Trace buffer contents length: %d\n" , length); -printk (KERN_INFO "--- ETB buffer begin ---\n" ); +pr_info ("Trace buffer contents length: %d\n" , length); +pr_info ("--- ETB buffer begin ---\n" );for (; length; length--)printk ("%08x" ,cpu_to_be32 (etb_readl (t,ETBR_READMEM ))); -printk (KERN_INFO "\n--- ETB buffer end ---\n" ); +pr_info ("\n--- ETB buffer end ---\n" );/* deassert the overflow bit */ etb_writel (t,1 ,ETBR_CTRL );
@@ -633,14 +633,14 @@ static int __init etm_init(void) retval =amba_driver_register (&etb_driver);if (retval) { -printk (KERN_ERR "Failed to register etb\n" ); +pr_err ("Failed to register etb\n" );return retval; } retval =amba_driver_register (&etm_driver);if (retval) {amba_driver_unregister (&etb_driver); -printk (KERN_ERR "Failed to probe etm\n" ); +pr_err ("Failed to probe etm\n" );return retval; }
arch/arm/kernel/fiq.c +1 -1
@@ -124,7 +124,7 @@ int claim_fiq(struct fiq_handler *f)void release_fiq (struct fiq_handler *f) {if (current_fiq != f) { -printk (KERN_ERR "%s FIQ trying to release %s FIQ\n" , +pr_err ("%s FIQ trying to release %s FIQ\n" , f->name, current_fiq->name);dump_stack ();return ;
arch/arm/kernel/irq.c +1 -1
@@ -82,7 +82,7 @@ void set_irq_flags(unsigned int irq, unsigned int iflags)unsigned long clr =0 , set =IRQ_NOREQUEST |IRQ_NOPROBE |IRQ_NOAUTOEN ;if (irq >= nr_irqs) { -printk (KERN_ERR "Trying to set irq flags for IRQ%d\n" , irq); +pr_err ("Trying to set irq flags for IRQ%d\n" , irq);return ; }
arch/arm/kernel/machine_kexec.c +3 -3
@@ -126,12 +126,12 @@ void machine_crash_shutdown(struct pt_regs *regs) msecs--; }if (atomic_read (&waiting_for_crash_ipi) >0 ) -printk (KERN_WARNING "Non-crashing CPUs did not react to IPI\n" ); +pr_warn ("Non-crashing CPUs did not react to IPI\n" );crash_save_cpu (regs,smp_processor_id ());machine_kexec_mask_interrupts (); -printk (KERN_INFO "Loading crashdump kernel...\n" ); +pr_info ("Loading crashdump kernel...\n" ); }/*
@@ -177,7 +177,7 @@ void machine_kexec(struct kimage *image) reboot_entry_phys = (unsigned long )reboot_entry + (reboot_code_buffer_phys - (unsigned long )reboot_code_buffer); -printk (KERN_INFO "Bye!\n" ); +pr_info ("Bye!\n" );if (kexec_reinit)kexec_reinit ();
arch/arm/kernel/module.c +1 -1
@@ -251,7 +251,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,#endif default : -printk (KERN_ERR "%s: unknown relocation: %u\n" , +pr_err ("%s: unknown relocation: %u\n" , module->name,ELF32_R_TYPE (rel->r_info));return -ENOEXEC ; }
arch/arm/kernel/smp.c +8 -8
@@ -225,7 +225,7 @@ void __cpu_die(unsigned int cpu)pr_err ("CPU%u: cpu didn't die\n" , cpu);return ; } -printk (KERN_NOTICE "CPU%u: shutdown\n" , cpu); +pr_notice ("CPU%u: shutdown\n" , cpu);/* * platform_cpu_kill() is generally expected to do the powering off
@@ -235,7 +235,7 @@ void __cpu_die(unsigned int cpu)* the requesting CPU and the dying CPU actually losing power. */ if (!platform_cpu_kill (cpu)) -printk ("CPU%u: unable to kill\n" , cpu); +pr_err ("CPU%u: unable to kill\n" , cpu); }/*
@@ -351,7 +351,7 @@ asmlinkage void secondary_start_kernel(void)cpu_init (); -printk ("CPU%u: Booted secondary processor\n" , cpu); +pr_info ("CPU%u: Booted secondary processor\n" , cpu);preempt_disable ();trace_hardirqs_off ();
@@ -387,8 +387,8 @@ asmlinkage void secondary_start_kernel(void)void __init smp_cpus_done (unsigned int max_cpus) { -printk (KERN_INFO "SMP: Total of %d processors activated.\n" , -num_online_cpus ()); +pr_info ("SMP: Total of %d processors activated.\n" , +num_online_cpus ());hyp_mode_check (); }
@@ -521,7 +521,7 @@ static void ipi_cpu_stop(unsigned int cpu)if (system_state ==SYSTEM_BOOTING || system_state ==SYSTEM_RUNNING ) {raw_spin_lock (&stop_lock); -printk (KERN_CRIT "CPU%u: stopping\n" , cpu); +pr_crit ("CPU%u: stopping\n" , cpu);dump_stack ();raw_spin_unlock (&stop_lock); }
@@ -615,8 +615,8 @@ void handle_IPI(int ipinr, struct pt_regs *regs)break ;default : -printk (KERN_CRIT "CPU%u: Unknown IPI message 0x%x\n" , - cpu, ipinr); +pr_crit ("CPU%u: Unknown IPI message 0x%x\n" , + cpu, ipinr);break ; }
arch/arm/kernel/smp_twd.c +2 -2
@@ -199,7 +199,7 @@ static void twd_calibrate_rate(void)* the timer ticks */ if (twd_timer_rate ==0 ) { -printk (KERN_INFO "Calibrating local timer... " ); +pr_info ("Calibrating local timer... " );/* Wait for a tick to start */ waitjiffies =get_jiffies_64 () +1 ;
@@ -223,7 +223,7 @@ static void twd_calibrate_rate(void) twd_timer_rate = (0xFFFFFFFFU - count) * (HZ /5 ); -printk ("%lu.%02luMHz.\n" , twd_timer_rate /1000000 , +pr_cont ("%lu.%02luMHz.\n" , twd_timer_rate /1000000 , (twd_timer_rate /10000 ) %100 ); } }
arch/arm/kernel/swp_emulate.c +1 -1
@@ -260,7 +260,7 @@ static int __init swp_emulation_init(void)return -ENOMEM ;#endif /* CONFIG_PROC_FS */ -printk (KERN_NOTICE "Registering SWP/SWPB emulation handler\n" ); +pr_notice ("Registering SWP/SWPB emulation handler\n" );register_undef_hook (&swp_hook);return 0 ;
arch/arm/kernel/thumbee.c +1 -1
@@ -72,7 +72,7 @@ static int __init thumbee_init(void)if ((pfr0 &0x0000f000 ) !=0x00001000 )return 0 ; -printk (KERN_INFO "ThumbEE CPU extension supported.\n" ); +pr_info ("ThumbEE CPU extension supported.\n" ); elf_hwcap |=HWCAP_THUMBEE ;thread_register_notifier (&thumbee_notifier_block);
arch/arm/kernel/topology.c +2 -2
@@ -165,7 +165,7 @@ static void update_cpu_capacity(unsigned int cpu)set_capacity_scale (cpu,cpu_capacity (cpu) / middle_capacity); -printk (KERN_INFO "CPU%u: update cpu_capacity %lu\n" , +pr_info ("CPU%u: update cpu_capacity %lu\n" , cpu,arch_scale_cpu_capacity (NULL , cpu)); }
@@ -269,7 +269,7 @@ void store_cpu_topology(unsigned int cpuid)update_cpu_capacity (cpuid); -printk (KERN_INFO "CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n" , +pr_info ("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n" , cpuid, cpu_topology[cpuid].thread_id, cpu_topology[cpuid].core_id, cpu_topology[cpuid].socket_id, mpidr);
arch/arm/kernel/traps.c +21 -21
124 lines not on this page · raw message
arch/arm/kernel/xscale-cp0.c +3 -4
@@ -157,15 +157,14 @@ static int __init xscale_cp0_init(void)if (cpu_has_iwmmxt ()) {#ifndef CONFIG_IWMMXT -printk (KERN_WARNING "CAUTION: XScale iWMMXt coprocessor " -"detected, but kernel support is missing.\n" ); +pr_warn ("CAUTION: XScale iWMMXt coprocessor detected, but kernel support is missing.\n" );#else -printk (KERN_INFO "XScale iWMMXt coprocessor detected.\n" ); +pr_info ("XScale iWMMXt coprocessor detected.\n" ); elf_hwcap |=HWCAP_IWMMXT ;thread_register_notifier (&iwmmxt_notifier_block);#endif }else { -printk (KERN_INFO "XScale DSP coprocessor detected.\n" ); +pr_info ("XScale DSP coprocessor detected.\n" );thread_register_notifier (&dsp_notifier_block); cp_access |=1 ; }
arch/arm/mm/alignment.c +5 -5
@@ -113,7 +113,7 @@ static int safe_usermode(int new_usermode, bool warn) new_usermode |=UM_FIXUP ;if (warn) -printk (KERN_WARNING "alignment: ignoring faults is unsafe on this CPU. Defaulting to fixup mode.\n" ); +pr_warn ("alignment: ignoring faults is unsafe on this CPU. Defaulting to fixup mode.\n" ); }return new_usermode;
@@ -523,7 +523,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg* processor for us. */ if (addr != eaddr) { -printk (KERN_ERR "LDMSTM: PC = %08lx, instr = %08lx, " +pr_err ("LDMSTM: PC = %08lx, instr = %08lx, " "addr = %08lx, eaddr = %08lx\n" ,instruction_pointer (regs), instr, addr, eaddr);show_regs (regs);
@@ -567,7 +567,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *regreturn TYPE_FAULT ; bad: -printk (KERN_ERR "Alignment trap: not handling ldm with s-bit set\n" ); +pr_err ("Alignment trap: not handling ldm with s-bit set\n" );return TYPE_ERROR ; }
@@ -899,13 +899,13 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)return 0 ; swp: -printk (KERN_ERR "Alignment trap: not handling swp instruction\n" ); +pr_err ("Alignment trap: not handling swp instruction\n" ); bad:/* * Oops, we didn't handle the instruction. */ -printk (KERN_ERR "Alignment trap: not handling instruction " +pr_err ("Alignment trap: not handling instruction " "%0*lx at [<%08lx>]\n" , isize <<1 , isize ==2 ? tinstr : instr, instrptr);
arch/arm/mm/cache-feroceon-l2.c +3 -3
@@ -313,7 +313,7 @@ static void __init disable_l2_prefetch(void)*/ u =read_extra_features ();if (!(u &0x01000000 )) { -printk (KERN_INFO "Feroceon L2: Disabling L2 prefetch.\n" ); +pr_info ("Feroceon L2: Disabling L2 prefetch.\n" );write_extra_features (u |0x01000000 ); } }
@@ -326,7 +326,7 @@ static void __init enable_l2(void)if (!(u &0x00400000 )) {int i, d; -printk (KERN_INFO "Feroceon L2: Enabling L2\n" ); +pr_info ("Feroceon L2: Enabling L2\n" ); d =flush_and_disable_dcache (); i =invalidate_and_disable_icache ();
@@ -353,7 +353,7 @@ void __init feroceon_l2_init(int __l2_wt_override)enable_l2 (); -printk (KERN_INFO "Feroceon L2: Cache support initialised%s.\n" , +pr_info ("Feroceon L2: Cache support initialised%s.\n" , l2_wt_override ?", in WT override mode" :"" ); }#ifdef CONFIG_OF
arch/arm/mm/cache-tauros2.c +6 -6
@@ -185,7 +185,7 @@ static void enable_extra_feature(unsigned int features) u &= ~0x01000000 ; else u |= 0x01000000; -printk (KERN_INFO "Tauros2: %s L2 prefetch.\n" , +pr_info ("Tauros2: %s L2 prefetch.\n" , (features &CACHE_TAUROS2_PREFETCH_ON ) ?"Enabling" :"Disabling" );
@@ -193,7 +193,7 @@ static void enable_extra_feature(unsigned int features) u |=0x00100000 ; else u &= ~0x00100000; -printk (KERN_INFO "Tauros2: %s line fill burt8.\n" , +pr_info ("Tauros2: %s line fill burt8.\n" , (features &CACHE_TAUROS2_LINEFILL_BURST8 ) ?"Enabling" :"Disabling" );
@@ -216,7 +216,7 @@ static void __init tauros2_internal_init(unsigned int features)*/ feat =read_extra_features ();if (!(feat &0x00400000 )) { -printk (KERN_INFO "Tauros2: Enabling L2 cache.\n" ); +pr_info ("Tauros2: Enabling L2 cache.\n" );write_extra_features (feat |0x00400000 ); }
@@ -253,7 +253,7 @@ static void __init tauros2_internal_init(unsigned int features)*/ actlr =read_actlr ();if (!(actlr &0x00000002 )) { -printk (KERN_INFO "Tauros2: Enabling L2 cache.\n" ); +pr_info ("Tauros2: Enabling L2 cache.\n" );write_actlr (actlr |0x00000002 ); }
@@ -262,11 +262,11 @@ static void __init tauros2_internal_init(unsigned int features)#endif if (mode ==NULL ) { -printk (KERN_CRIT "Tauros2: Unable to detect CPU mode.\n" ); +pr_crit ("Tauros2: Unable to detect CPU mode.\n" );return ; } -printk (KERN_INFO "Tauros2: L2 cache support initialised " +pr_info ("Tauros2: L2 cache support initialised " "in %s mode.\n" , mode); }
arch/arm/mm/fault-armv.c +3 -3
@@ -235,7 +235,7 @@ void __init check_writebuffer_bugs(void)const char *reason;unsigned long v =1 ; -printk (KERN_INFO "CPU: Testing write buffer coherency: " ); +pr_info ("CPU: Testing write buffer coherency: " ); page =alloc_page (GFP_KERNEL );if (page) {
@@ -261,9 +261,9 @@ void __init check_writebuffer_bugs(void) }if (v) { -printk ("failed, %s\n" , reason); +pr_cont ("failed, %s\n" , reason); shared_pte_mask =L_PTE_MT_UNCACHED ; }else { -printk ("ok\n" ); +pr_cont ("ok\n" ); } }
arch/arm/mm/fault.c +15 -16
@@ -63,9 +63,9 @@ void show_pte(struct mm_struct *mm, unsigned long addr)if (!mm) mm = &init_mm; -printk (KERN_ALERT "pgd = %p\n" , mm->pgd); +pr_alert ("pgd = %p\n" , mm->pgd); pgd =pgd_offset (mm, addr); -printk (KERN_ALERT "[%08lx] *pgd=%08llx" , +pr_alert ("[%08lx] *pgd=%08llx" , addr, (long long )pgd_val (*pgd)); do {
@@ -77,31 +77,31 @@ void show_pte(struct mm_struct *mm, unsigned long addr)break ;if (pgd_bad (*pgd)) { -printk ("(bad)" ); +pr_cont ("(bad)" );break ; } pud =pud_offset (pgd, addr);if (PTRS_PER_PUD !=1 ) -printk (", *pud=%08llx" , (long long )pud_val (*pud)); +pr_cont (", *pud=%08llx" , (long long )pud_val (*pud));if (pud_none (*pud))break ;if (pud_bad (*pud)) { -printk ("(bad)" ); +pr_cont ("(bad)" );break ; } pmd =pmd_offset (pud, addr);if (PTRS_PER_PMD !=1 ) -printk (", *pmd=%08llx" , (long long )pmd_val (*pmd)); +pr_cont (", *pmd=%08llx" , (long long )pmd_val (*pmd));if (pmd_none (*pmd))break ;if (pmd_bad (*pmd)) { -printk ("(bad)" ); +pr_cont ("(bad)" );break ; }
@@ -110,15 +110,15 @@ void show_pte(struct mm_struct *mm, unsigned long addr)break ; pte =pte_offset_map (pmd, addr); -printk (", *pte=%08llx" , (long long )pte_val (*pte)); +pr_cont (", *pte=%08llx" , (long long )pte_val (*pte));#ifndef CONFIG_ARM_LPAE -printk (", *ppte=%08llx" , +pr_cont (", *ppte=%08llx" , (long long )pte_val (pte[PTE_HWTABLE_PTRS ]));#endif pte_unmap(pte); }while (0 ); -printk ("\n" ); +pr_cont ("\n" ); }#else /* CONFIG_MMU */ void show_pte (struct mm_struct *mm,unsigned long addr)
@@ -142,10 +142,9 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,* No handler, we'll have to terminate things with extreme prejudice. */ bust_spinlocks (1 ); -printk (KERN_ALERT -"Unable to handle kernel %s at virtual address %08lx\n" , - (addr <PAGE_SIZE ) ?"NULL pointer dereference" : -"paging request" , addr); +pr_alert ("Unable to handle kernel %s@virtual address %08lx\n" , + (addr <PAGE_SIZE ) ?"NULL pointer dereference" : +"paging request" , addr);show_pte (mm, addr);die ("Oops" , regs, fsr);
@@ -551,7 +550,7 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)if (!inf->fn (addr, fsr & ~FSR_LNX_PF , regs))return ; -printk (KERN_ALERT "Unhandled fault: %s (0x%03x) at 0x%08lx\n" , +pr_alert ("Unhandled fault: %s (0x%03x) at 0x%08lx\n" , inf->name, fsr, addr); info.si_signo = inf->sig;
@@ -583,7 +582,7 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)if (!inf->fn (addr, ifsr |FSR_LNX_PF , regs))return ; -printk (KERN_ALERT "Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n" , +pr_alert ("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n" , inf->name, ifsr, addr); info.si_signo = inf->sig;
arch/arm/mm/init.c +2 -2
@@ -67,7 +67,7 @@ early_param("initrd", early_initrd);static int __init parse_tag_initrd (const struct tag *tag) { -printk (KERN_WARNING "ATAG_INITRD is deprecated; " +pr_warn ("ATAG_INITRD is deprecated; " "please update your bootloader.\n" ); phys_initrd_start =__virt_to_phys (tag->u.initrd.start); phys_initrd_size = tag->u.initrd.size;
@@ -544,7 +544,7 @@ void __init mem_init(void)#define MLM (b, t) b, t, ((t) - (b)) >> 20#define MLK_ROUNDUP (b, t) b, t, DIV_ROUND_UP(((t) - (b)), SZ_1K) -printk (KERN_NOTICE "Virtual kernel memory layout:\n" +pr_notice ("Virtual kernel memory layout:\n" " vector : 0x%08lx - 0x%08lx (%4ld kB)\n" #ifdef CONFIG_HAVE_TCM " DTCM : 0x%08lx - 0x%08lx (%4ld kB)\n"
arch/arm/mm/mmu.c +15 -23
@@ -192,7 +192,7 @@ early_param("cachepolicy", early_cachepolicy);static int __init early_nocache (char *__unused) {char *p ="buffered" ; -printk (KERN_WARNING "nocache is deprecated; use cachepolicy=%s\n" , p); +pr_warn ("nocache is deprecated; use cachepolicy=%s\n" , p);early_cachepolicy (p);return 0 ; }
@@ -201,7 +201,7 @@ early_param("nocache", early_nocache);static int __init early_nowrite (char *__unused) {char *p ="uncached" ; -printk (KERN_WARNING "nowb is deprecated; use cachepolicy=%s\n" , p); +pr_warn ("nowb is deprecated; use cachepolicy=%s\n" , p);early_cachepolicy (p);return 0 ; }
@@ -786,8 +786,7 @@ static void __init create_36bit_mapping(struct map_desc *md, length =PAGE_ALIGN (md->length);if (!(cpu_architecture () >= CPU_ARCH_ARMv6 ||cpu_is_xsc3 ())) { -printk (KERN_ERR "MM: CPU does not support supersection " -"mapping for 0x%08llx at 0x%08lx\n" , +pr_err ("MM: CPU does not support supersection mapping for 0x%08llx at 0x%08lx\n" , (long long )__pfn_to_phys ((u64 )md->pfn), addr);return ; }
@@ -799,15 +798,13 @@ static void __init create_36bit_mapping(struct map_desc *md,* of the actual domain assignments in use. */ if (type->domain) { -printk (KERN_ERR "MM: invalid domain in supersection " -"mapping for 0x%08llx at 0x%08lx\n" , +pr_err ("MM: invalid domain in supersection mapping for 0x%08llx at 0x%08lx\n" , (long long )__pfn_to_phys ((u64 )md->pfn), addr);return ; }if ((addr | length |__pfn_to_phys (md->pfn)) & ~SUPERSECTION_MASK ) { -printk (KERN_ERR "MM: cannot create mapping for 0x%08llx" -" at 0x%08lx invalid alignment\n" , +pr_err ("MM: cannot create mapping for 0x%08llx at 0x%08lx invalid alignment\n" , (long long )__pfn_to_phys ((u64 )md->pfn), addr);return ; }
@@ -850,18 +847,16 @@ static void __init create_mapping(struct map_desc *md)pgd_t *pgd;if (md->virtual !=vectors_base () && md->virtual <TASK_SIZE ) { -printk (KERN_WARNING "BUG: not creating mapping for 0x%08llx" -"@0x%08lx in user region\n" , - (long long )__pfn_to_phys ((u64 )md->pfn), md->virtual); +pr_warn ("BUG: not creating mapping for 0x%08llx at 0x%08lx in user region\n" , + (long long )__pfn_to_phys ((u64 )md->pfn), md->virtual);return ; }if ((md->type ==MT_DEVICE || md->type ==MT_ROM ) && md->virtual >=PAGE_OFFSET && (md->virtual <VMALLOC_START || md->virtual >=VMALLOC_END )) { -printk (KERN_WARNING "BUG: mapping for 0x%08llx" -" at 0x%08lx out of vmalloc space\n" , - (long long )__pfn_to_phys ((u64 )md->pfn), md->virtual); +pr_warn ("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n" , + (long long )__pfn_to_phys ((u64 )md->pfn), md->virtual); } type = &mem_types[md->type];
@@ -881,9 +876,8 @@ static void __init create_mapping(struct map_desc *md) length =PAGE_ALIGN (md->length + (md->virtual & ~PAGE_MASK ));if (type->prot_l1 ==0 && ((addr | phys | length) & ~SECTION_MASK )) { -printk (KERN_WARNING "BUG: map for 0x%08llx at 0x%08lx can not " -"be mapped using pages, ignoring.\n" , - (long long )__pfn_to_phys (md->pfn), addr); +pr_warn ("BUG: map for 0x%08llx at 0x%08lx can not be mapped using pages, ignoring.\n" , + (long long )__pfn_to_phys (md->pfn), addr);return ; }
@@ -1053,15 +1047,13 @@ static int __init early_vmalloc(char *arg)if (vmalloc_reserve <SZ_16M ) { vmalloc_reserve =SZ_16M ; -printk (KERN_WARNING -"vmalloc area too small, limiting to %luMB\n" , +pr_warn ("vmalloc area too small, limiting to %luMB\n" , vmalloc_reserve >>20 ); }if (vmalloc_reserve >VMALLOC_END - (PAGE_OFFSET +SZ_32M )) { vmalloc_reserve =VMALLOC_END - (PAGE_OFFSET +SZ_32M ); -printk (KERN_WARNING -"vmalloc area is too big, limiting to %luMB\n" , +pr_warn ("vmalloc area is too big, limiting to %luMB\n" , vmalloc_reserve >>20 ); }
@@ -1094,7 +1086,7 @@ void __init sanity_check_meminfo(void)if (highmem) {pr_notice ("Ignoring RAM at %pa-%pa (!CONFIG_HIGHMEM)\n" , - &block_start, &block_end); + &block_start, &block_end);memblock_remove (reg->base, reg->size);continue ; }
@@ -1103,7 +1095,7 @@ void __init sanity_check_meminfo(void)phys_addr_t overlap_size = reg->size - size_limit;pr_notice ("Truncating RAM at %pa-%pa to -%pa" , - &block_start, &block_end, &vmalloc_limit); + &block_start, &block_end, &vmalloc_limit);memblock_remove (vmalloc_limit, overlap_size); block_end = vmalloc_limit; }
arch/arm/nwfpe/fpmodule.c +2 -2
@@ -86,12 +86,12 @@ extern void nwfpe_enter(void);static int __init fpe_init (void ) {if (sizeof (FPA11 ) >sizeof (union fp_state )) { -printk (KERN_ERR "nwfpe: bad structure size\n" ); +pr_err ("nwfpe: bad structure size\n" );return -EINVAL ; }if (sizeof (FPREG ) !=12 ) { -printk (KERN_ERR "nwfpe: bad register size\n" ); +pr_err ("nwfpe: bad register size\n" );return -EINVAL ; }if (fpe_type[0 ] &&strcmp (fpe_type,"nwfpe" ))
arch/arm/vfp/vfpsingle.c +1 -1
@@ -290,7 +290,7 @@ u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand)u32 z, a;if ((significand &0xc0000000 ) !=0x40000000 ) { -printk (KERN_WARNING "VFP: estimate_sqrt: invalid significand\n" ); +pr_warn ("VFP: estimate_sqrt: invalid significand\n" ); } a = significand <<1 ;
Signature · 1 line
1.8.3.1
PATCH 1/8 ARM: convert printk(KERN_* to pr_*
Quoted 20 lines · Russell King
Convert many (but not all) printk(KERN_* to pr_* to simplify the code. We take the opportunity to join some printk lines together so we don't split the message across several lines, and we also add a few levels to some messages which were previously missing them.
Signed-off-by Russell King <[email protected]>--- arch/arm/common/sa1111.c | 13 ++++++------- arch/arm/kernel/atags_compat.c | 6 ++---- arch/arm/kernel/atags_parse.c | 5 ++--- arch/arm/kernel/atags_proc.c | 4 ++-- arch/arm/kernel/bios32.c | 2 +- arch/arm/kernel/dma-isa.c | 4 ++-- arch/arm/kernel/dma.c | 26 +++++++++++-------------- arch/arm/kernel/etm.c | 12 ++++++------ arch/arm/kernel/fiq.c | 2 +- arch/arm/kernel/irq.c | 2 +- arch/arm/kernel/machine_kexec.c | 6 +++--- arch/arm/kernel/module.c | 2 +- arch/arm/kernel/smp.c | 16 ++++++++--------
Quoted 8 lines
arch/arm/kernel/smp_twd.c | 4 ++-- arch/arm/kernel/swp_emulate.c | 2 +- arch/arm/kernel/thumbee.c | 2 +- arch/arm/kernel/topology.c | 4 ++-- arch/arm/kernel/traps.c | 42 ++++++++++++++++++++--------------------- arch/arm/kernel/xscale-cp0.c | 7 +++---- arch/arm/mm/alignment.c | 10 +++++----- arch/arm/mm/cache-feroceon-l2.c | 6 +++---
Hi Russell
I booted on Kirkwood, which uses feroceon. The feroceon Info messages are in the log as you would expect. Given this sort of mechanical transformation, i don't real see how it could go wrong. But anyway:
Andrew
PATCH 2/8 ARM: use pr_warn_ratelimited() when migrating IRQs
In reply to Russell King - ARM LinuxRather than open coding the printk_ratelimit() check with pr_warn(), use pr_warn_ratelimited() instead.
--- arch/arm/kernel/irq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/kernel/irq.c +3 -3
@@ -31,6 +31,7 @@#include <linux/smp.h> #include <linux/init.h> #include <linux/seq_file.h> +#include <linux/ratelimit.h> #include <linux/errno.h> #include <linux/list.h> #include <linux/kallsyms.h>
@@ -135,7 +136,6 @@ int __init arch_probe_nr_irqs(void)#endif #ifdef CONFIG_HOTPLUG_CPU -static bool migrate_one_irq (struct irq_desc *desc) {struct irq_data *d =irq_desc_get_irq_data (desc);
@@ -187,8 +187,8 @@ void migrate_irqs(void) affinity_broken =migrate_one_irq (desc);raw_spin_unlock (&desc->lock); -if (affinity_broken &&printk_ratelimit ()) -pr_warn ("IRQ%u no longer affine to CPU%u\n" , +if (affinity_broken) +pr_warn_ratelimited ("IRQ%u no longer affine to CPU%u\n" , i,smp_processor_id ()); }
Signature · 1 line
1.8.3.1
PATCH 3/8 ARM: drop nwfpe initialisation message from warning to info level
In reply to Russell King - ARM Linuxnwfpe's initialisation message is not a warning, it is purely informational. Print it at the appropriate message level.
--- arch/arm/nwfpe/fpmodule.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/nwfpe/fpmodule.c +2 -2
@@ -98,8 +98,8 @@ static int __init fpe_init(void)return 0 ;/* Display title, version and copyright information. */ -printk (KERN_WARNING "NetWinder Floating Point Emulator V0.97 (" -NWFPE_BITS " precision)\n" ); +pr_info ("NetWinder Floating Point Emulator V0.97 (" +NWFPE_BITS " precision)\n" );thread_register_notifier (&nwfpe_notifier_block);
Signature · 1 line
1.8.3.1
PATCH 4/8 ARM: reduce "Booted secondary processor" message to debug level
In reply to Russell King - ARM LinuxDrop the "CPUn: Booted secondary processor" message from info to debug level. We later print how many CPUs came online, so listing each one is redundant, and when using hotplug, can be quite noisy.
--- arch/arm/kernel/smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/kernel/smp.c +1 -1
@@ -351,7 +351,7 @@ asmlinkage void secondary_start_kernel(void)cpu_init (); -pr_info ("CPU%u: Booted secondary processor\n" , cpu); +pr_debug ("CPU%u: Booted secondary processor\n" , cpu);preempt_disable ();trace_hardirqs_off ();
Signature · 1 line
1.8.3.1
PATCH 5/8 ARM: remove "SMP: Total of %d processors activated." message
In reply to Russell King - ARM LinuxThe "SMP: Total of %d processors activated." message which we print in smp_cpus_done() provides no further information than the message in genreic code in smp_announce(). Kill it.
--- arch/arm/kernel/smp.c | 3 --- 1 file changed, 3 deletions(-)
arch/arm/kernel/smp.c +0 -3
@@ -387,9 +387,6 @@ asmlinkage void secondary_start_kernel(void)void __init smp_cpus_done (unsigned int max_cpus) { -pr_info ("SMP: Total of %d processors activated.\n" , -num_online_cpus ()); -hyp_mode_check (); }
Signature · 1 line
1.8.3.1
PATCH 6/8 ARM: add machine name to stack dump output
In reply to Russell King - ARM LinuxThe generic dump_stack() code provides the facility to include the machine name in the stack dump, which can be useful information. Add a call to dump_stack_set_arch_desc() for the generic code to print this information.
--- arch/arm/kernel/setup.c | 1 + 1 file changed, 1 insertion(+)
arch/arm/kernel/setup.c +1 -0
@@ -900,6 +900,7 @@ void __init setup_arch(char **cmdline_p) mdesc =setup_machine_tags (__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; +dump_stack_set_arch_desc ("%s" , mdesc->name);if (mdesc->reboot_mode !=REBOOT_HARD ) reboot_mode = mdesc->reboot_mode;
Signature · 1 line
1.8.3.1
PATCH 6/8 ARM: add machine name to stack dump output
Quoted 15 lines · Russell King
The generic
dump_stack()code provides the facility to include the machine name in the stack dump, which can be useful information. Add a call todump_stack_set_arch_desc()for the generic code to print this information.Signed-off-by Russell King <[email protected]>--- arch/arm/kernel/setup.c | 1 + 1 file changed, 1 insertion(+)arch/arm/kernel/setup.c +0
-0
arch/arm/kernel/setup.c void __init setup_arch(char **cmdline_p) · line 904
Quoted 5 lines
arch/arm/kernel/setup.c +1
-0@@ -900,6 +900,7 @@ void __init setup_arch(char **cmdline_p) mdesc =setup_machine_tags (__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; +dump_stack_set_arch_desc ("%s" , mdesc->name);
Would it be possible to use the DT machine name here if we're on a DT platform? If we're using the generic DT machine descriptor this won't show much of anything besides "Generic DT based system".
---8<----
arch/arm/kernel/setup.c +6 -0
@@ -893,6 +893,7 @@ void __init hyp_mode_check(void)void __init setup_arch (char **cmdline_p) {const struct machine_desc *mdesc; +const char *name;setup_processor (); mdesc =setup_machine_fdt (__atags_pointer);
@@ -900,6 +901,11 @@ void __init setup_arch(char **cmdline_p) mdesc =setup_machine_tags (__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; +if (mdesc->nr == ~0 ) + name =of_flat_dt_get_machine_name (); +else + name = mdesc->name; +dump_stack_set_arch_desc ("%s" , name);if (mdesc->reboot_mode !=REBOOT_HARD ) reboot_mode = mdesc->reboot_mode;
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
PATCH 7/8 ARM: move ftrace assembly code to separate file
In reply to Russell King - ARM LinuxThe ftrace assembly code doesn't need to live in entry-common.S and be surrounded with #ifdef CONFIG_FUNCTION_TRACER. Instead, move it to its own file and conditionally assemble it.
--- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/entry-common.S | 235 --------------------------------------- arch/arm/kernel/entry-ftrace.S | 243 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 244 insertions(+), 235 deletions(-) create mode 100644 arch/arm/kernel/entry-ftrace.S
arch/arm/kernel/Makefile +1 -0
@@ -47,6 +47,7 @@ endif obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o obj-$(CONFIG_HAVE_ARM_TWD) += smp_twd.o obj-$(CONFIG_ARM_ARCH_TIMER) += arch_timer.o +obj-$(CONFIG_FUNCTION_TRACER) += entry-ftrace.o obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o insn.o obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o insn.o obj-$(CONFIG_JUMP_LABEL) += jump_label.o insn.o patch.o
arch/arm/kernel/entry-common.S +0 -235
241 lines not on this page · raw message
arch/arm/kernel/entry-ftrace.S new file +243 -0
243 lines not on this page · raw message
Signature · 1 line
1.8.3.1
PATCH 8/8 ARM: io.c: clean up EXPORT_SYMBOL()s
In reply to Russell King - ARM LinuxPlace EXPORT_SYMBOL()s after the function definition.
--- arch/arm/kernel/io.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
arch/arm/kernel/io.c +2 -3
@@ -51,6 +51,7 @@ void _memcpy_fromio(void *to, const volatile void __iomem *from, size_t count) from++; } } +EXPORT_SYMBOL (_memcpy_fromio);/* * Copy data from "real" memory space to IO memory space.
@@ -66,6 +67,7 @@ void _memcpy_toio(volatile void __iomem *to, const void *from, size_t count) to++; } } +EXPORT_SYMBOL (_memcpy_toio);/* * "memset" on IO memory space.
@@ -79,7 +81,4 @@ void _memset_io(volatile void __iomem *dst, int c, size_t count) dst++; } } - -EXPORT_SYMBOL (_memcpy_fromio); -EXPORT_SYMBOL (_memcpy_toio);EXPORT_SYMBOL (_memset_io);
Signature · 1 line
1.8.3.1
cover ARM cleanups
In reply to Russell King - ARM LinuxHi,
Quoted 8 lines · Russell King - ARM Linux
The following series is partly a result of reviewing differences between ARM and ARM64, and cleans up ARM with some of the changes made to ARM64. Many of these changes are trivial cleanups.
I've also dropped some of the kernel boot messages - removing the "SMP: Total of %d processors activated" message which was redundant, and dropping a couple of others to debug level.
Quoted 5 lines
I've moved the ftrace assembly code to its own separate file, just like on ARM64.
I've been running stuff with this for a number of weeks now, and haven't noticed any regressions.
Have you got a branch with these in for convenience of testing ? Otherwise I'll just pick them all up and add to my TODO list for tomorrow, got a couple boards here to run these against.
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141117/8c1f4e5a/attachment.sig>
cover ARM cleanups
Quoted 14 lines · Felipe Balbi
Hi,
Quoted 11 lines · Russell King - ARM Linux
The following series is partly a result of reviewing differences between ARM and ARM64, and cleans up ARM with some of the changes made to ARM64. Many of these changes are trivial cleanups.
I've also dropped some of the kernel boot messages - removing the "SMP: Total of %d processors activated" message which was redundant, and dropping a couple of others to debug level.
I've moved the ftrace assembly code to its own separate file, just like on ARM64.
Quoted 6 lines
Quoted 2 lines
I've been running stuff with this for a number of weeks now, and haven't noticed any regressions.
Have you got a branch with these in for convenience of testing ? Otherwise I'll just pick them all up and add to my TODO list for tomorrow, got a couple boards here to run these against.
Have been running these for a couple days on my boards and also didn't nothing anything problematic. I quite like that we know print mach->desc on stack trace.
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141120/8c34ad85/attachment.sig>