{"push_id":1037087993,"size":78,"distinct_size":78,"ref":"refs/heads/lightning-cm13-new","head":"1a69c84b72b3da936b7c77b66e62906741e3c002","before":"ecfe5e55e4e1bbcab4b3de973de90d79146db20b","commits":[{"sha":"b55a7510e2b8b3c5eceb8b271bde17382b93dded","author":{"email":"d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","name":"Pranav Vashi"},"message":"cpufreq: cpu-boost: Clean up fb notifiers\n\n* FB notifiers are available with State notifier driver.\n\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/b55a7510e2b8b3c5eceb8b271bde17382b93dded"},{"sha":"27031ff7e5fd76ac5964aa7e4e224fa19966a50a","author":{"email":"ac19eddff17fac31bbdb326924c33fd88e829136@cyngn.com","name":"Keith Mok"},"message":"input: synaptics_dsx: Send KEY_WAKEUP for double-tap event\n\nKEY_POWER will confuse the system to end call.\nIf press power button to end call is enabled.\nUse KEY_WAKEUP instead\n\nCYNGNOS-2255\nChange-Id: I22a5fb67ce4af960ffaf911846c10e534d787a86","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/27031ff7e5fd76ac5964aa7e4e224fa19966a50a"},{"sha":"11fc4e131fb7612f55295995c1e6cd2e985bb345","author":{"email":"3ca33452d0ba398506359975e18b2014a884f2c8@yandex-team.ru","name":"Roman Gushchin"},"message":"fuse: break infinite loop in fuse_fill_write_pages()\n\nI got a report about unkillable task eating CPU. Further\ninvestigation shows, that the problem is in the fuse_fill_write_pages()\nfunction. If iov's first segment has zero length, we get an infinite\nloop, because we never reach iov_iter_advance() call.\n\nFix this by calling iov_iter_advance() before repeating an attempt to\ncopy data from userspace.\n\nA similar problem is described in 124d3b7041f (\"fix writev regression:\npan hanging unkillable and un-straceable\"). If zero-length segmend\nis followed by segment with invalid address,\niov_iter_fault_in_readable() checks only first segment (zero-length),\niov_iter_copy_from_user_atomic() skips it, fails at second and\nreturns zero -> goto again without skipping zero-length segment.\n\nPatch calls iov_iter_advance() before goto again: we'll skip zero-length\nsegment at second iteraction and iov_iter_fault_in_readable() will detect\ninvalid address.\n\nSpecial thanks to Konstantin Khlebnikov, who helped a lot with the commit\ndescription.\n\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Maxim Patlasov <mpatlasov@parallels.com>\nCc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>\nSigned-off-by: Roman Gushchin <klamm@yandex-team.ru>\nSigned-off-by: Miklos Szeredi <miklos@szeredi.hu>\nFixes: ea9b9907b82a (\"fuse: implement perform_write\")\nCc: <stable@vger.kernel.org>\n\nConflicts:\n\tfs/fuse/file.c\n\nChange-Id: Id37193373294dd43191469389cfe68ca1736a54b","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/11fc4e131fb7612f55295995c1e6cd2e985bb345"},{"sha":"ca2dd01f9659a37286d7a4acbd6c3d26406b109b","author":{"email":"ebac1d06c1688626821bb0e574a037a7a5354e49@redhat.com","name":"David Howells"},"message":"KEYS: Fix race between read and revoke\n\nThis fixes CVE-2015-7550.\n\nThere's a race between keyctl_read() and keyctl_revoke().  If the revoke\nhappens between keyctl_read() checking the validity of a key and the key's\nsemaphore being taken, then the key type read method will see a revoked key.\n\nThis causes a problem for the user-defined key type because it assumes in\nits read method that there will always be a payload in a non-revoked key\nand doesn't check for a NULL pointer.\n\nFix this by making keyctl_read() check the validity of a key after taking\nsemaphore instead of before.\n\nI think the bug was introduced with the original keyrings code.\n\nThis was discovered by a multithreaded test program generated by syzkaller\n(http://github.com/google/syzkaller).  Here's a cleaned up version:\n\n\t#include <sys/types.h>\n\t#include <keyutils.h>\n\t#include <pthread.h>\n\tvoid *thr0(void *arg)\n\t{\n\t\tkey_serial_t key = (unsigned long)arg;\n\t\tkeyctl_revoke(key);\n\t\treturn 0;\n\t}\n\tvoid *thr1(void *arg)\n\t{\n\t\tkey_serial_t key = (unsigned long)arg;\n\t\tchar buffer[16];\n\t\tkeyctl_read(key, buffer, 16);\n\t\treturn 0;\n\t}\n\tint main()\n\t{\n\t\tkey_serial_t key = add_key(\"user\", \"%\", \"foo\", 3, KEY_SPEC_USER_KEYRING);\n\t\tpthread_t th[5];\n\t\tpthread_create(&th[0], 0, thr0, (void *)(unsigned long)key);\n\t\tpthread_create(&th[1], 0, thr1, (void *)(unsigned long)key);\n\t\tpthread_create(&th[2], 0, thr0, (void *)(unsigned long)key);\n\t\tpthread_create(&th[3], 0, thr1, (void *)(unsigned long)key);\n\t\tpthread_join(th[0], 0);\n\t\tpthread_join(th[1], 0);\n\t\tpthread_join(th[2], 0);\n\t\tpthread_join(th[3], 0);\n\t\treturn 0;\n\t}\n\nBuild as:\n\n\tcc -o keyctl-race keyctl-race.c -lkeyutils -lpthread\n\nRun as:\n\n\twhile keyctl-race; do :; done\n\nas it may need several iterations to crash the kernel.  The crash can be\nsummarised as:\n\n\tBUG: unable to handle kernel NULL pointer dereference at 0000000000000010\n\tIP: [<ffffffff81279b08>] user_read+0x56/0xa3\n\t...\n\tCall Trace:\n\t [<ffffffff81276aa9>] keyctl_read_key+0xb6/0xd7\n\t [<ffffffff81277815>] SyS_keyctl+0x83/0xe0\n\t [<ffffffff815dbb97>] entry_SYSCALL_64_fastpath+0x12/0x6f\n\nChange-Id: I4b4011c628b471701cdda77265d8f130b0ed8f22\nReported-by: Dmitry Vyukov <dvyukov@google.com>\nSigned-off-by: David Howells <dhowells@redhat.com>\nTested-by: Dmitry Vyukov <dvyukov@google.com>\nCc: stable@vger.kernel.org\nSigned-off-by: James Morris <james.l.morris@oracle.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/ca2dd01f9659a37286d7a4acbd6c3d26406b109b"},{"sha":"cc30ab8f5e79eb2574c60e554ba9d57c955f0f31","author":{"email":"4b8373d016f277527198385ba72fda0feb5da015@hurleysoftware.com","name":"Peter Hurley"},"message":"tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)\n\nioctl(TIOCGETD) retrieves the line discipline id directly from the\nldisc because the line discipline id (c_line) in termios is untrustworthy;\nuserspace may have set termios via ioctl(TCSETS*) without actually\nchanging the line discipline via ioctl(TIOCSETD).\n\nHowever, directly accessing the current ldisc via tty->ldisc is\nunsafe; the ldisc ptr dereferenced may be stale if the line discipline\nis changing via ioctl(TIOCSETD) or hangup.\n\nWait for the line discipline reference (just like read() or write())\nto retrieve the \"current\" line discipline id.\n\nChange-Id: I7dae813721d4631d84a7d48b7b908e3bc40617cb\nCc: <stable@vger.kernel.org>\nSigned-off-by: Peter Hurley <peter@hurleysoftware.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/cc30ab8f5e79eb2574c60e554ba9d57c955f0f31"},{"sha":"28cd2d59a7a1c27bb757ae4623314df8a9bb2764","author":{"email":"57bd04edaad28bc28010cc36e2118e921bbe1779@cyngn.com","name":"Chao Chen"},"message":"USB: dwc3: otg: Fix charger online bug with USB_CDP type charger\n\nOPO-486\nFast charging USB port is detected as POWER_SUPPLY_TYPE_USB_CDP.\nRemove OPPO change that breaks CDP charger.\n\nChange-Id: I68741a2533eaf6784b5d2cb740cd399c35d7ad5d","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/28cd2d59a7a1c27bb757ae4623314df8a9bb2764"},{"sha":"a4d6944bf11d52d3a4791423a1a608d895242130","author":{"email":"572efd9047f12626ad5bcb995a452788646858f3@gmail.com","name":"Ming Lei"},"message":"ARM: 7730/1: DMA-mapping: mark all !DMA_TO_DEVICE pages in unmapping as clean\n\nIt is common for one sg to include many pages, so mark all these\npages as clean to avoid unnecessary flushing on them in\nset_pte_at() or update_mmu_cache().\n\nThe patch might improve loading performance of applciation code a bit.\n\nOn the below test code to read file(~1GByte size) from usb mass storage\ndisk to buffer created with mmap(PROT_READ | PROT_EXEC) on\nPandaboard, average ~1% improvement can be observed with the patch on\n10 times test.\n\nunsigned int sum = 0;\nstatic unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2)\n{\n\treturn (tv2->tv_sec - tv1->tv_sec) * 1000000 + (tv2->tv_usec - tv1->tv_usec);\n}\nint main(int argc, char *argv[])\n{\n\tchar *mbuffer;\n\tint fd;\n\tint i;\n\tunsigned long page_size, size;\n\tstruct stat stat;\n\tstruct timeval t1, t2;\n\n\tpage_size = getpagesize();\n\tfd = open(argv[1], O_RDONLY);\n\tassert(fd >= 0);\n\n\tfstat(fd, &stat);\n\tsize = stat.st_size;\n\tprintf(\"%s: file %s, file size %lu, page size %lun\", argv[0],\n\t        read_filename, size, page_size);\n\n\tgettimeofday(&t1, NULL);\n\tmbuffer = mmap(NULL, size, PROT_READ | PROT_EXEC, MAP_SHARED, fd, 0);\n\tfor (i = 0 ; i < size ; i += page_size)\n\t        sum += mbuffer[i];\n\tmunmap(mbuffer, page_size);\n\tgettimeofday(&t2, NULL);\n\tprintf(\"tread mmaped time: %luusn\", tv_diff(&t1, &t2));\n\n\tclose(fd);\n}\n\nAcked-by: Nicolas Pitre <nicolas.pitre@linaro.org>\nCc: Catalin Marinas <catalin.marinas@arm.com>\nCc: Marek Szyprowski <m.szyprowski@samsung.com>\nSigned-off-by: Ming Lei <ming.lei@canonical.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/a4d6944bf11d52d3a4791423a1a608d895242130"},{"sha":"a4b1dbb0cf5805b9843959f059f7f5fbae509dbe","author":{"email":"572efd9047f12626ad5bcb995a452788646858f3@gmail.com","name":"Ming Lei"},"message":"ARM: 7746/1: mm: lazy cache flushing on non-mapped pages\n\nCurrently flush_dcache_page() thinks pages as non-mapped if\nmapping_mapped(mapping) return false. This approach is very\ncoase:\n\t- mmap on part of file may cause all pages backed on\n\tthe file being thought as mmaped\n\n\t- file-backed pages aren't mapped into user space actually\n\tif the memory mmaped on the file isn't accessed\n\nThis patch uses page_mapped() to decide if the page has been\nmapped.\n\nFrom the attached test code, I find there is much performance\nimprovement(>25%) when accessing page caches via read under this\nsituations, so memcpy benefits a lot from not flushing cache\nunder this situation.\n\nNo.   read time without the patch\tNo. read time with the patch\n================================================================\nNo. 0, time  22615636 us\t\tNo. 0, time  22014717 us\nNo. 1, time  4387851 us \t\tNo. 1, time  3113184 us\nNo. 2, time  4276535 us \t\tNo. 2, time  3005244 us\nNo. 3, time  4259821 us \t\tNo. 3, time  3001565 us\nNo. 4, time  4263811 us \t\tNo. 4, time  3002748 us\nNo. 5, time  4258486 us \t\tNo. 5, time  3004104 us\nNo. 6, time  4253009 us \t\tNo. 6, time  3002188 us\nNo. 7, time  4262809 us \t\tNo. 7, time  2998196 us\nNo. 8, time  4264525 us \t\tNo. 8, time  3007255 us\nNo. 9, time  4267795 us \t\tNo. 9, time  3005094 us\n\n1), No.0. is to read the file from storage device, and others are\nto read the file from page caches basically.\n2), file size is 512M, and is on ext4 over usb mass storage.\n3), the test is done on Pandaboard.\n\nunsigned int  sum = 0;\nunsigned long sum_val = 0;\n\nstatic unsigned long tv_diff(struct timeval *tv1, struct timeval *tv2)\n{\n\treturn (tv2->tv_sec - tv1->tv_sec) * 1000000 +\n\t\t(tv2->tv_usec - tv1->tv_usec);\n}\n\nint main(int argc, char *argv[])\n{\n\tchar *mbuf, fbuf;\n\tint fd;\n\tint i;\n\tunsigned long page_size, size;\n\tstruct stat stat;\n\tstruct timeval t1, t2;\n\tunsigned char *rbuf = malloc(32 * page_size);\n\n\tif (!rbuf) {\n\t\tprintf(\"\t%sn\", \"malloc failed\");\n\t\texit(-1);\n\t}\n\n\tpage_size = getpagesize();\n\tfd = open(argv[1], O_RDWR);\n\tassert(fd >= 0);\n\n\tfstat(fd, &stat);\n\tsize = stat.st_size;\n\tprintf(\"%s: file %s, size %lu, page size %lun\",\n\t\targv[0],\n\t\targv[1], size, page_size);\n\n\tgettimeofday(&t1, NULL);\n\tmbuf = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);\n\tif (!mbuf) {\n\t\tprintf(\"\t%sn\", \"mmap failed\");\n\t\texit(-1);\n\t}\n\n\tfor (i = 0 ; i < size ; i += (page_size * 32)) {\n\t\tint rcnt;\n\t\tlseek(fd, i, SEEK_SET);\n\t\trcnt = read(fd, rbuf, page_size * 32);\n\t\tif (rcnt != page_size * 32) {\n\t\t\tprintf(\"%s: read faildn\", __func__);\n\t\t\texit(-1);\n\t\t}\n\t}\n\tfree(rbuf);\n\tmunmap(mbuf, size);\n\tgettimeofday(&t2, NULL);\n\tprintf(\"tread mmaped time: %luusn\", tv_diff(&t1, &t2));\n\n\tclose(fd);\n}\n\nCc: Michel Lespinasse <walken@google.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Nicolas Pitre <nicolas.pitre@linaro.org>\nReviewed-by: Will Deacon <will.deacon@arm.com>\nAcked-by: Catalin Marinas <catalin.marinas@arm.com>\nSigned-off-by: Ming Lei <ming.lei@canonical.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/a4b1dbb0cf5805b9843959f059f7f5fbae509dbe"},{"sha":"5cdb1fddf5e6edf55ec1993b1f03b492b78fa596","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: mm: remove redundant dsb() prior to range TLB invalidation\n\nThe kernel TLB range invalidation functions already contain dsb\ninstructions before and after the maintenance, so there is no need to\nintroduce additional barriers.\n\nChange-Id: If703b0112052bc44c670e3c0b744d3133f149a47\nReviewed-by: Catalin Marinas <catalin.marinas@arm.com>\nSigned-off-by: Will Deacon <will.deacon@arm.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/5cdb1fddf5e6edf55ec1993b1f03b492b78fa596"},{"sha":"3e86c561804d7fe04dc9928f0adbe941ba5839c3","author":{"email":"8e9bf4282cbc6fa41d4e66295128498eebe4db5d@calxeda.com","name":"Andreas Herrmann"},"message":"arm: dma-mapping: Add support to extend DMA IOMMU mappings\n\nInstead of using just one bitmap to keep track of IO virtual addresses\n(handed out for IOMMU use) introduce an array of bitmaps. This allows\nus to extend existing mappings when running out of iova space in the\ninitial mapping etc.\n\nIf there is not enough space in the mapping to service an IO virtual\naddress allocation request, __alloc_iova() tries to extend the mapping\n-- by allocating another bitmap -- and makes another allocation\nattempt using the freshly allocated bitmap.\n\nThis allows arm iommu drivers to start with a decent initial size when\nan dma_iommu_mapping is created and still to avoid running out of IO\nvirtual addresses for the mapping.\n\nSigned-off-by: Andreas Herrmann <andreas.herrmann@calxeda.com>\n[mszyprow: removed extensions parameter to arm_iommu_create_mapping()\n function, which will be modified in the next patch anyway, also some\n debug messages about extending bitmap]\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/3e86c561804d7fe04dc9928f0adbe941ba5839c3"},{"sha":"75c36b4c5c712742a58083c365dbfe8178e7dbc4","author":{"email":"2a0259761cc3e88db42be5300c1579a67c77e65e@samsung.com","name":"Marek Szyprowski"},"message":"arm: dma-mapping: remove order parameter from arm_iommu_create_mapping()\n\nThe 'order' parameter for IOMMU-aware dma-mapping implementation was\nintroduced mainly as a hack to reduce size of the bitmap used for\ntracking IO virtual address space. Since now it is possible to dynamically\nresize the bitmap, this hack is not needed and can be removed without any\nimpact on the client devices. This way the parameters for\narm_iommu_create_mapping() becomes much easier to understand. 'size'\nparameter now means the maximum supported IO address space size.\n\nThe code will allocate (resize) bitmap in chunks, ensuring that a single\nchunk is not larger than a single memory page to avoid unreliable\nallocations of size larger than PAGE_SIZE in atomic context.\n\nChange-Id: I9a0877d549e163d50dcccd71ea03633560191029\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/75c36b4c5c712742a58083c365dbfe8178e7dbc4"},{"sha":"11ee03dd43b4885d2b0e01efabbb30d43a8aaeab","author":{"email":"2a0259761cc3e88db42be5300c1579a67c77e65e@samsung.com","name":"Marek Szyprowski"},"message":"ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check\n\nnr_bitmaps member of mapping structure stores the number of already\nallocated bitmaps and it is interpreted as loop iterator (it starts from\n0 not from 1), so a comparison against number of possible bitmap\nextensions should include this fact. This patch fixes this by changing\nthe extension failure condition. This issue has been introduced by\ncommit 4d852ef8c2544ce21ae41414099a7504c61164a0 (\"arm: dma-mapping: Add\nsupport to extend DMA IOMMU mappings\").\n\nReported-by: Hyungwon Hwang <human.hwang@samsung.com>\nSigned-off-by: Marek Szyprowski <m.szyprowski@samsung.com>\nReviewed-by: Hyungwon Hwang <human.hwang@samsung.com>\nCc: stable@vger.kernel.org  # v3.15+\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/11ee03dd43b4885d2b0e01efabbb30d43a8aaeab"},{"sha":"d7338e123078110189f01fbc5803bb519420e34f","author":{"email":"80a24e735d812549c09054c99f7834313b50d4bf@motorola.com","name":"Chris Fries"},"message":"Revert \"qcom-cpufreq: Remove per-cpu workqueue\"\n\nRevert due to increase in watchdog panics seen in MR1.\n\nMalay Vadher @ QC provides this analysis:\n\nIt seems that while CPUX is power collapsed, the mux is locked\nout from software writes and so switching to safe source doesn't\nactually happen when CPUY tries to scale CPUX; CPUX then wakes up\nand CPUY disables the HFPLL while it is still the source for CPUX.\nBefore CR 691451 the situation above was not possible since we'd\nscale CPUX by running a thread on CPUX.\n\nThis reverts commit 63b798ea63a89b75bda973f05aea1cbacee21496.\n\nSigned-off-by: Chris Fries <cfries@motorola.com>\n\nConflicts:\n\tarch/arm/mach-msm/cpufreq.c","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/d7338e123078110189f01fbc5803bb519420e34f"},{"sha":"f9002e23ef32705d46b3c3831b963a4e993f1fbc","author":{"email":"287e02744ae7c802bbb99a60be19e5052bdd29c3@codeaurora.org","name":"Banajit Goswami"},"message":"ASoC: msm: qdsp6v2: Fix bit alignment in snd_codec params\n\nPointer member variables in snd_codec params break bit alignment and\ncauses data corruption. By changing these pointers to fixed size\narray variables, the bit alignment is rectified. The size has been\nset to max possible size. Also, remove params which are not required\nanymore.\n\nChange-Id: Ib87bbeb07b0df1ce8a81166b319976fe54c0f013\nSigned-off-by: Amit Shekhar <ashekhar@codeaurora.org>\nSigned-off-by: Banajit Goswami <bgoswami@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/f9002e23ef32705d46b3c3831b963a4e993f1fbc"},{"sha":"ad7be6074c1e5713d772f0cb5713e46fa8cfeb70","author":{"email":"d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","name":"Pranav Vashi"},"message":"msm: Fix some trivial warnings\n\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/ad7be6074c1e5713d772f0cb5713e46fa8cfeb70"},{"sha":"41fcf254b76a923ccf5999e4d2d536e565cb3efc","author":{"email":"f79f8cdd6e75c92b6d8b8297736b3d03fee33f3f@gmail.com","name":"Zachariah"},"message":"msm8974.dtsi: Adjust Freq Table for better on low end and performance on the high end\n\nSigned-off-by: Zachariah <zkennedy87@gmail.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/41fcf254b76a923ccf5999e4d2d536e565cb3efc"},{"sha":"537019a4076369d9d1a038ab08c8d2633afc3d67","author":{"email":"5d39c857884a1d1ca828769b9ecffa221bdbcccf@gmail.com","name":"Wish Wu"},"message":"msm: null pointer dereferencing\n\nPrevent unintended kernel NULL pointer dereferencing.\n\nOrignal code:\n  hlist_del_rcu(&event->hlist_entry);\n\nFix: Adding pointer check:\n  if(!hlist_unhashed(&p_event->hlist_entry))\n    hlist_del_rcu(&p_event->hlist_entry);\n\nBug: 25364034\nChange-Id: Ieda6d8f4bb567827fa6c7709e9e729905c6c3882\nSigned-off-by: Yuan Lin <yualin@google.com>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/537019a4076369d9d1a038ab08c8d2633afc3d67"},{"sha":"5fe262272f1f36d3bba70eb735ee0386c7a6cb41","author":{"email":"5b23f8226e886b22344fc642373ea657dd596b63@linux.vnet.ibm.com","name":"Srivatsa S. Bhat"},"message":"mm/page_allo.c: restructure free-page stealing code and fix a bug\n\nThe free-page stealing code in __rmqueue_fallback() is somewhat hard to\nfollow, and has an incredible amount of subtlety hidden inside!\n\nFirst off, there is a minor bug in the reporting of change-of-ownership of\npageblocks.  Under some conditions, we try to move upto\n'pageblock_nr_pages' no.  of pages to the preferred allocation list.  But\nwe change the ownership of that pageblock to the preferred type only if we\nmanage to successfully move atleast half of that pageblock (or if\npage_group_by_mobility_disabled is set).\n\nHowever, the current code ignores the latter part and sets the\n'migratetype' variable to the preferred type, irrespective of whether we\nactually changed the pageblock migratetype of that block or not.  So, the\npage_alloc_extfrag tracepoint can end up printing incorrect info (i.e.,\n'change_ownership' might be shown as 1 when it must have been 0).\n\nSo fixing this involves moving the update of the 'migratetype' variable to\nthe right place.  But looking closer, we observe that the 'migratetype'\nvariable is used subsequently for checks such as \"is_migrate_cma()\".\nObviously the intent there is to check if the *fallback* type is\nMIGRATE_CMA, but since we already set the 'migratetype' variable to\nstart_migratetype, we end up checking if the *preferred* type is\nMIGRATE_CMA!!\n\nTo make things more interesting, this actually doesn't cause a bug in\npractice, because we never change *anything* if the fallback type is CMA.\n\nSo, restructure the code in such a way that it is trivial to understand\nwhat is going on, and also fix the above mentioned bug.  And while at it,\nalso add a comment explaining the subtlety behind the migratetype used in\nthe call to expand().\n\n[akpm@linux-foundation.org: remove unneeded `inline', small coding-style fix]\nSigned-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nCc: Mel Gorman <mel@csn.ul.ie>\nCc: Minchan Kim <minchan@kernel.org>\nCc: Cody P Schafer <cody@linux.vnet.ibm.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nChange-Id: I2e84c3b2a45dc063402117dd74179585caa7234c","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/5fe262272f1f36d3bba70eb735ee0386c7a6cb41"},{"sha":"c6e52d8385f7fef7623f0968aa02ed20376e45ff","author":{"email":"70a1d3ef3e17a2bb0f09a1b2e6c86f607ed1d6d9@jp.fujitsu.com","name":"KOSAKI Motohiro"},"message":"mm: __rmqueue_fallback() should respect pageblock type\n\nWhen __rmqueue_fallback() doesn't find a free block with the required size\nit splits a larger page and puts the rest of the page onto the free list.\n\nBut it has one serious mistake.  When putting back, __rmqueue_fallback()\nalways use start_migratetype if type is not CMA.  However,\n__rmqueue_fallback() is only called when all of the start_migratetype\nqueue is empty.  That said, __rmqueue_fallback always puts back memory to\nthe wrong queue except try_to_steal_freepages() changed pageblock type\n(i.e.  requested size is smaller than half of page block).  The end result\nis that the antifragmentation framework increases fragmenation instead of\ndecreasing it.\n\nMel's original anti fragmentation does the right thing.  But commit\n47118af076f6 (\"mm: mmzone: MIGRATE_CMA migration type added\") broke it.\n\nThis patch restores sane and old behavior.  It also removes an incorrect\ncomment which was introduced by commit fef903efcf0c (\"mm/page_alloc.c:\nrestructure free-page stealing code and fix a bug\").\n\nSigned-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Mel Gorman <mgorman@suse.de>\nCc: Michal Nazarewicz <mina86@mina86.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/c6e52d8385f7fef7623f0968aa02ed20376e45ff"},{"sha":"d1eea0415631726766eb5b9abb5eac9fd8ae9d0e","author":{"email":"eee62f459f15dcddf87a8df69e8328e2a2562028@kernel.org","name":"Minchan Kim"},"message":"mm: page_alloc: use get_freepage_migratetype() instead of page_private()\n\nThe page allocator uses set_page_private and page_private for handling\nmigratetype when it frees page.  Let's replace them with [set|get]\n_freepage_migratetype to make it more clear.\n\nSigned-off-by: Minchan Kim <minchan@kernel.org>\nAcked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nReviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>\nAcked-by: Mel Gorman <mgorman@suse.de>\nCc: Xishi Qiu <qiuxishi@huawei.com>\nCc: Wen Congyang <wency@cn.fujitsu.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/nikhil18/lightning-kernel-bacon/commits/d1eea0415631726766eb5b9abb5eac9fd8ae9d0e"}]}