{"push_id":1249723763,"size":10,"distinct_size":10,"ref":"refs/heads/master","head":"694d0d0bb2030d2e36df73e2d23d5770511dbc8d","before":"118253a593bd1c57de2d1193df1ccffe1abe745b","commits":[{"sha":"0b98027122d0715aa2dc39882e4c295112275785","author":{"name":"Greg Ungerer","email":"0b10ca03a5cbf520aba931fb02ddaa9fa28f3f76@linux-m68k.org"},"message":"m68knommu: fix user a5 register being overwritten\n\nOn no-MMU systems the application a5 register can be overwitten with the\naddress of the process data segment when processing application signals.\nFor flat format applications compiled with full absolute relocation this\neffectively corrupts the a5 register on signal processing - and this very\nquickly leads to process crash and often takes out the whole system with\na panic as well.\n\nThis has no effect on flat format applications compiled with the more\ncommon PIC methods (such as -msep-data). These format applications reserve\na5 for the pointer to the data segment anyway - so it doesn't change it.\n\nA long time ago the a5 register was used in the code packed into the user\nstack to enable signal return processing. And so it had to be restored on\nend of signal cleanup processing back to the original a5 user value. This\nwas historically done by saving away a5 in the sigcontext structure. At\nsome point (a long time back it seems) the a5 restore process was changed\nand it was hard coded to put the user data segment address directly into a5.\nWhich is ok for the common PIC compiled application case, but breaks the\nfull relocation application code.\n\nWe no longer use this type of signal handling mechanism and so we don't\nneed to do anything special to save and restore a5 at all now. So remove the\ncode that hard codes a5 to the address of the user data segment.\n\nSigned-off-by: Greg Ungerer <gerg@linux-m68k.org>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/0b98027122d0715aa2dc39882e4c295112275785"},{"sha":"176b1ec21306f0775e6d7a03f42d82a0b144ef0e","author":{"name":"Srinivas Pandruvada","email":"bafa8fbaf973e74aae734803a1f0d8e07d0d0888@linux.intel.com"},"message":"thermal: intel_pch_thermal: Add suspend/resume callback\n\nAdded suspend/resume callback to disable/enable PCH thermal sensor\nrespectively. If the sensor is enabled by the BIOS, then the sensor status\nwill not be changed during suspend/resume.\n\nSigned-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>\nSigned-off-by: Zhang Rui <rui.zhang@intel.com>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/176b1ec21306f0775e6d7a03f42d82a0b144ef0e"},{"sha":"70c50ee72eebb3d1e3aae7450269fd8d8074c610","author":{"name":"Petr Mladek","email":"5447410274755159ad67f4310002b15bb738e1d1@suse.com"},"message":"thermal/powerclamp: Prevent division by zero when counting interval\n\nI have got a zero division error when disabling the forced\nidle injection from the intel powerclamp. I did\n\n  echo 0 >/sys/class/thermal/cooling_device48/cur_state\n\nand got\n\n[  986.072632] divide error: 0000 [#1] PREEMPT SMP\n[  986.078989] Modules linked in:\n[  986.083618] CPU: 17 PID: 24967 Comm: kidle_inject/17 Not tainted 4.7.0-1-default+ #3055\n[  986.093781] Hardware name: Intel Corporation S2600CP/S2600CP, BIOS RMLSDP.86I.R3.27.D685.1305151734 05/15/2013\n[  986.106227] task: ffff880430e1c080 task.stack: ffff880427ef0000\n[  986.114122] RIP: 0010:[<ffffffff81794859>]  [<ffffffff81794859>] clamp_thread+0x1d9/0x600\n[  986.124609] RSP: 0018:ffff880427ef3e20  EFLAGS: 00010246\n[  986.131860] RAX: 0000000000000258 RBX: 0000000000000006 RCX: 0000000000000001\n[  986.141179] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000018\n[  986.150478] RBP: ffff880427ef3ec8 R08: ffff880427ef0000 R09: 0000000000000002\n[  986.159779] R10: 0000000000003df2 R11: 0000000000000018 R12: 0000000000000002\n[  986.169089] R13: 0000000000000000 R14: ffff880427ef0000 R15: ffff880427ef0000\n[  986.178388] FS:  0000000000000000(0000) GS:ffff880435940000(0000) knlGS:0000000000000000\n[  986.188785] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  986.196559] CR2: 00007f1d0caf0000 CR3: 0000000002006000 CR4: 00000000001406e0\n[  986.205909] Stack:\n[  986.209524]  ffff8802be897b00 ffff880430e1c080 0000000000000011 0000006a35959780\n[  986.219236]  0000000000000011 ffff880427ef0008 0000000000000000 ffff8804359503d0\n[  986.228966]  0000000100029d93 ffffffff81794140 0000000000000000 ffffffff05000011\n[  986.238686] Call Trace:\n[  986.242825]  [<ffffffff81794140>] ? pkg_state_counter+0x80/0x80\n[  986.250866]  [<ffffffff81794680>] ? powerclamp_set_cur_state+0x180/0x180\n[  986.259797]  [<ffffffff8111d1a9>] kthread+0xc9/0xe0\n[  986.266682]  [<ffffffff8193d69f>] ret_from_fork+0x1f/0x40\n[  986.274142]  [<ffffffff8111d0e0>] ? kthread_create_on_node+0x180/0x180\n[  986.282869] Code: d1 ea 48 89 d6 80 3d 6a d0 d4 00 00 ba 64 00 00 00 89 d8 41 0f 45 f5 0f af c2 42 8d 14 2e be 31 00 00 00 83 fa 31 0f 42 f2 31 d2 <f7> f6 48 8b 15 9e 07 87 00 48 8b 3d 97 07 87 00 48 63 f0 83 e8\n[  986.307806] RIP  [<ffffffff81794859>] clamp_thread+0x1d9/0x600\n[  986.315871]  RSP <ffff880427ef3e20>\n\nRIP points to the following lines:\n\n\tcompensation = get_compensation(target_ratio);\n\tinterval = duration_jiffies*100/(target_ratio+compensation);\n\nA solution would be to switch the following two commands in\npowerclamp_set_cur_state():\n\n\tset_target_ratio = 0;\n\tend_power_clamp();\n\nBut I think that the zero division might happen also when target_ratio\nis non-zero because the compensation might be negative. Therefore\nwe also check the sum of target_ratio and compensation explicitly.\n\nAlso the compensated_ratio variable is always set. Therefore there\nis no need to initialize it.\n\nSigned-off-by: Petr Mladek <pmladek@suse.com>\nAcked-by: Jacob Pan <jacob.jun.pan@linux.intel.com>\nSigned-off-by: Zhang Rui <rui.zhang@intel.com>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/70c50ee72eebb3d1e3aae7450269fd8d8074c610"},{"sha":"d0b7306d203c82e7c04d6eb066ca4898f016ebdd","author":{"name":"Michele Di Giorgio","email":"bfa5dfb99791c7dccd52a2244ace12c786dc0a20@arm.com"},"message":"thermal: fix race condition when updating cooling device\n\nWhen multiple thermal zones are bound to the same cooling device, multiple\nkernel threads may want to update the cooling device state by calling\nthermal_cdev_update(). Having cdev not protected by a mutex can lead to a race\ncondition. Consider the following situation with two kernel threads k1 and k2:\n\n\t    Thread k1\t\t\t\tThread k2\n                                    ||\n                                    ||  call thermal_cdev_update()\n                                    ||      ...\n                                    ||      set_cur_state(cdev, target);\n    call power_actor_set_power()    ||\n        ...                         ||\n        instance->target = state;   ||\n        cdev->updated = false;      ||\n                                    ||      cdev->updated = true;\n                                    ||      // completes execution\n    call thermal_cdev_update()      ||\n        // cdev->updated == true    ||\n        return;                     ||\n                                    \\/\n                                    time\n\nk2 has already looped through the thermal instances looking for the deepest\ncooling device state and is preempted right before setting cdev->updated to\ntrue. Now, k1 runs, modifies the thermal instance state and sets cdev->updated\nto false. Then, k1 is preempted and k2 continues the execution by setting\ncdev->updated to true, therefore preventing k1 from performing the update.\nNotice that this is not an issue if k2 looks at the instance->target modified by\nk1 \"after\" it is assigned by k1. In fact, in this case the update will happen\nanyway and k1 can safely return immediately from thermal_cdev_update().\n\nThis may lead to a situation where a thermal governor never updates the cooling\ndevice. For example, this is the case for the step_wise governor: when calling\nthe function thermal_zone_trip_update(), the governor may always get a new state\nequal to the old one (which, however, wasn't notified to the cooling device) and\nwill therefore skip the update.\n\nCC: Zhang Rui <rui.zhang@intel.com>\nCC: Eduardo Valentin <edubezval@gmail.com>\nCC: Peter Feuerer <peter@piie.net>\nReported-by: Toby Huang <toby.huang@arm.com>\nSigned-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>\nReviewed-by: Javi Merino <javi.merino@arm.com>\nSigned-off-by: Zhang Rui <rui.zhang@intel.com>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/d0b7306d203c82e7c04d6eb066ca4898f016ebdd"},{"sha":"f4c592439b144ef1de66eac764140643a54099eb","author":{"name":"Kuninori Morimoto","email":"c9d45deca9657f8e968f060b64a4b787b35486ff@renesas.com"},"message":"thermal: hwmon: EXPORT_SYMBOL_GPL for thermal hwmon sysfs\n\nthermal_add_hwmon_sysfs()/thermal_remove_hwmon_sysfs() need\nEXPORT_SYMBOL_GPL(). Otherwise we will have ERROR\n\n>> ERROR: \"thermal_remove_hwmon_sysfs\" [drivers/thermal/rcar_thermal.ko] undefined!\n>> ERROR: \"thermal_add_hwmon_sysfs\" [drivers/thermal/rcar_thermal.ko] undefined!\n\nSigned-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>\nSigned-off-by: Zhang Rui <rui.zhang@intel.com>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/f4c592439b144ef1de66eac764140643a54099eb"},{"sha":"165989a5b667b90589f21c8affe496ad21f08591","author":{"name":"Wei Yongjun","email":"dca6c8f1a6d37ffc89e9774b7b686d7557106bdd@gmail.com"},"message":"thermal: clock_cooling: Fix missing mutex_init()\n\nThe driver allocates the mutex but not initialize it.\nUse mutex_init() on it to initialize it correctly.\n\nThis is detected by Coccinelle semantic patch.\n\nSigned-off-by: Wei Yongjun <weiyj.lk@gmail.com>\nSigned-off-by: Zhang Rui <rui.zhang@intel.com>","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/165989a5b667b90589f21c8affe496ad21f08591"},{"sha":"1577ddfac75ff9690ebd0d210bc7f1345c9d29ef","author":{"name":"Zhang Rui","email":"7a5a1dfbf8f2e71be8c232f10c8bca3b437e2a89@intel.com"},"message":"Merge branches 'thermal-intel' and 'thermal-core' into next","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/1577ddfac75ff9690ebd0d210bc7f1345c9d29ef"},{"sha":"4ef870e373382f18de214f61e5d5eb83b62b7aa5","author":{"name":"Linus Torvalds","email":"ead7104581934751970e9decb2db5deb20a9e407@linux-foundation.org"},"message":"Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu\n\nPull m68knommu fix from Greg Ungerer:\n \"This contains only a single fix for a register corruption problem on\n  certain types of m68k flat format binaries\"\n\n* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:\n  m68knommu: fix user a5 register being overwritten","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/4ef870e373382f18de214f61e5d5eb83b62b7aa5"},{"sha":"0043ee40f98d15a50721fbd5dbf7c7797f8d03cd","author":{"name":"Linus Torvalds","email":"ead7104581934751970e9decb2db5deb20a9e407@linux-foundation.org"},"message":"Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux\n\nPull thermal updates from Zhang Rui:\n\n - Fix a race condition when updating cooling device, which may lead to\n   a situation where a thermal governor never updates the cooling\n   device.  From Michele Di Giorgio.\n\n - Fix a zero division error when disabling the forced idle injection\n   from the intel powerclamp.  From Petr Mladek.\n\n - Add suspend/resume callback for intel_pch_thermal thermal driver.\n   From Srinivas Pandruvada.\n\n - Another two fixes for clocking cooling driver and hwmon sysfs I/F.\n   From Michele Di Giorgio and Kuninori Morimoto.\n\n[ Hmm.  That suspend/resume callback for intel_pch_thermal doesn't look\n  like a fix, but I'm letting it slide..  - Linus ]\n\n* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:\n  thermal: clock_cooling: Fix missing mutex_init()\n  thermal: hwmon: EXPORT_SYMBOL_GPL for thermal hwmon sysfs\n  thermal: fix race condition when updating cooling device\n  thermal/powerclamp: Prevent division by zero when counting interval\n  thermal: intel_pch_thermal: Add suspend/resume callback","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/0043ee40f98d15a50721fbd5dbf7c7797f8d03cd"},{"sha":"694d0d0bb2030d2e36df73e2d23d5770511dbc8d","author":{"name":"Linus Torvalds","email":"ead7104581934751970e9decb2db5deb20a9e407@linux-foundation.org"},"message":"Linux 4.8-rc2","distinct":true,"url":"https://api.github.com/repos/nmenon/linux-2.6-playground/commits/694d0d0bb2030d2e36df73e2d23d5770511dbc8d"}]}
{"actor":{"display_login":"nmenon"}}