Linux 4.2.5 System crash when removing USB memory stick
While removing a USB memory card after writing data and syncing, system crashes and hard hangs with flashing keyboard lights. Nov 3 13:46:54 aya kernel: kjournald starting. Commit interval 5 seconds Nov 3 13:46:54 aya kernel: EXT3-fs (sdc2): warning: checktime reached, running e2fsck is recommended Nov 3 13:46:55 aya kernel: EXT3-fs (sdc2): using internal journal Nov 3 13:46:55 aya kernel: EXT3-fs (sdc2): mounted filesystem with ordered data mode Nov 3 13:46:55 aya kernel: FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Nov 3 13:48:55 aya init: tty (/dev/tty2) main process ended, respawning Nov 3 13:49:00 aya kernel: usb 1-6: USB disconnect, device number 2 Nov 3 13:49:00 aya kernel: Buffer I/O error on dev sdc2, logical block 655865, lost sync page write Nov 3 13:49:00 aya kernel: JBD: Error -5 detected when updating journal superblock for sdc2. Nov 3 13:49:00 aya kernel: BUG: unable to handle kernel paging request at 35d9f000 Nov 3 13:49:00 aya kernel: IP: [] __percpu_counter_add+0x23/0xc0 Nov 3 13:49:00 aya kernel: *pdpt = 11368001 *pde = Nov 3 13:49:00 aya kernel: Oops: [#1] SMP Nov 3 13:49:00 aya kernel: Modules linked in: vfat fat usb_storage fuse ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv 4 ipt_REJECT nf_reject_ipv4 xt_CHECKSUM iptable_mangle iptable_filter tun sha256_generic drbg ansi_cprng ctr ccm autofs4 sunr pc target_core_iblock target_core_file target_core_pscsi target_core_mod configfs bnx2fc cnic uio fcoe libfcoe libfc scsi_tra nsport_fc 8021q garp p4_clockmod bridge stp llc ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_stat e nf_conntrack ip6table_filter ip6_tables ipv6 ext2 dm_mirror dm_region_hash dm_log uinput ppdev parport_pc parport b43 bcma iTCO_wdt iTCO_vendor_support ssb mmc_core tg3 ptp pps_core arc4 rt61pci rt2x00mmio crc_itu_t rt2x00pci rt2x00lib mac80211 cfg 80211 rfkill eeprom_93cx6 sg microcode pcspkr snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer s nd soundcore i2c_i801 lpc_ich mfd_core dm_mod(E) ext3(E) jbd(E) mbcache(E) floppy(E) sd_mod(E) sr_mod(E) cdrom(E) pata_acpi(E ) ata_generic(E) ata_pii Nov 3 13:49:00 aya kernel: x(E) i915(E) drm_kms_helper(E) drm(E) i2c_algo_bit(E) i2c_core(E) video(E) [last unloaded: acpi_c pufreq] Nov 3 13:49:00 aya kernel: CPU: 0 PID: 4116 Comm: umount Tainted: G W E 4.2.5 #1 Nov 3 13:49:00 aya kernel: Hardware name: Hewlett-Packard HP d530 CMT(DC577AV)/085Ch, BIOS 786B2 v1.10 05/05/2003 Nov 3 13:49:00 aya kernel: task: eeb0c040 ti: d134 task.ti: d134 Nov 3 13:49:00 aya kernel: EIP: 0060:[] EFLAGS: 00010092 CPU: 0 Nov 3 13:49:00 aya kernel: EIP is at __percpu_counter_add+0x23/0xc0 Nov 3 13:49:00 aya kernel: EAX: 0010 EBX: d1349b44 ECX: EDX: 0001 Nov 3 13:49:00 aya kernel: ESI: EDI: f4f74564 EBP: f6f8c860 ESP: d1341ebc Nov 3 13:49:00 aya kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Nov 3 13:49:00 aya kernel: CR0: 8005003b CR2: 35d9f000 CR3: 0e0d7140 CR4: 06f0 Nov 3 13:49:00 aya kernel: Stack: :Nov 3 13:49:00 aya kernel: 0001 ddeeccb4 f69e9380 c0ba6980 d1349ae8 Nov 3 13:49:00 aya kernel: f4f74564 f6f8c860 c05220ae 0010 f4f7448c 0286 f6f8c860 f4f74564 Nov 3 13:49:00 aya kernel: f4f74574 0282 c058c39f f4f74564 f6f8c860 cb1c3400 eeb0c040 Nov 3 13:49:00 aya kernel: Call Trace: Nov 3 13:49:00 aya kernel: [] ? account_page_dirtied+0xce/0x180 Nov 3 13:49:00 aya kernel: [] ? __set_page_dirty.clone.2+0x3f/0xb0 Nov 3 13:49:00 aya kernel: [] ? mark_buffer_dirty+0x50/0xb0 Nov 3 13:49:00 aya kernel: [] ? ext3_put_super+0x21d/0x260 [ext3] Nov 3 13:49:00 aya kernel: [] ? evict_inodes+0x9e/0xf0 Nov 3 13:49:00 aya kernel: [] ? generic_shutdown_super+0x63/0xe0 Nov 3 13:49:00 aya kernel: [] ? kill_block_super+0x1f/0x70 Nov 3 13:49:00 aya kernel: [] ? deactivate_locked_super+0x38/0x70 Nov 3 13:49:00 aya kernel: [] ? cleanup_mnt+0x2e/0x70 Nov 3 13:49:00 aya kernel: [] ? task_work_run+0x61/0xa0 Nov 3 13:49:00 aya kernel: [] ? work_notifysig+0x24/0x29 Nov 3 13:49:00 aya kernel: Code: e6 ff e9 ab fe ff ff 90 83 ec 28 89 5c 24 18 89 c3 89 14 24 89 4c 24 04 89 74 24 1c 89 7c 24 20 89 6c 24 24 8b 48 14 8b 44 24 2c <64> 8b 31 89 f7 c1 ff 1f 03 34 24 89 c2 13 7c 24 04 c1 fa 1f 89 Nov 3 13:49:00 aya kernel: EIP: [] __percpu_counter_add+0x23/0xc0 SS:ESP 0068:d1341ebc Nov 3 13:49:00 aya kernel: CR2: 35d9f000 Nov 3 13:49:00 aya kernel: ---[ end trace 11df44d5de704a60 ]--- Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: removing removable location: /media/3098c8ce-1a99-4a25-bf78-7188b7d743ba Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: no volume registered at: /media/3098c8ce-1a99-4a25-bf78-7188b7d743ba Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: removing removable location: /media/8AB0-04F4 Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: no volume registered at:
Linux 4.2.5 System crash when removing USB memory stick
While removing a USB memory card after writing data and syncing, system crashes and hard hangs with flashing keyboard lights. Nov 3 13:46:54 aya kernel: kjournald starting. Commit interval 5 seconds Nov 3 13:46:54 aya kernel: EXT3-fs (sdc2): warning: checktime reached, running e2fsck is recommended Nov 3 13:46:55 aya kernel: EXT3-fs (sdc2): using internal journal Nov 3 13:46:55 aya kernel: EXT3-fs (sdc2): mounted filesystem with ordered data mode Nov 3 13:46:55 aya kernel: FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Nov 3 13:48:55 aya init: tty (/dev/tty2) main process ended, respawning Nov 3 13:49:00 aya kernel: usb 1-6: USB disconnect, device number 2 Nov 3 13:49:00 aya kernel: Buffer I/O error on dev sdc2, logical block 655865, lost sync page write Nov 3 13:49:00 aya kernel: JBD: Error -5 detected when updating journal superblock for sdc2. Nov 3 13:49:00 aya kernel: BUG: unable to handle kernel paging request at 35d9f000 Nov 3 13:49:00 aya kernel: IP: [] __percpu_counter_add+0x23/0xc0 Nov 3 13:49:00 aya kernel: *pdpt = 11368001 *pde = Nov 3 13:49:00 aya kernel: Oops: [#1] SMP Nov 3 13:49:00 aya kernel: Modules linked in: vfat fat usb_storage fuse ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv 4 ipt_REJECT nf_reject_ipv4 xt_CHECKSUM iptable_mangle iptable_filter tun sha256_generic drbg ansi_cprng ctr ccm autofs4 sunr pc target_core_iblock target_core_file target_core_pscsi target_core_mod configfs bnx2fc cnic uio fcoe libfcoe libfc scsi_tra nsport_fc 8021q garp p4_clockmod bridge stp llc ip_tables ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_stat e nf_conntrack ip6table_filter ip6_tables ipv6 ext2 dm_mirror dm_region_hash dm_log uinput ppdev parport_pc parport b43 bcma iTCO_wdt iTCO_vendor_support ssb mmc_core tg3 ptp pps_core arc4 rt61pci rt2x00mmio crc_itu_t rt2x00pci rt2x00lib mac80211 cfg 80211 rfkill eeprom_93cx6 sg microcode pcspkr snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer s nd soundcore i2c_i801 lpc_ich mfd_core dm_mod(E) ext3(E) jbd(E) mbcache(E) floppy(E) sd_mod(E) sr_mod(E) cdrom(E) pata_acpi(E ) ata_generic(E) ata_pii Nov 3 13:49:00 aya kernel: x(E) i915(E) drm_kms_helper(E) drm(E) i2c_algo_bit(E) i2c_core(E) video(E) [last unloaded: acpi_c pufreq] Nov 3 13:49:00 aya kernel: CPU: 0 PID: 4116 Comm: umount Tainted: G W E 4.2.5 #1 Nov 3 13:49:00 aya kernel: Hardware name: Hewlett-Packard HP d530 CMT(DC577AV)/085Ch, BIOS 786B2 v1.10 05/05/2003 Nov 3 13:49:00 aya kernel: task: eeb0c040 ti: d134 task.ti: d134 Nov 3 13:49:00 aya kernel: EIP: 0060:[] EFLAGS: 00010092 CPU: 0 Nov 3 13:49:00 aya kernel: EIP is at __percpu_counter_add+0x23/0xc0 Nov 3 13:49:00 aya kernel: EAX: 0010 EBX: d1349b44 ECX: EDX: 0001 Nov 3 13:49:00 aya kernel: ESI: EDI: f4f74564 EBP: f6f8c860 ESP: d1341ebc Nov 3 13:49:00 aya kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Nov 3 13:49:00 aya kernel: CR0: 8005003b CR2: 35d9f000 CR3: 0e0d7140 CR4: 06f0 Nov 3 13:49:00 aya kernel: Stack: :Nov 3 13:49:00 aya kernel: 0001 ddeeccb4 f69e9380 c0ba6980 d1349ae8 Nov 3 13:49:00 aya kernel: f4f74564 f6f8c860 c05220ae 0010 f4f7448c 0286 f6f8c860 f4f74564 Nov 3 13:49:00 aya kernel: f4f74574 0282 c058c39f f4f74564 f6f8c860 cb1c3400 eeb0c040 Nov 3 13:49:00 aya kernel: Call Trace: Nov 3 13:49:00 aya kernel: [] ? account_page_dirtied+0xce/0x180 Nov 3 13:49:00 aya kernel: [] ? __set_page_dirty.clone.2+0x3f/0xb0 Nov 3 13:49:00 aya kernel: [] ? mark_buffer_dirty+0x50/0xb0 Nov 3 13:49:00 aya kernel: [] ? ext3_put_super+0x21d/0x260 [ext3] Nov 3 13:49:00 aya kernel: [] ? evict_inodes+0x9e/0xf0 Nov 3 13:49:00 aya kernel: [] ? generic_shutdown_super+0x63/0xe0 Nov 3 13:49:00 aya kernel: [] ? kill_block_super+0x1f/0x70 Nov 3 13:49:00 aya kernel: [] ? deactivate_locked_super+0x38/0x70 Nov 3 13:49:00 aya kernel: [] ? cleanup_mnt+0x2e/0x70 Nov 3 13:49:00 aya kernel: [] ? task_work_run+0x61/0xa0 Nov 3 13:49:00 aya kernel: [] ? work_notifysig+0x24/0x29 Nov 3 13:49:00 aya kernel: Code: e6 ff e9 ab fe ff ff 90 83 ec 28 89 5c 24 18 89 c3 89 14 24 89 4c 24 04 89 74 24 1c 89 7c 24 20 89 6c 24 24 8b 48 14 8b 44 24 2c <64> 8b 31 89 f7 c1 ff 1f 03 34 24 89 c2 13 7c 24 04 c1 fa 1f 89 Nov 3 13:49:00 aya kernel: EIP: [] __percpu_counter_add+0x23/0xc0 SS:ESP 0068:d1341ebc Nov 3 13:49:00 aya kernel: CR2: 35d9f000 Nov 3 13:49:00 aya kernel: ---[ end trace 11df44d5de704a60 ]--- Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: removing removable location: /media/3098c8ce-1a99-4a25-bf78-7188b7d743ba Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: no volume registered at: /media/3098c8ce-1a99-4a25-bf78-7188b7d743ba Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: removing removable location: /media/8AB0-04F4 Nov 3 13:49:00 aya gnome-keyring-daemon[2823]: no volume registered at:
Re: Linux 4.2.5
diff --git a/Makefile b/Makefile index a952801a6cd5..96076dcad18e 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 2 -SUBLEVEL = 4 +SUBLEVEL = 5 EXTRAVERSION = NAME = Hurr durr I'ma sheep diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 4418a5078833..c8643ac5db71 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile @@ -7,7 +7,7 @@ obj-$(CONFIG_CACHE_L2X0)+= cache-l2x0.o obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o obj-$(CONFIG_MACH_MOP500) += board-mop500-regulators.o \ board-mop500-audio.o -obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 16913800bbf9..ba708ce08616 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@ -154,7 +154,6 @@ static const char * stericsson_dt_platform_compat[] = { }; DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") - .smp= smp_ops(ux500_smp_ops), .map_io = u8500_map_io, .init_irq = ux500_init_irq, /* we re-use nomadik timer here */ diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S deleted file mode 100644 index 9cdea049485d.. --- a/arch/arm/mach-ux500/headsmp.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2009 ST-Ericsson - * This file is based ARM Realview platform - * Copyright (c) 2003 ARM Limited - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include - -/* - * U8500 specific entry point for secondary CPUs. - */ -ENTRY(u8500_secondary_startup) - mrc p15, 0, r0, c0, c0, 5 - and r0, r0, #15 - adr r4, 1f - ldmia r4, {r5, r6} - sub r4, r4, r5 - add r6, r6, r4 -pen: ldr r7, [r6] - cmp r7, r0 - bne pen - - /* -* we've been released from the holding pen: secondary_stack -* should now contain the SVC stack for this core -*/ - b secondary_startup -ENDPROC(u8500_secondary_startup) - - .align 2 -1: .long . - .long pen_release diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index 62b1de922bd8..70766b963758 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c @@ -28,135 +28,81 @@ #include "db8500-regs.h" #include "id.h" -static void __iomem *scu_base; -static void __iomem *backupram; - -/* This is called from headsmp.S to wakeup the secondary core */ -extern void u8500_secondary_startup(void); - -/* - * Write pen_release in a way that is guaranteed to be visible to all - * observers, irrespective of whether they're taking part in coherency - * or not. This is necessary for the hotplug code to work reliably. - */ -static void write_pen_release(int val) -{ - pen_release = val; - smp_wmb(); - sync_cache_w(_release); -} - -static DEFINE_SPINLOCK(boot_lock); - -static void ux500_secondary_init(unsigned int cpu) -{ - /* -* let the primary processor know we're out of the -* pen, then head off into the C entry point -*/ - write_pen_release(-1); - - /* -* Synchronise with the boot thread. -*/ - spin_lock(_lock); - spin_unlock(_lock); -} +/* Magic triggers in backup RAM */ +#define UX500_CPU1_JUMPADDR_OFFSET 0x1FF4 +#define UX500_CPU1_WAKEMAGIC_OFFSET 0x1FF0 -static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle) +static void wakeup_secondary(void) { - unsigned long timeout; - - /* -* set synchronisation state between this boot processor -* and the secondary one -*/ - spin_lock(_lock); - - /* -* The secondary processor is waiting to be released from -* the holding pen - release it, then wait for it to flag -* that it has been released by resetting pen_release. -*/ - write_pen_release(cpu_logical_map(cpu)); - - arch_send_wakeup_ipi_mask(cpumask_of(cpu)); + struct device_node *np; + static void __iomem *backupram; - timeout = jiffies + (1 * HZ); - while (time_before(jiffies, timeout)) { - if (pen_release == -1) - break; + np = of_find_compatible_node(NULL, NULL, "ste,dbx500-backupram"); + if (!np) { + pr_err("No backupram base address\n"); + return; + } + backupram = of_iomap(np, 0); + of_node_put(np); + if (!backupram) { + pr_err("No
Linux 4.2.5
fix panic in SO_GET_FILTER with native ebpf programs Daniel Vetter (1): drm: Fix locking for sysfs dpms file Dave Airlie (2): drm/dp/mst: make mst i2c transfer code more robust. drm/radeon: attach tile property to mst connector Dave Kleikamp (1): crypto: sparc - initialize blkcipher.ivsize David Sterba (1): btrfs: check unsupported filters in balance arguments Eric Dumazet (3): inet: fix races in reqsk_queue_hash_req() net: add pfmemalloc check in sk_add_backlog() inet: fix race in reqsk_queue_unlink() Eric W. Biederman (1): ipv6: Don't call with rt6_uncached_list_flush_dev Gerd Hoffmann (1): drm/qxl: fix framebuffer dirty rectangle tracking. Greg Kroah-Hartman (1): Linux 4.2.5 Guillaume Nault (1): ppp: don't override sk->sk_state in pppoe_flush_dev() Ilya Dryomov (1): rbd: fix double free on rbd_dev->header_name Ivan Mikhaylov (1): net/ibm/emac: bump version numbers for correct work with ethtool Javier Martinez Canillas (1): mfd: max77843: Fix max77843_chg_init() return on error Joe Perches (1): ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings Jon Paul Maloy (1): tipc: move fragment importance field to new header position Konstantin Khlebnikov (1): ovs: do not allocate memory from offline numa node Linus Walleij (1): ARM: ux500: simplify secondary CPU boot Michel Dänzer (1): drm/amdgpu: Keep the pflip interrupts always enabled v7 Mika Westerberg (1): i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 Mike Snitzer (1): dm thin: fix missing pool reference count decrement in pool_ctr error path Paolo Bonzini (3): KVM: x86: clean up kvm_arch_vcpu_runnable KVM: x86: fix SMI to halted VCPU KVM: x86: fix RSM into 64-bit protected mode Pravin B Shelar (2): skbuff: Fix skb checksum flag on skb pull skbuff: Fix skb checksum partial check. Russell King (1): crypto: ahash - ensure statesize is non-zero Shaohua Li (2): memcg: convert threshold to bytes workqueue: make sure delayed work run in local cpu Steve Capper (1): arm64: Fix THP protection change logic Steve Wise (1): svcrdma: handle rdma read with a non-zero initial page offset Thomas Gleixner (1): timekeeping: Increment clock_was_set_seq in timekeeping_init() Uwe Kleine-König (1): pinctrl: imx25: ensure that a pin with id i is at position i in the info array Vivien Didelot (1): net: dsa: fix preparation of a port STP update WANG Cong (1): act_mirred: clear sender cpu before sending to tx Will Deacon (1): arm64: errata: use KBUILD_CFLAGS_MODULE for erratum #843419 Wolfram Sang (3): i2c: rcar: enable RuntimePM before registering to the core i2c: s3c2410: enable RuntimePM before registering to the core i2c: designware-platdrv: enable RuntimePM before registering to the core signature.asc Description: PGP signature
Re: Linux 4.2.5
diff --git a/Makefile b/Makefile index a952801a6cd5..96076dcad18e 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 2 -SUBLEVEL = 4 +SUBLEVEL = 5 EXTRAVERSION = NAME = Hurr durr I'ma sheep diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 4418a5078833..c8643ac5db71 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile @@ -7,7 +7,7 @@ obj-$(CONFIG_CACHE_L2X0)+= cache-l2x0.o obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o obj-$(CONFIG_MACH_MOP500) += board-mop500-regulators.o \ board-mop500-audio.o -obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 16913800bbf9..ba708ce08616 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c @@ -154,7 +154,6 @@ static const char * stericsson_dt_platform_compat[] = { }; DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") - .smp= smp_ops(ux500_smp_ops), .map_io = u8500_map_io, .init_irq = ux500_init_irq, /* we re-use nomadik timer here */ diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S deleted file mode 100644 index 9cdea049485d.. --- a/arch/arm/mach-ux500/headsmp.S +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2009 ST-Ericsson - * This file is based ARM Realview platform - * Copyright (c) 2003 ARM Limited - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include - -/* - * U8500 specific entry point for secondary CPUs. - */ -ENTRY(u8500_secondary_startup) - mrc p15, 0, r0, c0, c0, 5 - and r0, r0, #15 - adr r4, 1f - ldmia r4, {r5, r6} - sub r4, r4, r5 - add r6, r6, r4 -pen: ldr r7, [r6] - cmp r7, r0 - bne pen - - /* -* we've been released from the holding pen: secondary_stack -* should now contain the SVC stack for this core -*/ - b secondary_startup -ENDPROC(u8500_secondary_startup) - - .align 2 -1: .long . - .long pen_release diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index 62b1de922bd8..70766b963758 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c @@ -28,135 +28,81 @@ #include "db8500-regs.h" #include "id.h" -static void __iomem *scu_base; -static void __iomem *backupram; - -/* This is called from headsmp.S to wakeup the secondary core */ -extern void u8500_secondary_startup(void); - -/* - * Write pen_release in a way that is guaranteed to be visible to all - * observers, irrespective of whether they're taking part in coherency - * or not. This is necessary for the hotplug code to work reliably. - */ -static void write_pen_release(int val) -{ - pen_release = val; - smp_wmb(); - sync_cache_w(_release); -} - -static DEFINE_SPINLOCK(boot_lock); - -static void ux500_secondary_init(unsigned int cpu) -{ - /* -* let the primary processor know we're out of the -* pen, then head off into the C entry point -*/ - write_pen_release(-1); - - /* -* Synchronise with the boot thread. -*/ - spin_lock(_lock); - spin_unlock(_lock); -} +/* Magic triggers in backup RAM */ +#define UX500_CPU1_JUMPADDR_OFFSET 0x1FF4 +#define UX500_CPU1_WAKEMAGIC_OFFSET 0x1FF0 -static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle) +static void wakeup_secondary(void) { - unsigned long timeout; - - /* -* set synchronisation state between this boot processor -* and the secondary one -*/ - spin_lock(_lock); - - /* -* The secondary processor is waiting to be released from -* the holding pen - release it, then wait for it to flag -* that it has been released by resetting pen_release. -*/ - write_pen_release(cpu_logical_map(cpu)); - - arch_send_wakeup_ipi_mask(cpumask_of(cpu)); + struct device_node *np; + static void __iomem *backupram; - timeout = jiffies + (1 * HZ); - while (time_before(jiffies, timeout)) { - if (pen_release == -1) - break; + np = of_find_compatible_node(NULL, NULL, "ste,dbx500-backupram"); + if (!np) { + pr_err("No backupram base address\n"); + return; + } + backupram = of_iomap(np, 0); + of_node_put(np); + if (!backupram) { + pr_err("No
Linux 4.2.5
fix panic in SO_GET_FILTER with native ebpf programs Daniel Vetter (1): drm: Fix locking for sysfs dpms file Dave Airlie (2): drm/dp/mst: make mst i2c transfer code more robust. drm/radeon: attach tile property to mst connector Dave Kleikamp (1): crypto: sparc - initialize blkcipher.ivsize David Sterba (1): btrfs: check unsupported filters in balance arguments Eric Dumazet (3): inet: fix races in reqsk_queue_hash_req() net: add pfmemalloc check in sk_add_backlog() inet: fix race in reqsk_queue_unlink() Eric W. Biederman (1): ipv6: Don't call with rt6_uncached_list_flush_dev Gerd Hoffmann (1): drm/qxl: fix framebuffer dirty rectangle tracking. Greg Kroah-Hartman (1): Linux 4.2.5 Guillaume Nault (1): ppp: don't override sk->sk_state in pppoe_flush_dev() Ilya Dryomov (1): rbd: fix double free on rbd_dev->header_name Ivan Mikhaylov (1): net/ibm/emac: bump version numbers for correct work with ethtool Javier Martinez Canillas (1): mfd: max77843: Fix max77843_chg_init() return on error Joe Perches (1): ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings Jon Paul Maloy (1): tipc: move fragment importance field to new header position Konstantin Khlebnikov (1): ovs: do not allocate memory from offline numa node Linus Walleij (1): ARM: ux500: simplify secondary CPU boot Michel Dänzer (1): drm/amdgpu: Keep the pflip interrupts always enabled v7 Mika Westerberg (1): i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 Mike Snitzer (1): dm thin: fix missing pool reference count decrement in pool_ctr error path Paolo Bonzini (3): KVM: x86: clean up kvm_arch_vcpu_runnable KVM: x86: fix SMI to halted VCPU KVM: x86: fix RSM into 64-bit protected mode Pravin B Shelar (2): skbuff: Fix skb checksum flag on skb pull skbuff: Fix skb checksum partial check. Russell King (1): crypto: ahash - ensure statesize is non-zero Shaohua Li (2): memcg: convert threshold to bytes workqueue: make sure delayed work run in local cpu Steve Capper (1): arm64: Fix THP protection change logic Steve Wise (1): svcrdma: handle rdma read with a non-zero initial page offset Thomas Gleixner (1): timekeeping: Increment clock_was_set_seq in timekeeping_init() Uwe Kleine-König (1): pinctrl: imx25: ensure that a pin with id i is at position i in the info array Vivien Didelot (1): net: dsa: fix preparation of a port STP update WANG Cong (1): act_mirred: clear sender cpu before sending to tx Will Deacon (1): arm64: errata: use KBUILD_CFLAGS_MODULE for erratum #843419 Wolfram Sang (3): i2c: rcar: enable RuntimePM before registering to the core i2c: s3c2410: enable RuntimePM before registering to the core i2c: designware-platdrv: enable RuntimePM before registering to the core signature.asc Description: PGP signature