)]}'
{
  "log": [
    {
      "commit": "b0e1b91999e3c60b1adf93f7e9c34db980b3e812",
      "tree": "c542ec66a91e69da4abb626bff38184322c67727",
      "parents": [
        "1e83f6864febc1027394ed38e7a24af87a912528",
        "b4d27f2f2e68afea0fc828ba42f41b3efa231e42"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:12:39 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:13:53 2015 -0600"
      },
      "message": "Merge remote-tracking branch \u0027cm/cm-12.0\u0027 into HEAD\n\nChange-Id: Ibcea3bd8608b82692494e87b5ff256a254807520\n"
    },
    {
      "commit": "715d05f7c9a84f89d00835c7b6c393bf32f45f6a",
      "tree": "95b234f490e6cecc7f31435b8f99b7aa2c786e6f",
      "parents": [
        "e0cea84ef8c3cf1d417c952633d6a4a07c798709"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Jan 19 11:06:13 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Feb 23 10:53:58 2015 -0500"
      },
      "message": "fs: introduce a generic shutdown ioctl\n\nThis patch introduces a generic ioctl for fs shutdown.\n\nChange-Id: I452ee16b0078a2704b8026962e5bd07b67710c06\n"
    },
    {
      "commit": "e0cea84ef8c3cf1d417c952633d6a4a07c798709",
      "tree": "a57febee5c9aec375c68f3904bcb3599514c32a9",
      "parents": [
        "df20f77453c33fab57d3a2ed67a5723dd27f36d2"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Wed Feb 18 20:43:11 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Feb 23 10:53:57 2015 -0500"
      },
      "message": "f2fs: update from git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git\n\nUpdated as of commit b3b06a14a26af368dd58f9265cf5a9927067b768\n\nChange-Id: I3dfbbf52d069a397de662058bb72bf96c6393bc6\n"
    },
    {
      "commit": "60914bc50c6e550dbeaf6ddf044a7888c345de14",
      "tree": "519e5eedd074c6854b7d2cc385ceb79a2f221dbc",
      "parents": [
        "da07cddb22c983161d7e7f1039625edf1076ccc2"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 19:35:41 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Feb 15 09:57:01 2015 -0500"
      },
      "message": "net: ipv6: autoconf routes into per-device tables\n\nCurrently, IPv6 router discovery always puts routes into\nRT6_TABLE_MAIN. This causes problems for connection managers\nthat want to support multiple simultaneous network connections\nand want control over which one is used by default (e.g., wifi\nand wired).\n\nTo work around this connection managers typically take the routes\nthey prefer and copy them to static routes with low metrics in\nthe main table. This puts the burden on the connection manager\nto watch netlink to see if the routes have changed, delete the\nroutes when their lifetime expires, etc.\n\nInstead, this patch adds a per-interface sysctl to have the\nkernel put autoconf routes into different tables. This allows\neach interface to have its own autoconf table, and choosing the\ndefault interface (or using different interfaces at the same\ntime for different types of traffic) can be done using\nappropriate ip rules.\n\nThe sysctl behaves as follows:\n\n- \u003d 0: default. Put routes into RT6_TABLE_MAIN as before.\n- \u003e 0: manual. Put routes into the specified table.\n- \u003c 0: automatic. Add the absolute value of the sysctl to the\n       device\u0027s ifindex, and use that table.\n\nThe automatic mode is most useful in conjunction with\nnet.ipv6.conf.default.accept_ra_rt_table. A connection manager\nor distribution could set it to, say, -100 on boot, and\nthereafter just use IP rules.\n\nChange-Id: I093d39fb06ec413905dc0d0d5792c1bc5d5c73a9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\n\nConflicts:\n\tinclude/linux/ipv6.h\n\tnet/ipv6/route.c\n"
    },
    {
      "commit": "acac1ffdf00394383cd76cd1cdcd9d04545ba8ab",
      "tree": "7586873af282935f5113f490fa74c7977d0b27f4",
      "parents": [
        "8d03d55473e83315c628cc6e3309fc304f4713a4"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:29:42 2015 -0500"
      },
      "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"
    },
    {
      "commit": "8d03d55473e83315c628cc6e3309fc304f4713a4",
      "tree": "6e715399e6a1db04b38c05b1d57039fd488a8aaf",
      "parents": [
        "ccb4b8c0e06a81eaa15ae417cf80a2a27d252906"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Sat Jun 09 02:40:03 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:20:58 2015 -0500"
      },
      "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": "471e11aee28aa195d78ee0b6f935dfa811d94eb2",
      "tree": "c5828d8736b6d4fc48051cf5a055c26bca77655b",
      "parents": [
        "48a32e5fbd4c0bd5df5694fc8fdd2e0c95953f82"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Jul 31 16:45:02 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:14:40 2015 -0500"
      },
      "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"
    },
    {
      "commit": "55675122daf6c1099b339d2faae4bdc668cf5344",
      "tree": "ad9bcdaf268ade8c009d9763501d8536c7fb4042",
      "parents": [
        "385fa1a3dfc9a909a021b98f17550b4bbf7a0b63"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Fri Aug 22 16:17:38 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:40:02 2015 -0500"
      },
      "message": "f2fs: use macro for code readability\n\nThis patch introduces DEF_NIDS_PER_INODE/GET_ORPHAN_BLOCKS/F2FS_CP_PACKS macro\ninstead of numbers in code for readability.\n\nchange log from v1:\n o fix typo pointed out by Jaegeuk Kim.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "7ec82c4cca030f5e3df1d686dc9f4994fb761edc",
      "tree": "24dda82e868a91487fded588da14525aea59e81d",
      "parents": [
        "15a4557edf8ff94102b1b8a691cba00b4a5fcfe0"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Wed Aug 20 18:36:46 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:40:00 2015 -0500"
      },
      "message": "f2fs: fix incorrect calculation with total/free inode num\n\nTheoretically, our total inodes number is the same as total node number, but\nthere are three node ids are reserved in f2fs, they are 0, 1 (node nid), and 2\n(meta nid), and they should never be used by user, so our total/free inode\nnumber calculated in -\u003estatfs is wrong.\n\nThis patch indroduces F2FS_RESERVED_NODE_NUM and then fixes this issue by\nrecalculating total/free inode number with the macro.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "c8f5ffb072797e95452cb27bc2ab7571b1aa4942",
      "tree": "cf3cf82f4c991527e07aa3e0e5286ca317285248",
      "parents": [
        "53826b575fc02687d3a444ed57a75cd31e561873"
      ],
      "author": {
        "name": "Changman Lee",
        "email": "cm224.lee@samsung.com",
        "time": "Mon May 12 12:27:43 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:36 2015 -0500"
      },
      "message": "f2fs: large volume support\n\nf2fs\u0027s cp has one page which consists of struct f2fs_checkpoint and\nversion bitmap of sit and nat. To support lots of segments, we need more\nblocks for sit bitmap. So let\u0027s arrange sit bitmap as following:\n+-----------------+------------+\n| f2fs_checkpoint | sit bitmap |\n| + nat bitmap    |            |\n+-----------------+------------+\n0                 4k        N blocks\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: simple code change for readability]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "2568ffc2a36317fb02a6007c98cb10d1a4d56792",
      "tree": "24c12e535ff3393498746f41acb59ef94426458e",
      "parents": [
        "26d712d5df37ae866a87a200d6f5599b4ac344c6"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Wed May 28 08:56:09 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:34 2015 -0500"
      },
      "message": "f2fs: avoid overflow when large directory feathure is enabled\n\nWhen large directory feathure is enable, We have one case which could cause\noverflow in dir_buckets() as following:\nspecial case: level + dir_level \u003e\u003d 32 and level \u003c MAX_DIR_HASH_DEPTH / 2.\n\nHere we define MAX_DIR_BUCKETS to limit the return value when the condition\ncould trigger potential overflow.\n\nChanges from V1\n o modify description of calculation in f2fs.txt suggested by Changman Lee.\n\nSuggested-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "90e712d7569ced128aea323fbdfb2cfd28a70e32",
      "tree": "566a90bca1cefe9b9e5324e1e8c0e31ae3f3486e",
      "parents": [
        "8edabc7461f7bb1ec63e332c27cd71c1019aeb4f"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Sat Apr 26 19:59:52 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:36:50 2015 -0500"
      },
      "message": "f2fs: introduce help macro ADDRS_PER_PAGE()\n\nIntroduce help macro ADDRS_PER_PAGE() to get the number of address pointers in\ndirect node or inode.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "008f8a1516b6a6ba6a25ea2068ae208da62bc1fa",
      "tree": "21a5d7267f6190b757e3efcef486f92dd5004458",
      "parents": [
        "158c19e3ccf2eb5c1fb0421fd328847fd254c5ce"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk.kim@samsung.com",
        "time": "Thu Feb 27 18:20:00 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:35:12 2015 -0500"
      },
      "message": "f2fs: introduce large directory support\n\nThis patch introduces an i_dir_level field to support large directory.\n\nPreviously, f2fs maintains multi-level hash tables to find a dentry quickly\nfrom a bunch of chiild dentries in a directory, and the hash tables consist of\nthe following tree structure as below.\n\nIn Documentation/filesystems/f2fs.txt,\n\n----------------------\nA : bucket\nB : block\nN : MAX_DIR_HASH_DEPTH\n----------------------\n\nlevel #0   | A(2B)\n           |\nlevel #1   | A(2B) - A(2B)\n           |\nlevel #2   | A(2B) - A(2B) - A(2B) - A(2B)\n     .     |   .       .       .       .\nlevel #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)\n\nBut, if we can guess that a directory will handle a number of child files,\nwe don\u0027t need to traverse the tree from level #0 to #N all the time.\nSince the lower level tables contain relatively small number of dentries,\nthe miss ratio of the target dentry is likely to be high.\n\nIn order to avoid that, we can configure the hash tables sparsely from level #0\nlike this.\n\nlevel #0   | A(2B) - A(2B) - A(2B) - A(2B)\n\nlevel #1   | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)\n\nWith this structure, we can skip the ineffective tree searches in lower level\nhash tables.\n\nThis patch adds just a facility for this by introducing i_dir_level in\nf2fs_inode.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "b1a94e804ff55351101ea9ae7797c874ab92ef42",
      "tree": "3108bedfcc1eb99c4775bfc92ec99a09d3d9b06f",
      "parents": [
        "8005ecc7ea4f6004f217a39425a241ac8a63633c"
      ],
      "author": {
        "name": "Changman Lee",
        "email": "cm224.lee@samsung.com",
        "time": "Fri Nov 15 10:42:51 2013 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:06:08 2015 -0500"
      },
      "message": "f2fs: Update to version in 3.14\n\nf2fs: introduce __find_rev_next(_zero)_bit\n\nWhen f2fs_set_bit is used, in a byte MSB and LSB is reversed,\nin that case we can use __find_rev_next_bit or __find_rev_next_zero_bit.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: change the function names]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: improve searching speed of __next_free_blkoff\n\nTo find a zero bit using the result of OR operation between ckpt_valid_map\nand cur_valid_map is more fast than find a zero bit in each bitmap.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: adjust changed function name]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a slab cache entry for small discards\n\nThis patch adds a slab cache entry for small discards.\n\nEach entry consists of:\n\nstruct discard_entry {\n\tstruct list_head list;\t/* list head */\n\tblock_t blkaddr;\t/* block address to be discarded */\n\tint len;\t\t/* # of consecutive blocks of the discard */\n};\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add key functions for small discards\n\nThis patch adds key functions to activate the small discard feature.\n\nNote that this procedure is conducted during the checkpoint only.\n\nIn flush_sit_entries(), when a new dirty sit entry is flushed, f2fs calls\nadd_discard_addrs() which searches candidates to be discarded.\nThe candidates should be marked *invalidated* and also previous checkpoint\nrecognizes it as *valid*.\n\nAt the end of a checkpoint procedure, f2fs throws discards based on the\ndiscard entry list.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a sysfs entry to control max_discards\n\nIf frequent small discards are issued to the device, the performance would\nbe degraded significantly.\nSo, this patch adds a sysfs entry to control the number of discards to be\nissued during a checkpoint procedure.\n\nBy default, f2fs does not issue any small discards, which means max_discards\nis zero.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce f2fs_issue_discard() to clean up\n\nChange log from v1:\n o fix 32bit drops reported by Dan Carpenter\n\nThis patch adds f2fs_issue_discard() to clean up blkdev_issue_discard() flows.\n\nDan carpenter reported:\n\"block_t is a 32 bit type and sector_t is a 64 bit type.  The upper 32\nbits of the sector_t are not used because the shift will wrap.\"\n\nBug-Reported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a tracepoint for f2fs_issue_discard\n\nThis patch adds a tracepoint for f2fs_issue_discard.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use f2fs_put_page to release page for uniform style\n\nWe should use f2fs_put_page to release page for uniform style of f2fs code.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: clean up the do_submit_bio flow\n\nThis patch introduces PAGE_TYPE_OF_BIO() and cleans up do_submit_bio() with it.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use sbi-\u003ewrite_mutex for write bios\n\nThis patch removes an unnecessary semaphore (i.e., sbi-\u003ebio_sem).\nThere is no reason to use the semaphore when f2fs submits read and write IOs.\nInstead, let\u0027s use a write mutex and cover the sbi-\u003ebio[] by the lock.\n\nChange log from v1:\n o split write_mutex suggested by Chao Yu\n\nChao described,\n\"All DATA/NODE/META bio buffers in superblock is protected by\n\u0027sbi-\u003ewrite_mutex\u0027, but each bio buffer area is independent, So we\nshould split write_mutex to three for DATA/NODE/META.\"\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: disable the extent cache ops on high fragmented files\n\nThe f2fs manages an extent cache to search a number of consecutive data blocks\nvery quickly.\n\nHowever it conducts unnecessary cache operations if the file is highly\nfragmented with no valid extent cache.\n\nIn such the case, we don\u0027t need to handle the extent cache, but just can disable\nthe cache facility.\n\nNevertheless, this patch gives one more chance to enable the extent cache.\n\nFor example,\n1. create a file\n2. write data sequentially which produces a large valid extent cache\n3. update some data, resulting in a fragmented extent\n4. if the fragmented extent is too small, then drop extent cache\n5. close the file\n\n6. open the file again\n7. give another chance to make a new extent cache\n8. write data sequentially again which creates another big extent cache.\n...\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce a bio array for per-page write bios\n\nThe f2fs has three bio types, NODE, DATA, and META, and manages some data\nstructures per each bio types.\n\nThe codes are a little bit messy, thus, this patch introduces a bio array\nwhich groups individual data structures as follows.\n\nstruct f2fs_bio_info {\n\tstruct bio *bio;\t\t/* bios to merge */\n\tsector_t last_block_in_bio;\t/* last block number */\n\tstruct mutex io_mutex;\t\t/* mutex for bio */\n};\n\nstruct f2fs_sb_info {\n\t...\n\tstruct f2fs_bio_info write_io[NR_PAGE_TYPE];\t/* for write bios */\n\t...\n};\n\nThe code changes from this new data structure are trivial.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert remove_inode_page to void\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert dev_valid_block_count to void\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert inc/dec_valid_node_count to inc/dec one count\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: simplify write_orphan_inodes for better readable\n\nSimplify write_orphan_inodes for better readable. Because we hold the\norphan_inode_mutex, so it\u0027s safe to use list_for_each_entry instead of\nlist_for_each_safe.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move the list_head initialization into the lock protection region\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new function to support for merging contiguous read\n\nFor better read performance, we add a new function to support for merging\ncontiguous read as the one for write.\n\nv1--\u003ev2:\n o add declarations here as Gu Zheng suggested.\n o use new structure f2fs_bio_info introduced by Jaegeuk Kim.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nAcked-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\n\nf2fs: merge read IOs at ra_nat_pages()\n\nChange log from v1:\n  o add mark_page_accessed() not to reclaim the nat pages.\n\nThis patch changes the policy of submitting read bios at ra_nat_pages.\n\nPreviously, f2fs submits small read bios with block plugging.\nBut, with this patch, f2fs itself merges read bios first and then submits a\nlarge bio, which can reduce the bio handling overheads.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: simplify IS_DATASEG and IS_NODESEG macro\n\nIt is not efficient comparing each segment type to find node or data.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: remove unnecessary white spaces]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: adds a tracepoint for submit_read_page\n\nThis patch adds a tracepoint for submit_read_page.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: integrate tracepoints of f2fs_submit_read(_write)_page]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: adds a tracepoint for f2fs_submit_read_bio\n\nThis patch adds a tracepoint for f2fs_submit_read_bio.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: integrate tracepoints of f2fs_submit_read(_write)_bio]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: read contiguous sit entry pages by merging for mount performance\n\nPreviously we read sit entries page one by one, this method lost the chance\nof reading contiguous page together. So we read pages as contiguous as\npossible for better mount performance.\n\nchange log:\n o merge judgements/use \u0027Continue\u0027 or \u0027Break\u0027 instead of \u0027Goto\u0027 as Gu Zheng\n   suggested.\n o add mark_page_accessed() before release page to delay VM reclaiming.\n o remove \u0027*order\u0027 for simplification of function as Jaegeuk Kim suggested.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: fix a bug on the block address calculation]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid lock debugging overhead\n\nIf CONFIG_F2FS_CHECK_FS is unset, we don\u0027t need to add any debugging overhead.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new function: f2fs_reserve_block()\n\nAdd the function f2fs_reserve_block() to easily reserve new blocks, and\nuse it to clean up more codes.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add detailed information of bio types in the tracepoints\n\nThis patch inserts information of bio types in more detail.\nSo, we can now see REQ_META and REQ_PRIO too.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: send REQ_META or REQ_PRIO when reading meta area\n\nLet\u0027s send REQ_META or REQ_PRIO when reading meta area such as NAT/SIT\netc.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add flags and helpers to support inline data\n\nAdd new inode flags F2FS_INLINE_DATA and FI_INLINE_DATA to indicate\nwhether the inode has inline data.\n\nInline data makes use of inode block\u0027s data indices region to save small\nfile. Currently there are 923 data indices in an inode block. Since\ninline xattr has made use of the last 50 indices to save its data, there\nare 873 indices left which can be used for inline data. When\nFI_INLINE_DATA is set, the layout of inode block\u0027s indices region is\nlike below:\n\n+-----------------+\n|                 | Reserved. reserve_new_block() will make use of\n| i_addr[0]       | i_addr[0] when we need to reserve a new data block\n|                 | to convert inline data into regular one\u0027s.\n|-----------------|\n|                 | Used by inline data. A file whose size is less than\n| i_addr[1~872]   | 3488 bytes(~3.4k) and doesn\u0027t reserve extra\n|                 | blocks by fallocate() can be saved here.\n|-----------------|\n|                 |\n| i_addr[873~922] | Reserved for inline xattr\n|                 |\n+-----------------+\n\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new mount option: inline_data\n\nAdd a mount option: inline_data. If the mount option is set,\ndata of New created small files can be stored in their inode.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unnecessary return value\n\nLet\u0027s remove the unnecessary return value.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix a potential out of range issue\n\nFix a potential out of range issue introduced by commit:\n22fb72225a\nf2fs: simplify write_orphan_inodes for better readable\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: bug fix on bit overflow from 32bits to 64bits\n\nThis patch fixes some bit overflows by the shift operations.\n\nDan Carpenter reported potential bugs on bit overflows as follows.\n\nfs/f2fs/segment.c:910 submit_write_page()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/checkpoint.c:429 get_valid_checkpoint()\n\twarn: should \u00271 \u003c\u003c ()\u0027 be a 64 bit type?\nfs/f2fs/data.c:408 f2fs_readpage()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/data.c:457 submit_read_page()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/data.c:525 get_data_block_ro()\n\twarn: should \u0027i \u003c\u003c blkbits\u0027 be a 64 bit type?\n\nBug-Reported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unnecessary condition checks\n\nThis patch removes the unnecessary condition checks on:\n\nfs/f2fs/gc.c:667 do_garbage_collect() warn: \u0027sum_page\u0027 isn\u0027t an ERR_PTR\nfs/f2fs/f2fs.h:795 f2fs_put_page() warn: \u0027page\u0027 isn\u0027t an ERR_PTR\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unneeded code in punch_hole\n\nBecause FALLOC_FL_PUNCH_HOLE flag must be ORed with FALLOC_FL_KEEP_SIZE\nin fallocate, so we could remove the useless \u0027keep size\u0027 branch code which\nwill never be excuted in punch_hole.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Fan Li \u003cfanofcode.li@samsung.com\u003e\n[Jaegeuk Kim: remove an unnecessary parameter togather]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to calculate incorrect max orphan number\n\nBecause we will write node summaries when do_checkpoint with umount flag,\nour number of max orphan blocks should minus NR_CURSEG_NODE_TYPE additional.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Shu Tan \u003cshu.tan@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: correct type of wait in struct bio_private\n\nThe void *wait in bio_private is used for waiting completion of checkpoint bio.\nSo we don\u0027t need to use its type as void, but declare it as completion type.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use true and false for boolean variable\n\nThe inode_page_locked should be a boolean variable.\n\nstruct dnode_of_data {\n\tstruct inode *inode;            /* vfs inode pointer */\n\tstruct page *inode_page;        /* its inode page, NULL is possible */\n\tstruct page *node_page;         /* cached direct node page */\n\tnid_t nid;                      /* node id of the direct node block */\n\tunsigned int ofs_in_node;       /* data offset in the node page */\n\u003d\u003d\u003e\tbool inode_page_locked;         /* inode page is locked or not */\n\tblock_t data_blkaddr;           /* block address of the node block */\n};\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check return value of f2fs_readpage in find_data_page\n\nWe should return error if we do not get an updated page in find_date_page\nwhen f2fs_readpage failed.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert recover_orphan_inodes to void\n\nThe recover_orphan_inodes() returns no error all the time, so we don\u0027t need to\ncheck its errors.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the own bi_private allocation\n\nPreviously f2fs allocates its own bi_private data structure all the time even\nthough we don\u0027t use it. But, can we remove this bi_private allocation?\n\nThis patch removes such the additional bi_private allocation.\n\n1. Retrieve f2fs_sb_info from its page-\u003emapping-\u003ehost-\u003ei_sb.\n - This removes the usecases of bi_private in end_io.\n\n2. Use bi_private only when we really need it.\n - The bi_private is used only when the checkpoint procedure is conducted.\n - When conducting the checkpoint, f2fs submits a META_FLUSH bio to wait its bio\ncompletion.\n - Since we have no dependancies to remove bi_private now, let\u0027s just use\n bi_private pointer as the completion pointer.\n\nReviewed-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor bio-related operations\n\nThis patch integrates redundant bio operations on read and write IOs.\n\n1. Move bio-related codes to the top of data.c.\n2. Replace f2fs_submit_bio with f2fs_submit_merged_bio, which handles read\n   bios additionally.\n3. Introduce __submit_merged_bio to submit the merged bio.\n4. Change f2fs_readpage to f2fs_submit_page_bio.\n5. Introduce f2fs_submit_page_mbio to integrate previous submit_read_page and\n   submit_write_page.\n\nReviewed-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com \u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: readahead contiguous pages for restore_node_summary\n\nIf cp has no CP_UMOUNT_FLAG, we will read all pages in whole node segment\none by one, it makes low performance. So let\u0027s merge contiguous pages and\nreadahead for better performance.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: adjust the new bio operations]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove debufs dir if debugfs_create_file() failed\n\nWhen debugfs_create_file() failed in f2fs_create_root_stats(),\ndebugfs_root should be remove.\n\nSigned-off-by: Younger Liu \u003cliuyiyang@hisense.com\u003e\nCc: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: replace the debugfs_root with f2fs_debugfs_root\n\nThis minor change for the naming conventions of debugfs_root\nto avoid any possible conflicts to the other filesystem.\n\nSigned-off-by: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n[Jaegeuk Kim: change the patch name]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use inner macro GFP_F2FS_ZERO for simplification\n\nUse inner macro GFP_F2FS_ZERO to instead of GFP_NOFS | __GFP_ZERO for\nsimplification of code.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid unneeded page release for correct _count of page\n\nIn find_fsync_dnodes() and recover_data(), our flow is like this:\n\n-\u003ef2fs_submit_page_bio()\n\t-\u003e f2fs_put_page()\n\t\t-\u003e page_cache_release()\t---- page-\u003e_count declined to zero.\n-\u003e__free_pages()\n\t-\u003e put_page_testzero() ---- page-\u003e_count will be declined again.\n\nWe will get a segment fault in put_page_testzero when CONFIG_DEBUG_VM\nis on, or return MM with a bad page with wrong _count num.\n\nSo let\u0027s just release this page.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add unlikely() macro for compiler optimization\n\nAs we know, some of our branch condition will rarely be true. So we could add\n\u0027unlikely\u0027 to let compiler optimize these code, by this way we could drop\nunneeded \u0027jump\u0027 assemble code to improve performance.\n\nchange log:\n o add *unlikely* as many as possible across the whole source files at once\n   suggested by Jaegeuk Kim.\n\nSuggested-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add unlikely() macro for compiler more aggressively\n\nThis patch adds unlikely() macro into the most of codes.\nThe basic rule is to add that when:\n- checking unusual errors,\n- checking page mappings,\n- and the other unlikely conditions.\n\nChange log from v1:\n - Don\u0027t add unlikely for the NULL test and error test: advised by Andi Kleen.\n\nCc: Chao Yu \u003cchao2.yu@samsung.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: merge pages with the same sync_mode flag\n\nPreviously f2fs submits most of write requests using WRITE_SYNC, but f2fs_write_data_pages\nsubmits last write requests by sync_mode flags callers pass.\n\nThis causes a performance problem since continuous pages with different sync flags\ncan\u0027t be merged in cfq IO scheduler(thanks yu chao for pointing it out), and synchronous\nrequests often take more time.\n\nThis patch makes the following modifies to DATA writebacks:\n\n1. every page will be written back using the sync mode caller pass.\n2. only pages with the same sync mode can be merged in one bio request.\n\nThese changes are restricted to DATA pages.Other types of writebacks are modified\nTo remain synchronous.\n\nIn my test with tiotest, f2fs sequence write performance is improved by about 7%-10% ,\nand this patch has no obvious impact on other performance tests.\n\nSigned-off-by: Fan Li \u003cfanofcode.li@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor bio-\u003erw handling\n\nThis patch introduces f2fs_io_info to mitigate the complex parameter list.\n\nstruct f2fs_io_info {\n\tenum page_type type;\t\t/* contains DATA/NODE/META/META_FLUSH */\n\tint rw;\t\t\t\t/* contains R/RS/W/WS */\n\tint rw_flag;\t\t\t/* contains REQ_META/REQ_PRIO */\n}\n\n1. f2fs_write_data_pages\n - DATA\n - WRITE_SYNC is set when wbc-\u003eWB_SYNC_ALL.\n\n2. sync_node_pages\n - NODE\n - WRITE_SYNC all the time\n\n3. sync_meta_pages\n - META\n - WRITE_SYNC all the time\n - REQ_META | REQ_PRIO all the time\n\n ** f2fs_submit_merged_bio() handles META_FLUSH.\n\n4. ra_nat_pages, ra_sit_pages, ra_sum_pages\n - META\n - READ_SYNC\n\nCc: Fan Li \u003cfanofcode.li@samsung.com\u003e\nCc: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix the location of tracepoint\n\nWe need to get a trace before submit_bio, since its bi_sector is remapped during\nthe submit_bio.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: missing kmem_cache_destroy for discard_entry\n\ninsmod f2fs.ko is failed after insmod and rmmod firstly.\n\n$ sudo insmod fs/f2fs/f2fs.ko\ninsmod: error inserting \u0027fs/f2fs/f2fs.ko\u0027: -1 Cannot allocate memory\n\n-- dmesg --\nkmem_cache_sanity_check (free_nid): Cache name already exists.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce sysfs entry to control in-place-update policy\n\nThis patch introduces new sysfs entries for users to control the policy of\nin-place-updates, namely IPU, in f2fs.\n\nSometimes f2fs suffers from performance degradation due to its out-of-place\nupdate policy that produces many additional node block writes.\nIf the storage performance is very dependant on the amount of data writes\ninstead of IO patterns, we\u0027d better drop this out-of-place update policy.\n\nThis patch suggests 5 polcies and their triggering conditions as follows.\n\n[sysfs entry name \u003d ipu_policy]\n\n0: F2FS_IPU_FORCE       all the time,\n1: F2FS_IPU_SSR         if SSR mode is activated,\n2: F2FS_IPU_UTIL        if FS utilization is over threashold,\n3: F2FS_IPU_SSR_UTIL    if SSR mode is activated and FS utilization is over\n                        threashold,\n4: F2FS_IPU_DISABLE    disable IPU. (\u003ddefault option)\n\n[sysfs entry name \u003d min_ipu_util]\n\nThis parameter controls the threshold to trigger in-place-updates.\nThe number indicates percentage of the filesystem utilization, and used by\nF2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.\n\nFor more details, see need_inplace_update() in segment.h.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce a new direct_IO write path\n\nPreviously, f2fs doesn\u0027t support direct IOs with high performance, which throws\nevery write requests via the buffered write path, resulting in highly\nperformance degradation due to memory opeations like copy_from_user.\n\nThis patch introduces a new direct IO path in which every write requests are\nprocessed by generic blockdev_direct_IO() with enhanced get_block function.\n\nThe get_data_block() in f2fs handles:\n1. if original data blocks are allocates, then give them to blockdev.\n2. otherwise,\n  a. preallocate requested block addresses\n  b. do not use extent cache for better performance\n  c. give the block addresses to blockdev\n\nThis policy induces that:\n- new allocated data are sequentially written to the disk\n- updated data are randomly written to the disk.\n- f2fs gives consistency on its file meta, not file data.\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: write dirty meta pages collectively\n\nThis patch enhances writing dirty meta pages collectively in background.\nDuring the file data writes, it\u0027d better avoid to write small dirty meta pages\nfrequently.\nSo let\u0027s give a chance to collect a number of dirty meta pages for a while.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move all the bio initialization into __bio_alloc\n\nMove all the bio initialization into __bio_alloc, and some minor cleanups are\nalso added.\n\nv3:\n  Use \u0027bool\u0027 rather than \u0027int\u0027 as Kim suggested.\n\nv2:\n  Use \u0027is_read\u0027 rather than \u0027rw\u0027 as Yu Chao suggested.\n  Remove the needless initialization of bio-\u003ebi_private.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the rw_flag domain from f2fs_io_info\n\nWhen using the f2fs_io_info in the low level, we still need to merge the\nrw and rw_flag, so use the rw to hold all the io flags directly,\nand remove the rw_flag field.\n\nps.It is based on the previous patch:\nf2fs: move all the bio initialization into __bio_alloc\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: update several comments\n\nUpdate several comments:\n1. use f2fs_{un}lock_op install of mutex_{un}lock_op.\n2. update comment of get_data_block().\n3. update description of node offset.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to set wrong pino of inode when rename dir\n\nWhen we rename a dir to new name which is not exist previous,\nwe will set pino of parent inode with ino of child inode in f2fs_set_link.\nIt destroy consistency of pino, it should be fixed.\n\nThanks for previous work of Shu Tan.\n\nSigned-off-by: Shu Tan \u003cshu.tan@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check filename length in recover_dentry\n\nIn current flow, we will get Null return value of f2fs_find_entry in\nrecover_dentry when name.len is bigger than F2FS_NAME_LEN, and then we\nstill add this inode into its dir entry.\nTo avoid this situation, we must check filename length before we use it.\n\nAnother point is that we could remove the code of checking filename length\nIn f2fs_find_entry, because f2fs_lookup will be called previously to ensure of\nvalidity of filename length.\n\nV2:\n o add WARN_ON() as Jaegeuk Kim suggested.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce F2FS_INODE macro to get f2fs_inode\n\nThis patch introduces F2FS_INODE that returns struct f2fs_inode * from the inode\npage.\nBy using this macro, we can remove unnecessary casting codes like below.\n\n   struct f2fs_inode *ri \u003d \u0026F2FS_NODE(inode_page)-\u003ei;\n-\u003e struct f2fs_inode *ri \u003d F2FS_INODE(inode_page);\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: should put the dnode when NEW_ADDR is detected\n\nWhen get_dnode_of_data() in get_data_block() returns a successful dnode, we\nshould put the dnode.\nBut, previously, if its data block address is equal to NEW_ADDR, we didn\u0027t do\nthat, resulting in a deadlock condition.\nSo, this patch splits original error conditions with this case, and then calls\nf2fs_put_dnode before finishing the function.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check the blocksize before calling generic_direct_IO path\n\nThe f2fs supports 4KB block size. If user requests dwrite with under 4KB data,\nit allocates a new 4KB data block.\nHowever, f2fs doesn\u0027t add zero data into the untouched data area inside the\nnewly allocated data block.\n\nThis incurs an error during the xfstest #263 test as follow.\n\n263 12s ... [failed, exit status 1] - output mismatch (see 263.out.bad)\n\t--- 263.out\t2013-03-09 03:37:15.043967603 +0900\n\t+++ 263.out.bad\t2013-12-27 04:20:39.230203114 +0900\n\t@@ -1,3 +1,976 @@\n\tQA output created by 263\n\tfsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t-fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t+fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t+truncating to largest ever: 0x12a00\n\t+truncating to largest ever: 0x75400\n\t+fallocating to largest ever: 0x79cbf\n\t...\n\t(Run \u0027diff -u 263.out 263.out.bad\u0027 to see the entire diff)\n\tRan: 263\n\tFailures: 263\n\tFailed 1 of 1 tests\n\nIt turns out that, when the test tries to write 2KB data with dio, the new dio\npath allocates 4KB data block without filling zero data inside the remained 2KB\narea. Finally, the output file contains a garbage data for that region.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert max_orphans to a field of f2fs_sb_info\n\nPreviously, we need to calculate the max orphan num when we try to acquire an\norphan inode, but it\u0027s a stable value since the super block was inited. So\nconverting it to a field of f2fs_sb_info and use it directly when needed seems\na better choose.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: key functions to handle inline data\n\nFunctions to implement inline data read/write, and move inline data to\nnormal data block when file size exceeds inline data limitation.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: handle inline data operations\n\nHook inline data read/write, truncate, fallocate, setattr, etc.\n\nFiles need meet following 2 requirement to inline:\n 1) file size is not greater than MAX_INLINE_DATA;\n 2) file doesn\u0027t pre-allocate data blocks by fallocate().\n\nFI_INLINE_DATA will not be set while creating a new regular inode because\nmost of the files are bigger than ~3.4K. Set FI_INLINE_DATA only when\ndata is submitted to block layer, ranther than set it while creating a new\ninode, this also avoids converting data from inline to normal data block\nand vice versa.\n\nWhile writting inline data to inode block, the first data block should be\nreleased if the file has a block indexed by i_addr[0].\n\nOn the other hand, when a file operation is appied to a file with inline\ndata, we need to test if this file can remain inline by doing this\noperation, otherwise it should be convert into normal file by reserving\na new data block, copying inline data to this new block and clear\nFI_INLINE_DATA flag. Because reserve a new data block here will make use\nof i_addr[0], if we save inline data in i_addr[0..872], then the first\n4 bytes would be overwriten. This problem can be avoided simply by\nnot using i_addr[0] for inline data.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: don\u0027t need to get f2fs_lock_op for the inline_data test\n\nThis patch locates checking the inline_data prior to calling f2fs_lock_op()\nin truncate_blocks(), since getting the lock is unnecessary.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert inline_data for punch_hole\n\nIn the punch_hole(), let\u0027s convert inline_data all the time for simplicity and\nto avoid potential deadlock conditions.\nIt is pretty much not a big deal to do this.\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: call f2fs_put_page at the error case\n\nIn f2fs_write_begin(), if f2fs_conver_inline_data() returns an error like\n-ENOSPC, f2fs should call f2fs_put_page().\nOtherwise, it is remained as a locked page, resulting in the following bug.\n\n[\u003cffffffff8114657e\u003e] sleep_on_page+0xe/0x20\n[\u003cffffffff81146567\u003e] __lock_page+0x67/0x70\n[\u003cffffffff81157d08\u003e] truncate_inode_pages_range+0x368/0x5d0\n[\u003cffffffff81157ff5\u003e] truncate_inode_pages+0x15/0x20\n[\u003cffffffff8115804b\u003e] truncate_pagecache+0x4b/0x70\n[\u003cffffffff81158082\u003e] truncate_setsize+0x12/0x20\n[\u003cffffffffa02a1842\u003e] f2fs_setattr+0x72/0x270 [f2fs]\n[\u003cffffffff811cdae3\u003e] notify_change+0x213/0x400\n[\u003cffffffff811ab376\u003e] do_truncate+0x66/0xa0\n[\u003cffffffff811ab541\u003e] vfs_truncate+0x191/0x1b0\n[\u003cffffffff811ab5bc\u003e] do_sys_truncate+0x5c/0xa0\n[\u003cffffffff811ab78e\u003e] SyS_truncate+0xe/0x10\n[\u003cffffffff81756052\u003e] system_call_fastpath+0x16/0x1b\n[\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor f2fs_convert_inline_data\n\nChange log from v1:\n o handle NULL pointer of grab_cache_page_write_begin() pointed by Chao Yu.\n\nThis patch refactors f2fs_convert_inline_data to check a couple of conditions\ninternally for deciding whether it needs to convert inline_data or not.\n\nSo, the new f2fs_convert_inline_data initially checks:\n1) f2fs_has_inline_data(), and\n2) the data size to be changed.\n\nIf the inode has inline_data but the size to fill is less than MAX_INLINE_DATA,\nthen we don\u0027t need to convert the inline_data with data allocation.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add the number of inline_data files to status info\n\nThis patch adds the number of inline_data files into the status information.\nNote that the number is reset whenever the filesystem is newly mounted.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add inline_data recovery routine\n\nThis patch adds a inline_data recovery routine with the following policy.\n\n[prev.] [next] of inline_data flag\n   o       o  -\u003e recover inline_data\n   o       x  -\u003e remove inline_data, and then recover data blocks\n   x       o  -\u003e remove inline_data, and then recover inline_data\n   x       x  -\u003e recover data blocks\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: handle errors correctly during f2fs_reserve_block\n\nThe get_dnode_of_data nullifies inode and node page when error is occurred.\n\nThere are two cases that passes inode page into get_dnode_of_data().\n\n1. make_empty_dir()\n    -\u003e get_new_data_page()\n      -\u003e f2fs_reserve_block(ipage)\n\t-\u003e get_dnode_of_data()\n\n2. f2fs_convert_inline_data()\n    -\u003e __f2fs_convert_inline_data()\n      -\u003e f2fs_reserve_block(ipage)\n\t-\u003e get_dnode_of_data()\n\nThis patch adds correct error handling codes when get_dnode_of_data() returns\nan error.\n\nAt first, f2fs_reserve_block() calls f2fs_put_dnode() whenever reserve_new_block\nreturns an error.\nSo, the rule of f2fs_reserve_block() is to nullify inode page when there is any\nerror internally.\n\nFinally, two callers of f2fs_reserve_block() should call f2fs_put_dnode()\nappropriately if they got an error since successful f2fs_reserve_block().\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix truncate_partial_nodes bug\n\nThe truncate_partial_nodes puts pages incorrectly in the following two cases.\nNote that the value for argc \u0027depth\u0027 can only be 2 or 3.\nPlease see truncate_inode_blocks() and truncate_partial_nodes().\n\n1) An err is occurred in the first \u0027for\u0027 loop\n  When err is occurred with depth \u003d 2, pages[0] is invalid, so this page doesn\u0027t\n  need to be put. There is no problem, however, when depth is 3, it doesn\u0027t put\n  the pages correctly where pages[0] is valid and pages[1] is invalid.\n  In this case, depth is set to 2 (ref to statemnt depth \u003d i + 1), and then\n  \u0027goto fail\u0027.\n  In label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) cannot meet the condition\n  because i \u003d -1, so pages[0] cann\u0027t be put.\n\n2) An err happened in the second \u0027for\u0027 loop\n  Now we\u0027ve got pages[0] with depth \u003d 2, or we\u0027ve got pages[0] and pages[1]\n  with depth \u003d 3. When an err is detected, we need \u0027goto fail\u0027 to put such\n  the pages.\n  When depth is 2, in label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) cann\u0027t\n  meet the condition because i \u003d -1, so pages[0] cann\u0027t be put.\n  When depth is 3, in label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) can\n  only put pages[0], pages[1] also cann\u0027t be put.\n\nNote that \u0027depth\u0027 has been changed before first \u0027goto fail\u0027 (ref to statemnt\ndepth \u003d i + 1), so passing this modified \u0027depth\u0027 to the tracepoint,\ntrace_f2fs_truncate_partial_nodes, is also incorrect.\n\nSigned-off-by: Shifei Ge \u003cshifei10.ge@samsung.com\u003e\n[Jaegeuk Kim: modify the description and fix one bug]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to left uninitialized data in page when read inline data\n\nChange log from v1:\n o reduce unneeded memset in __f2fs_convert_inline_data\n\n\u003eFrom 58796be2bd2becbe8d52305210fb2a64e7dd80b6 Mon Sep 17 00:00:00 2001\nFrom: Chao Yu \u003cchao2.yu@samsung.com\u003e\nDate: Mon, 30 Dec 2013 09:21:33 +0800\nSubject: [PATCH] f2fs: avoid to left uninitialized data in page when read\n inline data\n\nWe left uninitialized data in the tail of page when we read an inline data\npage. So let\u0027s initialize left part of the page excluding inline data region.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to read inline data except first page\n\nHere is a case which could read inline page data not from first page.\n\n1. write inline data\n2. lseek to offset 4096\n3. read 4096 bytes from offset 4096\n\t(read_inline_data read inline data page to non-first page,\n\tAnd previously VFS has add this page to page cache)\n4. ftruncate offset 8192\n5. read 4096 bytes from offset 4096\n\t(we meet this updated page with inline data in cache)\n\nSo we should leave this page with inited data and uptodate flag\nfor this case.\n\nChange log from v1:\n o fix a deadlock bug\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: improve write performance under frequent fsync calls\n\nWhen considering a bunch of data writes with very frequent fsync calls, we\nare able to think the following performance regression.\n\nN: Node IO, D: Data IO, IO scheduler: cfq\n\nIssue    pending IOs\n\t D1 D2 D3 D4\n D1         D2 D3 D4 N1\n D2            D3 D4 N1 N2\n N1            D3 D4 N2 D1\n --\u003e N1 can be selected by cfq becase of the same priority of N and D.\n     Then D3 and D4 would be delayed, resuling in performance degradation.\n\nSo, when processing the fsync call, it\u0027d better give higher priority to data IOs\nthan node IOs by assigning WRITE and WRITE_SYNC respectively.\nThis patch improves the random wirte performance with frequent fsync calls by up\nto 10%.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a sysfs entry to control max_victim_search\n\nPreviously during SSR and GC, the maximum number of retrials to find a victim\nsegment was hard-coded by MAX_VICTIM_SEARCH, 4096 by default.\n\nThis number makes an effect on IO locality, when SSR mode is activated, which\nresults in performance fluctuation on some low-end devices.\n\nIf max_victim_search \u003d 4, the victim will be searched like below.\n(\"D\" represents a dirty segment, and \"*\" indicates a selected victim segment.)\n\n D1 D2 D3 D4 D5 D6 D7 D8 D9\n[   *       ]\n      [   *    ]\n            [         * ]\n\t                [ ....]\n\nThis patch adds a sysfs entry to control the number dynamically through:\n  /sys/fs/f2fs/$dev/max_victim_search\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the needless parameter of f2fs_wait_on_page_writeback\n\n\"boo sync\" parameter is never referenced in f2fs_wait_on_page_writeback.\nWe should remove this parameter.\n\nSigned-off-by: Yuan Zhong \u003cyuan.mark.zhong@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move grabing orphan pages out of protection region\n\nMove grabing orphan block page out of protection region, and grab all\nthe orphan block pages ahead.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: remove unnecessary code pointed by Chao Yu]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move alloc new orphan node out of lock protection region\n\nMove alloc new orphan node out of lock protection region.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use spinlock rather than mutex for better speed\n\nWith the 2 previous changes, all the long time operations are moved out\nof the protection region, so here we can use spinlock rather than mutex\n(orphan_inode_mutex) for lower overhead.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add delimiter to seperate name and value in debug phrase\n\nSupport for f2fs-tools/tools/f2stat to monitor\n/sys/kernel/debug/f2fs/status\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid f2fs_balance_fs call during pageout\n\nThis patch should resolve the following bug.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible irq lock inversion dependency detected ]\n3.13.0-rc5.f2fs+ #6 Not tainted\n---------------------------------------------------------\nkswapd0/41 just changed the state of lock:\n (\u0026sbi-\u003egc_mutex){+.+.-.}, at: [\u003cffffffffa030503e\u003e] f2fs_balance_fs+0xae/0xd0 [f2fs]\nbut this lock took another, RECLAIM_FS-READ-unsafe lock in the past:\n (\u0026sbi-\u003ecp_rwsem){++++.?}\n\nand interrupts could create inverse lock ordering between them.\n\nother info that might help us debug this:\nChain exists of:\n  \u0026sbi-\u003egc_mutex --\u003e \u0026sbi-\u003ecp_mutex --\u003e \u0026sbi-\u003ecp_rwsem\n\n Possible interrupt unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(\u0026sbi-\u003ecp_rwsem);\n                               local_irq_disable();\n                               lock(\u0026sbi-\u003egc_mutex);\n                               lock(\u0026sbi-\u003ecp_mutex);\n  \u003cInterrupt\u003e\n    lock(\u0026sbi-\u003egc_mutex);\n\n *** DEADLOCK ***\n\nThis bug is due to the f2fs_balance_fs call in f2fs_write_data_page.\nIf f2fs_write_data_page is triggered by wbc-\u003efor_reclaim via kswapd, it should\nnot call f2fs_balance_fs which tries to get a mutex grabbed by original syscall\nflow.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: missing REQ_META and REQ_PRIO when sync_meta_pages(META_FLUSH)\n\nDoing sync_meta_pages with META_FLUSH when checkpoint, we overide rw\nusing WRITE_FLUSH_FUA. At this time, we also should set\nREQ_META|REQ_PRIO.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: clean checkpatch warnings\n\nFixed a variety of trivial checkpatch warnings.  The only delta should\nbe some minor formatting on log strings that were split / too long.\n\nSigned-off-by: Chris Fries \u003ccfries@motorola.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: call mark_inode_dirty to flush dirty pages\n\nIf a dentry page is updated, we should call mark_inode_dirty to add the inode\ninto the dirty list, so that its dentry pages are flushed to the disk.\nOtherwise, the inode can be evicted without flush.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move a branch for code redability\n\nThis patch moves a function in f2fs_delete_entry for code readability.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add help function META_MAPPING\n\nIntroduce help function META_MAPPING() to get the cache meta blocks\u0027\naddress space.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the orphan block page array\n\nAs the orphan_blocks may be max to 504, so it is not security\nand rigorous to store such a large array in the kernel stack\nas Dan Carpenter said.\nIn fact, grab_meta_page has locked the page in the page cache,\nand we can use find_get_page() to fetch the page safely in the\ndownstream, so we can remove the page array directly.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce NODE_MAPPING for code consistency\n\nThis patch adds NODE_MAPPING which is similar as META_MAPPING introduced by\nGu Zheng.\n\nCc: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: drop obsolete node page when it is truncated\n\nIf a node page is trucated, we\u0027d better drop the page in the node_inode\u0027s page\ncache for better memory footprint.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nChange-Id: I1b7c3378b7f7adb13477376164e91ab080b50d8b\n"
    },
    {
      "commit": "8005ecc7ea4f6004f217a39425a241ac8a63633c",
      "tree": "11c815137aac0302817b8b4fd798cfc0ff0877db",
      "parents": [
        "0ada96714fba26853fec00f4d95577c577c6e5ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 13:54:51 2012 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:05:52 2015 -0500"
      },
      "message": "f2fs: Pull in from upstream 3.13 kernel\n\nMerge tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull new F2FS filesystem from Jaegeuk Kim:\n \"Introduce a new file system, Flash-Friendly File System (F2FS), to\n  Linux 3.8.\n\n  Highlights:\n   - Add initial f2fs source codes\n   - Fix an endian conversion bug\n   - Fix build failures on random configs\n   - Fix the power-off-recovery routine\n   - Minor cleanup, coding style, and typos patches\"\n\nFrom the Kconfig help text:\n\n  F2FS is based on Log-structured File System (LFS), which supports\n  versatile \"flash-friendly\" features. The design has been focused on\n  addressing the fundamental issues in LFS, which are snowball effect\n  of wandering tree and high cleaning overhead.\n\n  Since flash-based storages show different characteristics according to\n  the internal geometry or flash memory management schemes aka FTL, F2FS\n  and tools support various parameters not only for configuring on-disk\n  layout, but also for selecting allocation and cleaning algorithms.\n\nand there\u0027s an article by Neil Brown about it on lwn.net:\n\n  http://lwn.net/Articles/518988/\n\n* tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (36 commits)\n  f2fs: fix tracking parent inode number\n  f2fs: cleanup the f2fs_bio_alloc routine\n  f2fs: introduce accessor to retrieve number of dentry slots\n  f2fs: remove redundant call to f2fs_put_page in delete entry\n  f2fs: make use of GFP_F2FS_ZERO for setting gfp_mask\n  f2fs: rewrite f2fs_bio_alloc to make it simpler\n  f2fs: fix a typo in f2fs documentation\n  f2fs: remove unused variable\n  f2fs: move error condition for mkdir at proper place\n  f2fs: remove unneeded initialization\n  f2fs: check read only condition before beginning write out\n  f2fs: remove unneeded memset from init_once\n  f2fs: show error in case of invalid mount arguments\n  f2fs: fix the compiler warning for uninitialized use of variable\n  f2fs: resolve build failures\n  f2fs: adjust kernel coding style\n  f2fs: fix endian conversion bugs reported by sparse\n  f2fs: remove unneeded version.h header file from f2fs.h\n  f2fs: update the f2fs document\n  f2fs: update Kconfig and Makefile\n  ...\n\nConflicts:\n\tinclude/uapi/linux/magic.h\n\nMerge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs bug fixes from Jaegeuk Kim:\n \"This patch-set includes two major bug fixes:\n   - incorrect IUsed provided by *df -i*, and\n   - lookup failure of parent inodes in corner cases.\n\n  [Other Bug Fixes]\n   - Fix error handling routines\n   - Trigger recovery process correctly\n   - Resolve build failures due to missing header files\n\n  [Etc]\n   - Add a MAINTAINERS entry for f2fs\n   - Fix and clean up variables, functions, and equations\n   - Avoid warnings during compilation\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:\n  f2fs: unify string length declarations and usage\n  f2fs: clean up unused variables and return values\n  f2fs: clean up the start_bidx_of_node function\n  f2fs: remove unneeded variable from f2fs_sync_fs\n  f2fs: fix fsync_inode list addition logic and avoid invalid access to memory\n  f2fs: remove unneeded initialization of nr_dirty in dirty_seglist_info\n  f2fs: handle error from f2fs_iget_nowait\n  f2fs: fix equation of has_not_enough_free_secs()\n  f2fs: add MAINTAINERS entry\n  f2fs: return a default value for non-void function\n  f2fs: invalidate the node page if allocation is failed\n  f2fs: add missing #include \u003clinux/prefetch.h\u003e\n  f2fs: do f2fs_balance_fs in front of dir operations\n  f2fs: should recover orphan and fsync data\n  f2fs: fix handling errors got by f2fs_write_inode\n  f2fs: fix up f2fs_get_parent issue to retrieve correct parent inode number\n  f2fs: fix wrong calculation on f_files in statfs\n  f2fs: remove set_page_dirty for atomic f2fs_end_io_write\n\nMerge tag \u0027f2fs-for-3.8-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs fixes from Jaegeuk Kim:\n o Support swap file and link generic_file_remap_pages\n o Enhance the bio streaming flow and free section control\n o Major bug fix on recovery routine\n o Minor bug/warning fixes and code cleanups\n\n* tag \u0027f2fs-for-3.8-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (22 commits)\n  f2fs: use _safe() version of list_for_each\n  f2fs: add comments of start_bidx_of_node\n  f2fs: avoid issuing small bios due to several dirty node pages\n  f2fs: support swapfile\n  f2fs: add remap_pages as generic_file_remap_pages\n  f2fs: add __init to functions in init_f2fs_fs\n  f2fs: fix the debugfs entry creation path\n  f2fs: add global mutex_lock to protect f2fs_stat_list\n  f2fs: remove the blk_plug usage in f2fs_write_data_pages\n  f2fs: avoid redundant time update for parent directory in f2fs_delete_entry\n  f2fs: remove redundant call to set_blocksize in f2fs_fill_super\n  f2fs: move f2fs_balance_fs to punch_hole\n  f2fs: add f2fs_balance_fs in several interfaces\n  f2fs: revisit the f2fs_gc flow\n  f2fs: check return value during recovery\n  f2fs: avoid null dereference in f2fs_acl_from_disk\n  f2fs: initialize newly allocated dnode structure\n  f2fs: update f2fs partition info about SIT/NAT layout\n  f2fs: update f2fs document to reflect SIT/NAT layout correctly\n  f2fs: remove unneeded INIT_LIST_HEAD at few places\n  ...\n\nMerge tag \u0027f2fs-for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs update from Jaegeuk Kim:\n \"[Major bug fixes]\n   o Store device file information correctly\n   o Fix -EIO handling with respect to power-off-recovery\n   o Allocate blocks with global locks\n   o Fix wrong calculation of the SSR cost\n\n  [Cleanups]\n   o Get rid of fake on-stack dentries\n\n  [Enhancement]\n   o Support (un)freeze_fs\n   o Enhance the f2fs_gc flow\n   o Support 32-bit binary execution on 64-bit kernel\"\n\n* tag \u0027f2fs-for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (29 commits)\n  f2fs: avoid build warning\n  f2fs: add compat_ioctl to provide backward compatability\n  f2fs: fix calculation of max. gc cost in the SSR case\n  f2fs: clarify and enhance the f2fs_gc flow\n  f2fs: optimize the return condition for has_not_enough_free_secs\n  f2fs: make an accessor to get sections for particular block type\n  f2fs: mark gc_thread as NULL when thread creation is failed\n  f2fs: name gc task as per the block device\n  f2fs: remove unnecessary gc option check and balance_fs\n  f2fs: remove repeated F2FS_SET_SB_DIRT call\n  f2fs: when check superblock failed, try to check another superblock\n  f2fs: use F2FS_BLKSIZE to judge bloksize and page_cache_size\n  f2fs: add device name in debugfs\n  f2fs: stop repeated checking if cp is needed\n  f2fs: avoid balanc_fs during evict_inode\n  f2fs: remove the use of page_cache_release\n  f2fs: fix typo mistake for data_version description\n  f2fs: reorganize code for ra_node_page\n  f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc\n  f2fs: add un/freeze_fs into super_operations\n  ...\n\nMerge tag \u0027f2fs-for-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches.\n   - introduce a new gloabl lock scheme\n   - add tracepoints on several major functions\n   - fix the overall cleaning process focused on victim selection\n   - apply the block plugging to merge IOs as much as possible\n   - enhance management of free nids and its list\n   - enhance the readahead mode for node pages\n   - address several cretical deadlock conditions\n   - reduce lock_page calls\n\n  The other minor bug fixes and enhancements are as follows.\n   - calculation mistakes: overflow\n   - bio types: READ, READA, and READ_SYNC\n   - fix the recovery flow, data races, and null pointer errors\"\n\n* tag \u0027f2fs-for-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (68 commits)\n  f2fs: cover free_nid management with spin_lock\n  f2fs: optimize scan_nat_page()\n  f2fs: code cleanup for scan_nat_page() and build_free_nids()\n  f2fs: bugfix for alloc_nid_failed()\n  f2fs: recover when journal contains deleted files\n  f2fs: continue to mount after failing recovery\n  f2fs: avoid deadlock during evict after f2fs_gc\n  f2fs: modify the number of issued pages to merge IOs\n  f2fs: remove useless #include \u003clinux/proc_fs.h\u003e as we\u0027re now using sysfs as debug entry.\n  f2fs: fix inconsistent using of NM_WOUT_THRESHOLD\n  f2fs: check truncation of mapping after lock_page\n  f2fs: enhance alloc_nid and build_free_nids flows\n  f2fs: add a tracepoint on f2fs_new_inode\n  f2fs: check nid \u003d\u003d 0 in add_free_nid\n  f2fs: add REQ_META about metadata requests for submit\n  f2fs: give a chance to merge IOs by IO scheduler\n  f2fs: avoid frequent background GC\n  f2fs: add tracepoints to debug checkpoint request\n  f2fs: add tracepoints for write page operations\n  f2fs: add tracepoints to debug the block allocation\n  ...\n\nMerge tag \u0027for-f2fs-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches:\n   - remount_fs callback function\n   - restore parent inode number to enhance the fsync performance\n   - xattr security labels\n   - reduce the number of redundant lock/unlock data pages\n   - avoid frequent write_inode calls\n\n  The other minor bug fixes are as follows.\n   - endian conversion bugs\n   - various bugs in the roll-forward recovery routine\"\n\n* tag \u0027for-f2fs-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (56 commits)\n  f2fs: fix to recover i_size from roll-forward\n  f2fs: remove the unused argument \"sbi\" of func destroy_fsync_dnodes()\n  f2fs: remove reusing any prefree segments\n  f2fs: code cleanup and simplify in func {find/add}_gc_inode\n  f2fs: optimize the init_dirty_segmap function\n  f2fs: fix an endian conversion bug detected by sparse\n  f2fs: fix crc endian conversion\n  f2fs: add remount_fs callback support\n  f2fs: recover wrong pino after checkpoint during fsync\n  f2fs: optimize do_write_data_page()\n  f2fs: make locate_dirty_segment() as static\n  f2fs: remove unnecessary parameter \"offset\" from __add_sum_entry()\n  f2fs: avoid freqeunt write_inode calls\n  f2fs: optimise the truncate_data_blocks_range() range\n  f2fs: use the F2FS specific flags in f2fs_ioctl()\n  f2fs: sync dir-\u003ei_size with its block allocation\n  f2fs: fix i_blocks translation on various types of files\n  f2fs: set sb-\u003es_fs_info before calling parse_options()\n  f2fs: support xattr security labels\n  f2fs: fix iget/iput of dir during recovery\n  ...\n\nMerge tag \u0027for-f2fs-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches:\n   - support inline xattrs\n   - add sysfs support to control GCs explicitly\n   - add proc entry to show the current segment usage information\n   - improve the GC/SSR performance\n\n  The other bug fixes are as follows:\n   - avoid the overflow on status calculation\n   - fix some error handling routines\n   - fix inconsistent xattr states after power-off-recovery\n   - fix incorrect xattr node offset definition\n   - fix deadlock condition in fsync\n   - fix the fdatasync routine for power-off-recovery\"\n\n* tag \u0027for-f2fs-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (40 commits)\n  f2fs: optimize gc for better performance\n  f2fs: merge more bios of node block writes\n  f2fs: avoid an overflow during utilization calculation\n  f2fs: trigger GC when there are prefree segments\n  f2fs: use strncasecmp() simplify the string comparison\n  f2fs: fix omitting to update inode page\n  f2fs: support the inline xattrs\n  f2fs: add the truncate_xattr_node function\n  f2fs: introduce __find_xattr for readability\n  f2fs: reserve the xattr space dynamically\n  f2fs: add flags for inline xattrs\n  f2fs: fix error return code in init_f2fs_fs()\n  f2fs: fix wrong BUG_ON condition\n  f2fs: fix memory leak when init f2fs filesystem fail\n  f2fs: fix a compound statement label error\n  f2fs: avoid writing inode redundantly when creating a file\n  f2fs: alloc_page() doesn\u0027t return an ERR_PTR\n  f2fs: should cover i_xattr_nid with its xattr node page lock\n  f2fs: check the free space first in new_node_page\n  f2fs: clean up the needless end \u0027return\u0027 of void function\n  ...\n\nMerge tag \u0027for-f2fs-3.13\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches.\n   - add a sysfs to control reclaiming free segments\n   - enhance the f2fs global lock procedures\n   - enhance the victim selection flow\n   - wait for selected node blocks during fsync\n   - add some tracepoints\n   - add a config to remove abundant BUG_ONs\n\n  The other bug fixes are as follows.\n   - fix deadlock on acl operations\n   - fix some bugs with respect to orphan inodes\n\n  And, there are a bunch of cleanups\"\n\n* tag \u0027for-f2fs-3.13\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (42 commits)\n  f2fs: issue more large discard command\n  f2fs: fix memory leak after kobject init failed in fill_super\n  f2fs: cleanup waiting routine for writeback pages in cp\n  f2fs: avoid to use a NULL point in destroy_segment_manager\n  f2fs: remove unnecessary TestClearPageError when wait pages writeback\n  f2fs: update f2fs document\n  f2fs: avoid to wait all the node blocks during fsync\n  f2fs: check all ones or zeros bitmap with bitops for better mount performance\n  f2fs: change the method of calculating the number summary blocks\n  f2fs: fix calculating incorrect free size when update xattr in __f2fs_setxattr\n  f2fs: add an option to avoid unnecessary BUG_ONs\n  f2fs: introduce CONFIG_F2FS_CHECK_FS for BUG_ON control\n  f2fs: fix a deadlock during init_acl procedure\n  f2fs: clean up acl flow for better readability\n  f2fs: remove unnecessary segment bitmap updates\n  f2fs: add tracepoint for vm_page_mkwrite\n  f2fs: add tracepoint for set_page_dirty\n  f2fs: remove redundant set_page_dirty from write_compacted_summaries\n  f2fs: add reclaiming control by sysfs\n  f2fs: introduce f2fs_balance_fs_bg for some background jobs\n  ...\n\nChange-Id: Ied5488471d49d64ce6abb4be19237c4e90829ff6\n"
    },
    {
      "commit": "0ada96714fba26853fec00f4d95577c577c6e5ef",
      "tree": "5254cc40c6519573f1e912bc74649a46b2cb896f",
      "parents": [
        "250b2a1311e758105e6a0916cce78051fa23f467"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Wed Dec 25 17:12:35 2013 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 10:01:47 2015 -0500"
      },
      "message": "OTG: usb_multi_charger_detect\n\nPorted from JCsullins 3.0 Kernel\n\nChange-Id: I3908fd6e4fa6c526c1c9bf9d178491d78a3c6022\n"
    },
    {
      "commit": "250b2a1311e758105e6a0916cce78051fa23f467",
      "tree": "c10fc2721a553120292771f7a2656ecf2b94b273",
      "parents": [
        "4fcb608f7e63a6e671d01f1f98d1307acd12fc89"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Sat Feb 01 07:45:05 2014 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 09:54:48 2015 -0500"
      },
      "message": "WIP: defconfig update + uhid fixes\n\nChange-Id: I75dfe6cad28b0872745cb5db174a3ce23e40c3f5\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "a7ee16813c355517a8b846961579ae39415340f4",
      "tree": "d6dc58bcc169cf2155e1352d2c83bd7b918e9bac",
      "parents": [
        "53b99cfb35ea900b188ed7136f35fa475f535e0c"
      ],
      "author": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Dec 18 16:23:10 2014 +1030"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jan 05 09:10:09 2015 +0000"
      },
      "message": "power: pm8921-charger: Add HTC zara support\n\n* Part 2\n\nChange-Id: I668df5e45c839613a6ff04c931e02f59ba6d6c6c\n"
    },
    {
      "commit": "10bfbbbd361b707763b9153f2916bbd3f5f3e78d",
      "tree": "8fb647facdf47dc3f3b4fc924557df78159e1ec8",
      "parents": [
        "a58746417841a7f8787874a2c31cb05bf934a007"
      ],
      "author": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Dec 18 16:22:05 2014 +1030"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jan 05 09:08:14 2015 +0000"
      },
      "message": "input: bma250: Add HTC zara support\n\nChange-Id: I24c85491195c2c3d266388bdb3a1b92f615d863c\n"
    },
    {
      "commit": "9bf75dffc07ea6b5e19251880b8dcf0debdbbccc",
      "tree": "329bb5327b7e523ed2812dc6679b035f594f69f5",
      "parents": [
        "74cfe2dcc0f4b17f9abbabf349e33c39a260987e"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@amacapital.net",
        "time": "Thu Apr 12 16:47:50 2012 -0500"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 13:18:02 2014 -0800"
      },
      "message": "Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs\n\nWith this change, calling\n  prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)\ndisables privilege granting operations at execve-time.  For example, a\nprocess will not be able to execute a setuid binary to change their uid\nor gid if this bit is set.  The same is true for file capabilities.\n\nAdditionally, LSM_UNSAFE_NO_NEW_PRIVS is defined to ensure that\nLSMs respect the requested behavior.\n\nTo determine if the NO_NEW_PRIVS bit is set, a task may call\n  prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0);\nIt returns 1 if set and 0 if it is not set. If any of the arguments are\nnon-zero, it will return -1 and set errno to -EINVAL.\n(PR_SET_NO_NEW_PRIVS behaves similarly.)\n\nThis functionality is desired for the proposed seccomp filter patch\nseries.  By using PR_SET_NO_NEW_PRIVS, it allows a task to modify the\nsystem call behavior for itself and its child tasks without being\nable to impact the behavior of a more privileged task.\n\nAnother potential use is making certain privileged operations\nunprivileged.  For example, chroot may be considered \"safe\" if it cannot\naffect privileged tasks.\n\nNote, this patch causes execve to fail when PR_SET_NO_NEW_PRIVS is\nset and AppArmor is in use.  It is fixed in a subsequent patch.\n\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\n\nChange-Id: I2159006d20daefe6add5adc47c22bdbcd7d79e3a\nv18: updated change desc\nv17: using new define values as per 3.4\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "74cfe2dcc0f4b17f9abbabf349e33c39a260987e",
      "tree": "206493082f5edc72fdac6c958877090d7d17fb37",
      "parents": [
        "a580da13cb3f1f4984e71befc4f78c5a1f3181d0",
        "6cf93503105dc0cf63fc1384088db92bb71cbe4c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 00:35:23 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 00:35:23 2014 -0800"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.7\u0027 into cm-12.0\n\nConflicts:\n\tdrivers/misc/qseecom.c\n\tfs/proc/task_mmu.c\n\tinclude/net/tcp.h\n\tnet/ipv4/syncookies.c\n\tnet/ipv6/route.c\n\tnet/ipv6/tcp_ipv6.c\n\nChange-Id: I8a953e9f483a24ee45f5e1c570b6a4f92e87c6e9\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": "45bb5ff6ed69d017d14ec37ef76b27747deed955",
      "tree": "76e44de5d725dde009ed88d903c1fe4776ebf722",
      "parents": [
        "715fe086a6d99d2efc6276028ac626766567e101",
        "8ca5b06fa71c0b5ad8174ff1152d3de74e706ee9"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Tue Nov 18 00:11:01 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Tue Nov 18 00:11:01 2014 -0800"
      },
      "message": "Merge \"seq_file: introduce seq_setwidth() and seq_pad()\""
    },
    {
      "commit": "7b18590cff07a04fcf955e1648e4a9f11752a545",
      "tree": "ecb5f439e7001fc162baaa1854bb8211e7cc2690",
      "parents": [
        "50db8c0110dbff94dfacc1f4752a927dbe339e9c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Nov 16 16:48:31 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Nov 16 17:29:36 2014 -0800"
      },
      "message": "gpu: msm2: Sync to upstream\n\n* Sync to android-msm-3.4-flo-lollipop-release\n\nChange-Id: Ia0df71c0a1f102de034860f4d212a05c806fef7d\n"
    },
    {
      "commit": "50db8c0110dbff94dfacc1f4752a927dbe339e9c",
      "tree": "fc604545ec971ab0e224c305f0b948edc08295aa",
      "parents": [
        "25b02b6d180efeec13851162c3319962977c1fb0",
        "2f64c5e6faa76368cd2c70c1d48fc4c2d44acbbf"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Nov 14 01:04:45 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Nov 14 01:04:45 2014 -0800"
      },
      "message": "Merge remote-tracking branch \u0027caf/caf/LA.AF.1.1_rb1.5\u0027 into cm-12.0\n"
    },
    {
      "commit": "0d8c39adeafd36903d00c388802ebad8de0eef52",
      "tree": "b51f7731b13ad2d932c4fc0b92cba44cb16ea38a",
      "parents": [
        "e141fbd5a3999fc64598dc1533fb920e70746f53"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 31 16:23:51 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Nov 13 19:59:36 2014 -0500"
      },
      "message": "net: core: Support UID-based routing.\n\nThis contains the following commits:\n\n1. 0149763 net: core: Add a UID range to fib rules.\n2. 1650474 net: core: Use the socket UID in routing lookups.\n3. 0b16771 net: ipv4: Add the UID to the route cache.\n4. ee058f1 net: core: Add a RTA_UID attribute to routes.\n    This is so that userspace can do per-UID route lookups.\n\nBug: 15413527\nChange-Id: I1285474c6734614d3bda6f61d88dfe89a4af7892\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 0b428749ce5969bc06c73855e360141b4e7126e8\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "8c1d434b2e49df7a7cefac06e62ab5faa7eb4776",
      "tree": "97f3aa4b233011a156128517bd85fb3e09f8cc38",
      "parents": [
        "bc4bcee71617461ed19a852f9d873f5979820ef1",
        "653be181eef3589b47119cd68c985975119fa61f"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Thu Nov 13 13:03:26 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Thu Nov 13 13:03:26 2014 -0800"
      },
      "message": "Merge \"net: ipv6: autoconf routes into per-device tables\""
    },
    {
      "commit": "ad3dae1c0ad772e899815622004f42e1318c48a4",
      "tree": "ce5d32a7c9d130bac2220a288ad23a4415acdc71",
      "parents": [
        "79fc4d24eef5e4f5e25782690379e97aee0327ea"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Sun Oct 05 22:13:10 2014 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Wed Oct 08 02:18:13 2014 -0500"
      },
      "message": "drivers: net: wireless: add HTC\u0027s bcmdhd_4335_mcc\n\nFrom m7stockui-3.4.10-gef77362.\n\nModifications from stock HTC driver:\n* Remove poorly commented-out CFLAGS section from Makefile\n* Make CONFIG_BCMDHD_4335_MCC select WIRELESS_EXT, WEXT_PRIV\n* Fix msm_watchdog.h include in dhd_sdio.c\n* Our kernel does not need OLD_CFG_80211; removing this flag also\n  required the following fixes in wl_cfg80211.c\n  - L292: ifdef out used_default_ssid\n  - L6698-6702: ifdef out usage of wl_cfg80211_hostapd_sec()\n\nChanges outside of driver: Make necessary additions (and block with\nCONFIG_BCMDHD_4335_MCC where appropriate) in:\n* drivers/mmc/host/msm_sdcc.c\n* include/linux/ieee80211.h\n* include/linux/nl80211.h\n* include/linux/wlan_plat.h\n\nChange-Id: I405010d3ae0fc3586de2a2aa3ffaab01909ddcde\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": "462ce7cf70a565d9fd58421bb28a4bdcff9dfa6e",
      "tree": "08073040d1eeaa0b05e95fb9e7a78e162f4aab72",
      "parents": [
        "1af043959e84f3e14fed7c9a965ce649217d2e42"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 31 16:23:51 2014 +0900"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Sep 17 03:26:12 2014 -0700"
      },
      "message": "net: core: Support UID-based routing.\n\nThis contains the following commits:\n\n1. 0149763 net: core: Add a UID range to fib rules.\n2. 1650474 net: core: Use the socket UID in routing lookups.\n3. 0b16771 net: ipv4: Add the UID to the route cache.\n4. ee058f1 net: core: Add a RTA_UID attribute to routes.\n    This is so that userspace can do per-UID route lookups.\n\nBug: 15413527\nChange-Id: I1285474c6734614d3bda6f61d88dfe89a4af7892\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 0b428749ce5969bc06c73855e360141b4e7126e8\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "e55f3fceb32e5bb0823f79b645488e54f3e4e733",
      "tree": "31327d8b3ad3ade80ffae4c8a3aab3d43e20b062",
      "parents": [
        "90a5dbf6974f70c756e7655961b73757fa8be6ae",
        "ac58acb16ad3bd7d6c26c5a2e281f34d4cbdcf03"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.43\u0027 into cm-11.0\n\nConflicts:\n\tfs/proc/task_mmu.c\n\nChange-Id: Ie014403aec1279c5adec53138131671c444c4162\n"
    },
    {
      "commit": "8ca5b06fa71c0b5ad8174ff1152d3de74e706ee9",
      "tree": "f60de147e2eba6f12e7d4af14d1b70f51cba8811",
      "parents": [
        "ad84b52a71414a48d02a7f4d4d52cd8b69c444d8"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Thu Nov 14 14:31:56 2013 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Sep 15 03:02:08 2014 -0700"
      },
      "message": "seq_file: introduce seq_setwidth() and seq_pad()\n\nThere are several users who want to know bytes written by seq_*() for\nalignment purpose.  Currently they are using %n format for knowing it\nbecause seq_*() returns 0 on success.\n\nThis patch introduces seq_setwidth() and seq_pad() for allowing them to\nalign without using %n format.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 839cc2a94cc3665bafe32203c2f095f4dd470a80)\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nCRs-fixed: 665291\nChange-Id: I727d9af5ed320d717295c9d0f82c88623fb181c1\nSigned-off-by: David Brown \u003cdavidb@codeaurora.org\u003e\n"
    },
    {
      "commit": "1229d6034b03092e9f352329fc6fa98adab46549",
      "tree": "7075e731df4c14bd6a02f2202b0a38299b8874ca",
      "parents": [
        "ad84b52a71414a48d02a7f4d4d52cd8b69c444d8"
      ],
      "author": {
        "name": "Ravi Aravamudhan",
        "email": "aravamud@codeaurora.org",
        "time": "Wed Apr 23 22:50:51 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Sep 15 01:41:17 2014 -0700"
      },
      "message": "diag: Update SSIDs, event ids and log codes\n\nThe SSIDs, event IDs and log codes have fallen out of date.\nBring the SSIDs, event IDs and log codes up to date.\n\nChange-Id: I8e6a2af8baba359f32a489ddc06f619de826f97b\nSigned-off-by: Ravi Aravamudhan \u003caravamud@codeaurora.org\u003e\n"
    },
    {
      "commit": "313acf06fb916820d79f522a7ac9e046b876b74b",
      "tree": "adce9187c1a6bfba588af46f073ee26d5407909b",
      "parents": [
        "159c06a721a79de12b76eb32a3fd9d653bb2bc03"
      ],
      "author": {
        "name": "Katish Paran",
        "email": "kparan@codeaurora.org",
        "time": "Fri Sep 12 12:39:34 2014 +0530"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Fri Sep 12 10:56:42 2014 -0700"
      },
      "message": "diag: Bring ssids for cne atp feature up to date\n\nThis patch updates the ssids for cne atp feature.\n\nChange-Id: I762da4e2ae6197cb766620ffa3c0df14905354a2\nSigned-off-by: Katish Paran \u003ckparan@codeaurora.org\u003e\n"
    },
    {
      "commit": "5ac504e0708535b392675243000292ae60b705d0",
      "tree": "dfc779ade74a9b38f25460bb2e0b224dcabde6d5",
      "parents": [
        "2cc680d69ffec80a6e75ab46edb4706fcd50cc82"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Thu Nov 14 14:31:56 2013 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Aug 25 12:47:39 2014 -0700"
      },
      "message": "seq_file: introduce seq_setwidth() and seq_pad()\n\nThere are several users who want to know bytes written by seq_*() for\nalignment purpose.  Currently they are using %n format for knowing it\nbecause seq_*() returns 0 on success.\n\nThis patch introduces seq_setwidth() and seq_pad() for allowing them to\nalign without using %n format.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 839cc2a94cc3665bafe32203c2f095f4dd470a80)\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nCRs-fixed: 665291\nChange-Id: I727d9af5ed320d717295c9d0f82c88623fb181c1\nSigned-off-by: David Brown \u003cdavidb@codeaurora.org\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": "653be181eef3589b47119cd68c985975119fa61f",
      "tree": "70622b13f1dd7ec4ce74ada46f489abe582fe2c5",
      "parents": [
        "cfc667e1eac22c3ee27aceaebb18e68102a2c65b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 19:35:41 2014 +0900"
      },
      "committer": {
        "name": "Samir Mehta",
        "email": "samirn@codeaurora.org",
        "time": "Tue Aug 05 17:58:34 2014 +0530"
      },
      "message": "net: ipv6: autoconf routes into per-device tables\n\nCurrently, IPv6 router discovery always puts routes into\nRT6_TABLE_MAIN. This causes problems for connection managers\nthat want to support multiple simultaneous network connections\nand want control over which one is used by default (e.g., wifi\nand wired).\n\nTo work around this connection managers typically take the routes\nthey prefer and copy them to static routes with low metrics in\nthe main table. This puts the burden on the connection manager\nto watch netlink to see if the routes have changed, delete the\nroutes when their lifetime expires, etc.\n\nInstead, this patch adds a per-interface sysctl to have the\nkernel put autoconf routes into different tables. This allows\neach interface to have its own autoconf table, and choosing the\ndefault interface (or using different interfaces at the same\ntime for different types of traffic) can be done using\nappropriate ip rules.\n\nThe sysctl behaves as follows:\n\n- \u003d 0: default. Put routes into RT6_TABLE_MAIN as before.\n- \u003e 0: manual. Put routes into the specified table.\n- \u003c 0: automatic. Add the absolute value of the sysctl to the\n       device\u0027s ifindex, and use that table.\n\nThe automatic mode is most useful in conjunction with\nnet.ipv6.conf.default.accept_ra_rt_table. A connection manager\nor distribution could set it to, say, -100 on boot, and\nthereafter just use IP rules.\n\nChange-Id: I093d39fb06ec413905dc0d0d5792c1bc5d5c73a9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 5fe5c512af518d0abbbc0d2fafa8e355f518c2a9\nGit-repo: https://android.googlesource.com/kernel/common.git\n[imaund@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n[samirn@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Samir Mehta \u003csamirn@codeaurora.org\u003e\n"
    },
    {
      "commit": "db610f7571f287db43c153ce26dd20dbd44d5173",
      "tree": "2b972c70901065346d4dea9365a5319f788e2814",
      "parents": [
        "5ffeb0ef32669ed7b5905a60961d9b4bbd2b4d6d",
        "5bfc8718998bedfeea1997d83838ffd1981cbf12"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Fri Aug 01 14:53:55 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Aug 01 14:53:55 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.41\u0027 into cm-11.0\n\nConflicts:\n\tkernel/events/core.c\n\nChange-Id: I52dfe8b56924fb2d86bf1487eed6114342621603\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": "30a9d74d085964d3b6c0ff392ba6cd5f8660f732",
      "tree": "89df11f3c50360c904d5da1aa56f0973b29d6046",
      "parents": [
        "84381577e9ea021e708f01b2b13950bb6162b493"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 23:21:08 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 12:15:08 2014 -0700"
      },
      "message": "msm: HTC: T6: Import T6 board files\n\n* Add support for HTC T6 (HTC One Max)\n\nChange-Id: Id751dd0e23db408ad5cdb3b50028a296093a7038\n"
    },
    {
      "commit": "84b6fd30ff8f75f898fd5bf149d25813c1fd1d0e",
      "tree": "59a69663b92c94d53deff661b200bfe2fe06f9bb",
      "parents": [
        "776c52102ae0f1a1aeb2e29aa4e0f9a67159e9a3"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 22:01:47 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 11:42:11 2014 -0700"
      },
      "message": "input: touchscreen: max1187x: Import max1187x driver for T6\n\n* HTC package version: t6ul-3.4.10-g0534bc3\n\nChange-Id: I931d5484a8c8d05ef2ac329983e8318028f2d6fe\n"
    },
    {
      "commit": "776c52102ae0f1a1aeb2e29aa4e0f9a67159e9a3",
      "tree": "f85bc12eb4db6bda10cc71db69ba269d60b05285",
      "parents": [
        "52f365cb415d644a293643efb7444ca4394597cd"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 21:55:06 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 11:41:32 2014 -0700"
      },
      "message": "input: lsm330: Add LSM330 gyroscope/accelerometer driver\n\n* HTC kernel version: t6ul-3.4.10-g0534bc3\n\nChange-Id: I48f84208bdcd2f44eedd87da05b4d07ad33a9ff9\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": "4f234f710f6ab6cd3ed97455715b14e6b4a93f34",
      "tree": "05b54b81da1c076fe663ec0a9efa923c1824c009",
      "parents": [
        "170cd053d8bd24bee7eaf912931428c2c2282ba5",
        "c4f1f8cec1e3c7e3526f6666939f22d23fcd8714"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 24 14:25:22 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 24 14:25:22 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.40\u0027 into cm-11.0\n\nConflicts:\n\tdrivers/media/video/msm/csi/msm_ispif.c\n\tdrivers/media/video/msm/msm_mctl_pp.c\n\nChange-Id: Iedfd6dc3e8dea93df993e0b043ab5eee55784a12\n"
    },
    {
      "commit": "22a20564536ce0ae40238844215e666263a53c33",
      "tree": "ba35269e86ad01024b106c223e7372596fce18f3",
      "parents": [
        "8013116c96aefb8da3c8e5548da9a45349e0399f"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jun 07 07:37:52 2014 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jun 22 21:31:45 2014 -0500"
      },
      "message": "leds:  Add in lm8502 driver\n"
    },
    {
      "commit": "140747ed82e890d77836878eac378322427dabe9",
      "tree": "fffa47d4ee404b602b8a2b047430f72c87c4015a",
      "parents": [
        "24ff2d770bca51979b98f78b3934ec47fbca47ee"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jun 04 21:20:26 2014 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jun 22 21:29:16 2014 -0500"
      },
      "message": "tenderloin:  Update to where we are at with current kernel\n"
    },
    {
      "commit": "d8cd0b8e3d557698ed31d3415c488790de8b92ee",
      "tree": "63309b1324d3d1f6038a6d24d56ef91b785fcf33",
      "parents": [
        "c190d7100a65950230ef21c3629a367a4449d7e0"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 17 23:41:28 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Wed Jun 18 00:04:36 2014 -0700"
      },
      "message": "USB: msm_otg: Update HTC variant of msm_otg\n\nHTC kernel version: m7stock_3.4.10-g1a25406\n\nChange-Id: I2707390c287a6d2a9f05814aea25362347240048\n"
    },
    {
      "commit": "c190d7100a65950230ef21c3629a367a4449d7e0",
      "tree": "248c149131fd06ce23a3964c0285b5c68dc322e3",
      "parents": [
        "6823498edefcad0152a4ee9ea05253c458729d13"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 17 23:01:53 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Wed Jun 18 00:04:35 2014 -0700"
      },
      "message": "power: pm8921: Update HTC pm8921 drivers\n\n* HTC kernel version: m7stock_3.4.10-g1a25406\n\nChange-Id: I5b35f54a48b051b7f3b03f0d867b9d14d9ddf8a2\n"
    },
    {
      "commit": "1996c132e6e6524d2ecb386b8d96b8c32343ca67",
      "tree": "a411dfe837067b8595dd9cf0ce4c0a7b38ce49cd",
      "parents": [
        "bae16898d62fa7b608c17ab1f987d319af28b3e7",
        "15d8f1ef6b18f4c96cc5f95fc3acc204deeb2469"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Tue Jun 17 07:26:27 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Tue Jun 17 07:26:27 2014 -0700"
      },
      "message": "Merge \"msm: perf: clean up duplicate constraint events\""
    },
    {
      "commit": "c261a5ae9e573d6178bee078bca21064aae24d71",
      "tree": "a2cd70bec61c699137160c163a882ac282487884",
      "parents": [
        "44796beb5ea98011490905a47d3a9b5a2f2bddee",
        "8165d84a0d90b1976ea6bb370a36df1b0cc14c63"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Tue Jun 17 07:26:24 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Tue Jun 17 07:26:24 2014 -0700"
      },
      "message": "Merge \"Perf: keep events across hotplug\""
    },
    {
      "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": "4b381ff1ae938cda6935a5a6775f4d315c83b659",
      "tree": "dd8ada2b4035e78e59990f504aa20f87e7ecedb4",
      "parents": [
        "e15e5c0d4d43d84f1e3627fb004561555ab3d9ce"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Tue May 21 10:16:19 2013 -0700"
      },
      "committer": {
        "name": "Syed Rameez Mustafa",
        "email": "rameezmustafa@codeaurora.org",
        "time": "Fri May 23 11:14:42 2014 -0700"
      },
      "message": "sched: Set MC (multi-core) sched domain\u0027s busy_factor attribute to 1\n\nbusy_factor attribute of a scheduler domain causes busy CPUs (CPUs\nthat are not idle) to load balance less frequently in that domain,\nwhich could impact performance by increasing scheduling latency for\ntasks.\n\nAs an example, consider MC scheduler domain\u0027s attribute values of\nmax_interval \u003d 4ms and busy_factor \u003d 64. Further consider\nmax_load_balance_interval \u003d 100 (HZ/10). In this case, a non-idle CPU\ncould put off load balance check in MC domain by 100ms. This\neffectively means that a CPU running a single task in its queue could\nfail to notice increased load on another CPU (that is in same MC\ndomain) for upto 100ms, before picking up load from the overloaded\nCPU. Needless to say, this leads to increased scheduling latency for\ntasks, affecting performance adversely.\n\nBy setting MC domain\u0027s busy_factor value to 1, we limit maximum\ninterval that busy CPU can put off load balance checks to 4ms\n(effectively 10ms, given HZ value of 100).\n\nChange-Id: Id45869d06f5556ea8eec602b65c2ffd2143fe060\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\nSigned-off-by: Syed Rameez Mustafa \u003crameezmustafa@codeaurora.org\u003e\n"
    },
    {
      "commit": "15d8f1ef6b18f4c96cc5f95fc3acc204deeb2469",
      "tree": "89967b918b61ea92591630440c2f9384070976d6",
      "parents": [
        "dc223cee085ac3e417b2c614ca9036bca28560fb"
      ],
      "author": {
        "name": "Neil Leeder",
        "email": "nleeder@codeaurora.org",
        "time": "Mon Oct 21 17:58:20 2013 -0400"
      },
      "committer": {
        "name": "Neil Leeder",
        "email": "nleeder@codeaurora.org",
        "time": "Mon May 19 15:12:29 2014 -0400"
      },
      "message": "msm: perf: clean up duplicate constraint events\n\nEvents with a duplicate constraint are set to state\u003dOFF when detected,\nso that their duplicate counts are not read. However, they were not being\ncleaned up because the core code only cleaned up ACTIVE events.\nThis resulted in counters not being freed and eventually running out\nof resources.\n\nClean up the events with state\u003d\u003dOFF that were marked that way because of\nconstraint duplication.\nEnsure counts are not updated for OFF events.\n\nChange-Id: If532801c79e6ad6809869eb0a3063774f00c92c3\nSigned-off-by: Neil Leeder \u003cnleeder@codeaurora.org\u003e\n"
    },
    {
      "commit": "8165d84a0d90b1976ea6bb370a36df1b0cc14c63",
      "tree": "ef2536e2e36bcfa06f7a7b47b819c48116fedd4f",
      "parents": [
        "e749cc109fc924105f6aa514ee33344da9c597e0"
      ],
      "author": {
        "name": "Neil Leeder",
        "email": "nleeder@codeaurora.org",
        "time": "Mon Apr 08 17:13:21 2013 -0400"
      },
      "committer": {
        "name": "Neil Leeder",
        "email": "nleeder@codeaurora.org",
        "time": "Mon May 19 15:12:26 2014 -0400"
      },
      "message": "Perf: keep events across hotplug\n\nKeep event list alive across a CPU hotplug so that perf\ncan resume when the CPU comes back online. Bring a CPU\nonline when exiting a perf session so it can be cleaned\nup properly.\n\nChange-Id: Ie0e4a43f751beb77afdc84e9d52b21780f279d80\nSigned-off-by: Neil Leeder \u003cnleeder@codeaurora.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": "53974e7878948a4b6ebae1f2a47fdf040769a653",
      "tree": "ae1372b1d07873b02e5aa7404f87d0ae560aaee6",
      "parents": [
        "2e2391b5d7864387bdbffdf3846a75413aff1c24"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Dec 30 23:42:37 2013 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 07 05:27:01 2014 -0500"
      },
      "message": "drivers: add capella cm3628 proximity sensor\n\nChange-Id: Ice3212f3925ee2441e0b49a30355a0f0015c0f45\n"
    },
    {
      "commit": "90c569a0bdd98797433785b521a51ccc268302e7",
      "tree": "3270a5923954da5a0b2ae4e46d9806cd8fce56e2",
      "parents": [
        "13809cd6bb7f7e9b47ebb489a8c2449f86b6db25"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Mar 01 18:30:06 2014 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 07 05:26:14 2014 -0500"
      },
      "message": "input: add atmel qt602240 support\n\nChange-Id: I720ad7d3eb67bc22378ab1702ea021fa4e0274d7\n"
    },
    {
      "commit": "7e78959eef7ce6771cb87835f475e22dc6672162",
      "tree": "bdf8282aaf5085cd2b76ca447f9755ce24f0f862",
      "parents": [
        "ed80534e15836294bb3bbb8d8afa4904520e7aa6"
      ],
      "author": {
        "name": "Mihir Shete",
        "email": "smihir@codeaurora.org",
        "time": "Thu Mar 13 18:50:49 2014 +0530"
      },
      "committer": {
        "name": "Mihir Shete",
        "email": "smihir@codeaurora.org",
        "time": "Tue May 06 11:38:33 2014 +0530"
      },
      "message": "wcnss: add API to check if wcnss is undergoing an SSR\n\nWlan driver should not read registers from wcnss or\ntry to communicate with the chip when it is undergoing\na subsystem-restart. Added an API with the wcnss platform\ndriver to check if ssr is in progress, this API will be\nused by the wlan driver to protect register access and\nother prohibited operations.\n\nChange-Id: Ia0d93e774af126d84dbaabf5c36a2c90fdbd58be\nCRs-Fixed: 621974\nSigned-off-by: Mihir Shete \u003csmihir@codeaurora.org\u003e\n"
    },
    {
      "commit": "36a093caf736755c3f42cde0abebbf6937f9f3e6",
      "tree": "c4cb589e1abe457ef20e85771acb787a5ddb9b3e",
      "parents": [
        "5cce5d16d13d6bd5f53b2cab181fefa55ae8efad",
        "00fcc691ed4a13522e01cfc1575cb7b984485b0a"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri May 02 22:35:16 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri May 02 22:35:16 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.37\u0027 into cm-11.0\n\nConflicts:\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/media/video/msm/vfe/msm_vfe32.c\n\tnet/wireless/nl80211.c\n\nChange-Id: I4228f28bc74631aba13e1da969c91aaefc463195\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": "028318115264ba1a15d49eefe46a4960f31bc00e",
      "tree": "56d4eaf44d5ddd4717f9a15c973e8f2cfec27e30",
      "parents": [
        "ecf91ffede641e121d990437db2218d3905e9fb6"
      ],
      "author": {
        "name": "Shantur Rathore",
        "email": "rathore4u@gmail.com",
        "time": "Thu Apr 10 22:48:34 2014 +0100"
      },
      "committer": {
        "name": "Shantur Rathore",
        "email": "rathore4u@gmail.com",
        "time": "Thu Apr 10 22:48:34 2014 +0100"
      },
      "message": "    Port USB Fastcharge : originally ported by showp1984\n\n         https://github.com/showp1984/bricked-pyramid-3.0/commit/9074f71ce46a984ad790e1b6ffb2ff4221d7afd1\n         https://github.com/showp1984/bricked-pyramid-3.0/commit/515dedcf5fa3268942b282f0ecbb36533d4245da\n\n        USB forced fast charge v2\n\n        Use sysfs interface to change behaviour :\n\n         * /sys/kernel/fast_charge/force_fast_charge (rw)\n         *\n         *   0 - disabled (default)\n         *   1 - substitute AC to USB charging always\n         *   2 - substitute AC to USB charging only if no USB peripheral is detected\n\n        For informational purposes I\u0027ve also added a read-only sysfs file that indicates the current USB state :\n\n         * /sys/kernel/fast_charge/USB_peripheral_detected (ro)\n         *\n         * The state will be returned in clear text (Yes/No).\n\n        For informational purposes I\u0027ve also added a read-only sysfs file that indicates the detected USB port type :\n\n         * /sys/kernel/fast_charge/USB_porttype_detected (ro)\n         *\n         * The port type will be returned in clear text.\n\nChange-Id: Iccd151e5bcd07af74859f5fe177312a12fb891c7\n"
    },
    {
      "commit": "b551f38903eb9d5c994e7baad1474124f5203697",
      "tree": "bcc061c287ec16669c1797d9860255383b053c1b",
      "parents": [
        "7549aeaf05762728a5099b19e8bc7874dce2a94d",
        "2e90ad510f068dd842c6e4266748bc070f268086"
      ],
      "author": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Sun Apr 06 15:13:12 2014 +0200"
      },
      "committer": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Sun Apr 06 15:13:12 2014 +0200"
      },
      "message": "Merge branch \u0027cm-11.0\u0027 into 8660-tp-merge\n\nConflicts:\n\tarch/arm/mach-msm/htc/Kconfig.board\n\tarch/arm/mach-msm/htc/Makefile\n\tarch/arm/mach-msm/htc/Makefile.board\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"
    }
  ],
  "next": "b3e3a83489d6420ae8e4f0a65f56ea6b57a39a70"
}
