)]}'
{
  "log": [
    {
      "commit": "0dd69de3c4f45c6e3af43e9146ee4679dbc45a33",
      "tree": "e12fe94a12bb98f9030ff607c9ac6d9f1cc5d9d7",
      "parents": [
        "1405c2b764791b8b6328d1e39059fb6780beef9e"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Dec 11 09:16:38 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:37 2016 +0800"
      },
      "message": "ses: fix additional element traversal bug\n\ncommit 5e1033561da1152c57b97ee84371dba2b3d64c25 upstream.\n\nKASAN found that our additional element processing scripts drop off\nthe end of the VPD page into unallocated space.  The reason is that\nnot every element has additional information but our traversal\nroutines think they do, leading to them expecting far more additional\ninformation than is present.  Fix this by adding a gate to the\ntraversal routine so that it only processes elements that are expected\nto have additional information (list is in SES-2 section 6.1.13.1:\nAdditional Element Status diagnostic page overview)\n\nReported-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nTested-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1be2ead7a8f779f2595afaa5523e7f83cd0dcf2b",
      "tree": "c6bf0497e9819a794611333d238f48c46f861f14",
      "parents": [
        "ff0dd8f8f68435374713feecdf74736953fd5196"
      ],
      "author": {
        "name": "Chen Yu",
        "email": "yu.c.chen@intel.com",
        "time": "Sun Oct 25 01:02:19 2015 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:26 2016 +0800"
      },
      "message": "ACPI: Use correct IRQ when uninstalling ACPI interrupt handler\n\ncommit 49e4b84333f338d4f183f28f1f3c1131b9fb2b5a upstream.\n\nCurrently when the system is trying to uninstall the ACPI interrupt\nhandler, it uses acpi_gbl_FADT.sci_interrupt as the IRQ number.\nHowever, the IRQ number that the ACPI interrupt handled is installed\nfor comes from acpi_gsi_to_irq() and that is the number that should\nbe used for the handler removal.\n\nFix this problem by using the mapped IRQ returned from acpi_gsi_to_irq()\nas appropriate.\n\nAcked-by: Lv Zheng \u003clv.zheng@intel.com\u003e\nSigned-off-by: Chen Yu \u003cyu.c.chen@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "8fb4b054c92925545e6e12b59f0c8b6b6f514984",
      "tree": "44361522917cf85e00136eb90fcc8c7e57d692c4",
      "parents": [
        "b7d44ef53eb257900c6f0183a39e4dee6fad6072"
      ],
      "author": {
        "name": "Daeho Jeong",
        "email": "daeho.jeong@samsung.com",
        "time": "Sun Oct 18 17:02:56 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:25 2016 +0800"
      },
      "message": "ext4, jbd2: ensure entering into panic after recording an error in superblock\n\ncommit 4327ba52afd03fc4b5afa0ee1d774c9c5b0e85c5 upstream.\n\nIf a EXT4 filesystem utilizes JBD2 journaling and an error occurs, the\njournaling will be aborted first and the error number will be recorded\ninto JBD2 superblock and, finally, the system will enter into the\npanic state in \"errors\u003dpanic\" option.  But, in the rare case, this\nsequence is little twisted like the below figure and it will happen\nthat the system enters into panic state, which means the system reset\nin mobile environment, before completion of recording an error in the\njournal superblock. In this case, e2fsck cannot recognize that the\nfilesystem failure occurred in the previous run and the corruption\nwouldn\u0027t be fixed.\n\nTask A                        Task B\next4_handle_error()\n-\u003e jbd2_journal_abort()\n  -\u003e __journal_abort_soft()\n    -\u003e __jbd2_journal_abort_hard()\n    | -\u003e journal-\u003ej_flags |\u003d JBD2_ABORT;\n    |\n    |                         __ext4_abort()\n    |                         -\u003e jbd2_journal_abort()\n    |                         | -\u003e __journal_abort_soft()\n    |                         |   -\u003e if (journal-\u003ej_flags \u0026 JBD2_ABORT)\n    |                         |           return;\n    |                         -\u003e panic()\n    |\n    -\u003e jbd2_journal_update_sb_errno()\n\nTested-by: Hobin Woo \u003chobin.woo@samsung.com\u003e\nSigned-off-by: Daeho Jeong \u003cdaeho.jeong@samsung.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b0cce01be5f58ed399fdfc8e1b0fbcd827a35aef",
      "tree": "cf61f307b591ed355c8a8df39d43d9649fd0ee18",
      "parents": [
        "7646c507f1ad8bd14a3196f84b0eabb229dafb75"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Sep 04 15:44:57 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Apr 27 18:55:18 2016 +0800"
      },
      "message": "fs: create and use seq_show_option for escaping\n\ncommit a068acf2ee77693e0bf39d6e07139ba704f461c3 upstream.\n\nMany file systems that implement the show_options hook fail to correctly\nescape their output which could lead to unescaped characters (e.g.  new\nlines) leaking into /proc/mounts and /proc/[pid]/mountinfo files.  This\ncould lead to confusion, spoofed entries (resulting in things like\nsystemd issuing false d-bus \"mount\" notifications), and who knows what\nelse.  This looks like it would only be the root user stepping on\nthemselves, but it\u0027s possible weird things could happen in containers or\nin other situations with delegated mount privileges.\n\nHere\u0027s an example using overlay with setuid fusermount trusting the\ncontents of /proc/mounts (via the /etc/mtab symlink).  Imagine the use\nof \"sudo\" is something more sneaky:\n\n  $ BASE\u003d\"ovl\"\n  $ MNT\u003d\"$BASE/mnt\"\n  $ LOW\u003d\"$BASE/lower\"\n  $ UP\u003d\"$BASE/upper\"\n  $ WORK\u003d\"$BASE/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000\"\n  $ mkdir -p \"$LOW\" \"$UP\" \"$WORK\"\n  $ sudo mount -t overlay -o \"lowerdir\u003d$LOW,upperdir\u003d$UP,workdir\u003d$WORK\" none /mnt\n  $ cat /proc/mounts\n  none /root/ovl/mnt overlay rw,relatime,lowerdir\u003dovl/lower,upperdir\u003dovl/upper,workdir\u003dovl/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000 0 0\n  $ fusermount -u /proc\n  $ cat /proc/mounts\n  cat: /proc/mounts: No such file or directory\n\nThis fixes the problem by adding new seq_show_option and\nseq_show_option_n helpers, and updating the vulnerable show_option\nhandlers to use them as needed.  Some, like SELinux, need to be open\ncoded due to unusual existing escape mechanisms.\n\n[akpm@linux-foundation.org: add lost chunk, per Kees]\n[keescook@chromium.org: seq_show_option should be using const parameters]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.com\u003e\nAcked-by: Paul Moore \u003cpaul@paul-moore.com\u003e\nCc: J. R. Okajima \u003chooanon05g@gmail.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - one more place in ceph needs to be changed\n - drop changes to overlayfs\n - drop showing vers in cifs]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "dc7e2fb68c6c0c268bfb264846d54dc8bf273a56",
      "tree": "2caf7a09868edb701e481423734ade5070347231",
      "parents": [
        "c02b085fafa2f8a6a9c447c4ac472552fabf3140"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Mon Jul 13 11:40:02 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Apr 27 18:55:13 2016 +0800"
      },
      "message": "PCI: Add dev_flags bit to access VPD through function 0\n\ncommit 932c435caba8a2ce473a91753bad0173269ef334 upstream.\n\nAdd a dev_flags bit, PCI_DEV_FLAGS_VPD_REF_F0, to access VPD through\nfunction 0 to provide VPD access on other functions.  This is for hardware\ndevices that provide copies of the same VPD capability registers in\nmultiple functions.  Because the kernel expects that each function has its\nown registers, both the locking and the state tracking are affected by VPD\naccesses to different functions.\n\nOn such devices for example, if a VPD write is performed on function 0,\n*any* later attempt to read VPD from any other function of that device will\nhang.  This has to do with how the kernel tracks the expected value of the\nF bit per function.\n\nConcurrent accesses to different functions of the same device can not only\nhang but also corrupt both read and write VPD data.\n\nWhen hangs occur, typically the error message:\n\n  vpd r/w failed.  This is likely a firmware bug on this device.\n\nwill be seen.\n\nNever set this bit on function 0 or there will be an infinite recursion.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nAcked-by: Alexander Duyck \u003calexander.h.duyck@redhat.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "f074c267d478acb66379d510c3132402f5384847",
      "tree": "2851f3ce8ec60c8999393f7739c2630eb817b4f1",
      "parents": [
        "8f452aa305e1b8bec21c8ce191c4af2b0cc14067"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 04 11:06:42 2013 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:55 2016 +0800"
      },
      "message": "get rid of s_files and files_lock\n\ncommit eee5cc2702929fd41cce28058dc6d6717f723f87 upstream.\n\nThe only thing we need it for is alt-sysrq-r (emergency remount r/o)\nand these days we can do just as well without going through the\nlist of files.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "3330d7bdad8141a862d7d9f19423453fbd92b76a",
      "tree": "5b192b64a5586b4bbfa5662d6634f7d9babdb4b6",
      "parents": [
        "460baab8b45e6f2a92a5e583d5e1bd9dd15b0f3a"
      ],
      "author": {
        "name": "Arne Fitzenreiter",
        "email": "arne_f@ipfire.org",
        "time": "Wed Jul 15 13:54:36 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:45 2016 +0800"
      },
      "message": "libata: add ATA_HORKAGE_NOTRIM\n\ncommit 71d126fd28de2d4d9b7b2088dbccd7ca62fad6e0 upstream.\n\nSome devices lose data on TRIM whether queued or not.  This patch adds\na horkage to disable TRIM.\n\ntj: Collapsed unnecessary if() nesting.\n\nSigned-off-by: Arne Fitzenreiter \u003carne_f@ipfire.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - drop changes to show_ata_dev_trim()]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e47e85894f5db4049982296a46526a2aab78fd51",
      "tree": "dda302bb17a28711cda5b14ace930aa6eaffa826",
      "parents": [
        "9810a13f3e3fe2ba25fcd1fb6a8bd06e752998c2"
      ],
      "author": {
        "name": "Nikolay Borisov",
        "email": "kernel@kyup.com",
        "time": "Thu Jul 02 01:32:44 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:40 2016 +0800"
      },
      "message": "bufferhead: Add _gfp version for sb_getblk()\n\ncommit bd7ade3cd9b0850264306f5c2b79024a417b6396 upstream.\n\nsb_getblk() is used during ext4 (and possibly other FSes) writeback\npaths. Sometimes such path require allocating memory and guaranteeing\nthat such allocation won\u0027t block. Currently, however, there is no way\nto provide user flags for sb_getblk which could lead to deadlocks.\n\nThis patch implements a sb_getblk_gfp with the only difference it can\naccept user-provided GFP flags.\n\nSigned-off-by: Nikolay Borisov \u003ckernel@kyup.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "9810a13f3e3fe2ba25fcd1fb6a8bd06e752998c2",
      "tree": "5aed0c07e063d6fda3def6f35363666d8a5b520c",
      "parents": [
        "38464cd9b38b43ef757da18bc8b9badcd2b70dfb"
      ],
      "author": {
        "name": "Gioh Kim",
        "email": "gioh.kim@lge.com",
        "time": "Thu Sep 04 22:04:42 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:39 2016 +0800"
      },
      "message": "fs/buffer.c: support buffer cache allocations with gfp modifiers\n\ncommit 3b5e6454aaf6b4439b19400d8365e2ec2d24e411 upstream.\n\nA buffer cache is allocated from movable area because it is referred\nfor a while and released soon.  But some filesystems are taking buffer\ncache for a long time and it can disturb page migration.\n\nNew APIs are introduced to allocate buffer cache with user specific\nflag.  *_gfp APIs are for user want to set page allocation flag for\npage cache allocation.  And *_unmovable APIs are for the user wants to\nallocate page cache from non-movable area.\n\nSigned-off-by: Gioh Kim \u003cgioh.kim@lge.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e1ae22abf3a99e98cc109253400662b7f00403e1",
      "tree": "d1b9c4b07d7e518270a478f6f1e994e828dc2987",
      "parents": [
        "15488de7b72b6ab8254dda07053faa4be6b9ec66"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Tue Jul 28 14:57:14 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:08 2015 +0800"
      },
      "message": "jbd2: avoid infinite loop when destroying aborted journal\n\ncommit 841df7df196237ea63233f0f9eaa41db53afd70f upstream.\n\nCommit 6f6a6fda2945 \"jbd2: fix ocfs2 corrupt when updating journal\nsuperblock fails\" changed jbd2_cleanup_journal_tail() to return EIO\nwhen the journal is aborted. That makes logic in\njbd2_log_do_checkpoint() bail out which is fine, except that\njbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make\na progress in cleaning the journal. Without it jbd2_journal_destroy()\njust loops in an infinite loop.\n\nFix jbd2_journal_destroy() to cleanup journal checkpoint lists of\njbd2_log_do_checkpoint() fails with error.\n\nReported-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nTested-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nFixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aef2b5342c1c17abbcd068d25ce5c48e6b43a5f8",
      "tree": "438da77f4c6bb8c0644f66e667be2093ef31afc5",
      "parents": [
        "c4b0cf56edc955b00510b36c890ca3fd78df7d67"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@poochiereds.net",
        "time": "Tue Jun 09 19:43:56 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:05 2015 +0800"
      },
      "message": "nfs: increase size of EXCHANGE_ID name string buffer\n\ncommit 764ad8ba8cd4c6f836fca9378f8c5121aece0842 upstream.\n\nThe current buffer is much too small if you have a relatively long\nhostname. Bring it up to the size of the one that SETCLIENTID has.\n\nReported-by: Michael Skralivetsky \u003cmichael.skralivetsky@primarydata.com\u003e\nSigned-off-by: Jeff Layton \u003cjeff.layton@primarydata.com\u003e\nSigned-off-by: Trond Myklebust \u003ctrond.myklebust@primarydata.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "2fe77cbcdb483b9ce541c0978fb485f31213ee23",
      "tree": "ef04521ff912e7cd41eea5fc2541ee46d8cdf427",
      "parents": [
        "2cd65577af5bb06910596361166f8eb1b5bbc491"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Mon Jun 15 14:36:01 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:04 2015 +0800"
      },
      "message": "jbd2: fix ocfs2 corrupt when updating journal superblock fails\n\ncommit 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a upstream.\n\nIf updating journal superblock fails after journal data has been\nflushed, the error is omitted and this will mislead the caller as a\nnormal case.  In ocfs2, the checkpoint will be treated successfully\nand the other node can get the lock to update. Since the sb_start is\nstill pointing to the old log block, it will rewrite the journal data\nduring journal recovery by the other node. Thus the new updates will\nbe overwritten and ocfs2 corrupts.  So in above case we have to return\nthe error, and ocfs2_commit_cache will take care of the error and\nprevent the other node to do update first.  And only after recovering\njournal it can do the new updates.\n\nThe issue discussion mail can be found at:\nhttps://oss.oracle.com/pipermail/ocfs2-devel/2015-June/010856.html\nhttp://comments.gmane.org/gmane.comp.file-systems.ext4/48841\n\n[ Fixed bug in patch which allowed a non-negative error return from\n  jbd2_cleanup_journal_tail() to leak out of jbd2_fjournal_flush(); this\n  was causing xfstests ext4/306 to fail. -- Ted ]\n\nReported-by: Yiwen Jiang \u003cjiangyiwen@huawei.com\u003e\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nTested-by: Yiwen Jiang \u003cjiangyiwen@huawei.com\u003e\nCc: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "017fd99beb3ccdb301009fa8f905f574e3e3ce29",
      "tree": "aedf3c10df99abe1e241568a011f5c310b4816a1",
      "parents": [
        "ba4e97b49e74a7b1c6283e3d4d6dbe0c72b991af"
      ],
      "author": {
        "name": "Gabriele Mazzotta",
        "email": "gabriele.mzt@gmail.com",
        "time": "Sat Apr 25 19:52:37 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:37 2015 +0800"
      },
      "message": "libata: Ignore spurious PHY event on LPM policy change\n\ncommit 09c5b4803a80a5451d950d6a539d2eb311dc0fb1 upstream.\n\nWhen the LPM policy is set to ATA_LPM_MAX_POWER, the device might\ngenerate a spurious PHY event that cuases errors on the link.\nIgnore this event if it occured within 10s after the policy change.\n\nThe timeout was chosen observing that on a Dell XPS13 9333 these\nspurious events can occur up to roughly 6s after the policy change.\n\nLink: http://lkml.kernel.org/g/3352987.ugV1Ipy7Z5@xps13\nSigned-off-by: Gabriele Mazzotta \u003cgabriele.mzt@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ba4e97b49e74a7b1c6283e3d4d6dbe0c72b991af",
      "tree": "2dc648fa8cb42d140e81c72f9bdb06a3a4bdb9b1",
      "parents": [
        "d939e53d62fd55fd83d243c3831ac44cd36a743d"
      ],
      "author": {
        "name": "Gabriele Mazzotta",
        "email": "gabriele.mzt@gmail.com",
        "time": "Sat Apr 25 19:52:36 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:37 2015 +0800"
      },
      "message": "libata: Add helper to determine when PHY events should be ignored\n\ncommit 8393b811f38acdf7fd8da2028708edad3e68ce1f upstream.\n\nThis is a preparation commit that will allow to add other criteria\naccording to which PHY events should be dropped.\n\nSigned-off-by: Gabriele Mazzotta \u003cgabriele.mzt@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "a885169f03f6b84653b8418d2739397f0286d360",
      "tree": "a1803a328b2e17c8ab0b4ec74c03dc947cd26c96",
      "parents": [
        "350b59e331e49c018e55f9b4ab7a9638f3ca2707"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 05 16:24:00 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:36 2015 +0800"
      },
      "message": "nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()\n\ncommit d8fd150fe3935e1692bf57c66691e17409ebb9c1 upstream.\n\nThe range check for b-tree level parameter in nilfs_btree_root_broken()\nis wrong; it accepts the case of \"level \u003d\u003d NILFS_BTREE_LEVEL_MAX\" even\nthough the level is limited to values in the range of 0 to\n(NILFS_BTREE_LEVEL_MAX - 1).\n\nSince the level parameter is read from storage device and used to index\nnilfs_btree_path array whose element count is NILFS_BTREE_LEVEL_MAX, it\ncan cause memory overrun during btree operations if the boundary value\nis set to the level parameter on device.\n\nThis fixes the broken sanity check and adds a comment to clarify that\nthe upper bound NILFS_BTREE_LEVEL_MAX is exclusive.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ae3668ffeb437e04d7f085ad8f97ce383852ab7c",
      "tree": "72e138ab0ae59fdcdc4cdd67df38bb043a57456a",
      "parents": [
        "90b3fc7daf325f7d5b10301562ac2708839cacc7"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@redhat.com",
        "time": "Tue Mar 31 14:19:10 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:27 2015 +0800"
      },
      "message": "jhash: Update jhash_[321]words functions to use correct initval\n\ncommit 2e7056c433216f406b90a003aa0ba42e19d3bdcf upstream.\n\nLooking over the implementation for jhash2 and comparing it to jhash_3words\nI realized that the two hashes were in fact very different.  Doing a bit of\ndigging led me to \"The new jhash implementation\" in which lookup2 was\nsupposed to have been replaced with lookup3.\n\nIn reviewing the patch I noticed that jhash2 had originally initialized a\nand b to JHASH_GOLDENRATIO and c to initval, but after the patch a, b, and\nc were initialized to initval + (length \u003c\u003c 2) + JHASH_INITVAL.  However the\nchanges in jhash_3words simply replaced the initialization of a and b with\nJHASH_INITVAL.\n\nThis change corrects what I believe was an oversight so that a, b, and c in\njhash_3words all have the same value added consisting of initval + (length\n\u003c\u003c 2) + JHASH_INITVAL so that jhash2 and jhash_3words will now produce the\nsame hash result given the same inputs.\n\nFixes: 60d509c823cca (\"The new jhash implementation\")\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "bded67cc51db4e29af84f9ec1d671a86b0b6763b",
      "tree": "886108ad45fd36ac490e2e74c10d853b39e91566",
      "parents": [
        "edf76233db20b417ad0cb88cc9f4d4001fef1bd3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Dec 09 22:54:40 2013 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:34 2015 +0800"
      },
      "message": "PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev\n\ncommit fc2798502f860b18f3c7121e4dc659d3d9d28d74 upstream.\n\nThese interfaces:\n\n  pcibios_resource_to_bus(struct pci_dev *dev, *bus_region, *resource)\n  pcibios_bus_to_resource(struct pci_dev *dev, *resource, *bus_region)\n\ntook a pci_dev, but they really depend only on the pci_bus.  And we want to\nuse them in resource allocation paths where we have the bus but not a\ndevice, so this patch converts them to take the pci_bus instead of the\npci_dev:\n\n  pcibios_resource_to_bus(struct pci_bus *bus, *bus_region, *resource)\n  pcibios_bus_to_resource(struct pci_bus *bus, *resource, *bus_region)\n\nIn fact, with standard PCI-PCI bridges, they only depend on the host\nbridge, because that\u0027s the only place address translation occurs, but\nwe aren\u0027t going that far yet.\n\n[bhelgaas: changelog]\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Dirk Behme \u003cdirk.behme@gmail.com\u003e\n[lizf: Backported to 3.4:\n - make changes to pci_host_bridge() instead of find_pci_root_bus()\n - adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "419d4c989459c5fa2d3fa42c061c097e53dcaf19",
      "tree": "034a48251dfb4a4de07ab3e6e1e3b4bdaab67ce6",
      "parents": [
        "9796d87a38b95a9550f6a22d933f7354ab966748"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bart.vanassche@sandisk.com",
        "time": "Wed Mar 04 10:31:47 2015 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:31 2015 +0800"
      },
      "message": "Defer processing of REQ_PREEMPT requests for blocked devices\n\ncommit bba0bdd7ad4713d82338bcd9b72d57e9335a664b upstream.\n\nSCSI transport drivers and SCSI LLDs block a SCSI device if the\ntransport layer is not operational. This means that in this state\nno requests should be processed, even if the REQ_PREEMPT flag has\nbeen set. This patch avoids that a rescan shortly after a cable\npull sporadically triggers the following kernel oops:\n\nBUG: unable to handle kernel paging request at ffffc9001a6bc084\nIP: [\u003cffffffffa04e08f2\u003e] mlx4_ib_post_send+0xd2/0xb30 [mlx4_ib]\nProcess rescan-scsi-bus (pid: 9241, threadinfo ffff88053484a000, task ffff880534aae100)\nCall Trace:\n [\u003cffffffffa0718135\u003e] srp_post_send+0x65/0x70 [ib_srp]\n [\u003cffffffffa071b9df\u003e] srp_queuecommand+0x1cf/0x3e0 [ib_srp]\n [\u003cffffffffa0001ff1\u003e] scsi_dispatch_cmd+0x101/0x280 [scsi_mod]\n [\u003cffffffffa0009ad1\u003e] scsi_request_fn+0x411/0x4d0 [scsi_mod]\n [\u003cffffffff81223b37\u003e] __blk_run_queue+0x27/0x30\n [\u003cffffffff8122a8d2\u003e] blk_execute_rq_nowait+0x82/0x110\n [\u003cffffffff8122a9c2\u003e] blk_execute_rq+0x62/0xf0\n [\u003cffffffffa000b0e8\u003e] scsi_execute+0xe8/0x190 [scsi_mod]\n [\u003cffffffffa000b2f3\u003e] scsi_execute_req+0xa3/0x130 [scsi_mod]\n [\u003cffffffffa000c1aa\u003e] scsi_probe_lun+0x17a/0x450 [scsi_mod]\n [\u003cffffffffa000ce86\u003e] scsi_probe_and_add_lun+0x156/0x480 [scsi_mod]\n [\u003cffffffffa000dc2f\u003e] __scsi_scan_target+0xdf/0x1f0 [scsi_mod]\n [\u003cffffffffa000dfa3\u003e] scsi_scan_host_selected+0x183/0x1c0 [scsi_mod]\n [\u003cffffffffa000edfb\u003e] scsi_scan+0xdb/0xe0 [scsi_mod]\n [\u003cffffffffa000ee13\u003e] store_scan+0x13/0x20 [scsi_mod]\n [\u003cffffffff811c8d9b\u003e] sysfs_write_file+0xcb/0x160\n [\u003cffffffff811589de\u003e] vfs_write+0xce/0x140\n [\u003cffffffff81158b53\u003e] sys_write+0x53/0xa0\n [\u003cffffffff81464592\u003e] system_call_fastpath+0x16/0x1b\n [\u003c00007f611c9d9300\u003e] 0x7f611c9d92ff\n\nReported-by: Max Gurtuvoy \u003cmaxg@mellanox.com\u003e\nSigned-off-by: Bart Van Assche \u003cbart.vanassche@sandisk.com\u003e\nReviewed-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Odin.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "c93fc8932e95ace45c35fe7a7220acd866bc5ae0",
      "tree": "ae9624c295ba6204b663a2b4875e13a8b5be8518",
      "parents": [
        "26ea9e4d43a01bb161276648b6e306322ed1da1c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 14:08:32 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:14 2015 +0800"
      },
      "message": "fsnotify: fix handling of renames in audit\n\ncommit 6ee8e25fc3e916193bce4ebb43d5439e1e2144ab upstream.\n\nCommit e9fd702a58c4 (\"audit: convert audit watches to use fsnotify\ninstead of inotify\") broke handling of renames in audit.  Audit code\nwants to update inode number of an inode corresponding to watched name\nin a directory.  When something gets renamed into a directory to a\nwatched name, inotify previously passed moved inode to audit code\nhowever new fsnotify code passes directory inode where the change\nhappened.  That confuses audit and it starts watching parent directory\ninstead of a file in a directory.\n\nThis can be observed for example by doing:\n\n  cd /tmp\n  touch foo bar\n  auditctl -w /tmp/foo\n  touch foo\n  mv bar foo\n  touch foo\n\nIn audit log we see events like:\n\n  type\u003dCONFIG_CHANGE msg\u003daudit(1423563584.155:90): auid\u003d1000 ses\u003d2 op\u003d\"updated rules\" path\u003d\"/tmp/foo\" key\u003d(null) list\u003d4 res\u003d1\n  ...\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d2 name\u003d\"bar\" inode\u003d1046884 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dDELETE\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d3 name\u003d\"foo\" inode\u003d1046842 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dDELETE\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d4 name\u003d\"foo\" inode\u003d1046884 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dCREATE\n  ...\n\nand that\u0027s it - we see event for the first touch after creating the\naudit rule, we see events for rename but we don\u0027t see any event for the\nlast touch.  However we start seeing events for unrelated stuff\nhappening in /tmp.\n\nFix the problem by passing moved inode as data in the FS_MOVED_FROM and\nFS_MOVED_TO events instead of the directory where the change happens.\nThis doesn\u0027t introduce any new problems because noone besides\naudit_watch.c cares about the passed value:\n\n  fs/notify/fanotify/fanotify.c cares only about FSNOTIFY_EVENT_PATH events.\n  fs/notify/dnotify/dnotify.c doesn\u0027t care about passed \u0027data\u0027 value at all.\n  fs/notify/inotify/inotify_fsnotify.c uses \u0027data\u0027 only for FSNOTIFY_EVENT_PATH.\n  kernel/audit_tree.c doesn\u0027t care about passed \u0027data\u0027 at all.\n  kernel/audit_watch.c expects moved inode as \u0027data\u0027.\n\nFixes: e9fd702a58c49db (\"audit: convert audit watches to use fsnotify instead of inotify\")\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Paul Moore \u003cpaul@paul-moore.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "019b694fbccafebc550a7b1fcb3bb13e9b32ae03",
      "tree": "e32872c68d09000e77cebdd67dd7f27a2fd5308b",
      "parents": [
        "a54c78b91ad0058aef14fd4804e5d6f8e253cf2b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jan 29 15:05:04 2015 -0500"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:13 2015 +0800"
      },
      "message": "USB: add flag for HCDs that can\u0027t receive wakeup requests (isp1760-hcd)\n\ncommit 074f9dd55f9cab1b82690ed7e44bcf38b9616ce0 upstream.\n\nCurrently the USB stack assumes that all host controller drivers are\ncapable of receiving wakeup requests from downstream devices.\nHowever, this isn\u0027t true for the isp1760-hcd driver, which means that\nit isn\u0027t safe to do a runtime suspend of any device attached to a\nroot-hub port if the device requires wakeup.\n\nThis patch adds a \"cant_recv_wakeups\" flag to the usb_hcd structure\nand sets the flag in isp1760-hcd.  The core is modified to prevent a\ndirect child of the root hub from being put into runtime suspend with\nwakeup enabled if the flag is set.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nTested-by: Nicolas Pitre \u003cnico@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aef29c3576fb89843193a2a026719a0fdb4145ab",
      "tree": "88ae159b31337a680d36e89041e5cbebe09fcd48",
      "parents": [
        "3274eed40faa3c0af04a78c2372ec4bd172bbe7a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Dec 05 15:13:54 2014 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:11 2015 +0800"
      },
      "message": "usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN\n\ncommit 5efd2ea8c9f4f12916ffc8ba636792ce052f6911 upstream.\n\nthe following error pops up during \"testusb -a -t 10\"\n| musb-hdrc musb-hdrc.1.auto: dma_pool_free buffer-128,\tf134e000/be842000 (bad dma)\nhcd_buffer_create() creates a few buffers, the smallest has 32 bytes of\nsize. ARCH_KMALLOC_MINALIGN is set to 64 bytes. This combo results in\nhcd_buffer_alloc() returning memory which is 32 bytes aligned and it\nmight by identified by buffer_offset() as another buffer. This means the\nbuffer which is on a 32 byte boundary will not get freed, instead it\ntries to free another buffer with the error message.\n\nThis patch fixes the issue by creating the smallest DMA buffer with the\nsize of ARCH_KMALLOC_MINALIGN (or 32 in case ARCH_KMALLOC_MINALIGN is\nsmaller). This might be 32, 64 or even 128 bytes. The next three pools\nwill have the size 128, 512 and 2048.\nIn case the smallest pool is 128 bytes then we have only three pools\ninstead of four (and zero the first entry in the array).\nThe last pool size is always 2048 bytes which is the assumed PAGE_SIZE /\n2 of 4096. I doubt it makes sense to continue using PAGE_SIZE / 2 where\nwe would end up with 8KiB buffer in case we have 16KiB pages.\nInstead I think it makes sense to have a common size(s) and extend them\nif there is need to.\nThere is a BUILD_BUG_ON() now in case someone has a minalign of more than\n128 bytes.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6fd17def6d964c81205230e02b4208c653106d51",
      "tree": "1253f07591fe80dc3442db927536c1b3f66b5cd7",
      "parents": [
        "a42e15a485c14f6d994192af4c16775fbd6c1126"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 26 19:19:16 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:58 2015 +0800"
      },
      "message": "move d_rcu from overlapping d_child to overlapping d_alias\n\ncommit 946e51f2bf37f1656916eb75bd0742ba33983c28 upstream.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[bwh: Backported to 3.2:\n - Apply name changes in all the different places we use d_alias and d_child\n - Move the WARN_ON() in __d_free() to d_free() as we don\u0027t have dentry_free()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - need one more name change in debugfs]\n"
    },
    {
      "commit": "a10ca0dbc2bcf3383fa42dcfeca055f7b5fe1106",
      "tree": "26f0801fa023eda3343cb648f996dcd55fdc4c0c",
      "parents": [
        "6c7738f3aca22188f304ec78f853a4b82ba9a679"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 10:51:32 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:57 2015 +0800"
      },
      "message": "vm: add VM_FAULT_SIGSEGV handling support\n\ncommit 33692f27597fcab536d7cbbcc8f52905133e4aa7 upstream.\n\nThe core VM already knows about VM_FAULT_SIGBUS, but cannot return a\n\"you should SIGSEGV\" error, because the SIGSEGV case was generally\nhandled by the caller - usually the architecture fault handler.\n\nThat results in lots of duplication - all the architecture fault\nhandlers end up doing very similar \"look up vma, check permissions, do\nretries etc\" - but it generally works.  However, there are cases where\nthe VM actually wants to SIGSEGV, and applications _expect_ SIGSEGV.\n\nIn particular, when accessing the stack guard page, libsigsegv expects a\nSIGSEGV.  And it usually got one, because the stack growth is handled by\nthat duplicated architecture fault handler.\n\nHowever, when the generic VM layer started propagating the error return\nfrom the stack expansion in commit fee7e49d4514 (\"mm: propagate error\nfrom stack expansion even for guard page\"), that now exposed the\nexisting VM_FAULT_SIGBUS result to user space.  And user space really\nexpected SIGSEGV, not SIGBUS.\n\nTo fix that case, we need to add a VM_FAULT_SIGSEGV, and teach all those\nduplicate architecture fault handlers about it.  They all already have\nthe code to handle SIGSEGV, so it\u0027s about just tying that new return\nvalue to the existing code, but it\u0027s all a bit annoying.\n\nThis is the mindless minimal patch to do this.  A more extensive patch\nwould be to try to gather up the mostly shared fault handling logic into\none generic helper routine, and long-term we really should do that\ncleanup.\n\nJust from this patch, you can generally see that most architectures just\ncopied (directly or indirectly) the old x86 way of doing things, but in\nthe meantime that original x86 model has been improved to hold the VM\nsemaphore for shorter times etc and to handle VM_FAULT_RETRY and other\n\"newer\" things, so it would be a good idea to bring all those\nimprovements to the generic case and teach other architectures about\nthem too.\n\nReported-and-tested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Jan Engelhardt \u003cjengelh@inai.de\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e # \"s390 still compiles and boots\"\nCc: linux-arch@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bwh: Backported to 3.2:\n - Adjust filenames, context\n - Drop arc, metag, nios2 and lustre changes\n - For sh, patch both 32-bit and 64-bit implementations to use goto bad_area\n - For s390, pass int_code and trans_exc_code as arguments to do_no_context()\n   and do_sigsegv()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[lizf: Backported to 3.4:\n - adjust context in arch/power/mm/fault.c\n - apply the original change in upstream commit for s390]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7583c9fa5344a6cc217be4f6ded892648ff0e3f5",
      "tree": "9cac39e673ced34ed4b02a11c679793a3213e966",
      "parents": [
        "d6d1536d901f5805565af5dd38d2d0ae766ee875"
      ],
      "author": {
        "name": "James P Michels III",
        "email": "james.p.michels@gmail.com",
        "time": "Sun Jul 27 13:28:04 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:56 2015 +0800"
      },
      "message": "usb-core bInterval quirk\n\ncommit cd83ce9e6195aa3ea15ab4db92892802c20df5d0 upstream.\n\nThis patch adds a usb quirk to support devices with interupt endpoints\nand bInterval values expressed as microframes. The quirk causes the\nparse endpoint function to modify the reported bInterval to a standards\nconforming value.\n\nThere is currently code in the endpoint parser that checks for\nbIntervals that are outside of the valid range (1-16 for USB 2+ high\nspeed and super speed interupt endpoints). In this case, the code assumes\nthe bInterval is being reported in 1ms frames. As well, the correction\nis only applied if the original bInterval value is out of the 1-16 range.\n\nWith this quirk applied to the device, the bInterval will be\naccurately adjusted from microframes to an exponent.\n\nSigned-off-by: James P Michels III \u003cjames.p.michels@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ef978a9da7dcda0f159a9ddf9136be389333cf17",
      "tree": "997e5388a1bdf1e2866b4eb6a43f61a12e5ce6ef",
      "parents": [
        "89f1d011748d70b830f452bba6e7e83666123e90"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Jun 30 11:04:21 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:56 2015 +0800"
      },
      "message": "usb-storage/SCSI: Add broken_fua blacklist flag\n\ncommit b14bf2d0c0358140041d1c1805a674376964d0e0 upstream.\n\nSome buggy JMicron USB-ATA bridges don\u0027t know how to translate the FUA\nbit in READs or WRITEs.  This patch adds an entry in unusual_devs.h\nand a blacklist flag to tell the sd driver not to use FUA.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-by: Michael Büsch \u003cm@bues.ch\u003e\nTested-by: Michael Büsch \u003cm@bues.ch\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCC: Matthew Dharm \u003cmdharm-usb@one-eyed-alien.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1e9ecb92905ef940531b8aa70395f532742e7099",
      "tree": "2c426d5650bbe6b9d9a4752a7f06dbdd39c7b71d",
      "parents": [
        "a6887b405068526f98c1a1f6c0368f32308712d0"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jan 16 15:13:02 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:54 2015 +0800"
      },
      "message": "libata: allow sata_sil24 to opt-out of tag ordered submission\n\ncommit 72dd299d5039a336493993dcc63413cf31d0e662 upstream.\n\nRonny reports: https://bugzilla.kernel.org/show_bug.cgi?id\u003d87101\n    \"Since commit 8a4aeec8d \"libata/ahci: accommodate tag ordered\n    controllers\" the access to the harddisk on the first SATA-port is\n    failing on its first access. The access to the harddisk on the\n    second port is working normal.\n\n    When reverting the above commit, access to both harddisks is working\n    fine again.\"\n\nMaintain tag ordered submission as the default, but allow sata_sil24 to\ncontinue with the old behavior.\n\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ronny Hegewald \u003cRonny.Hegewald@online.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4ef74f7a57f95fa31db9d415c5dee165e7c4875c",
      "tree": "5dbfd93b032ce6b3127f002eb293275468e1dc09",
      "parents": [
        "aa12b754cfbd5b5c900d43a6a215b096d8afc0ee"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Sun Jul 14 16:05:57 2013 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:53 2015 +0800"
      },
      "message": "driver core: Introduce device_create_groups\n\ncommit 39ef311204941ddd01ea2950d6220c8ccc710d15 upstream.\n\ndevice_create_groups lets callers create devices as well as associated\nsysfs attributes with a single call. This avoids race conditions seen\nif sysfs attributes on new devices are created later.\n\n[fixed up comment block placement and add checks for printk buffer\nformats - gregkh]\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aa12b754cfbd5b5c900d43a6a215b096d8afc0ee",
      "tree": "8fae2734605e868e1f0a016496dbf02156aa520b",
      "parents": [
        "5b724689fa7063c323b0dd74e78c51617349cd5f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 14 16:05:52 2013 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:53 2015 +0800"
      },
      "message": "sysfs.h: add ATTRIBUTE_GROUPS() macro\n\ncommit f2f37f58b1b933b06d6d84e80a31a1b500fb0db2 upstream.\n\nTo make it easier for driver subsystems to work with attribute groups,\ncreate the ATTRIBUTE_GROUPS macro to remove some of the repetitive\ntyping for the most common use for attribute groups.\n\nReviewed-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nTested-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7f1be7c6e55b686ee22b97db779eb7ed01a2f3af",
      "tree": "9a9756e65264a0f6f830481a5cbdcf8e214cc459",
      "parents": [
        "0b4f2ae74a52418cd880d9249e65fc935f02e89a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Jan 08 14:32:18 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:51 2015 +0800"
      },
      "message": "mm: protect set_page_dirty() from ongoing truncation\n\ncommit 2d6d7f98284648c5ed113fe22a132148950b140f upstream.\n\nTejun, while reviewing the code, spotted the following race condition\nbetween the dirtying and truncation of a page:\n\n__set_page_dirty_nobuffers()       __delete_from_page_cache()\n  if (TestSetPageDirty(page))\n                                     page-\u003emapping \u003d NULL\n\t\t\t\t     if (PageDirty())\n\t\t\t\t       dec_zone_page_state(page, NR_FILE_DIRTY);\n\t\t\t\t       dec_bdi_stat(mapping-\u003ebacking_dev_info, BDI_RECLAIMABLE);\n    if (page-\u003emapping)\n      account_page_dirtied(page)\n        __inc_zone_page_state(page, NR_FILE_DIRTY);\n\t__inc_bdi_stat(mapping-\u003ebacking_dev_info, BDI_RECLAIMABLE);\n\nwhich results in an imbalance of NR_FILE_DIRTY and BDI_RECLAIMABLE.\n\nDirtiers usually lock out truncation, either by holding the page lock\ndirectly, or in case of zap_pte_range(), by pinning the mapcount with\nthe page table lock held.  The notable exception to this rule, though,\nis do_wp_page(), for which this race exists.  However, do_wp_page()\nalready waits for a locked page to unlock before setting the dirty bit,\nin order to prevent a race where clear_page_dirty() misses the page bit\nin the presence of dirty ptes.  Upgrade that wait to a fully locked\nset_page_dirty() to also cover the situation explained above.\n\nAfterwards, the code in set_page_dirty() dealing with a truncation race\nis no longer needed.  Remove it.\n\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - use VM_BUG_ON() instead of VM_BUG_ON_PAGE()]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0b4f2ae74a52418cd880d9249e65fc935f02e89a",
      "tree": "8d6dad4b1ebffe29c82b07b7b01057a8ba0c3646",
      "parents": [
        "b26c83df4ea0b42d394db241c4f775be025171ba"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "koct9i@gmail.com",
        "time": "Thu Jan 08 14:32:15 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:51 2015 +0800"
      },
      "message": "mm: prevent endless growth of anon_vma hierarchy\n\ncommit 7a3ef208e662f4b63d43a23f61a64a129c525bbc upstream.\n\nConstantly forking task causes unlimited grow of anon_vma chain.  Each\nnext child allocates new level of anon_vmas and links vma to all\nprevious levels because pages might be inherited from any level.\n\nThis patch adds heuristic which decides to reuse existing anon_vma\ninstead of forking new one.  It adds counter anon_vma-\u003edegree which\ncounts linked vmas and directly descending anon_vmas and reuses anon_vma\nif counter is lower than two.  As a result each anon_vma has either vma\nor at least two descending anon_vmas.  In such trees half of nodes are\nleafs with alive vmas, thus count of anon_vmas is no more than two times\nbigger than count of vmas.\n\nThis heuristic reuses anon_vmas as few as possible because each reuse\nadds false aliasing among vmas and rmap walker ought to scan more ptes\nwhen it searches where page is might be mapped.\n\nLink: http://lkml.kernel.org/r/20120816024610.GA5350@evergreen.ssec.wisc.edu\nFixes: 5beb49305251 (\"mm: change anon_vma linking to fix multi-process server scalability issue\")\n[akpm@linux-foundation.org: fix typo, per Rik]\nSigned-off-by: Konstantin Khlebnikov \u003ckoct9i@gmail.com\u003e\nReported-by: Daniel Forrest \u003cdan.forrest@ssec.wisc.edu\u003e\nTested-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "370375c0a447eefedc19e872e5137eeff47162f2",
      "tree": "57fbb90eb9b5fbb56fc8733bafaf252e1d85c9f6",
      "parents": [
        "b25489c724b2775cb5eb3eb6d525ad355d1b1f47"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Dec 03 19:22:48 2014 -0500"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:50 2015 +0800"
      },
      "message": "time: settimeofday: Validate the values of tv from user\n\ncommit 6ada1fc0e1c4775de0e043e1bd3ae9d065491aa5 upstream.\n\nAn unvalidated user input is multiplied by a constant, which can result in\nan undefined behaviour for large values. While this is validated later,\nwe should avoid triggering undefined behaviour.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\n[jstultz: include trivial milisecond-\u003emicrosecond correction noticed\nby Andy]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n[lizf: Backported to 3.4: adjust filename]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "288a07dd11b2fc0408fbcb2a6dc2f837dedfb3d8",
      "tree": "e18a3f84791dc8934b4dcba6ea96c18175fc6966",
      "parents": [
        "58250a5c1cc9357d1b41d5ff080ed1990bc344fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 13:00:05 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:50 2015 +0800"
      },
      "message": "mm: propagate error from stack expansion even for guard page\n\ncommit fee7e49d45149fba60156f5b59014f764d3e3728 upstream.\n\nJay Foad reports that the address sanitizer test (asan) sometimes gets\nconfused by a stack pointer that ends up being outside the stack vma\nthat is reported by /proc/maps.\n\nThis happens due to an interaction between RLIMIT_STACK and the guard\npage: when we do the guard page check, we ignore the potential error\nfrom the stack expansion, which effectively results in a missing guard\npage, since the expected stack expansion won\u0027t have been done.\n\nAnd since /proc/maps explicitly ignores the guard page (commit\nd7824370e263: \"mm: fix up some user-visible effects of the stack guard\npage\"), the stack pointer ends up being outside the reported stack area.\n\nThis is the minimal patch: it just propagates the error.  It also\neffectively makes the guard page part of the stack limit, which in turn\nmeasn that the actual real stack is one page less than the stack limit.\n\nLet\u0027s see if anybody notices.  We could teach acct_stack_growth() to\nallow an extra page for a grow-up/grow-down stack in the rlimit test,\nbut I don\u0027t want to add more complexity if it isn\u0027t needed.\n\nReported-and-tested-by: Jay Foad \u003cjay.foad@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "d756c73de80039720cb2373468a096dc8e8c14cd",
      "tree": "24e708e0f7a91be0876dd4052b3809f9d823c276",
      "parents": [
        "3d8b6705ac104513c2c72173c1ac83e5331778a7"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Tue Dec 11 11:04:50 2012 +1030"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:49 2015 +0800"
      },
      "message": "virtio: use dev_to_virtio wrapper in virtio\n\ncommit 9bffdca8c64a72ac54c47a552734ab457bc720d4 upstream.\n\nUse dev_to_virtio wrapper in virtio to make code clearly.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0d030473658c7760c4cdd4fd0cc61e287b6023b3",
      "tree": "0e66b9c5b5a6760e43c38bb8899fb2964bf5deba",
      "parents": [
        "81cc271d2c4a179aae41c503562af9e11ce94adc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 11 23:01:41 2014 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:46 2015 +0800"
      },
      "message": "genirq: Prevent proc race against freeing of irq descriptors\n\ncommit c291ee622165cb2c8d4e7af63fffd499354a23be upstream.\n\nSince the rework of the sparse interrupt code to actually free the\nunused interrupt descriptors there exists a race between the /proc\ninterfaces to the irq subsystem and the code which frees the interrupt\ndescriptor.\n\nCPU0\t\t\t\tCPU1\n\t\t\t\tshow_interrupts()\n\t\t\t\t  desc \u003d irq_to_desc(X);\nfree_desc(desc)\n  remove_from_radix_tree();\n  kfree(desc);\n\t\t\t\t  raw_spinlock_irq(\u0026desc-\u003elock);\n\n/proc/interrupts is the only interface which can actively corrupt\nkernel memory via the lock access. /proc/stat can only read from freed\nmemory. Extremly hard to trigger, but possible.\n\nThe interfaces in /proc/irq/N/ are not affected by this because the\nremoval of the proc file is serialized in procfs against concurrent\nreaders/writers. The removal happens before the descriptor is freed.\n\nFor architectures which have CONFIG_SPARSE_IRQ\u003dn this is a non issue\nas the descriptor is never freed. It\u0027s merely cleared out with the irq\ndescriptor lock held. So any concurrent proc access will either see\nthe old correct value or the cleared out ones.\n\nProtect the lookup and access to the irq descriptor in\nshow_interrupts() with the sparse_irq_lock.\n\nProvide kstat_irqs_usr() which is protecting the lookup and access\nwith sparse_irq_lock and switch /proc/stat to use it.\n\nDocument the existing kstat_irqs interfaces so it\u0027s clear that the\ncaller needs to take care about protection. The users of these\ninterfaces are either not affected due to SPARSE_IRQ\u003dn or already\nprotected against removal.\n\nFixes: 1f5a5b87f78f \"genirq: Implement a sane sparse_irq allocator\"\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[lizf: Backported to 3.4:\n - define kstat_irqs() for CONFIG_GENERIC_HARDIRQS\n - add ifdef/endif CONFIG_SPARSE_IRQ]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0350de0eab3268372dca504504688286d8d18df9",
      "tree": "8f8d0ab1f1171a74b44eb988f8f547bf29dc3e5e",
      "parents": [
        "c9db0543617a3ae5c50a91950641dddad43cc869"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Mon Nov 03 15:15:35 2014 +0000"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:13 2015 +0800"
      },
      "message": "of: Fix overflow bug in string property parsing functions\n\ncommit a87fa1d81a9fb5e9adca9820e16008c40ad09f33 upstream.\n\nThe string property read helpers will run off the end of the buffer if\nit is handed a malformed string property. Rework the parsers to make\nsure that doesn\u0027t happen. At the same time add new test cases to make\nsure the functions behave themselves.\n\nThe original implementations of of_property_read_string_index() and\nof_property_count_strings() both open-coded the same block of parsing\ncode, each with it\u0027s own subtly different bugs. The fix here merges\nfunctions into a single helper and makes the original functions static\ninline wrappers around the helper.\n\nOne non-bugfix aspect of this patch is the addition of a new wrapper,\nof_property_read_string_array(). The new wrapper is needed by the\ndevice_properties feature that Rafael is working on and planning to\nmerge for v3.19. The implementation is identical both with and without\nthe new static inline wrapper, so it just got left in to reduce the\nchurn on the header file.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@linaro.org\u003e\nCc: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nCc: Mika Westerberg \u003cmika.westerberg@linux.intel.com\u003e\nCc: Rob Herring \u003crobh+dt@kernel.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Darren Hart \u003cdarren.hart@intel.com\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - drop selftest hunks that don\u0027t apply]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "8cb0a20aaef0546ca0daf685ab127b181ea8284b",
      "tree": "7c981c9dd664d4b141a7d650069bd61559395e49",
      "parents": [
        "c960659c347e5e0c979084a793bf1f125f3b57ba"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Aug 25 17:51:26 2014 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:12 2015 +0800"
      },
      "message": "USB: core: add device-qualifier quirk\n\ncommit 2a159389bf5d962359349a76827b2f683276a1c7 upstream.\n\nAdd new quirk for devices that cannot handle requests for the\ndevice_qualifier descriptor.\n\nA USB-2.0 compliant device must respond to requests for the\ndevice_qualifier descriptor (even if it\u0027s with a request error), but at\nleast one device is known to misbehave after such a request.\n\nSuggested-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5e93a23b3f887d4824d0e3f64e834fbc22b2bf9b",
      "tree": "7fed13167d7579008e2db9fa7f17cdda2746af89",
      "parents": [
        "4fc93811a205db660b007a6d03386f9ef188a6b8"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Oct 29 14:50:31 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:07 2015 +0800"
      },
      "message": "mm, thp: fix collapsing of hugepages on madvise\n\ncommit 6d50e60cd2edb5a57154db5a6f64eef5aa59b751 upstream.\n\nIf an anonymous mapping is not allowed to fault thp memory and then\nmadvise(MADV_HUGEPAGE) is used after fault, khugepaged will never\ncollapse this memory into thp memory.\n\nThis occurs because the madvise(2) handler for thp, hugepage_madvise(),\nclears VM_NOHUGEPAGE on the stack and it isn\u0027t stored in vma-\u003evm_flags\nuntil the final action of madvise_behavior().  This causes the\nkhugepaged_enter_vma_merge() to be a no-op in hugepage_madvise() when\nthe vma had previously had VM_NOHUGEPAGE set.\n\nFix this by passing the correct vma flags to the khugepaged mm slot\nhandler.  There\u0027s no chance khugepaged can run on this vma until after\nmadvise_behavior() returns since we hold mm-\u003emmap_sem.\n\nIt would be possible to clear VM_NOHUGEPAGE directly from vma-\u003evm_flags\nin hugepage_advise(), but I didn\u0027t want to introduce special case\nbehavior into madvise_behavior().  I think it\u0027s best to just let it\nalways set vma-\u003evm_flags itself.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7655f8554eb2792101151ba7a79919bf0a78b51c",
      "tree": "936925abffd063c3e1dcf8122d8100007855b7f5",
      "parents": [
        "b71ec07584b31aacb937d8b775a6e373b109028a"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Mon Oct 20 18:12:32 2014 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:55 2015 +0800"
      },
      "message": "OOM, PM: OOM killed task shouldn\u0027t escape PM suspend\n\ncommit 5695be142e203167e3cb515ef86a88424f3524eb upstream.\n\nPM freezer relies on having all tasks frozen by the time devices are\ngetting frozen so that no task will touch them while they are getting\nfrozen. But OOM killer is allowed to kill an already frozen task in\norder to handle OOM situtation. In order to protect from late wake ups\nOOM killer is disabled after all tasks are frozen. This, however, still\nkeeps a window open when a killed task didn\u0027t manage to die by the time\nfreeze_processes finishes.\n\nReduce the race window by checking all tasks after OOM killer has been\ndisabled. This is still not race free completely unfortunately because\noom_killer_disable cannot stop an already ongoing OOM killer so a task\nmight still wake up from the fridge and get killed without\nfreeze_processes noticing. Full synchronization of OOM and freezer is,\nhowever, too heavy weight for this highly unlikely case.\n\nIntroduce and check oom_kills counter which gets incremented early when\nthe allocator enters __alloc_pages_may_oom path and only check all the\ntasks if the counter changes during the freezing attempt. The counter\nis updated so early to reduce the race window since allocator checked\noom_killer_disabled which is set by PM-freezing code. A false positive\nwill push the PM-freezer into a slow path but that is not a big deal.\n\nChanges since v1\n- push the re-check loop out of freeze_processes into\n  check_frozen_processes and invert the condition to make the code more\n  readable as per Rafael\n\nFixes: f660daac474c6f (oom: thaw threads if oom killed thread is frozen before deferring)\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b71ec07584b31aacb937d8b775a6e373b109028a",
      "tree": "2bb5d578e9f8308a842033fb3dd968a061b0d21a",
      "parents": [
        "ace595fd79ba3c6f1d067e8be9d311951f591d9c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 21 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:55 2015 +0800"
      },
      "message": "introduce for_each_thread() to replace the buggy while_each_thread()\n\ncommit 0c740d0afc3bff0a097ad03a1c8df92757516f5c upstream.\n\nwhile_each_thread() and next_thread() should die, almost every lockless\nusage is wrong.\n\n1. Unless g \u003d\u003d current, the lockless while_each_thread() is not safe.\n\n   while_each_thread(g, t) can loop forever if g exits, next_thread()\n   can\u0027t reach the unhashed thread in this case. Note that this can\n   happen even if g is the group leader, it can exec.\n\n2. Even if while_each_thread() itself was correct, people often use\n   it wrongly.\n\n   It was never safe to just take rcu_read_lock() and loop unless\n   you verify that pid_alive(g) \u003d\u003d T, even the first next_thread()\n   can point to the already freed/reused memory.\n\nThis patch adds signal_struct-\u003ethread_head and task-\u003ethread_node to\ncreate the normal rcu-safe list with the stable head.  The new\nfor_each_thread(g, t) helper is always safe under rcu_read_lock() as\nlong as this task_struct can\u0027t go away.\n\nNote: of course it is ugly to have both task_struct-\u003ethread_node and the\nold task_struct-\u003ethread_group, we will kill it later, after we change\nthe users of while_each_thread() to use for_each_thread().\n\nPerhaps we can kill it even before we convert all users, we can\nreimplement next_thread(t) using the new thread_head/thread_node.  But\nwe can\u0027t do this right now because this will lead to subtle behavioural\nchanges.  For example, do/while_each_thread() always sees at least one\ntask, while for_each_thread() can do nothing if the whole thread group\nhas died.  Or thread_group_empty(), currently its semantics is not clear\nunless thread_group_leader(p) and we need to audit the callers before we\ncan change it.\n\nSo this patch adds the new interface which has to coexist with the old\none for some time, hopefully the next changes will be more or less\nstraightforward and the old one will go away soon.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nTested-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nReviewed-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: \"Ma, Xindong\" \u003cxindong.ma@intel.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \"Tu, Xiaobing\" \u003cxiaobing.tu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6a16b0d080cd68ffac3f063891612dd9725a6d93",
      "tree": "e2d9c64fbe93bc2c253e0a3e40708f4a3f2bcdef",
      "parents": [
        "e4425815a8d45e730f3a0bd52b149ab65bbad73b"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Aug 26 23:16:35 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:54 2015 +0800"
      },
      "message": "random: add and use memzero_explicit() for clearing data\n\ncommit d4c5efdb97773f59a2b711754ca0953f24516739 upstream.\n\nzatimend has reported that in his environment (3.16/gcc4.8.3/corei7)\nmemset() calls which clear out sensitive data in extract_{buf,entropy,\nentropy_user}() in random driver are being optimized away by gcc.\n\nAdd a helper memzero_explicit() (similarly as explicit_bzero() variants)\nthat can be used in such cases where a variable with sensitive data is\nbeing cleared out in the end. Other use cases might also be in crypto\ncode. [ I have put this into lib/string.c though, as it\u0027s always built-in\nand doesn\u0027t need any dependencies then. ]\n\nFixes kernel bugzilla: 82041\n\nReported-by: zatimend@hotmail.co.uk\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nAcked-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - another memset() in extract_buf() needs to be converted]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e4425815a8d45e730f3a0bd52b149ab65bbad73b",
      "tree": "dfde7c17421015d922718609b539f7b4d5e3e03f",
      "parents": [
        "e7ce7b473f9131b3073baa6dae63cd22de1c4d23"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.eti.br",
        "time": "Mon Nov 25 22:00:41 2013 -0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:53 2015 +0800"
      },
      "message": "crypto: more robust crypto_memneq\n\ncommit fe8c8a126806fea4465c43d62a1f9d273a572bf5 upstream.\n\n[Only use the compiler.h portion of this patch, to get the\nOPTIMIZER_HIDE_VAR() macro, which we need for other -stable patches\n- gregkh]\n\nDisabling compiler optimizations can be fragile, since a new\noptimization could be added to -O0 or -Os that breaks the assumptions\nthe code is making.\n\nInstead of disabling compiler optimizations, use a dummy inline assembly\n(based on RELOC_HIDE) to block the problematic kinds of optimization,\nwhile still allowing other optimizations to be applied to the code.\n\nThe dummy inline assembly is added after every OR, and has the\naccumulator variable as its input and output. The compiler is forced to\nassume that the dummy inline assembly could both depend on the\naccumulator variable and change the accumulator variable, so it is\nforced to compute the value correctly before the inline assembly, and\ncannot assume anything about its value after the inline assembly.\n\nThis change should be enough to make crypto_memneq work correctly (with\ndata-independent timing) even if it is inlined at its call sites. That\ncan be done later in a followup patch.\n\nCompile-tested on x86_64.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.eti.br\u003e\nAcked-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "60e7100a311b7b0d4ad87f20d6a13f1f4a4d786d",
      "tree": "1134746c46072c2d7a061fb1a5fff0cedb22ac14",
      "parents": [
        "e306b0daae1fe8ad4b581dcc2f12917732a5fb1b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Oct 01 21:49:18 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:52 2015 +0800"
      },
      "message": "vfs: fix data corruption when blocksize \u003c pagesize for mmaped data\n\ncommit 90a8020278c1598fafd071736a0846b38510309c upstream.\n\n-\u003epage_mkwrite() is used by filesystems to allocate blocks under a page\nwhich is becoming writeably mmapped in some process\u0027 address space. This\nallows a filesystem to return a page fault if there is not enough space\navailable, user exceeds quota or similar problem happens, rather than\nsilently discarding data later when writepage is called.\n\nHowever VFS fails to call -\u003epage_mkwrite() in all the cases where\nfilesystems need it when blocksize \u003c pagesize. For example when\nblocksize \u003d 1024, pagesize \u003d 4096 the following is problematic:\n  ftruncate(fd, 0);\n  pwrite(fd, buf, 1024, 0);\n  map \u003d mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0);\n  map[0] \u003d \u0027a\u0027;       ----\u003e page_mkwrite() for index 0 is called\n  ftruncate(fd, 10000); /* or even pwrite(fd, buf, 1, 10000) */\n  mremap(map, 1024, 10000, 0);\n  map[4095] \u003d \u0027a\u0027;    ----\u003e no page_mkwrite() called\n\nAt the moment -\u003epage_mkwrite() is called, filesystem can allocate only\none block for the page because i_size \u003d\u003d 1024. Otherwise it would create\nblocks beyond i_size which is generally undesirable. But later at\n-\u003ewritepage() time, we also need to store data at offset 4095 but we\ndon\u0027t have block allocated for it.\n\nThis patch introduces a helper function filesystems can use to have\n-\u003epage_mkwrite() called at all the necessary moments.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - truncate_setsize() already has an oldsize variable]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "bf70aaaa88db72720aee2460157bf7afd20601e4",
      "tree": "bd49134f8f3079238a1d7831438bc38a97acb306",
      "parents": [
        "fbc94908bca2603a046fd7745ccffceb0076137a"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Mon Oct 13 15:51:05 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:49 2015 +0800"
      },
      "message": "kernel: add support for gcc 5\n\ncommit 71458cfc782eafe4b27656e078d379a34e472adf upstream.\n\nWe\u0027re missing include/linux/compiler-gcc5.h which is required now\nbecause gcc branched off to v5 in trunk.\n\nJust copy the relevant bits out of include/linux/compiler-gcc4.h,\nno new code is added as of now.\n\nThis fixes a build error when using gcc 5.\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "c76a73b3d03e08074d08a7cbf1acb386a022a367",
      "tree": "ff9a2b25d6649c6920dc274ed352e3ffa6ce3087",
      "parents": [
        "15c0af9cd63cf84fc7f527da7d12b80e096b60d2"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Oct 08 18:26:13 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:48 2015 +0800"
      },
      "message": "block: fix alignment_offset math that assumes io_min is a power-of-2\n\ncommit b8839b8c55f3fdd60dc36abcda7e0266aff7985c upstream.\n\nThe math in both blk_stack_limits() and queue_limit_alignment_offset()\nassume that a block device\u0027s io_min (aka minimum_io_size) is always a\npower-of-2.  Fix the math such that it works for non-power-of-2 io_min.\n\nThis issue (of alignment_offset !\u003d 0) became apparent when testing\ndm-thinp with a thinp blocksize that matches a RAID6 stripesize of\n1280K.  Commit fdfb4c8c1 (\"dm thin: set minimum_io_size to pool\u0027s data\nblock size\") unlocked the potential for alignment_offset !\u003d 0 due to\nthe dm-thin-pool\u0027s io_min possibly being a non-power-of-2.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "eea5a87d270e8d6925063019c3b0f3ff61fcb49a",
      "tree": "7422b73f51b3980434fa03acba90c65c7ee0a937",
      "parents": [
        "7a6185a12d7bc28267a0917b2cb41e8eb8adb24f"
      ],
      "author": {
        "name": "Lu Baolu",
        "email": "baolu.lu@linux.intel.com",
        "time": "Fri Sep 19 10:13:50 2014 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:39 2015 +0800"
      },
      "message": "USB: Add device quirk for ASUS T100 Base Station keyboard\n\ncommit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream.\n\nThis full-speed USB device generates spurious remote wakeup event\nas soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result,\nLinux can\u0027t enter system suspend and S0ix power saving modes once\nthis keyboard is used.\n\nThis patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk.\nWith this quirk set, wakeup capability will be ignored during\ndevice configure.\n\nThis patch could be back-ported to kernels as old as 2.6.39.\n\nSigned-off-by: Lu Baolu \u003cbaolu.lu@linux.intel.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b47d65db8f8e765ef0267d13681c9bf12a148fb5",
      "tree": "bae1470ac9ca843e700bbf3a6008f179c377dbe8",
      "parents": [
        "ae552f6b54840fc7fb7a7ee688632b55e7eb9cef"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jul 28 16:26:53 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:42 2014 +0800"
      },
      "message": "mnt: Only change user settable mount flags in remount\n\ncommit a6138db815df5ee542d848318e5dae681590fccd upstream.\n\nKenton Varda \u003ckenton@sandstorm.io\u003e discovered that by remounting a\nread-only bind mount read-only in a user namespace the\nMNT_LOCK_READONLY bit would be cleared, allowing an unprivileged user\nto the remount a read-only mount read-write.\n\nCorrect this by replacing the mask of mount flags to preserve\nwith a mask of mount flags that may be changed, and preserve\nall others.   This ensures that any future bugs with this mask and\nremount will fail in an easy to detect way where new mount flags\nsimply won\u0027t change.\n\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Francis Moreau \u003cfrancis.moro@gmail.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4fae6ccac642aa30d189dea30ef14306aad4d2d2",
      "tree": "f4277880c2438c5ef039b4a88d818555150799f9",
      "parents": [
        "699c06b386d592bede77d5a28ed1637c80ab99c0"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 09:41:02 2014 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:38 2014 +0800"
      },
      "message": "cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags\n\ncommit 2ad654bc5e2b211e92f66da1d819e47d79a866f0 upstream.\n\nWhen we change cpuset.memory_spread_{page,slab}, cpuset will flip\nPF_SPREAD_{PAGE,SLAB} bit of tsk-\u003eflags for each task in that cpuset.\nThis should be done using atomic bitops, but currently we don\u0027t,\nwhich is broken.\n\nTetsuo reported a hard-to-reproduce kernel crash on RHEL6, which happened\nwhen one thread tried to clear PF_USED_MATH while at the same time another\nthread tried to flip PF_SPREAD_PAGE/PF_SPREAD_SLAB. They both operate on\nthe same task.\n\nHere\u0027s the full report:\nhttps://lkml.org/lkml/2014/9/19/230\n\nTo fix this, we make PF_SPREAD_PAGE and PF_SPREAD_SLAB atomic flags.\n\nv4:\n- updated mm/slab.c. (Fengguang Wu)\n- updated Documentation.\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nFixes: 950592f7b991 (\"cpusets: update tasks\u0027 page/slab spread flags in time\")\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - check current-\u003eflags \u0026 PF_MEMPOLICY rather than current-\u003emempolicy]\n"
    },
    {
      "commit": "699c06b386d592bede77d5a28ed1637c80ab99c0",
      "tree": "f05290151e1f98926d21fd63aa38ffbb94c85538",
      "parents": [
        "f4d8504c6629c83dd6eec43a2eb7f34b9bae09a7"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 09:40:40 2014 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:38 2014 +0800"
      },
      "message": "sched: add macros to define bitops for task atomic flags\n\ncommit e0e5070b20e01f0321f97db4e4e174f3f6b49e50 upstream.\n\nThis will simplify code when we add new flags.\n\nv3:\n- Kees pointed out that no_new_privs should never be cleared, so we\nshouldn\u0027t define task_clear_no_new_privs(). we define 3 macros instead\nof a single one.\n\nv2:\n- updated scripts/tags.sh, suggested by Peter\n\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nAcked-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - remove no_new_priv code\n - add atomic_flags to struct task_struct]\n"
    },
    {
      "commit": "49d4f0197912461fb2939ca51521b47655b04b11",
      "tree": "c9fbeb1f40c7e05498e157a4d6a2846d68750306",
      "parents": [
        "a90ec2a8bbd22a90dfdb5ca1b294c900226b7ff8"
      ],
      "author": {
        "name": "Andrew Hunter",
        "email": "ahh@google.com",
        "time": "Thu Sep 04 14:17:16 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:32 2014 +0800"
      },
      "message": "jiffies: Fix timeval conversion to jiffies\n\ncommit d78c9300c51d6ceed9f6d078d4e9366f259de28c upstream.\n\ntimeval_to_jiffies tried to round a timeval up to an integral number\nof jiffies, but the logic for doing so was incorrect: intervals\ncorresponding to exactly N jiffies would become N+1. This manifested\nitself particularly repeatedly stopping/starting an itimer:\n\nsetitimer(ITIMER_PROF, \u0026val, NULL);\nsetitimer(ITIMER_PROF, NULL, \u0026val);\n\nwould add a full tick to val, _even if it was exactly representable in\nterms of jiffies_ (say, the result of a previous rounding.)  Doing\nthis repeatedly would cause unbounded growth in val.  So fix the math.\n\nHere\u0027s what was wrong with the conversion: we essentially computed\n(eliding seconds)\n\njiffies \u003d usec  * (NSEC_PER_USEC/TICK_NSEC)\n\nby using scaling arithmetic, which took the best approximation of\nNSEC_PER_USEC/TICK_NSEC with denominator of 2^USEC_JIFFIE_SC \u003d\nx/(2^USEC_JIFFIE_SC), and computed:\n\njiffies \u003d (usec * x) \u003e\u003e USEC_JIFFIE_SC\n\nand rounded this calculation up in the intermediate form (since we\ncan\u0027t necessarily exactly represent TICK_NSEC in usec.) But the\nscaling arithmetic is a (very slight) *over*approximation of the true\nvalue; that is, instead of dividing by (1 usec/ 1 jiffie), we\neffectively divided by (1 usec/1 jiffie)-epsilon (rounding\ndown). This would normally be fine, but we want to round timeouts up,\nand we did so by adding 2^USEC_JIFFIE_SC - 1 before the shift; this\nwould be fine if our division was exact, but dividing this by the\nslightly smaller factor was equivalent to adding just _over_ 1 to the\nfinal result (instead of just _under_ 1, as desired.)\n\nIn particular, with HZ\u003d1000, we consistently computed that 10000 usec\nwas 11 jiffies; the same was true for any exact multiple of\nTICK_NSEC.\n\nWe could possibly still round in the intermediate form, adding\nsomething less than 2^USEC_JIFFIE_SC - 1, but easier still is to\nconvert usec-\u003ensec, round in nanoseconds, and then convert using\ntime*spec*_to_jiffies.  This adds one constant multiplication, and is\nnot observably slower in microbenchmarks on recent x86 hardware.\n\nTested: the following program:\n\nint main() {\n  struct itimerval zero \u003d {{0, 0}, {0, 0}};\n  /* Initially set to 10 ms. */\n  struct itimerval initial \u003d zero;\n  initial.it_interval.tv_usec \u003d 10000;\n  setitimer(ITIMER_PROF, \u0026initial, NULL);\n  /* Save and restore several times. */\n  for (size_t i \u003d 0; i \u003c 10; ++i) {\n    struct itimerval prev;\n    setitimer(ITIMER_PROF, \u0026zero, \u0026prev);\n    /* on old kernels, this goes up by TICK_USEC every iteration */\n    printf(\"previous value: %ld %ld %ld %ld\\n\",\n           prev.it_interval.tv_sec, prev.it_interval.tv_usec,\n           prev.it_value.tv_sec, prev.it_value.tv_usec);\n    setitimer(ITIMER_PROF, \u0026prev, NULL);\n  }\n    return 0;\n}\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nReported-by: Aaron Jacobs \u003cjacobsa@google.com\u003e\nSigned-off-by: Andrew Hunter \u003cahh@google.com\u003e\n[jstultz: Tweaked to apply to 3.17-rc]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n[lizf: Backported to 3.4: adjust filename]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "69db2d4044cc494b03bad01b2e106f7324ef3fdf",
      "tree": "ce09bfaf1099abfdd23e71c52652fde1e8ba35a3",
      "parents": [
        "ab22539512b325240dac92e92bbaf1d9aebaa2e5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Sat Jun 09 02:40:03 2012 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 11:49:17 2014 +0800"
      },
      "message": "slab/mempolicy: always use local policy from interrupt context\n\ncommit e7b691b085fda913830e5280ae6f724b2a63c824 upstream.\n\nslab_node() could access current-\u003emempolicy from interrupt context.\nHowever there\u0027s a race condition during exit where the mempolicy\nis first freed and then the pointer zeroed.\n\nUsing this from interrupts seems bogus anyways. The interrupt\nwill interrupt a random process and therefore get a random\nmempolicy. Many times, this will be idle\u0027s, which noone can change.\n\nJust disable this here and always use local for slab\nfrom interrupts. I also cleaned up the callers of slab_node a bit\nwhich always passed the same argument.\n\nI believe the original mempolicy code did that in fact,\nso it\u0027s likely a regression.\n\nv2: send version with correct logic\nv3: simplify. fix typo.\nReported-by: Arun Sharma \u003casharma@fb.com\u003e\nCc: penberg@kernel.org\nCc: cl@linux.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n[tdmackey@twitter.com: Rework control flow based on feedback from\ncl@linux.com, fix logic, and cleanup current task_struct reference]\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Mackey \u003ctdmackey@twitter.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "68199d62034a736cae12fee49b0dad5342612583",
      "tree": "12d193b46dd9e8ef54788706db22a32379f89148",
      "parents": [
        "473d8a237b359c41225458f3d7c6aa2e5beb40d5"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Aug 04 21:42:10 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:11 2014 -0700"
      },
      "message": "Revert: \"net: ip, ipv6: handle gso skbs in forwarding path\"\n\nThis reverts commit 29a3cd46644ec8098dbe1c12f89643b5c11831a9 which is\ncommit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Marcelo Ricardo Leitner \u003cmleitner@redhat.com\u003e\nCc: Florian Westphal \u003cfw@strlen.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Thomas Jarosch \u003cthomas.jarosch@intra2net.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f73ff697833654ee578b606ea746d15dc1220aab",
      "tree": "5fba9efb577e61579fc9dba897f500b200fd6985",
      "parents": [
        "7f6c1deb02e6ac110645c87fd2446594803a8a72"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 04 16:11:40 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:10 2014 -0700"
      },
      "message": "printk: rename printk_sched to printk_deferred\n\ncommit aac74dc495456412c4130a1167ce4beb6c1f0b38 upstream.\n\nAfter learning we\u0027ll need some sort of deferred printk functionality in\nthe timekeeping core, Peter suggested we rename the printk_sched function\nso it can be reused by needed subsystems.\n\nThis only changes the function name. No logic changes.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jiri Bohac \u003cjbohac@suse.cz\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b06b5c6204bdc7c571feedb6b16188ba62feb9a6",
      "tree": "91f752326bfe880af1170cc9a9a55b8af21c7e50",
      "parents": [
        "883ea134ae75eb03c9f08553a81957a808cee96b"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 31 12:54:53 2014 -0700"
      },
      "message": "introduce SIZE_MAX\n\ncommit a3860c1c5dd1137db23d7786d284939c5761d517 upstream.\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "80cd492c4ed16b106113c60a004171e858aff88a",
      "tree": "31bc003778dda97f8008651bd07652220ebaadfe",
      "parents": [
        "6f0844c44da00772a8ab116fe8bb8549517a8859"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jul 23 09:05:27 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 31 12:54:51 2014 -0700"
      },
      "message": "libata: introduce ata_host-\u003en_tags to avoid oops on SAS controllers\n\ncommit 1a112d10f03e83fb3a2fdc4c9165865dec8a3ca6 upstream.\n\n1871ee134b73 (\"libata: support the ata host which implements a queue\ndepth less than 32\") directly used ata_port-\u003escsi_host-\u003ecan_queue from\nata_qc_new() to determine the number of tags supported by the host;\nunfortunately, SAS controllers doing SATA don\u0027t initialize -\u003escsi_host\nleading to the following oops.\n\n BUG: unable to handle kernel NULL pointer dereference at 0000000000000058\n IP: [\u003cffffffff814e0618\u003e] ata_qc_new_init+0x188/0x1b0\n PGD 0\n Oops: 0002 [#1] SMP\n Modules linked in: isci libsas scsi_transport_sas mgag200 drm_kms_helper ttm\n CPU: 1 PID: 518 Comm: udevd Not tainted 3.16.0-rc6+ #62\n Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013\n task: ffff880c1a00b280 ti: ffff88061a000000 task.ti: ffff88061a000000\n RIP: 0010:[\u003cffffffff814e0618\u003e]  [\u003cffffffff814e0618\u003e] ata_qc_new_init+0x188/0x1b0\n RSP: 0018:ffff88061a003ae8  EFLAGS: 00010012\n RAX: 0000000000000001 RBX: ffff88000241ca80 RCX: 00000000000000fa\n RDX: 0000000000000020 RSI: 0000000000000020 RDI: ffff8806194aa298\n RBP: ffff88061a003ae8 R08: ffff8806194a8000 R09: 0000000000000000\n R10: 0000000000000000 R11: ffff88000241ca80 R12: ffff88061ad58200\n R13: ffff8806194aa298 R14: ffffffff814e67a0 R15: ffff8806194a8000\n FS:  00007f3ad7fe3840(0000) GS:ffff880627620000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 0000000000000058 CR3: 000000061a118000 CR4: 00000000001407e0\n Stack:\n  ffff88061a003b20 ffffffff814e96e1 ffff88000241ca80 ffff88061ad58200\n  ffff8800b6bf6000 ffff880c1c988000 ffff880619903850 ffff88061a003b68\n  ffffffffa0056ce1 ffff88061a003b48 0000000013d6e6f8 ffff88000241ca80\n Call Trace:\n  [\u003cffffffff814e96e1\u003e] ata_sas_queuecmd+0xa1/0x430\n  [\u003cffffffffa0056ce1\u003e] sas_queuecommand+0x191/0x220 [libsas]\n  [\u003cffffffff8149afee\u003e] scsi_dispatch_cmd+0x10e/0x300 [\u003cffffffff814a3bc5\u003e] scsi_request_fn+0x2f5/0x550\n  [\u003cffffffff81317613\u003e] __blk_run_queue+0x33/0x40\n  [\u003cffffffff8131781a\u003e] queue_unplugged+0x2a/0x90\n  [\u003cffffffff8131ceb4\u003e] blk_flush_plug_list+0x1b4/0x210\n  [\u003cffffffff8131d274\u003e] blk_finish_plug+0x14/0x50\n  [\u003cffffffff8117eaa8\u003e] __do_page_cache_readahead+0x198/0x1f0\n  [\u003cffffffff8117ee21\u003e] force_page_cache_readahead+0x31/0x50\n  [\u003cffffffff8117ee7e\u003e] page_cache_sync_readahead+0x3e/0x50\n  [\u003cffffffff81172ac6\u003e] generic_file_read_iter+0x496/0x5a0\n  [\u003cffffffff81219897\u003e] blkdev_read_iter+0x37/0x40\n  [\u003cffffffff811e307e\u003e] new_sync_read+0x7e/0xb0\n  [\u003cffffffff811e3734\u003e] vfs_read+0x94/0x170\n  [\u003cffffffff811e43c6\u003e] SyS_read+0x46/0xb0\n  [\u003cffffffff811e33d1\u003e] ? SyS_lseek+0x91/0xb0\n  [\u003cffffffff8171ee29\u003e] system_call_fastpath+0x16/0x1b\n Code: 00 00 00 88 50 29 83 7f 08 01 19 d2 83 e2 f0 83 ea 50 88 50 34 c6 81 1d 02 00 00 40 c6 81 17 02 00 00 00 5d c3 66 0f 1f 44 00 00 \u003c89\u003e 14 25 58 00 00 00\n\nFix it by introducing ata_host-\u003en_tags which is initialized to\nATA_MAX_QUEUE - 1 in ata_host_init() for SAS controllers and set to\nscsi_host_template-\u003ecan_queue in ata_host_register() for !SAS ones.\nAs SAS hosts are never registered, this will give them the same\nATA_MAX_QUEUE - 1 as before.  Note that we can\u0027t use\nscsi_host-\u003ecan_queue directly for SAS hosts anyway as they can go\nhigher than the libata maximum.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Mike Qiu \u003cqiudayu@linux.vnet.ibm.com\u003e\nReported-by: Jesse Brandeburg \u003cjesse.brandeburg@gmail.com\u003e\nReported-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Alexey Kardashevskiy \u003caik@ozlabs.ru\u003e\nFixes: 1871ee134b73 (\"libata: support the ata host which implements a queue depth less than 32\")\nCc: Kevin Hao \u003chaokexin@gmail.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3943a08b97f2e36e01172d1f321e43c8067c9094",
      "tree": "4e0cb6dd2d9e58eac52d13b72256bcc81e4c745c",
      "parents": [
        "939a3a4989f3210a20f5e68734896c43d9b6ae6c"
      ],
      "author": {
        "name": "Bjørn Mork",
        "email": "bjorn@mork.no",
        "time": "Wed Oct 31 06:08:39 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jul 09 10:51:19 2014 -0700"
      },
      "message": "USB: add USB_DEVICE_INTERFACE_CLASS macro\n\ncommit 17b72feb2be14e6d37023267dc0e199e8e0e3fdc upstream.\n\nMatching on device and interface class with with unspecified\nsubclass and protocol is sometimes useful.  This is slightly\ndifferent from USB_DEVICE_AND_INTERFACE_INFO which requires\nthe full interface class/subclass/protocol triplet.\n\nSigned-off-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e3293b8639a90b7227be9c273af0a45015c499bb",
      "tree": "f6e8281c21358eb0ad7666a1b78b03547f48aaba",
      "parents": [
        "60db34152db66ac6e6b6e12c1d7229179ff4711a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 03 15:43:15 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 06 18:49:20 2014 -0700"
      },
      "message": "ptrace,x86: force IRET path after a ptrace_stop()\n\ncommit b9cd18de4db3c9ffa7e17b0dc0ca99ed5aa4d43a upstream.\n\nThe \u0027sysret\u0027 fastpath does not correctly restore even all regular\nregisters, much less any segment registers or reflags values.  That is\nvery much part of why it\u0027s faster than \u0027iret\u0027.\n\nNormally that isn\u0027t a problem, because the normal ptrace() interface\ncatches the process using the signal handler infrastructure, which\nalways returns with an iret.\n\nHowever, some paths can get caught using ptrace_event() instead of the\nsignal path, and for those we need to make sure that we aren\u0027t going to\nreturn to user space using \u0027sysret\u0027.  Otherwise the modifications that\nmay have been done to the register set by the tracer wouldn\u0027t\nnecessarily take effect.\n\nFix it by forcing IRET path by setting TIF_NOTIFY_RESUME from\narch_ptrace_stop_needed() which is invoked from ptrace_stop().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1f29351617ffe827edf80ffdfdef2da3a2494f96",
      "tree": "61af1c6d0e19add8ec09856334928337276fa5e0",
      "parents": [
        "a97df3f22b83742deb9191d53928641ec3befb6e"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:07 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jun 30 20:01:33 2014 -0700"
      },
      "message": "skbuff: add an api to orphan frags\n\ncommit a353e0ce0fd42d8859260666d1e9b10f2abd4698 upstream.\n\nMany places do\n       if ((skb_shinfo(skb)-\u003etx_flags \u0026 SKBTX_DEV_ZEROCOPY))\n\t\tskb_copy_ubufs(skb, gfp_mask);\nto copy and invoke frag destructors if necessary.\nAdd an inline helper for this.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a97df3f22b83742deb9191d53928641ec3befb6e",
      "tree": "c34f984ed3c4f844aeb3b2076148d2f334e5b134",
      "parents": [
        "1d48df4863c4a4d40809575efa1f101b1e8090b5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Mar 07 14:53:45 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jun 30 20:01:33 2014 -0700"
      },
      "message": "genirq: Sanitize spurious interrupt detection of threaded irqs\n\ncommit 1e77d0a1ed7417d2a5a52a7b8d32aea1833faa6c upstream.\n\nTill reported that the spurious interrupt detection of threaded\ninterrupts is broken in two ways:\n\n- note_interrupt() is called for each action thread of a shared\n  interrupt line. That\u0027s wrong as we are only interested whether none\n  of the device drivers felt responsible for the interrupt, but by\n  calling multiple times for a single interrupt line we account\n  IRQ_NONE even if one of the drivers felt responsible.\n\n- note_interrupt() when called from the thread handler is not\n  serialized. That leaves the members of irq_desc which are used for\n  the spurious detection unprotected.\n\nTo solve this we need to defer the spurious detection of a threaded\ninterrupt to the next hardware interrupt context where we have\nimplicit serialization.\n\nIf note_interrupt is called with action_ret \u003d\u003d IRQ_WAKE_THREAD, we\ncheck whether the previous interrupt requested a deferred check. If\nnot, we request a deferred check for the next hardware interrupt and\nreturn.\n\nIf set, we check whether one of the interrupt threads signaled\nsuccess. Depending on this information we feed the result into the\nspurious detector.\n\nIf one primary handler of a shared interrupt returns IRQ_HANDLED we\ndisable the deferred check of irq threads on the same line, as we have\nfound at least one device driver who cared.\n\nReported-by: Till Straumann \u003cstrauman@slac.stanford.edu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Austin Schuh \u003caustin@peloton-tech.com\u003e\nCc: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nCc: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCc: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nCc: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: linux-can@vger.kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1303071450130.22263@ionos\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "39085c8966f550d4b39d18683e39e79be7660a72",
      "tree": "85bf43e45076e56fd5e79fd473a309ea56671549",
      "parents": [
        "db7d0670393b6febc8967f193c08427bbd6f55d3"
      ],
      "author": {
        "name": "Markus F.X.J. Oberhumer",
        "email": "markus@oberhumer.com",
        "time": "Mon Aug 13 17:25:44 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "lib/lzo: Update LZO compression to current upstream version\n\ncommit 8b975bd3f9089f8ee5d7bbfd798537b992bbc7e7 upstream.\n\nThis commit updates the kernel LZO code to the current upsteam version\nwhich features a significant speed improvement - benchmarking the Calgary\nand Silesia test corpora typically shows a doubled performance in\nboth compression and decompression on modern i386/x86_64/powerpc machines.\n\nSigned-off-by: Markus F.X.J. Oberhumer \u003cmarkus@oberhumer.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "843c0172bce9a30d77c85f33268b1469ead716ad",
      "tree": "a44de99c781b64ac7374608d251685ad3cf9ad59",
      "parents": [
        "0a4474aaad97472efcd10a3e8d897d5798206f0e"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@resnulli.us",
        "time": "Thu May 29 20:46:17 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:28 2014 -0400"
      },
      "message": "team: fix mtu setting\n\n[ Upstream commit 9d0d68faea6962d62dd501cd6e71ce5cc8ed262b ]\n\nNow it is not possible to set mtu to team device which has a port\nenslaved to it. The reason is that when team_change_mtu() calls\ndev_set_mtu() for port device, notificator for NETDEV_PRECHANGEMTU\nevent is called and team_device_event() returns NOTIFY_BAD forbidding\nthe change. So fix this by returning NOTIFY_DONE here in case team is\nchanging mtu in team_change_mtu().\n\nIntroduced-by: 3d249d4c \"net: introduce ethernet teaming device\"\nSigned-off-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\nAcked-by: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "85faa17c6abc754dac48a82f3d9bc70dd1c7453b",
      "tree": "e6ec5aa56b3ae7832a976f42d751f25802e4c235",
      "parents": [
        "7400ce7ee9595432b2a1402b6ffcac9faf38d9ae"
      ],
      "author": {
        "name": "Ley Foon Tan",
        "email": "lftan@altera.com",
        "time": "Thu Mar 07 10:28:37 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:22 2014 -0700"
      },
      "message": "tty/serial: Add support for Altera serial port\n\ncommit e06c93cacb82dd147266fd1bdb2d0a0bd45ff2c1 upstream.\n\nAdd support for Altera 8250/16550 compatible serial port.\n\nSigned-off-by: Ley Foon Tan \u003clftan@altera.com\u003e\n[xr: Backported to 3.4: adjust filenames, context]\nSigned-off-by: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7400ce7ee9595432b2a1402b6ffcac9faf38d9ae",
      "tree": "503adb664766a260d308d47ddfd3e48598deaceb",
      "parents": [
        "eb2249dc3d9d9c6ce6f8bd292770ff72400faab6"
      ],
      "author": {
        "name": "Stephen Hurd",
        "email": "shurd@broadcom.com",
        "time": "Thu Jan 17 14:14:53 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:22 2014 -0700"
      },
      "message": "8250/16?50: Add support for Broadcom TruManage redirected serial port\n\ncommit ebebd49a8eab5e9aa1b1f8f1614ccc3c2120f886 upstream.\n\nAdd support for the UART device present in Broadcom TruManage capable\nNetXtreme chips (ie: 5761m 5762, and 5725).\n\nThis implementation has a hidden transmit FIFO, so running in single-byte\ninterrupt mode results in too many interrupts.  The UART_CAP_HFIFO\ncapability was added to track this.  It continues to reload the THR as long\nas the THRE and TSRE bits are set in the LSR up to a specified limit (1024\nis used here).\n\nSigned-off-by: Stephen Hurd \u003cshurd@broadcom.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\n[xr: Backported to 3.4:\n - Adjust filenames\n - Adjust context\n - PORT_BRCM_TRUMANAGE is 22 not 24]\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "437569c5bdfb172fd13d27a82c108724b674bd63",
      "tree": "e4b966fe47777c9b1923320f3981e4eb6d95fb1e",
      "parents": [
        "0bf3ffd5075b92bf04975c18a44baceab06a848d"
      ],
      "author": {
        "name": "Mike Miller",
        "email": "mike.miller@hp.com",
        "time": "Thu Sep 20 16:05:18 2012 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:20 2014 -0700"
      },
      "message": "hpsa: gen8plus Smart Array IDs\n\ncommit fe0c9610bb68dd0aad1017456f5e3c31264d70c2 upstream.\n\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a6d5f5393d055ba302edf4c59e6bfcee8b8892db",
      "tree": "63e43cfdf60cbcc059a63783892036815e6a861e",
      "parents": [
        "6c14fee44389ab182ceab1df8fecbf2ffeb3a641"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Wed Feb 26 16:50:01 2014 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:19 2014 -0700"
      },
      "message": "nfsd: check passed socket\u0027s net matches NFSd superblock\u0027s one\n\ncommit 3064639423c48d6e0eb9ecc27c512a58e38c6c57 upstream.\n\nThere could be a case, when NFSd file system is mounted in network, different\nto socket\u0027s one, like below:\n\n\"ip netns exec\" creates new network and mount namespace, which duplicates NFSd\nmount point, created in init_net context. And thus NFS server stop in nested\nnetwork context leads to RPCBIND client destruction in init_net.\nThen, on NFSd start in nested network context, rpc.nfsd process creates socket\nin nested net and passes it into \"write_ports\", which leads to RPCBIND sockets\ncreation in init_net context because of the same reason (NFSd monut point was\ncreated in init_net context). An attempt to register passed socket in nested\nnet leads to panic, because no RPCBIND client present in nexted network\nnamespace.\n\nThis patch add check that passed socket\u0027s net matches NFSd superblock\u0027s one.\nAnd returns -EINVAL error to user psace otherwise.\n\nv2: Put socket on exit.\n\nReported-by: Weng Meiling \u003cwengmeiling.weng@huawei.com\u003e\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n[wengmeiling: backport to 3.4: adjust context]\nSigned-off-by: Weng Meiling \u003cwengmeiling.weng@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6c9f8a4940df47e650d39216de7bc8f21e18e2fa",
      "tree": "e0c62b9361ab9d29c23d9e0168dfa585e028221b",
      "parents": [
        "7f3874ea67992faee3a7ff4dca382d0cb0ee0c06"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri May 17 10:44:15 2013 +0930"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:18 2014 -0700"
      },
      "message": "virtio_console: fix uapi header\n\ncommit 6407d75afd08545f2252bb39806ffd3f10c7faac upstream.\n\nuapi should use __u32 not u32.\nFix a macro in virtio_console.h which uses u32.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n[bwh: Backported to 3.2: adjust filename]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7e4d02fdb2bb0f47405a0961a7f3991a56b5981b",
      "tree": "5daed7ed40bcc14e59a6ec0e19d88fcd087ffd19",
      "parents": [
        "984ca88a55ccf51d4eeef67ce2247c58694a2dc5"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Jul 31 16:45:02 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:17 2014 -0700"
      },
      "message": "mm: add kmap_to_page()\n\ncommit fcb8996728fb59eddf84678df7cb213b2c9a2e26 upstream.\n\nThis is extracted from Mel Gorman\u0027s commit 5a178119b0fb (\u0027mm: add\nsupport for direct_IO to highmem pages\u0027) upstream.\n\nRequired to backport commit b9cdc88df8e6 (\u0027virtio: 9p: correctly pass\nphysical address to userspace for high pages\u0027).\n\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b3c463e8762ce90f22efbef947094467909011ea",
      "tree": "f7690a33566a5597bde9dd4060fd4b1d663d8b74",
      "parents": [
        "8ba2272db8bd9fd6f011949020bf1991605b1c14"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun May 13 21:56:25 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:15 2014 -0700"
      },
      "message": "net: Add net_ratelimited_function and net_\u003clevel\u003e_ratelimited macros\n\ncommit 3a3bfb61e64476ff1e4ac3122cb6dec9c79b795c upstream.\n\n__ratelimit() can be considered an inverted bool test because\nit returns true when not ratelimited.  Several tests in the\nkernel tree use this __ratelimit() function incorrectly.\n\nNo net_ratelimit uses are incorrect currently though.\n\nMost uses of net_ratelimit are to log something via printk or\npr_\u003clevel\u003e.\n\nIn order to minimize the uses of net_ratelimit, and to start\nstandardizing the code style used for __ratelimit() and net_ratelimit(),\nadd a net_ratelimited_function() macro and net_\u003clevel\u003e_ratelimited()\nlogging macros similar to pr_\u003clevel\u003e_ratelimited that use the global\nnet_ratelimit instead of a static per call site \"struct ratelimit_state\".\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "0b94d72798ba9f2e93891033107af49486650c22",
      "tree": "2cb05c2e7d102f336dce9f30e7a5b3d36b2c4b02",
      "parents": [
        "b28299b42d3fb210fc0a6af6da435041e048fa39"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Mon Mar 25 09:14:30 2013 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:10 2014 -0700"
      },
      "message": "x86, efivars: firmware bug workarounds should be in platform code\n\ncommit a6e4d5a03e9e3587e88aba687d8f225f4f04c792 upstream.\n\nLet\u0027s not burden ia64 with checks in the common efivars code that we\u0027re not\nwriting too much data to the variable store. That kind of thing is an x86\nfirmware bug, plain and simple.\n\nefi_query_variable_store() provides platforms with a wrapper in which they can\nperform checks and workarounds for EFI variable storage bugs.\n\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Matthew Garrett \u003cmjg59@srcf.ucam.org\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\n[xr: Backported to 3.4: adjust context]\nSigned-off-by: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b28299b42d3fb210fc0a6af6da435041e048fa39",
      "tree": "f269c71dfad53491e3261f1ff9a60699906e8fba",
      "parents": [
        "9001ccbda1be58798d1bd221c3e2a2443133b8bb"
      ],
      "author": {
        "name": "Seiji Aguchi",
        "email": "seiji.aguchi@hds.com",
        "time": "Tue Feb 12 13:04:41 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:10 2014 -0700"
      },
      "message": "efi_pstore: Introducing workqueue updating sysfs\n\ncommit a93bc0c6e07ed9bac44700280e65e2945d864fd4 upstream.\n\n[Problem]\nefi_pstore creates sysfs entries, which enable users to access to NVRAM,\nin a write callback. If a kernel panic happens in an interrupt context,\nit may fail because it could sleep due to dynamic memory allocations during\ncreating sysfs entries.\n\n[Patch Description]\nThis patch removes sysfs operations from a write callback by introducing\na workqueue updating sysfs entries which is scheduled after the write\ncallback is called.\n\nAlso, the workqueue is kicked in a just oops case.\nA system will go down in other cases such as panic, clean shutdown and emergency\nrestart. And we don\u0027t need to create sysfs entries because there is no chance for\nusers to access to them.\n\nefi_pstore will be robust against a kernel panic in an interrupt context with this patch.\n\nSigned-off-by: Seiji Aguchi \u003cseiji.aguchi@hds.com\u003e\nAcked-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n[xr: Backported to 3.4:\n  - Adjust contest\n  - Remove repeated definition of helper function variable_is_present]\nSigned-off-by: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "e887bb41a177d6c6f245d80ad427f1b91fbed91e",
      "tree": "882552f514f19c0c7c695a17f43a6eef77e081d7",
      "parents": [
        "ff534f031ab3192952fc6403bb8618feda758a38"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@redhat.com",
        "time": "Mon Mar 11 17:48:53 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:09 2014 -0700"
      },
      "message": "efi: be more paranoid about available space when creating variables\n\ncommit 68d929862e29a8b52a7f2f2f86a0600423b093cd upstream.\n\nUEFI variables are typically stored in flash. For various reasons, avaiable\nspace is typically not reclaimed immediately upon the deletion of a\nvariable - instead, the system will garbage collect during initialisation\nafter a reboot.\n\nSome systems appear to handle this garbage collection extremely poorly,\nfailing if more than 50% of the system flash is in use. This can result in\nthe machine refusing to boot. The safest thing to do for the moment is to\nforbid writes if they\u0027d end up using more than half of the storage space.\nWe can make this more finegrained later if we come up with a method for\nidentifying the broken machines.\n\nSigned-off-by: Matthew Garrett \u003cmatthew.garrett@nebula.com\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\n[bwh: Backported to 3.2:\n - Drop efivarfs changes and unused check_var_size()\n - Add error codes to include/linux/efi.h, added upstream by\n   commit 5d9db883761a (\u0027efi: Add support for a UEFI variable filesystem\u0027)\n - Add efi_status_to_err(), added upstream by commit 7253eaba7b17\n   (\u0027efivarfs: Return an error if we fail to read a variable\u0027)]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8e74ecf7da0e7a9d0ef4e2474f87a5cba86b4347",
      "tree": "eceed3bf49db3b55d8746531e60bbf6adc8232ce",
      "parents": [
        "75a0ac16ab0b957c19795a0e47d774ca614af7c7"
      ],
      "author": {
        "name": "Seiji Aguchi",
        "email": "seiji.aguchi@hds.com",
        "time": "Wed Nov 14 20:25:37 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:09 2014 -0700"
      },
      "message": "efi_pstore: Check remaining space with QueryVariableInfo() before writing data\n\ncommit d80a361d779a9f19498943d1ca84243209cd5647 upstream.\n\n[Issue]\n\nAs discussed in a thread below, Running out of space in EFI isn\u0027t a well-tested scenario.\nAnd we wouldn\u0027t expect all firmware to handle it gracefully.\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d134305325801789\u0026w\u003d2\n\nOn the other hand, current efi_pstore doesn\u0027t check a remaining space of storage at writing time.\nTherefore, efi_pstore may not work if it tries to write a large amount of data.\n\n[Patch Description]\n\nTo avoid handling the situation above, this patch checks if there is a space enough to log with\nQueryVariableInfo() before writing data.\n\nSigned-off-by: Seiji Aguchi \u003cseiji.aguchi@hds.com\u003e\nAcked-by: Mike Waychison \u003cmikew@google.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "65d41bb38519d09387b630e411e109423ccfff29",
      "tree": "3a6c95f31b5f68554322e38c05533b6477055ef7",
      "parents": [
        "65947f14c1c811bf7b6e6d2f78c57cdff4b18b59"
      ],
      "author": {
        "name": "Radu Caragea",
        "email": "sinaelgl@gmail.com",
        "time": "Wed Aug 21 20:55:59 2013 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:09 2014 -0700"
      },
      "message": "x86 get_unmapped_area: Access mmap_legacy_base through mm_struct member\n\ncommit 41aacc1eea645c99edbe8fbcf78a97dc9b862adc upstream.\n\nThis is the updated version of df54d6fa5427 (\"x86 get_unmapped_area():\nuse proper mmap base for bottom-up direction\") that only randomizes the\nmmap base address once.\n\nSigned-off-by: Radu Caragea \u003csinaelgl@gmail.com\u003e\nReported-and-tested-by: Jeff Shorey \u003cshoreyjeff@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Adrian Sendroiu \u003cmolecula2788@gmail.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Kamal Mostafa \u003ckamal@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2c1dca2262846a50ca30f816ec361500d92ec3fe",
      "tree": "e2b5a11865b83cf4a65605288eac66d8a269bf7f",
      "parents": [
        "d981d3fc5bf7923c1b9bf46016c4a6e83ee843b9"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Dec 10 14:56:06 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:08 2014 -0700"
      },
      "message": "x86, build, icc: Remove uninitialized_var() from compiler-intel.h\n\ncommit 503cf95c061a0551eb684da364509297efbe55d9 upstream.\n\nWhen compiling with icc, \u003clinux/compiler-gcc.h\u003e ends up included\nbecause the icc environment defines __GNUC__.  Thus, we neither need\nnor want to have this macro defined in both compiler-gcc.h and\ncompiler-intel.h, and the fact that they are inconsistent just makes\nthe compiler spew warnings.\n\nReported-by: Sunil K. Pandey \u003csunil.k.pandey@intel.com\u003e\nCc: Kevin B. Smith \u003ckevin.b.smith@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nLink: http://lkml.kernel.org/n/tip-0mbwou1zt7pafij09b897lg3@git.kernel.org\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1fbbea7be9248d652fc2bb191e6ec9e823df422c",
      "tree": "4daa4b37c31c09bdd68827752b46a52195a79f60",
      "parents": [
        "76504c2489ad9e9bdc20fc8e24d23ac5e39b88b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Oct 28 13:55:29 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:04 2014 -0700"
      },
      "message": "perf: Fix perf ring buffer memory ordering\n\ncommit bf378d341e4873ed928dc3c636252e6895a21f50 upstream.\n\nThe PPC64 people noticed a missing memory barrier and crufty old\ncomments in the perf ring buffer code. So update all the comments and\nadd the missing barrier.\n\nWhen the architecture implements local_t using atomic_long_t there\nwill be double barriers issued; but short of introducing more\nconditional barrier primitives this is the best we can do.\n\nReported-by: Victor Kaplansky \u003cvictork@il.ibm.com\u003e\nTested-by: Victor Kaplansky \u003cvictork@il.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: michael@ellerman.id.au\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: anton@samba.org\nCc: benh@kernel.crashing.org\nLink: http://lkml.kernel.org/r/20131025173749.GG19466@laptop.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[bwh: Backported to 3.2: adjust filename]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8f4c0e8b5438725d66c6c27f11cb2a1c61c6d6c5",
      "tree": "d417790dc59d960c950e83511df582551c029b91",
      "parents": [
        "6427aede5eaac2e39a1d2b3306d960a603d7c3d9"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 24 10:40:12 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:00 2014 -0700"
      },
      "message": "ftrace/module: Hardcode ftrace_module_init() call into load_module()\n\ncommit a949ae560a511fe4e3adf48fa44fefded93e5c2b upstream.\n\nA race exists between module loading and enabling of function tracer.\n\n\tCPU 1\t\t\t\tCPU 2\n\t-----\t\t\t\t-----\n  load_module()\n   module-\u003estate \u003d MODULE_STATE_COMING\n\n\t\t\t\tregister_ftrace_function()\n\t\t\t\t mutex_lock(\u0026ftrace_lock);\n\t\t\t\t ftrace_startup()\n\t\t\t\t  update_ftrace_function();\n\t\t\t\t   ftrace_arch_code_modify_prepare()\n\t\t\t\t    set_all_module_text_rw();\n\t\t\t\t   \u003cenables-ftrace\u003e\n\t\t\t\t    ftrace_arch_code_modify_post_process()\n\t\t\t\t     set_all_module_text_ro();\n\n\t\t\t\t[ here all module text is set to RO,\n\t\t\t\t  including the module that is\n\t\t\t\t  loading!! ]\n\n   blocking_notifier_call_chain(MODULE_STATE_COMING);\n    ftrace_init_module()\n\n     [ tries to modify code, but it\u0027s RO, and fails!\n       ftrace_bug() is called]\n\nWhen this race happens, ftrace_bug() will produces a nasty warning and\nall of the function tracing features will be disabled until reboot.\n\nThe simple solution is to treate module load the same way the core\nkernel is treated at boot. To hardcode the ftrace function modification\nof converting calls to mcount into nops. This is done in init/main.c\nthere\u0027s no reason it could not be done in load_module(). This gives\na better control of the changes and doesn\u0027t tie the state of the\nmodule to its notifiers as much. Ftrace is special, it needs to be\ntreated as such.\n\nThe reason this would work, is that the ftrace_module_init() would be\ncalled while the module is in MODULE_STATE_UNFORMED, which is ignored\nby the set_all_module_text_ro() call.\n\nLink: http://lkml.kernel.org/r/1395637826-3312-1-git-send-email-indou.takao@jp.fujitsu.com\n\nReported-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1102122b2bdf4307cae269c725fab4c9c6141f5b",
      "tree": "7e0f789b3587400fd8369a0266c5e7013696ab10",
      "parents": [
        "62e1a647e74f708eeabf1c79f3d40833d8ce45eb"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Fri May 04 14:26:56 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:00 2014 -0700"
      },
      "message": "skb: Add inline helper for getting the skb end offset from head\n\n[ Upstream commit ec47ea82477404631d49b8e568c71826c9b663ac ]\n\nWith the recent changes for how we compute the skb truesize it occurs to me\nwe are probably going to have a lot of calls to skb_end_pointer -\nskb-\u003ehead.  Instead of running all over the place doing that it would make\nmore sense to just make it a separate inline skb_end_offset(skb) that way\nwe can return the correct value without having gcc having to do all the\noptimization to cancel out skb-\u003ehead - skb-\u003ehead.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "fce85b081c08c1326d9bcab0ff9ea1c85b7e9858",
      "tree": "b8dca480b76cecd52287d243766c84d52ade153e",
      "parents": [
        "ced68efe273377c2f525418da0b75f8d2d6d2402"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Nov 12 15:10:01 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:01:58 2014 -0700"
      },
      "message": "list: introduce list_next_entry() and list_prev_entry()\n\n[ Upstream commit 008208c6b26f21c2648c250a09c55e737c02c5f8 ]\n\nAdd two trivial helpers list_next_entry() and list_prev_entry(), they\ncan have a lot of users including list.h itself.  In fact the 1st one is\nalready defined in events/core.c and bnx2x_sp.c, so the patch simply\nmoves the definition to list.h.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4ede126ea94672827d60e5237ed2c6624b06a255",
      "tree": "bd4d64acd350acbdf98d271c4dc417e5b5f7787b",
      "parents": [
        "4b87f408045848f42ae574326faf64073f92f2af"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun May 13 21:56:25 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun May 18 05:25:56 2014 -0700"
      },
      "message": "net: Add net_ratelimited_function and net_\u003clevel\u003e_ratelimited macros\n\ncommit 3a3bfb61e64476ff1e4ac3122cb6dec9c79b795c upstream.\n\n__ratelimit() can be considered an inverted bool test because\nit returns true when not ratelimited.  Several tests in the\nkernel tree use this __ratelimit() function incorrectly.\n\nNo net_ratelimit uses are incorrect currently though.\n\nMost uses of net_ratelimit are to log something via printk or\npr_\u003clevel\u003e.\n\nIn order to minimize the uses of net_ratelimit, and to start\nstandardizing the code style used for __ratelimit() and net_ratelimit(),\nadd a net_ratelimited_function() macro and net_\u003clevel\u003e_ratelimited()\nlogging macros similar to pr_\u003clevel\u003e_ratelimited that use the global\nnet_ratelimit instead of a static per call site \"struct ratelimit_state\".\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e45d91ae6e931aec803c5cbbe36b53e64c3e3077",
      "tree": "307555a3258c9bb4a3164844cdb5f52807e9a4a2",
      "parents": [
        "b9fbc5762da741f3fa89246193acdce428ce6816"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Apr 17 11:48:21 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 13 14:11:31 2014 +0200"
      },
      "message": "libata/ahci: accommodate tag ordered controllers\n\ncommit 8a4aeec8d2d6a3edeffbdfae451cdf05cbf0fefd upstream.\n\nThe AHCI spec allows implementations to issue commands in tag order\nrather than FIFO order:\n\n\t5.3.2.12 P:SelectCmd\n\tHBA sets pSlotLoc \u003d (pSlotLoc + 1) mod (CAP.NCS + 1)\n\tor HBA selects the command to issue that has had the\n\tPxCI bit set to \u00271\u0027 longer than any other command\n\tpending to be issued.\n\nThe result is that commands posted sequentially (time-wise) may play out\nof sequence when issued by hardware.\n\nThis behavior has likely been hidden by drives that arrange for commands\nto complete in issue order.  However, it appears recent drives (two from\ndifferent vendors that we have found so far) inflict out-of-order\ncompletions as a matter of course.  So, we need to take care to maintain\nordered submission, otherwise we risk triggering a drive to fall out of\nsequential-io automation and back to random-io processing, which incurs\nlarge latency and degrades throughput.\n\nThis issue was found in simple benchmarks where QD\u003d2 seq-write\nperformance was 30-50% *greater* than QD\u003d32 seq-write performance.\n\nTagging for -stable and making the change globally since it has a low\nrisk-to-reward ratio.  Also, word is that recent versions of an unnamed\nOS also does it this way now.  So, drives in the field are already\nexperienced with this tag ordering scheme.\n\nCc: Dave Jiang \u003cdave.jiang@intel.com\u003e\nCc: Ed Ciechanowski \u003ced.ciechanowski@intel.com\u003e\nReviewed-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "701a7a17dfdb34700fd3c5fa58249f16bb628f83",
      "tree": "8a903a06c153fa8c2204e5520028b1dbfd543f45",
      "parents": [
        "b50bbe0c033b3ba2ea880da64dbd3771d008cf8d"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri Aug 30 10:46:00 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:27 2014 -0700"
      },
      "message": "USB: fix build error when CONFIG_PM_SLEEP isn\u0027t enabled\n\ncommit 9d8924297cd9c256c23c02abae40202563452453 upstream.\n\nThis patch fixes a build error that occurs when CONFIG_PM is enabled\nand CONFIG_PM_SLEEP isn\u0027t:\n\n\u003e\u003e drivers/usb/host/ohci-pci.c:294:10: error: \u0027usb_hcd_pci_pm_ops\u0027 undeclared here (not in a function)\n      .pm \u003d \u0026usb_hcd_pci_pm_ops\n\nSince the usb_hcd_pci_pm_ops structure is defined and used when\nCONFIG_PM is enabled, its declaration should not be protected by\nCONFIG_PM_SLEEP.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yang Yingliang \u003cyangyingliang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "017f42518a72858f4332572a963be4212e0ee795",
      "tree": "e55d717ab3c8be8dfad920c0447f5eb4ce337a33",
      "parents": [
        "cae4d9a21738dce33a18f533c703b42f59e55244"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "jhovold@gmail.com",
        "time": "Tue Mar 19 09:21:10 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:23 2014 -0700"
      },
      "message": "USB: serial: add modem-status-change wait queue\n\ncommit e5b33dc9d16053c2ae4c2c669cf008829530364b upstream.\n\nAdd modem-status-change wait queue to struct usb_serial_port that\nsubdrivers can use to implement TIOCMIWAIT.\n\nCurrently subdrivers use a private wait queue which may have been\nreleased when waking up after device disconnected.\n\nNote that we\u0027re adding a new wait queue rather than reusing the tty-port\none as we do not want to get woken up at hangup (yet).\n\nSigned-off-by: Johan Hovold \u003cjhovold@gmail.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yang Yingliang \u003cyangyingliang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f993888a1a433264656aad615d17d37e8474dad0",
      "tree": "dced7d364f85d0336efc69e88e3effe40c645f4b",
      "parents": [
        "e1d3e024ab67c29b1602d9d05310a215b35066e7"
      ],
      "author": {
        "name": "Arnaud Patard (Rtp)",
        "email": "arnaud.patard@rtp-net.org",
        "time": "Thu Jul 26 12:15:46 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:20 2014 -0700"
      },
      "message": "ARM: Orion: Set eth packet size csum offload limit\n\ncommit 58569aee5a1a5dcc25c34a0a2ed9a377874e6b05 upstream.\n\nThe mv643xx ethernet controller limits the packet size for the TX\nchecksum offloading. This patch sets this limits for Kirkwood and\nDove which have smaller limits that the default.\n\nAs a side note, this patch is an updated version of a patch sent some years\nago: http://lists.infradead.org/pipermail/linux-arm-kernel/2010-June/017320.html\nwhich seems to have been lost.\n\nSigned-off-by: Arnaud Patard \u003carnaud.patard@rtp-net.org\u003e\nSigned-off-by: Jason Cooper \u003cjason@lakedaemon.net\u003e\n[bwh: Backported to 3.2: adjust for the extra two parameters of\n orion_ge0{0,1}_init()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[yangyl: Backported to 3.4: Adjust context]\nSigned-off-by: Yang Yingliang \u003cyangyingliang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "32bb39f80ffb6b63c78b418bec35a2ce1fc0abe1",
      "tree": "d6b20c325e328e09fd8ed7790d4e1dac3a911a7a",
      "parents": [
        "588256df90f26647828489e45d82b72e97d624e9"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Apr 30 10:39:17 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:18 2014 -0700"
      },
      "message": "HID: fix return value of hidraw_report_event() when !CONFIG_HIDRAW\n\ncommit d6d7c873529abd622897cad5e36f1fd7d82f5110 upstream.\n\nCommit b6787242f327 (\"HID: hidraw: add proper error handling to raw event\nreporting\") forgot to update the static inline version of\nhidraw_report_event() for the case when CONFIG_HIDRAW is unset. Fix that\nup.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "588256df90f26647828489e45d82b72e97d624e9",
      "tree": "fe26d74d69c752d9d173a0ce523d5416bf2c6ec2",
      "parents": [
        "f11c6f07cb7d33abb503e87909aba80c8605d141"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 27 00:56:08 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:18 2014 -0700"
      },
      "message": "HID: hidraw: add proper error handling to raw event reporting\n\ncommit b6787242f32700377d3da3b8d788ab3928bab849 upstream.\n\nIf kmemdup() in hidraw_report_event() fails, we are not propagating\nthis fact properly.\n\nLet hidraw_report_event() and hid_report_raw_event() return an error\nvalue to the caller.\n\nReported-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "71a521898740fc57b062dddd9cff51c9e835cd43",
      "tree": "2a539425fa4d58c9eb006f2756ad7cffac7c5de0",
      "parents": [
        "ee164499c5f538f1cd8e5cf31e157aff32ea0546"
      ],
      "author": {
        "name": "George Spelvin",
        "email": "linux@horizon.com",
        "time": "Sun Feb 10 04:08:32 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:17 2014 -0700"
      },
      "message": "pps: Add pps_lookup_dev() function\n\ncommit 513b032c98b4b9414aa4e9b4a315cb1bf0380101 upstream.\n\nThe PPS serial line discipline wants to attach a PPS device to a tty\nwithout changing the tty code to add a struct pps_device * pointer.\n\nSince the number of PPS devices in a typical system is generally very low\n(n\u003d1 is by far the most common), it\u0027s practical to search the entire list\nof allocated pps devices.  (We capture the timestamp before the lookup,\nso the timing isn\u0027t affected.)\n\nIt is a bit ugly that this function, which is part of the in-kernel\nPPS API, has to be in pps.c as opposed to kapi,c, but that\u0027s not\nsomething that affects users.\n\nSigned-off-by: George Spelvin \u003clinux@horizon.com\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@enneenne.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "ee164499c5f538f1cd8e5cf31e157aff32ea0546",
      "tree": "0f3275763350c841a0cc65cf284acd671fb06ae5",
      "parents": [
        "5a27d6987454a169a4f3362e1a14c77ad1aca193"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed Jul 20 14:59:37 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:16 2014 -0700"
      },
      "message": "idr: idr_for_each_entry() macro\n\ncommit 9749f30f1a387070e6e8351f35aeb829eacc3ab6 upstream.\n\nInspired by the list_for_each_entry() macro\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "5a27d6987454a169a4f3362e1a14c77ad1aca193",
      "tree": "1e77ce7332436cc78d9863a0c2425aab0879c895",
      "parents": [
        "d19157519c9d76828df39cae34cc0d824356f7db"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "minipli@googlemail.com",
        "time": "Tue Nov 12 15:11:47 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:16 2014 -0700"
      },
      "message": "ipc, msg: fix message length check for negative values\n\ncommit 4e9b45a19241354daec281d7a785739829b52359 upstream.\n\nOn 64 bit systems the test for negative message sizes is bogus as the\nsize, which may be positive when evaluated as a long, will get truncated\nto an int when passed to load_msg().  So a long might very well contain a\npositive value but when truncated to an int it would become negative.\n\nThat in combination with a small negative value of msg_ctlmax (which will\nbe promoted to an unsigned type for the comparison against msgsz, making\nit a big positive value and therefore make it pass the check) will lead to\ntwo problems: 1/ The kmalloc() call in alloc_msg() will allocate a too\nsmall buffer as the addition of alen is effectively a subtraction.  2/ The\ncopy_from_user() call in load_msg() will first overflow the buffer with\nuserland data and then, when the userland access generates an access\nviolation, the fixup handler copy_user_handle_tail() will try to fill the\nremainder with zeros -- roughly 4GB.  That almost instantly results in a\nsystem crash or reset.\n\n  ,-[ Reproducer (needs to be run as root) ]--\n  | #include \u003csys/stat.h\u003e\n  | #include \u003csys/msg.h\u003e\n  | #include \u003cunistd.h\u003e\n  | #include \u003cfcntl.h\u003e\n  |\n  | int main(void) {\n  |     long msg \u003d 1;\n  |     int fd;\n  |\n  |     fd \u003d open(\"/proc/sys/kernel/msgmax\", O_WRONLY);\n  |     write(fd, \"-1\", 2);\n  |     close(fd);\n  |\n  |     msgsnd(0, \u0026msg, 0xfffffff0, IPC_NOWAIT);\n  |\n  |     return 0;\n  | }\n  \u0027---\n\nFix the issue by preventing msgsz from getting truncated by consistently\nusing size_t for the message length.  This way the size checks in\ndo_msgsnd() could still be passed with a negative value for msg_ctlmax but\nwe would fail on the buffer allocation in that case and error out.\n\nAlso change the type of m_ts from int to size_t to avoid similar nastiness\nin other code paths -- it is used in similar constructs, i.e.  signed vs.\nunsigned checks.  It should never become negative under normal\ncircumstances, though.\n\nSetting msg_ctlmax to a negative value is an odd configuration and should\nbe prevented.  As that might break existing userland, it will be handled\nin a separate commit so it could easily be reverted and reworked without\nreintroducing the above described bug.\n\nHardening mechanisms for user copy operations would have catched that bug\nearly -- e.g.  checking slab object sizes on user copy operations as the\nusercopy feature of the PaX patch does.  Or, for that matter, detect the\nlong vs.  int sign change due to truncation, as the size overflow plugin\nof the very same patch does.\n\n[akpm@linux-foundation.org: fix i386 min() warnings]\nSigned-off-by: Mathias Krause \u003cminipli@googlemail.com\u003e\nCc: Pax Team \u003cpageexec@freemail.hu\u003e\nCc: Davidlohr Bueso \u003cdavidlohr@hp.com\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bwh: Backported to 3.2:\n - Adjust context\n - Drop changes to alloc_msg() and copy_msg(), which don\u0027t exist]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d19157519c9d76828df39cae34cc0d824356f7db",
      "tree": "1439f80f09a207427334e3482ed0f8393a6a4f12",
      "parents": [
        "460207adba76ac1279f4b72e54196b17d5d18cc2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 10 10:16:30 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:16 2014 -0700"
      },
      "message": "compiler/gcc4: Add quirk for \u0027asm goto\u0027 miscompilation bug\n\ncommit 3f0116c3238a96bc18ad4b4acefe4e7be32fa861 upstream.\n\nFengguang Wu, Oleg Nesterov and Peter Zijlstra tracked down\na kernel crash to a GCC bug: GCC miscompiles certain \u0027asm goto\u0027\nconstructs, as outlined here:\n\n  http://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d58670\n\nImplement a workaround suggested by Jakub Jelinek.\n\nReported-and-tested-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReported-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSuggested-by: Jakub Jelinek \u003cjakub@redhat.com\u003e\nReviewed-by: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[hq: Backported to 3.4: Adjust context]\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "460207adba76ac1279f4b72e54196b17d5d18cc2",
      "tree": "5caf3cd2de4e964e2a08d401e68a893427509c48",
      "parents": [
        "00cef7a5e0766f0f4bedc9da1c80fbe992cf68ef"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:39 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:16 2014 -0700"
      },
      "message": "compiler-gcc.h: Add gcc-recommended GCC_VERSION macro\n\ncommit 3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16 upstream.\n\nThroughout compiler*.h, many version checks are made.  These can be\nsimplified by using the macro that gcc\u0027s documentation recommends.\nHowever, my primary reason for adding this is that I need bug-check\nmacros that are enabled at certain gcc versions and it\u0027s cleaner to use\nthis macro than the tradition method:\n\n  #if __GNUC__ \u003e 4 || (__GNUC__ \u003d\u003d 4 \u0026\u0026 __GNUC_MINOR__ \u003d\u003e 2)\n\nIf you add patch level, it gets this ugly:\n\n  #if __GNUC__ \u003e 4 || (__GNUC__ \u003d\u003d 4 \u0026\u0026 (__GNUC_MINOR__ \u003e 2 || \\\n      __GNUC_MINOR__ \u003d\u003d 2 __GNUC_PATCHLEVEL__ \u003e\u003d 1))\n\nAs opposed to:\n\n  #if GCC_VERSION \u003e\u003d 40201\n\nWhile having separate headers for gcc 3 \u0026 4 eliminates some of this\nverbosity, they can still be cleaned up by this.\n\nSee also:\n\n  http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "ff624a813eef9f51a8d4f3dd8e4f12db9286433d",
      "tree": "e73f38857a8ca7bad5a5e0c71f7b7e3c817d0630",
      "parents": [
        "3876a0de0e42e33a0008d4f245474f789eae8499"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 30 10:20:01 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Apr 03 11:58:46 2014 -0700"
      },
      "message": "ext4: atomically set inode-\u003ei_flags in ext4_set_inode_flags()\n\ncommit 00a1a053ebe5febcfc2ec498bd894f035ad2aa06 upstream.\n\nUse cmpxchg() to atomically set i_flags instead of clearing out the\nS_IMMUTABLE, S_APPEND, etc. flags and then setting them from the\nEXT4_IMMUTABLE_FL, EXT4_APPEND_FL flags, since this opens up a race\nwhere an immutable file has the immutable flag cleared for a brief\nwindow of time.\n\nReported-by: John Sullivan \u003cjsrhbz@kanargh.force9.co.uk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7c0a02e992288885502a4795d42c99e3a2ee7141",
      "tree": "60b7388e4ebadf6710593dbac98800cd23f27109",
      "parents": [
        "212b46549b387fb63b81d0209c3d4db9df4c985f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Jul 27 03:53:54 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Mar 23 21:37:08 2014 -0700"
      },
      "message": "jiffies: Avoid undefined behavior from signed overflow\n\ncommit 5a581b367b5df0531265311fc681c2abd377e5e6 upstream.\n\nAccording to the C standard 3.4.3p3, overflow of a signed integer results\nin undefined behavior.  This commit therefore changes the definitions\nof time_after(), time_after_eq(), time_after64(), and time_after_eq64()\nto avoid this undefined behavior.  The trick is that the subtraction\nis done using unsigned arithmetic, which according to 6.2.5p9 cannot\noverflow because it is defined as modulo arithmetic.  This has the added\n(though admittedly quite small) benefit of shortening four lines of code\nby four characters each.\n\nNote that the C standard considers the cast from unsigned to\nsigned to be implementation-defined, see 6.3.1.3p3.  However, on a\ntwo\u0027s-complement system, an implementation that defines anything other\nthan a reinterpretation of the bits is free to come to me, and I will be\nhappy to act as a witness for its being committed to an insane asylum.\n(Although I have nothing against saturating arithmetic or signals in some\ncases, these things really should not be the default when compiling an\noperating-system kernel.)\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Kevin Easton \u003ckevin@guarana.org\u003e\n[ paulmck: Included time_after64() and time_after_eq64(), as suggested\n  by Eric Dumazet, also fixed commit message.]\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nRuchi Kandoi \u003ckandoiruchi@google.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f8637162b3632012f6d418076e84701086fb83b5",
      "tree": "4ddbc92b65d7d0a88a3154ca97a98cb89426d153",
      "parents": [
        "f37058b88772ed4de812d1716634649ee1e6480e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 07 10:19:57 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Mar 23 21:37:06 2014 -0700"
      },
      "message": "firewire: don\u0027t use PREPARE_DELAYED_WORK\n\ncommit 70044d71d31d6973665ced5be04ef39ac1c09a48 upstream.\n\nPREPARE_[DELAYED_]WORK() are being phased out.  They have few users\nand a nasty surprise in terms of reentrancy guarantee as workqueue\nconsiders work items to be different if they don\u0027t have the same work\nfunction.\n\nfirewire core-device and sbp2 have been been multiplexing work items\nwith multiple work functions.  Introduce fw_device_workfn() and\nsbp2_lu_workfn() which invoke fw_device-\u003eworkfn and\nsbp2_logical_unit-\u003eworkfn respectively and always use the two\nfunctions as the work functions and update the users to set the\n-\u003eworkfn fields instead of overriding work functions using\nPREPARE_DELAYED_WORK().\n\nThis fixes a variety of possible regressions since a2c1c57be8d9\n\"workqueue: consider work function when searching for busy work items\"\ndue to which fw_workqueue lost its required non-reentrancy property.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: linux1394-devel@lists.sourceforge.net\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a299804140325db7b93173419b0724056b60f34d",
      "tree": "bd83dcad3466c51e0f3a731ec15b5b09be562814",
      "parents": [
        "c5ad4fdec0ae15d197508185643c68470868121d"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 26 13:37:38 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Mar 23 21:37:06 2014 -0700"
      },
      "message": "tracing: Do not add event files for modules that fail tracepoints\n\ncommit 45ab2813d40d88fc575e753c38478de242d03f88 upstream.\n\nIf a module fails to add its tracepoints due to module tainting, do not\ncreate the module event infrastructure in the debugfs directory. As the events\nwill not work and worse yet, they will silently fail, making the user wonder\nwhy the events they enable do not display anything.\n\nHaving a warning on module load and the events not visible to the users\nwill make the cause of the problem much clearer.\n\nLink: http://lkml.kernel.org/r/20140227154923.265882695@goodmis.org\n\nFixes: 6d723736e472 \"tracing/events: add support for modules to TRACE_EVENT\"\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "50e97121b728014dfbc34f07d1ac5a507466a2b7",
      "tree": "09bd01313569381c361418a1fb7715f2c883f7aa",
      "parents": [
        "b0f9634dcc55be0ad7cfbc96c790bad780bd463d"
      ],
      "author": {
        "name": "Paul Clements",
        "email": "paul.clements@steeleye.com",
        "time": "Wed Jul 03 15:09:04 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:10:06 2014 -0700"
      },
      "message": "nbd: correct disconnect behavior\n\ncommit c378f70adbc1bbecd9e6db145019f14b2f688c7c upstream.\n\nCurrently, when a disconnect is requested by the user (via NBD_DISCONNECT\nioctl) the return from NBD_DO_IT is undefined (it is usually one of\nseveral error codes).  This means that nbd-client does not know if a\nmanual disconnect was performed or whether a network error occurred.\nBecause of this, nbd-client\u0027s persist mode (which tries to reconnect after\nerror, but not after manual disconnect) does not always work correctly.\n\nThis change fixes this by causing NBD_DO_IT to always return 0 if a user\nrequests a disconnect.  This means that nbd-client can correctly either\npersist the connection (if an error occurred) or disconnect (if the user\nrequested it).\n\nSigned-off-by: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nAcked-by: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[xr: Backported to 3.4: adjust context]\nSigned-off-by: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "ebdc12a0b5ed501c23b52b1ab5d28aea681badcd",
      "tree": "2b30194a0d3fcca2271a117a24af8f5bd1a884ac",
      "parents": [
        "d7d659d6baad472a8e810412e0c27cafe899bde9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Apr 03 22:02:52 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:10:05 2014 -0700"
      },
      "message": "ext4/jbd2: don\u0027t wait (forever) for stale tid caused by wraparound\n\ncommit d76a3a77113db020d9bb1e894822869410450bd9 upstream.\n\nIn the case where an inode has a very stale transaction id (tid) in\ni_datasync_tid or i_sync_tid, it\u0027s possible that after a very large\n(2**31) number of transactions, that the tid number space might wrap,\ncausing tid_geq()\u0027s calculations to fail.\n\nCommit deeeaf13 \"jbd2: fix fsync() tid wraparound bug\", later modified\nby commit e7b04ac0 \"jbd2: don\u0027t wake kjournald unnecessarily\",\nattempted to fix this problem, but it only avoided kjournald spinning\nforever by fixing the logic in jbd2_log_start_commit().\n\nUnfortunately, in the codepaths in fs/ext4/fsync.c and fs/ext4/inode.c\nthat might call jbd2_log_start_commit() with a stale tid, those\nfunctions will subsequently call jbd2_log_wait_commit() with the same\nstale tid, and then wait for a very long time.  To fix this, we\nreplace the calls to jbd2_log_start_commit() and\njbd2_log_wait_commit() with a call to a new function,\njbd2_complete_transaction(), which will correctly handle stale tid\u0027s.\n\nAs a bonus, jbd2_complete_transaction() will avoid locking\nj_state_lock for writing unless a commit needs to be started.  This\nshould have a small (but probably not measurable) improvement for\next4\u0027s scalability.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nReported-by: George Barnett \u003cgbarnett@atlassian.com\u003e\n[bwh: Backported to 3.2: adjust context]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "71a2068595ac1e8c45e97dff47df0148c2acbbfc",
      "tree": "8121b3e7d92511c88b684f79118b035a25d7ea8e",
      "parents": [
        "2f590c47013d610800770be179b8fbfd7c6bb1f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 25 11:48:32 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:10:04 2014 -0700"
      },
      "message": "cgroup: fix RCU accesses to task-\u003ecgroups\n\ncommit 14611e51a57df10240817d8ada510842faf0ec51 upstream.\n\ntask-\u003ecgroups is a RCU pointer pointing to struct css_set.  A task\nswitches to a different css_set on cgroup migration but a css_set\ndoesn\u0027t change once created and its pointers to cgroup_subsys_states\naren\u0027t RCU protected.\n\ntask_subsys_state[_check]() is the macro to acquire css given a task\nand subsys_id pair.  It RCU-dereferences task-\u003ecgroups-\u003esubsys[] not\ntask-\u003ecgroups, so the RCU pointer task-\u003ecgroups ends up being\ndereferenced without read_barrier_depends() after it.  It\u0027s broken.\n\nFix it by introducing task_css_set[_check]() which does\nRCU-dereference on task-\u003ecgroups.  task_subsys_state[_check]() is\nreimplemented to directly dereference -\u003esubsys[] of the css_set\nreturned from task_css_set[_check]().\n\nThis removes some of sparse RCU warnings in cgroup.\n\nv2: Fixed unbalanced parenthsis and there\u0027s no need to use\n    rcu_dereference_raw() when !CONFIG_PROVE_RCU.  Both spotted by Li.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n[bwh: Backported to 3.2:\n - Adjust context\n - Remove CONFIG_PROVE_RCU condition\n - s/lockdep_is_held(\u0026cgroup_mutex)/cgroup_lock_is_held()/]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "30ec268be37bdb5b1614cce40af8083f1a7c27f3",
      "tree": "0304a8573785798584cbd36ed30f69621410ba64",
      "parents": [
        "f47929fd5093c4b5c134ff2b2811ae327102bafd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 16 15:03:14 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:10:03 2014 -0700"
      },
      "message": "cgroup: cgroup_subsys-\u003efork() should be called after the task is added to css_set\n\ncommit 5edee61edeaaebafe584f8fb7074c1ef4658596b upstream.\n\ncgroup core has a bug which violates a basic rule about event\nnotifications - when a new entity needs to be added, you add that to\nthe notification list first and then make the new entity conform to\nthe current state.  If done in the reverse order, an event happening\ninbetween will be lost.\n\ncgroup_subsys-\u003efork() is invoked way before the new task is added to\nthe css_set.  Currently, cgroup_freezer is the only user of -\u003efork()\nand uses it to make new tasks conform to the current state of the\nfreezer.  If FROZEN state is requested while fork is in progress\nbetween cgroup_fork_callbacks() and cgroup_post_fork(), the child\ncould escape freezing - the cgroup isn\u0027t frozen when -\u003efork() is\ncalled and the freezer couldn\u0027t see the new task on the css_set.\n\nThis patch moves cgroup_subsys-\u003efork() invocation to\ncgroup_post_fork() after the new task is added to the css_set.\ncgroup_fork_callbacks() is removed.\n\nBecause now a task may be migrated during cgroup_subsys-\u003efork(),\nfreezer_fork() is updated so that it adheres to the usual RCU locking\nand the rather pointless comment on why locking can be different there\nis removed (if it doesn\u0027t make anything simpler, why even bother?).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n[hq: Backported to 3.4:\n - Adjust context\n - Iterate over first CGROUP_BUILTIN_SUBSYS_COUNT elements of subsys]\nSigned-off-by: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "29a3cd46644ec8098dbe1c12f89643b5c11831a9",
      "tree": "a2ad3a1aa7ec42ce691a100ab629220b42a89ee7",
      "parents": [
        "32e66c065179e598c0e692f4d57ded48715e0d99"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sat Feb 22 10:33:26 2014 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:09:59 2014 -0700"
      },
      "message": "net: ip, ipv6: handle gso skbs in forwarding path\n\ncommit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream.\n\n[ use zero netdev_feature mask to avoid backport of\n  netif_skb_dev_features function ]\n\nMarcelo Ricardo Leitner reported problems when the forwarding link path\nhas a lower mtu than the incoming one if the inbound interface supports GRO.\n\nGiven:\nHost \u003cmtu1500\u003e R1 \u003cmtu1200\u003e R2\n\nHost sends tcp stream which is routed via R1 and R2.  R1 performs GRO.\n\nIn this case, the kernel will fail to send ICMP fragmentation needed\nmessages (or pkt too big for ipv6), as GSO packets currently bypass dstmtu\nchecks in forward path. Instead, Linux tries to send out packets exceeding\nthe mtu.\n\nWhen locking route MTU on Host (i.e., no ipv4 DF bit set), R1 does\nnot fragment the packets when forwarding, and again tries to send out\npackets exceeding R1-R2 link mtu.\n\nThis alters the forwarding dstmtu checks to take the individual gso\nsegment lengths into account.\n\nFor ipv6, we send out pkt too big error for gso if the individual\nsegments are too big.\n\nFor ipv4, we either send icmp fragmentation needed, or, if the DF bit\nis not set, perform software segmentation and let the output path\ncreate fragments when the packet is leaving the machine.\nIt is not 100% correct as the error message will contain the headers of\nthe GRO skb instead of the original/segmented one, but it seems to\nwork fine in my (limited) tests.\n\nEric Dumazet suggested to simply shrink mss via -\u003egso_size to avoid\nsofware segmentation.\n\nHowever it turns out that skb_segment() assumes skb nr_frags is related\nto mss size so we would BUG there.  I don\u0027t want to mess with it considering\nHerbert and Eric disagree on what the correct behavior should be.\n\nHannes Frederic Sowa notes that when we would shrink gso_size\nskb_segment would then also need to deal with the case where\nSKB_MAX_FRAGS would be exceeded.\n\nThis uses sofware segmentation in the forward path when we hit ipv4\nnon-DF packets and the outgoing link mtu is too small.  Its not perfect,\nbut given the lack of bug reports wrt. GRO fwd being broken this is a\nrare case anyway.  Also its not like this could not be improved later\nonce the dust settles.\n\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nReported-by: Marcelo Ricardo Leitner \u003cmleitner@redhat.com\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "32e66c065179e598c0e692f4d57ded48715e0d99",
      "tree": "23e5a25a13b43a59e721f2ad2814d1ec46d11eb2",
      "parents": [
        "19e48381ab5da05c5fb398336a90a52a2b623cdc"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Sat Feb 22 10:33:25 2014 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Mar 11 16:09:59 2014 -0700"
      },
      "message": "net: add and use skb_gso_transport_seglen()\n\ncommit de960aa9ab4decc3304959f69533eef64d05d8e8 upstream.\n\n[ no skb_gso_seglen helper in 3.4, leave tbf alone ]\n\nThis moves part of Eric Dumazets skb_gso_seglen helper from tbf sched to\nskbuff core so it may be reused by upcoming ip forwarding path patch.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f5a4c4b79e57f875b6788f6f8352ca246bfd8450",
      "tree": "936b2200d4581b36faa0c94fab560013486885be",
      "parents": [
        "e2d51f27e382be7b70a755f3ea2fbbeacdb50834"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 17 17:15:29 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "sched/nohz: Fix rq-\u003ecpu_load calculations some more\n\ncommit 5aaa0b7a2ed5b12692c9ffb5222182bd558d3146 upstream.\n\nFollow up on commit 556061b00 (\"sched/nohz: Fix rq-\u003ecpu_load[]\ncalculations\") since while that fixed the busy case it regressed the\nmostly idle case.\n\nAdd a callback from the nohz exit to also age the rq-\u003ecpu_load[]\narray. This closes the hole where either there was no nohz load\nbalance pass during the nohz, or there was a \u0027significant\u0027 amount of\nidle time between the last nohz balance and the nohz exit.\n\nSo we\u0027ll update unconditionally from the tick to not insert any\naccidental 0 load periods while busy, and we try and catch up from\nnohz idle balance and nohz exit. Both these are still prone to missing\na jiffy, but that has always been the case.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nLink: http://lkml.kernel.org/n/tip-kt0trz0apodbf84ucjfdbr1a@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    }
  ],
  "next": "dbf3239455b155c3e72deacda93ef3a041e190c9"
}
