{"push_id":757273195,"size":33,"distinct_size":33,"ref":"refs/heads/boeffla11.0","head":"3d25deacdaf5e70fe63c4f86b88bd4ed9a2cf859","before":"67d42530970d094d181162c31827a969debce8c3","commits":[{"sha":"76848374c56b7df87c6b5c532b645d2d71827f4b","author":{"email":"f6aa0246ff943bfa8602cdf60d40c481b38ed232@arm.linux.org.uk","name":"Russell King"},"message":"ARM: vfp: fix a hole in VFP thread migration\n\nFix a hole in the VFP thread migration.  Lets define two threads.\n\nThread 1, we'll call 'interesting_thread' which is a thread which is\nrunning on CPU0, using VFP (so vfp_current_hw_state[0] =\n&interesting_thread->vfpstate) and gets migrated off to CPU1, where\nit continues execution of VFP instructions.\n\nThread 2, we'll call 'new_cpu0_thread' which is the thread which takes\nover on CPU0.  This has also been using VFP, and last used VFP on CPU0,\nbut doesn't use it again.\n\nThe following code will be executed twice:\n\n\t\tcpu = thread->cpu;\n\n\t\t/*\n\t\t * On SMP, if VFP is enabled, save the old state in\n\t\t * case the thread migrates to a different CPU. The\n\t\t * restoring is done lazily.\n\t\t */\n\t\tif ((fpexc & FPEXC_EN) && vfp_current_hw_state[cpu]) {\n\t\t\tvfp_save_state(vfp_current_hw_state[cpu], fpexc);\n\t\t\tvfp_current_hw_state[cpu]->hard.cpu = cpu;\n\t\t}\n\t\t/*\n\t\t * Thread migration, just force the reloading of the\n\t\t * state on the new CPU in case the VFP registers\n\t\t * contain stale data.\n\t\t */\n\t\tif (thread->vfpstate.hard.cpu != cpu)\n\t\t\tvfp_current_hw_state[cpu] = NULL;\n\nThe first execution will be on CPU0 to switch away from 'interesting_thread'.\ninteresting_thread->cpu will be 0.\n\nSo, vfp_current_hw_state[0] points at interesting_thread->vfpstate.\nThe hardware state will be saved, along with the CPU number (0) that\nit was executing on.\n\n'thread' will be 'new_cpu0_thread' with new_cpu0_thread->cpu = 0.\nAlso, because it was executing on CPU0, new_cpu0_thread->vfpstate.hard.cpu = 0,\nand so the thread migration check is not triggered.\n\nThis means that vfp_current_hw_state[0] remains pointing at interesting_thread.\n\nThe second execution will be on CPU1 to switch _to_ 'interesting_thread'.\nSo, 'thread' will be 'interesting_thread' and interesting_thread->cpu now\nwill be 1.  The previous thread executing on CPU1 is not relevant to this\nso we shall ignore that.\n\nWe get to the thread migration check.  Here, we discover that\ninteresting_thread->vfpstate.hard.cpu = 0, yet interesting_thread->cpu is\nnow 1, indicating thread migration.  We set vfp_current_hw_state[1] to\nNULL.\n\nSo, at this point vfp_current_hw_state[] contains the following:\n\n[0] = &interesting_thread->vfpstate\n[1] = NULL\n\nOur interesting thread now executes a VFP instruction, takes a fault\nwhich loads the state into the VFP hardware.  Now, through the assembly\nwe now have:\n\n[0] = &interesting_thread->vfpstate\n[1] = &interesting_thread->vfpstate\n\nCPU1 stops due to ptrace (and so saves its VFP state) using the thread\nswitch code above), and CPU0 calls vfp_sync_hwstate().\n\n\tif (vfp_current_hw_state[cpu] == &thread->vfpstate) {\n\t\tvfp_save_state(&thread->vfpstate, fpexc | FPEXC_EN);\n\nBANG, we corrupt interesting_thread's VFP state by overwriting the\nmore up-to-date state saved by CPU1 with the old VFP state from CPU0.\n\nFix this by ensuring that we have sane semantics for the various state\ndescribing variables:\n\n1. vfp_current_hw_state[] points to the current owner of the context\n   information stored in each CPUs hardware, or NULL if that state\n   information is invalid.\n2. thread->vfpstate.hard.cpu always contains the most recent CPU number\n   which the state was loaded into or NR_CPUS if no CPU owns the state.\n\nSo, for a particular CPU to be a valid owner of the VFP state for a\nparticular thread t, two things must be true:\n\n vfp_current_hw_state[cpu] == &t->vfpstate && t->vfpstate.hard.cpu == cpu.\n\nand that is valid from the moment a CPU loads the saved VFP context\ninto the hardware.  This gives clear and consistent semantics to\ninterpreting these variables.\n\nThis patch also fixes thread copying, ensuring that t->vfpstate.hard.cpu\nis invalidated, otherwise CPU0 may believe it was the last owner.  The\nhole can happen thus:\n\n- thread1 runs on CPU2 using VFP, migrates to CPU3, exits and thread_info\n  freed.\n- New thread allocated from a previously running thread on CPU2, reusing\n  memory for thread1 and copying vfp.hard.cpu.\n\nAt this point, the following are true:\n\n\tnew_thread1->vfpstate.hard.cpu == 2\n\t&new_thread1->vfpstate == vfp_current_hw_state[2]\n\nLastly, this also addresses thread flushing in a similar way to thread\ncopying.  Hole is:\n\n- thread runs on CPU0, using VFP, migrates to CPU1 but does not use VFP.\n- thread calls execve(), so thread flush happens, leaving\n  vfp_current_hw_state[0] intact.  This vfpstate is memset to 0 causing\n  thread->vfpstate.hard.cpu = 0.\n- thread migrates back to CPU0 before using VFP.\n\nAt this point, the following are true:\n\n\tthread->vfpstate.hard.cpu == 0\n\t&thread->vfpstate == vfp_current_hw_state[0]\n\nChange-Id: Ifd268aa2499217ad0abd25cb0905b80bc5057229\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/76848374c56b7df87c6b5c532b645d2d71827f4b"},{"sha":"dba9e6b095c051624ca911eec9b130f2613c8dc3","author":{"email":"f6aa0246ff943bfa8602cdf60d40c481b38ed232@arm.linux.org.uk","name":"Russell King"},"message":"ARM: vfp: ensure that thread flushing works if preempted\n\nPrevent a preemption event causing the initialized VFP state being\noverwritten by ensuring that the VFP hardware access is disabled\nprior to starting initialization.  We can then do this in safety\nwhile still allowing preemption to occur.\n\nChange-Id: I93922d95f641aa989b2acefe009a656e27d4d9bf\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/dba9e6b095c051624ca911eec9b130f2613c8dc3"},{"sha":"dea409f100d0aa50d370b637b8b1f0f43b1e6f1e","author":{"email":"380081620a7947c89c11153c5513f34019caa923@android.com","name":"Colin Cross"},"message":"ARM: vfp: Use cpu pm notifiers to save vfp state\n\nWhen the cpu is powered down in a low power mode, the vfp\nregisters may be reset.\n\nThis patch uses CPU_PM_ENTER and CPU_PM_EXIT notifiers to save\nand restore the cpu's vfp registers.\n\nChange-Id: I805e18a5b705202f63748136c2608ce80d2d5f20\nSigned-off-by: Colin Cross <ccross@android.com>\nSigned-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nReviewed-by: Kevin Hilman <khilman@ti.com>\nTested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>\nTested-by: Vishwanath BS <vishwanath.bs@ti.com>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/dea409f100d0aa50d370b637b8b1f0f43b1e6f1e"},{"sha":"06b4ab2281f7ee95fc485f23c21a5c4e863870bf","author":{"email":"380081620a7947c89c11153c5513f34019caa923@android.com","name":"Colin Cross"},"message":"cpu_pm: Add cpu power management notifiers\n\nDuring some CPU power modes entered during idle, hotplug and\nsuspend, peripherals located in the CPU power domain, such as\nthe GIC, localtimers, and VFP, may be powered down.  Add a\nnotifier chain that allows drivers for those peripherals to\nbe notified before and after they may be reset.\n\nNotified drivers can include VFP co-processor, interrupt controller\nand it's PM extensions, local CPU timers context save/restore which\nshouldn't be interrupted. Hence CPU PM event APIs  must be called\nwith interrupts disabled.\n\nChange-Id: I2918473962a75cd55c148f91a3c09a773c99162c\nSigned-off-by: Colin Cross <ccross@android.com>\nSigned-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nReviewed-by: Kevin Hilman <khilman@ti.com>\nTested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>\nTested-by: Kevin Hilman <khilman@ti.com>\nTested-by: Vishwanath BS <vishwanath.bs@ti.com>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/06b4ab2281f7ee95fc485f23c21a5c4e863870bf"},{"sha":"55c0725a193e04847952abfa590cd65cf2831607","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c\n\nThe user VFP state must be preserved (subject to ucontext modifications)\nacross invocation of a signal handler and this is currently handled by\nvfp_{preserve,restore}_context in signal.c\n\nSince this code requires intimate low-level knowledge of the VFP state,\nthis patch moves it into vfpmodule.c.\n\nChange-Id: Ib82f326e7815d139b696d1db6a357769b449c1f3\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/55c0725a193e04847952abfa590cd65cf2831607"},{"sha":"3be83cc42c6f7aa18f5d36f172d8c5f72ae2c6c8","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: 7400/1: vfp: clear fpscr length and stride bits on entry to sig handler\n\nThe ARM PCS mandates that the length and stride bits of the fpscr are\ncleared on entry to and return from a public interface. Although signal\nhandlers run asynchronously with respect to the interrupted function,\nthe handler itself expects to run as though it has been called like a\nnormal function.\n\nThis patch updates the state mirroring the VFP hardware before entry to\na signal handler so that it adheres to the PCS. Furthermore, we disable\nVFP to ensure that we trap on any floating point operation performed by\nthe signal handler and synchronise the hardware appropriately. A check\nis inserted after the signal handler to avoid redundant flushing if VFP\nwas not used.\n\nChange-Id: Ic16296179773f609e2768c89756a0abece1a3247\nReported-by: Peter Maydell <peter.maydell@linaro.org>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/3be83cc42c6f7aa18f5d36f172d8c5f72ae2c6c8"},{"sha":"144582d11eaa080cc1ff60d5df9719ca86a4fa17","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: 7419/1: vfp: fix VFP flushing regression on sigreturn path\n\nCommit ff9a184c (\"ARM: 7400/1: vfp: clear fpscr length and stride bits\non entry to sig handler\") flushes the VFP state prior to entering a\nsignal handler so that a VFP operation inside the handler will trap and\nforce a restore of ABI-compliant registers. Reflushing and disabling VFP\non the sigreturn path is predicated on the saved thread state indicating\nthat VFP was used by the handler -- however for SMP platforms this is\nonly set on context-switch, making the check unreliable and causing VFP\nregister corruption in userspace since the register values are not\nnecessarily those restored from the sigframe.\n\nThis patch unconditionally flushes the VFP state after a signal handler.\nSince we already perform the flush before the handler and the flushing\nitself happens lazily, the redundant flush when VFP is not used by the\nhandler is essentially a nop.\n\nChange-Id: Ia9ec6384fae3281def1dc93914af336857a09949\nReported-by: Jon Medhurst <tixy@linaro.org>\nSigned-off-by: Jon Medhurst <tixy@linaro.org>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/144582d11eaa080cc1ff60d5df9719ca86a4fa17"},{"sha":"d576aee92ad711663227e2308c49428c4eeae523","author":{"email":"f4461cfe90d9062a7e55a35647585f39eb23144b@motorola.com","name":"Yuanyuan Zhong"},"message":"ARM: 7873/1: vfp: clear vfp_current_hw_state for dying cpu\n\nThe CPU_DYING notifier is called by cpu stopper task which\ndoes not own the context held in the VFP hardware. Calling\nvfp_force_reload() has no effect.\nReplace it with clearing vfp_current_hw_state.\n\nChange-Id: If6ea6b94e04dc4588c5bf2ec0fad4d0dcc49ffd6\nSigned-off-by: Yuanyuan Zhong <zyy@motorola.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Lanchon <lanchon@gmail.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/d576aee92ad711663227e2308c49428c4eeae523"},{"sha":"bd969e3619f71a1155f958f0ef83155e36efafb3","author":{"email":"380081620a7947c89c11153c5513f34019caa923@android.com","name":"Colin Cross"},"message":"cpu_pm: call notifiers during suspend\n\nImplements syscore_ops in cpu_pm to call the cpu and\ncpu cluster notifiers during suspend and resume,\nallowing drivers receiving the notifications to\navoid implementing syscore_ops.\n\nChange-Id: I82b1a1e4464b8250a547f23999151c8a09ca4e22\nSigned-off-by: Colin Cross <ccross@android.com>\nSigned-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nReviewed-by: Kevin Hilman <khilman@ti.com>\nTested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>\nTested-by: Vishwanath BS <vishwanath.bs@ti.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/bd969e3619f71a1155f958f0ef83155e36efafb3"},{"sha":"e1dc0d66c7b3514c8f87c3af8e1ef4714362d830","author":{"email":"d659c10e27d52b00987b65e85d99bce5480adcae@fluxnic.net","name":"Nicolas Pitre"},"message":"kernel/cpu_pm.c: fix various typos\n\nChange-Id: I9a623e3c087f0569b0b2443bf59d2997da5b340c\nSigned-off-by: Nicolas Pitre <nico@linaro.org>\nAcked-by: Colin Cross <ccross@android.com>\nAcked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/e1dc0d66c7b3514c8f87c3af8e1ef4714362d830"},{"sha":"7a40cd3eee837d1be69b38ff829135b85dd9367c","author":{"email":"5b4d8dc9ea337fff5fd1729321eda9873ade0b09@ti.com","name":"Santosh Shilimkar"},"message":"ARM: Enable CPU_PM notifiers on ARM machines.\n\nChange-Id: Ifecfa0399e7fca47c43e4f24225448d6ff3780f4\nSigned-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nTested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>\nTested-by: Vishwanath BS <vishwanath.bs@ti.com>","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/7a40cd3eee837d1be69b38ff829135b85dd9367c"},{"sha":"ad6999b7cd8ddc3a81408415c8dc9edce1c960ab","author":{"email":"380081620a7947c89c11153c5513f34019caa923@android.com","name":"Colin Cross"},"message":"ARM: gic: Use cpu pm notifiers to save gic state\n\nWhen the cpu is powered down in a low power mode, the gic cpu\ninterface may be reset, and when the cpu cluster is powered\ndown, the gic distributor may also be reset.\n\nThis patch uses CPU_PM_ENTER and CPU_PM_EXIT notifiers to save\nand restore the gic cpu interface registers, and the\nCPU_CLUSTER_PM_ENTER and CPU_CLUSTER_PM_EXIT notifiers to save\nand restore the gic distributor registers.\n\nMerge note:\nSamsung had already applied the changes to struct gic_chip_data, although it\nstill remains in the .c file instead of having been moved to the header.\n\nOriginal-author: Gary King <gking@nvidia.com>\nSigned-off-by: Colin Cross <ccross@android.com>\nSigned-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>\nTested-and-Acked-by: Shawn Guo <shawn.guo@linaro.org>\nTested-by: Vishwanath BS <vishwanath.bs@ti.com>\n\nConflicts:\n\tarch/arm/include/asm/hardware/gic.h\n\nChange-Id: I50b5cdd161637ff7b871ac5ffb30d669ec60c662","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/ad6999b7cd8ddc3a81408415c8dc9edce1c960ab"},{"sha":"10cdeb4cf187f406a70db036dab3fa396c9d5f19","author":{"email":"d2f0bc2f6cbabd319d2e18d1e6732f98155b1100@gmx.at","name":"Christian Neumüller"},"message":"ARM: Exynos: Call cpu_pm_enter/exit in Low Power States.\n\nIn low power cpuidle states, the FPU registers get corrupted. By calling\ncpu_pm_enter, the VFP module gets notified so that it saves the FPU state and\nrestores it from RAM the next time a thread uses it.\n\nThe comments at cpu_pm_enter/exit indicate that these functions must be called\nwith interrupts disabled, so place the calls between\nlocal_irq_disable/local_irq_enble.\n\nSee http://forum.xda-developers.com/showthread.php?p=57637134 to\nhttp://forum.xda-developers.com/showthread.php?p=57643086.\n\nChange-Id: Icde0ab93734cf2a4febfabc3c04e77ce955bd9da","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/10cdeb4cf187f406a70db036dab3fa396c9d5f19"},{"sha":"efbd7ef251f3bddb3eb145c57bd68cfdfaea85d6","author":{"email":"d2f0bc2f6cbabd319d2e18d1e6732f98155b1100@gmx.at","name":"Christian Neumüller"},"message":"bcmdhd wireless: Fix off by one in initialization.\n\nAn sprintf in dhd_write_macaddr wrote a rogue null byte after the buffer.\nFound with CONFIG_CC_STACKPROTECTOR=y (idea of Lanchon at XDA Developers [1]).\n\n[1]: http://forum.xda-developers.com/showthread.php?p=55306602\n\nPanic, on a Samsung Galaxy S2 i9100, was:\n\n<0>[   26.412257] c1 Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: bf013a2c\n<0>[   26.412315] c1\n<4>[   26.412334] c1 Backtrace:\n<4>[   26.412382] c1 [<c064e5b8>] (dump_backtrace+0x0/0x10c) from [<c0b91e6c>] (dump_stack+0x18/0x1c)\n<4>[   26.412439] c1  r6:e211e820 r5:c0ed4760 r4:c0f5c940 r3:271aed5c\n<4>[   26.412496] c1 [<c0b91e54>] (dump_stack+0x0/0x1c) from [<c0b92204>] (panic+0x80/0x1ac)\n<4>[   26.412561] c1 [<c0b92184>] (panic+0x0/0x1ac) from [<c0684be0>] (init_oops_id+0x0/0x58)\n<4>[   26.412613] c1  r3:271aed5c r2:271aed00 r1:bf013a2c r0:c0cb8880\n<4>[   26.412663] c1  r7:e273bc32\n<4>[   26.412742] c1 [<c0684bc4>] (__stack_chk_fail+0x0/0x1c) from [<bf013a2c>] (dhd_write_macaddr+0x2e4/0x310 [dhd])\n<4>[   26.412864] c1 [<bf013748>] (dhd_write_macaddr+0x0/0x310 [dhd]) from [<bf01a554>] (dhd_bus_start+0x1a4/0x2e0 [dhd])\n<4>[   26.412985] c1 [<bf01a3b0>] (dhd_bus_start+0x0/0x2e0 [dhd]) from [<bf020558>] (dhdsdio_probe+0x4a4/0x72c [dhd])\n<4>[   26.413097] c1 [<bf0200b4>] (dhdsdio_probe+0x0/0x72c [dhd]) from [<bf00c0ec>] (bcmsdh_probe+0xf8/0x150 [dhd])\n<4>[   26.413206] c1 [<bf00bff4>] (bcmsdh_probe+0x0/0x150 [dhd]) from [<bf00e038>] (bcmsdh_sdmmc_probe+0x54/0xbc [dhd])\n<4>[   26.413304] c1 [<bf00dfe4>] (bcmsdh_sdmmc_probe+0x0/0xbc [dhd]) from [<c09a7fe8>] (sdio_bus_probe+0xfc/0x108)\n<4>[   26.413368] c1  r5:e2d97000 r4:e2d97008\n<4>[   26.413414] c1 [<c09a7eec>] (sdio_bus_probe+0x0/0x108) from [<c0896764>] (driver_probe_device+0x94/0x1a8)\n<4>[   26.413474] c1  r8:00000000 r7:bf067414 r6:e2d9703c r5:c0f6ddb8 r4:e2d97008\n<4>[   26.413531] c1 r3:c09a7eec\n<4>[   26.413563] c1 [<c08966d0>] (driver_probe_device+0x0/0x1a8) from [<c089690c>] (__driver_attach+0x94/0x98)\n<4>[   26.413624] c1  r7:e2e631e0 r6:e2d9703c r5:bf067414 r4:e2d97008\n<4>[   26.413683] c1 [<c0896878>] (__driver_attach+0x0/0x98) from [<c0895678>] (bus_for_each_dev+0x4c/0x94)\n<4>[   26.413742] c1  r6:c0896878 r5:bf067414 r4:00000000 r3:c0896878\n<4>[   26.413799] c1 [<c089562c>] (bus_for_each_dev+0x0/0x94) from [<c0896428>] (driver_attach+0x24/0x28)\n<4>[   26.413857] c1  r6:c0f02af0 r5:bf067414 r4:bf067414\n<4>[   26.413904] c1 [<c0896404>] (driver_attach+0x0/0x28) from [<c08960c8>] (bus_add_driver+0x180/0x250)\n<4>[   26.413970] c1 [<c0895f48>] (bus_add_driver+0x0/0x250) from [<c0896e14>] (driver_register+0x80/0x150)\n<4>[   26.414037] c1 [<c0896d94>] (driver_register+0x0/0x150) from [<c09a8128>] (sdio_register_driver+0x2c/0x30)\n<4>[   26.414131] c1 [<c09a80fc>] (sdio_register_driver+0x0/0x30) from [<bf00e250>] (sdio_function_init+0x3c/0x8c [dhd])\n<4>[   26.414244] c1 [<bf00e214>] (sdio_function_init+0x0/0x8c [dhd]) from [<bf00c19c>] (bcmsdh_register+0x1c/0x24 [dhd])\n<4>[   26.414311] c1  r5:00000004 r4:bf06a3c4\n<4>[   26.414398] c1 [<bf00c180>] (bcmsdh_register+0x0/0x24 [dhd]) from [<bf027990>] (dhd_bus_register+0x24/0x48 [dhd])\n<4>[   26.414515] c1 [<bf02796c>] (dhd_bus_register+0x0/0x48 [dhd]) from [<bf07618c>] (init_module+0x18c/0x284 [dhd])\n<4>[   26.414610] c1 [<bf076000>] (init_module+0x0/0x284 [dhd]) from [<c06448f8>] (do_one_initcall+0x128/0x1a8)\n<4>[   26.414683] c1 [<c06447d0>] (do_one_initcall+0x0/0x1a8) from [<c06b9710>] (sys_init_module+0xdf8/0x1b1c)\n<4>[   26.414756] c1 [<c06b8918>] (sys_init_module+0x0/0x1b1c) from [<c064a8c0>] (ret_fast_syscall+0x0/0x30)\n<2>[   26.414861] c0 CPU0: stopping\n<4>[   26.414886] c0 Backtrace:\n<4>[   26.414920] c0 [<c064e5b8>] (dump_backtrace+0x0/0x10c) from [<c0b91e6c>] (dump_stack+0x18/0x1c)\n<4>[   26.414977] c0  r6:c0d54000 r5:c0eb5d08 r4:00000006 r3:271aed5c\n<4>[   26.415039] c0 [<c0b91e54>] (dump_stack+0x0/0x1c) from [<c06444bc>] (do_IPI+0x258/0x29c)\n<4>[   26.415102] c0 [<c0644264>] (do_IPI+0x0/0x29c) from [<c064a340>] (__irq_svc+0x80/0x130)\n<4>[   26.415156] c0 Exception stack(0xc0d55ef0 to 0xc0d55f38)\n<4>[   26.415197] c0 5ee0:                                     3b9ac9ff 540deacd 01c99e53 00072679\n<4>[   26.415258] c0 5f00: c0f5a468 00000000 c0d54000 00000000 c1b540a8 412fc091 00000000 c0d55f64\n<4>[   26.415317] c0 5f20: 540deacd c0d55f38 c06aa768 c065bd78 20000013 ffffffff\n<4>[   26.415380] c0 [<c065bd3c>] (exynos4_enter_idle+0x0/0x174) from [<c099a890>] (cpuidle_idle_call+0xa4/0x120)\n<4>[   26.415442] c0  r7:00000000 r6:00000001 r5:c0f815ac r4:c1b540b8\n<4>[   26.415498] c0 [<c099a7ec>] (cpuidle_idle_call+0x0/0x120) from [<c064bd40>] (cpu_idle+0xc4/0x100)\n<4>[   26.415554] c0  r8:4000406a r7:c0ba09a8 r6:c0f59ec4 r5:c0ebd8c4 r4:c0d54000\n<4>[   26.415610] c0 r3:c099a7ec\n<4>[   26.415641] c0 [<c064bc7c>] (cpu_idle+0x0/0x100) from [<c0b83238>] (rest_init+0x8c/0xa4)\n<4>[   26.415694] c0  r7:c1b51180 r6:c0f59e00 r5:00000002 r4:c0d54000\n<4>[   26.415752] c0 [<c0b831ac>] (rest_init+0x0/0xa4) from [<c00089c4>] (start_kernel+0x2dc/0x330)\n<4>[   26.415807] c0  r5:c063d944 r4:c0eb5d34\n<4>[   26.415845] c0 [<c00086e8>] (start_kernel+0x0/0x330) from [<40008044>] (0x40008044)\n\nChange-Id: Iaa907383e196fdf787ae4660977b58de79212de1","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/efbd7ef251f3bddb3eb145c57bd68cfdfaea85d6"},{"sha":"98385cb04ced84d81d5757ccaf30c27c75c7bed0","author":{"email":"d2f0bc2f6cbabd319d2e18d1e6732f98155b1100@gmx.at","name":"Christian Neumüller"},"message":"bcmdhd wireless: Fix more off by one errors.\n\nThese were not detected by the stack protector, either because the functions\nwhere not called or because the corruption hits a local variable.\n\nChange-Id: I385c81b133ee09c28df56597df3fb25d9c063f43","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/98385cb04ced84d81d5757ccaf30c27c75c7bed0"},{"sha":"e17a91640449aac6f8fbd1ae2c729167e2bde308","author":{"email":"d2f0bc2f6cbabd319d2e18d1e6732f98155b1100@gmx.at","name":"Christian Neumüller"},"message":"bcmdhd wireless: Fix sprintf/sscanf format strings.\n\n%X is int. This is too wide for the chars used there, so use %hhx instead. Avoid\nundefined pointer casts from char* to unsigned int* in sscanf calls.\n\nAlso use the already defined MACF and update it with %hhx instead of typing this\nlong format string all over again.\nAdd MACF_U which is the same as MACF but with uppercase hex (%hhX instead of %hhx).\n\nChange-Id: Idd2465e0d05bca9b05566abeec05a5ad59a577ad","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/e17a91640449aac6f8fbd1ae2c729167e2bde308"},{"sha":"509d72d7aeb5acd0d25679731ea3947da4d50327","author":{"email":"6dbb31d3b056013447734a6551f94886a96430d7@hotmail.com","name":"sbrissen"},"message":"smdk4412: update exynos ion\n\nTaken from GT-N7100_SEA_KK_Opensource\n\nChange-Id: Ieb6da81ab9472c8e0a8114138b96b727b5f24fc7","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/509d72d7aeb5acd0d25679731ea3947da4d50327"},{"sha":"74cd2483ad6e65079ea23a750ac112bcdd0f1ecc","author":{"email":"baec5bb95c7425d8623d29f154d700c246e54e69@live.com","name":"173210"},"message":"mach-u1.c: Fix a compile bug\n\nChange-Id: I7832308a6381c6d23365751b93960dfafebb268c","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/74cd2483ad6e65079ea23a750ac112bcdd0f1ecc"},{"sha":"a3a22607caf17e36348b8296a6f79063b7077d03","author":{"email":"baec5bb95c7425d8623d29f154d700c246e54e69@live.com","name":"173210"},"message":"Add a new device: sc02c\n\nChange-Id: I170fbc042c3dcc8b9132f2c0c78619f8bbebb60c","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/a3a22607caf17e36348b8296a6f79063b7077d03"},{"sha":"c324585ac74c4e8752d9658463c4679549336c18","author":{"email":"bd67971edaf49a94837e91683b2145e95504e5dd@gmx.de","name":"andip71"},"message":"bbuild: Add release mode that bypasses ccache","distinct":true,"url":"https://api.github.com/repos/andip71/boeffla-kernel-cm-s3/commits/c324585ac74c4e8752d9658463c4679549336c18"}]}