{"push_id":1378324202,"size":19,"distinct_size":19,"ref":"refs/heads/cm-13.0","head":"3f28f9201b009ab0d833e378a47eaccc7468f3f1","before":"531269d9e894504858803735a4b79bb50310a6b2","commits":[{"sha":"c7b7fcc6c1d9e19434644808f1957af188d92b11","author":{"name":"Jiri Kosina","email":"7b00b9df642c9e201164c58b6dafc51567c7fab2@suse.cz"},"message":"./Makefile: tell gcc optimizer to never introduce new data races\n\nWe have been chasing a memory corruption bug, which turned out to be\ncaused by very old gcc (4.3.4), which happily turned conditional load\ninto a non-conditional one, and that broke correctness (the condition\nwas met only if lock was held) and corrupted memory.\n\nThis particular problem with that particular code did not happen when\nnever gccs were used.  I've brought this up with our gcc folks, as I\nwanted to make sure that this can't really happen again, and it turns\nout it actually can.\n\nQuoting Martin Jambor <mjambor@suse.cz>:\n \"More current GCCs are more careful when it comes to replacing a\n  conditional load with a non-conditional one, most notably they check\n  that a store happens in each iteration of _a_ loop but they assume\n  loops are executed.  They also perform a simple check whether the\n  store cannot trap which currently passes only for non-const\n  variables.  A simple testcase demonstrating it on an x86_64 is for\n  example the following:\n\n  $ cat cond_store.c\n\n  int g_1 = 1;\n\n  int g_2[1024] __attribute__((section (\"safe_section\"), aligned (4096)));\n\n  int c = 4;\n\n  int __attribute__ ((noinline))\n  foo (void)\n  {\n    int l;\n    for (l = 0; (l != 4); l++) {\n      if (g_1)\n        return l;\n      for (g_2[0] = 0; (g_2[0] >= 26); ++g_2[0])\n        ;\n    }\n    return 2;\n  }\n\n  int main (int argc, char* argv[])\n  {\n    if (mprotect (g_2, sizeof(g_2), PROT_READ) == -1)\n      {\n        int e = errno;\n        error (e, e, \"mprotect error %i\", e);\n      }\n    foo ();\n    __builtin_printf(\"OK\\n\");\n    return 0;\n  }\n  /* EOF */\n  $ ~/gcc/trunk/inst/bin/gcc cond_store.c -O2 --param allow-store-data-races=0\n  $ ./a.out\n  OK\n  $ ~/gcc/trunk/inst/bin/gcc cond_store.c -O2 --param allow-store-data-races=1\n  $ ./a.out\n  Segmentation fault\n\n  The testcase fails the same at least with 4.9, 4.8 and 4.7.  Therefore\n  I would suggest building kernels with this parameter set to zero. I\n  also agree with Jikos that the default should be changed for -O2.  I\n  have run most of the SPEC 2k6 CPU benchmarks (gamess and dealII\n  failed, at -O2, not sure why) compiled with and without this option\n  and did not see any real difference between respective run-times\"\n\nHopefully the default will be changed in newer gccs, but let's force it\nfor kernel builds so that we are on a safe side even when older gcc are\nused.\n\nThe code in question was out-of-tree printk-in-NMI (yeah, surprise\nsuprise, once again) patch written by Petr Mladek, let me quote his\ncomment from our internal bugzilla:\n\n \"I have spent few days investigating inconsistent state of kernel ring buffer.\n  It went out that it was caused by speculative store generated by\n  gcc-4.3.4.\n\n  The problem is in assembly generated for make_free_space(). The functions is\n  called the following way:\n\n  + vprintk_emit();\n      + log = MAIN_LOG; // with logbuf_lock\n         or\n         log = NMI_LOG; // with nmi_logbuf_lock\n         cont_add(log, ...);\n          + cont_flush(log, ...);\n              + log_store(log, ...);\n                    + log_make_free_space(log, ...);\n\n  If called with log = NMI_LOG then only nmi_log_* global variables are safe to\n  modify but the generated code does store also into (main_)log_* global\n  variables:\n\n  <log_make_free_space>:\n         55                      push   %rbp\n         89 f6                   mov    %esi,%esi\n\n         48 8b 05 03 99 51 01    mov    0x1519903(%rip),%rax       # ffffffff82620868 <nmi_log_next_id>\n         44 8b 1d ec 98 51 01    mov    0x15198ec(%rip),%r11d      # ffffffff82620858 <log_next_idx>\n         8b 35 36 60 14 01       mov    0x1146036(%rip),%esi       # ffffffff8224cfa8 <log_buf_len>\n         44 8b 35 33 60 14 01    mov    0x1146033(%rip),%r14d      # ffffffff8224cfac <nmi_log_buf_len>\n         4c 8b 2d d0 98 51 01    mov    0x15198d0(%rip),%r13       # ffffffff82620850 <log_next_seq>\n         4c 8b 25 11 61 14 01    mov    0x1146111(%rip),%r12       # ffffffff8224d098 <log_buf>\n         49 89 c2                mov    %rax,%r10\n         48 21 c2                and    %rax,%rdx\n         48 8b 1d 0c 99 55 01    mov    0x155990c(%rip),%rbx       # ffffffff826608a0 <nmi_log_buf>\n         49 c1 ea 20             shr    $0x20,%r10\n         48 89 55 d0             mov    %rdx,-0x30(%rbp)\n         44 29 de                sub    %r11d,%esi\n         45 29 d6                sub    %r10d,%r14d\n         4c 8b 0d 97 98 51 01    mov    0x1519897(%rip),%r9\t# ffffffff82620840 <log_first_seq>\n         eb 7e                   jmp    ffffffff81107029\t<log_make_free_space+0xe9>\n  [...]\n         85 ff                   test   %edi,%edi                  # edi = 1 for NMI_LOG\n         4c 89 e8                mov    %r13,%rax\n         4c 89 ca                mov    %r9,%rdx\n         74 0a                   je     ffffffff8110703d\t<log_make_free_space+0xfd>\n         8b 15 27 98 51 01       mov    0x1519827(%rip),%edx       # ffffffff82620860 <nmi_log_first_id>\n         48 8b 45 d0             mov    -0x30(%rbp),%rax\n         48 39 c2                cmp    %rax,%rdx                  # end of loop\n         0f 84 da 00 00 00       je     ffffffff81107120 <log_make_free_space+0x1e0>\n  [...]\n         85 ff                   test   %edi,%edi                  # edi = 1 for NMI_LOG\n         4c 89 0d 17 97 51 01    mov    %r9,0x1519717(%rip)        # ffffffff82620840 <log_first_seq>\n                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^\n                                 KABOOOM\n         74 35                   je     ffffffff81107160\t\t <log_make_free_space+0x220>\n\n  It stores log_first_seq when edi == NMI_LOG. This instructions are used also\n  when edi == MAIN_LOG but the store is done speculatively before the condition\n  is decided.  It is unsafe because we do not have \"logbuf_lock\" in NMI context\n  and some other process migh modify \"log_first_seq\" in parallel\"\n\nI believe that the best course of action is both\n\n - building kernel (and anything multi-threaded, I guess) with that\n   optimization turned off\n - persuade gcc folks to change the default for future releases\n\nChange-Id: I6079b4602c11e304ce3e20566d9f1d2da9cae9bb\nSigned-off-by: Jiri Kosina <jkosina@suse.cz>\nCc: Martin Jambor <mjambor@suse.cz>\nCc: Petr Mladek <pmladek@suse.cz>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Marek Polacek <polacek@redhat.com>\nCc: Jakub Jelinek <jakub@redhat.com>\nCc: Steven Noonan <steven@uplinklabs.net>\nCc: Richard Biener <richard.guenther@gmail.com>\nCc: Dan Carpenter <dan.carpenter@oracle.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/c7b7fcc6c1d9e19434644808f1957af188d92b11"},{"sha":"28ea38ca909e527ebd435043496cde82613091a6","author":{"name":"Sergei Trofimovich","email":"1326cbd996edcc149ddc3d9108286d7438e81856@gentoo.org"},"message":"Makefile: enable -Werror=implicit-int and -Werror=strict-prototypes by default\n\nThe common error found in forward-ported/backported patches is missing\nheaders.  One recent example (files and function names are mangled):\n\n    void foo(){}\n    EXPORT_SYMBOL(foo);\n\ngave only warning\n\n    foo.c:12345678:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]\n    void foo(){}\n         ^\n\n    foo.c:12345679:5: warning: data definition has no type or storage class [enabled by default]\n    EXPORT_SYMBOL(foo);\n    foo.c:12345679:5: warning: type defaults to 'int' in declaration of 'EXORT_SYMBOL' [-Werror=implicit-int]\n\nNow it's a fatal error. Tested on x86_64 allyesconfig.\n\nChange-Id: I7b5ff36707a50ca105e8525a324fff16873bf2b9\n[akpm@linux-foundation.org: fix typos in comments]\nSigned-off-by: Sergei Trofimovich <slyfox@gentoo.org>\nCc: Geert Uytterhoeven <geert@linux-m68k.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Michal Marek <mmarek@suse.cz>\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/28ea38ca909e527ebd435043496cde82613091a6"},{"sha":"4a27119654589be464dc23996a1dd8303c0028cd","author":{"name":"Behan Webster","email":"89ff55df8dec2a7b887258721ec351b303b21a36@converseincode.com"},"message":"ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h\n\nWith compilers which follow the C99 standard (like modern versions of gcc and\nclang), \"extern inline\" does the wrong thing (emits code for an externally\nlinkable version of the inline function). In this case using static inline\nand removing the NULL version of return_address in return_address.c does\nthe right thing.\n\nChange-Id: I158763affb7e1a8d6e468236154196a710ecbe9f\nSigned-off-by: Behan Webster <behanw@converseincode.com>\nReviewed-by: Mark Charlebois <charlebm@gmail.com>\nAcked-by: Steven Rostedt <rostedt@goodmis.org>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/4a27119654589be464dc23996a1dd8303c0028cd"},{"sha":"c7365c9b22ee09eb18d87adc4fa6459aea30b456","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"media: sii8240: fix warning in switch statement when building with GCC5\n\nGCC5 warns as such:\n\ndrivers/media/video/mhl/sii8240.c: In function 'tmds_control':\ndrivers/media/video/mhl/sii8240.c:356:10: error: switch condition has boolean value [-Werror=switch-bool]\n  switch (tmds_on) {\n          ^\n\nAdding 'false' as an extra parameter here silences the above warning.\n\nChange-Id: I07c339de25f7cd4ef313832b5df4a4c2edbabbbe\nSuggested-by: Paul Keith <javelinanddart@gmail.com>\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/c7365c9b22ee09eb18d87adc4fa6459aea30b456"},{"sha":"0d5486182dab31a54e6544a786357525fa7256b5","author":{"name":"Anitha Anand","email":"3911bd1cf01049a480da1812716534abb4e300d0@codeaurora.org"},"message":"cpufreq: Add cpu utilization statistics to aid decisions made by userspace.\n\nUnderstanding system load as seen by cpufreq can help userspace\nalgorithms make better decisions to improve system responsiveness.\nOne such example would be the MP decision algorithm which mines\nvarious system info to make decisions on hotplugging in/out\nthe additional cores.\n\nSigned-off-by: Anitha Anand <anithas@codeaurora.org>\n(cherry picked from commit cbeef6aafc4964c4a6cfafd26b23eaccd40804b4)\n\nChange-Id: I8a5fb95380af898076fe0e246fb21e3aa48b33b1\nSigned-off-by: Shruthi Krishna <skrish@codeaurora.org>\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/0d5486182dab31a54e6544a786357525fa7256b5"},{"sha":"2def14c7f47d05e5b061fe35198f135d20e3b9dd","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: uberdemand: fix build errors\n\nChange-Id: I0aaf9b9a7ea3a3f77d61865a0ea99e31a627e282\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/2def14c7f47d05e5b061fe35198f135d20e3b9dd"},{"sha":"3108ed88d9ff805a88eda2fa00b2d0486fcc2c8f","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: smartmax: update to a compatible version and fix build errors\n\nChange-Id: I2f0fd4675fc61b107ccab82b4430fecb6f806f93\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/3108ed88d9ff805a88eda2fa00b2d0486fcc2c8f"},{"sha":"51dc686e25161e2b1b8194fd0b9d0e53a906bf83","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: remove slim governor\n\nThe slim governor is specific to- and relies on the msm platform. Remove it.\n\nChange-Id: If8faa5fc80c3e05c271853be920ed7798df5f1d6\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/51dc686e25161e2b1b8194fd0b9d0e53a906bf83"},{"sha":"01ff3ab9634401d33bea048c10b22d8c65a5459a","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: add missing header for ondemandplus governor\n\nChange-Id: I77360ee7488bb147afe73c573cb409fb4d4f57f9\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/01ff3ab9634401d33bea048c10b22d8c65a5459a"},{"sha":"e88ffb2ca1dad3d69d11966fdd14af9a1b010a9f","author":{"name":"Arve Hjønnevåg","email":"252c00e8bf89f12b2f75a1e0ab87a5ad019cda88@android.com"},"message":"PM: Add early suspend api.\n\nChange-Id: Ic2af45f9fb0d3c025d13b08d6590fdd1e6a33306\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/e88ffb2ca1dad3d69d11966fdd14af9a1b010a9f"},{"sha":"2f55321b0d08f56bdeb69e6c3ffb2b54071edab3","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: add conservativex governor\n\nChange-Id: Icc7ecc8bcef5357d7d3ed3fd569ebe1bbe75da67\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/2f55321b0d08f56bdeb69e6c3ffb2b54071edab3"},{"sha":"9bb98e7624c010bdcabee22613ddfde4e939502e","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: abyssplug: fix build error\n\nForward-port definitions of cputime64_add and cputime64_sub from linux 2.6.x and include cputime.h in abyssplug governor.\n\nChange-Id: I64adef1ce26dc0c26b4cc32ae639ea1376066cdd\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/9bb98e7624c010bdcabee22613ddfde4e939502e"},{"sha":"2846bd562327e2dad9e1324ead0088d84bef3746","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: abyssplugv2: update and fix build errors\n\nChange-Id: I0421d260ee747a1058421ae4fe012fcee77137fa\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/2846bd562327e2dad9e1324ead0088d84bef3746"},{"sha":"14fcc350dc0115337a45b17f119d742b57bda62f","author":{"name":"Steve Muckle","email":"fbe666723fd14b41535f92f214066332b71cfdc2@codeaurora.org"},"message":"kernel: sched: provide per cpu-cgroup option to notify on migrations\n\nOn systems where CPUs may run asynchronously, task migrations\nbetween CPUs running at grossly different speeds can cause\nproblems.\n\nThis change provides a mechanism to notify a subsystem\nin the kernel if a task in a particular cgroup migrates to a\ndifferent CPU. Other subsystems (such as cpufreq) may then\nregister for this notifier to take appropriate action when\nsuch a task is migrated.\n\nThe cgroup attribute to set for this behavior is\n\"notify_on_migrate\" .\n\nChange-Id: Ie1868249e53ef901b89c837fdc33b0ad0c0a4590\nSigned-off-by: Steve Muckle <smuckle@codeaurora.org>\nSigned-off-by: Mekala Natarajan <mekalan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/14fcc350dc0115337a45b17f119d742b57bda62f"},{"sha":"df5dbf5b0184378e37191a97c806cdb982eb44c8","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: intellidemand: silence warnings\n\nChange-Id: I8af7c7285cecec40f977b3c30fcb9d5b1e9f9ab8\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/df5dbf5b0184378e37191a97c806cdb982eb44c8"},{"sha":"080020a9a3c81bdc2083d209fa7fcfa72dcae5af","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: badass: silence gcc warnings\n\nChange-Id: Ib10f0560a5c93b651d977572365cd21adc1b1940\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/080020a9a3c81bdc2083d209fa7fcfa72dcae5af"},{"sha":"715beb90961e1599e67eb19e3b032bde35b5871e","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: remove brazilianwax and cleanup\n\nChange-Id: I0aec185cd0dbc025c0f9ed6f48d11e5ba8054880\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/715beb90961e1599e67eb19e3b032bde35b5871e"},{"sha":"ba6ae0c0b5b5d4f674c758ed525d0de92c30ad76","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: optimax: silence gcc warnings\n\nChange-Id: Ie0b285b7500afa949a9578a024f6d3dbbc06c982\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/ba6ae0c0b5b5d4f674c758ed525d0de92c30ad76"},{"sha":"3f28f9201b009ab0d833e378a47eaccc7468f3f1","author":{"name":"Vidir Alexander Jonsson","email":"0c85577a6507482f920b878035ce4104b9f98429@valex.is"},"message":"cpufreq: intellimm: silence gcc warnings\n\nChange-Id: Ifeb5b166c2badc91ffb00eff1beb2175811a11b6\nSigned-off-by: Vidir Alexander Jonsson <valex@valex.is>","distinct":true,"url":"https://api.github.com/repos/exynos5420/android_kernel_samsung_exynos5420/commits/3f28f9201b009ab0d833e378a47eaccc7468f3f1"}]}
{"actor":{"display_login":"teamexynos5420"}}