{"push_id":681614581,"size":12,"distinct_size":12,"ref":"refs/heads/test-new","head":"eb44d1e740870adf0c65f120663217ec4feedbab","before":"eb35b2e28592145d9c7460a1965bd29993493e9d","commits":[{"sha":"a9841254bb9fa83a530063270de4e1df52ba4a65","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"awifi: Use pm8xxx-vibrator instead of tspdrv","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/a9841254bb9fa83a530063270de4e1df52ba4a65"},{"sha":"a9dc3bd0471711fe59b795ac5cd486a65ac87402","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"pm8xxx-vibrator: Convert PMIC mV level to magnitude value","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/a9dc3bd0471711fe59b795ac5cd486a65ac87402"},{"sha":"4890daa1ae9e641a5443a05dd861fe79a5946f90","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"pm8xxx-vibrator: Increase vib_level steps to twelve\n\n* Set vib_level values in a scale of 1-100","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/4890daa1ae9e641a5443a05dd861fe79a5946f90"},{"sha":"0606b4f24b5914268d360145e3ea77d0caf5aa4c","author":{"email":"c7fa93ff364b50c0a977a853487528f982a1ac48@codeaurora.org","name":"Tatyana Brokhman"},"message":"block: Adding ROW scheduling algorithm\n\nThis patch adds the implementation of a new scheduling algorithm - ROW.\nThe policy of this algorithm is to prioritize READ requests over WRITE\nas much as possible without starving the WRITE requests.\n\nChange-Id: I4ed52ea21d43b0e7c0769b2599779a3d3869c519\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: ROW: Correct minimum values of ROW tunable parameters\n\nThe ROW scheduling algorithm exposes several tunable parameters.\nThis patch updates the minimum allowed values for those parameters.\n\nChange-Id: I5ec19d54b694e2e83ad5376bd99cc91f084967f5\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: ROW: Fix forced dispatch\n\nThis patch fixes forced dispatch in the ROW scheduling algorithm.\nWhen the dispatch function is called with the forced flag on, we\ncan't delay the dispatch of the requests that are in scheduler queues.\nThus, when dispatch is called with forced turned on, we need to cancel\nidling, or not to idle at all.\n\nChange-Id: I3aa0da33ad7b59c0731c696f1392b48525b52ddc\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: Add support for reinsert a dispatched req\n\nAdd support for reinserting a dispatched request back to the\nscheduler's internal data structures.\nThis capability is used by the device driver when it chooses to\ninterrupt the current request transmission and execute another (more\nurgent) pending request. For example: interrupting long write in order\nto handle pending read. The device driver re-inserts the\nremaining write request back to the scheduler, to be rescheduled\nfor transmission later on.\n\nAdd API for verifying whether the current scheduler\nsupports reinserting requests mechanism. If reinsert mechanism isn't\nsupported by the scheduler, this code path will never be activated.\n\nChange-Id: I5c982a66b651ebf544aae60063ac8a340d79e67f\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: Add API for urgent request handling\n\nThis patch add support in block & elevator layers for handling\nurgent requests. The decision if a request is urgent or not is taken\nby the scheduler. Urgent request notification is passed to the underlying\nblock device driver (eMMC for example). Block device driver may decide to\ninterrupt the currently running low priority request to serve the new\nurgent request. By doing so READ latency is greatly reduced in read&write\ncollision scenarios.\n\nNote that if the current scheduler doesn't implement the urgent request\nmechanism, this code path is never activated.\n\nChange-Id: I8aa74b9b45c0d3a2221bd4e82ea76eb4103e7cfa\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nrow: Adding support for reinsert already dispatched req\n\nAdd support for reinserting already dispatched request back to the\nschedulers internal data structures.\nThe request will be reinserted back to the queue (head) it was\ndispatched from as if it was never dispatched.\n\nChange-Id: I70954df300774409c25b5821465fb3aa33d8feb5\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock:row: fix idling mechanism in ROW\n\nThis patch addresses the following issues found in the ROW idling\nmechanism:\n1. Fix the delay passed to queue_delayed_work (pass actual delay\n   and not the time when to start the work)\n2. Change the idle time and the idling-trigger frequency to be\n   HZ dependent (instead of using msec_to_jiffies())\n3. Destroy idle_workqueue() in queue_exit\n\nChange-Id: If86513ad6b4be44fb7a860f29bd2127197d8d5bf\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\ncfq-iosched: Fix null pointer dereference\n\nNULL pointer dereference can happen in cfq_choose_cfqg()\nwhen there are no cfq groups to select other than the\ncurrent serving group. Prevent this by adding a NULL\ncheck before dereferencing.\n\nUnable to handle kernel NULL pointer dereference at virtual address\n[<c02502cc>] (cfq_dispatch_requests+0x368/0x8c0) from\n[<c0243f30>] (blk_peek_request+0x220/0x25c)\n[<c0243f30>] (blk_peek_request+0x220/0x25c) from\n[<c0243f74>] (blk_fetch_request+0x8/0x1c)\n[<c0243f74>] (blk_fetch_request+0x8/0x1c) from\n[<c041cedc>] (mmc_queue_thread+0x58/0x120)\n[<c041cedc>] (mmc_queue_thread+0x58/0x120) from\n[<c00ad310>] (kthread+0x84/0x90)\n[<c00ad310>] (kthread+0x84/0x90) from\n[<c000eeac>] (kernel_thread_exit+0x0/0x8)\n\nCRs-Fixed: 416466\nChange-Id: I1fab93a4334b53e1d7c5dcc8f93cff174bae0d5e\nSigned-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>\n\nrow: Add support for urgent request handling\n\nThis patch adds support for handling urgent requests.\nROW queue can be marked as \"urgent\" so if it was un-served in last\ndispatch cycle and a request was added to it - it will trigger\nissuing an urgent-request-notification to the block device driver.\nThe block device driver may choose at stop the transmission of current\nongoing request to handle the urgent one. Foe example: long WRITE may\nbe stopped to handle an urgent READ. This decreases READ latency.\n\nChange-Id: I84954c13f5e3b1b5caeadc9fe1f9aa21208cb35e\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Add some debug information on ROW queues\n\n1. Add a counter for number of requests on queue.\n2. Add function to print queues status (number requests\n   currently on queue and number of already dispatched requests\n   in current dispatch cycle).\n\nChange-Id: I1e98b9ca33853e6e6a8ddc53240f6cd6981e6024\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Insert dispatch_quantum into struct row_queue\n\nThere is really no point in keeping the dispatch quantum\nof a queue outside of it. By inserting it to the row_queue\nstructure we spare extra level in accessing it.\n\nChange-Id: Ic77571818b643e71f9aafbb2ca93d0a92158b199\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: fix sysfs functions - idle_time conversion\n\nidle_time was updated to be stored in msec instead of jiffies.\nSo there is no need to convert the value when reading from user or\ndisplaying the value to him.\n\nChange-Id: I58e074b204e90a90536d32199ac668112966e9cf\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Aggregate row_queue parameters to one structure\n\nEach ROW queues has several parameters which default values are defined\nin separate arrays. This patch aggregates all default values into one\narray.\nThe values in question are:\n - is idling enabled for the queue\n - queue quantum\n - can the queue notify on urgent request\n\nChange-Id: I3821b0a042542295069b340406a16b1000873ec6\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Dispatch requests according to their io-priority\n\nThis patch implements \"application-hints\" which is a way the issuing\napplication can notify the scheduler on the priority of its request.\nThis is done by setting the io-priority of the request.\nThis patch reuses an already existing mechanism of io-priorities developed\nfor CFQ. Please refer to kernel/Documentation/block/ioprio.txt for\nusage example and explanations.\n\nChange-Id: I228ec8e52161b424242bb7bb133418dc8b73925a\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Idling mechanism re-factoring\n\nAt the moment idling in ROW is implemented by delayed work that uses\njiffies granularity which is not very accurate. This patch replaces\ncurrent idling mechanism implementation with hrtime API, which gives\nnanosecond resolution (instead of jiffies).\n\nChange-Id: I86c7b1776d035e1d81571894b300228c8b8f2d92\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Don't notify URGENT if there are un-completed urgent req\n\nWhen ROW scheduler reports to the block layer that there is an urgent\nrequest pending, the device driver may decide to stop the transmission\nof the current request in order to handle the urgent one. If the current\ntransmitted request is an urgent request - we don't want it to be\nstopped.\nDue to the above ROW scheduler won't notify of an urgent request if\nthere are urgent requests in flight.\n\nChange-Id: I2fa186d911b908ec7611682b378b9cdc48637ac7\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Update initial values of ROW data structures\n\nThis patch sets the initial values of internal ROW\nparameters.\n\nChange-Id: I38132062a7fcbe2e58b9cc757e55caac64d013dc\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n[smuckle@codeaurora.org: ported from msm-3.7]\nSigned-off-by: Steve Muckle <smuckle@codeaurora.org>\n\nblock: add REQ_URGENT to request flags\n\nThis patch adds a new flag to be used in cmd_flags field of struct request\nfor marking request as urgent.\nUrgent request is the one that should be given priority currently handled\n(regular) request by the device driver. The decision of a request urgency\nis taken by the scheduler.\n\nChange-Id: Ic20470987ef23410f1d0324f96f00578f7df8717\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Re-design urgent request notification mechanism\n\nWhen ROW scheduler reports to the block layer that there is an urgent\nrequest pending, the device driver may decide to stop the transmission\nof the current request in order to handle the urgent one. This is done\nin order to reduce the latency of an urgent request. For example:\nlong WRITE may be stopped to handle an urgent READ.\n\nThis patch updates the ROW URGENT notification policy to apply with the\nbelow:\n\n- Don't notify URGENT if there is an un-completed URGENT request in driver\n- After notifying that URGENT request is present, the next request\n  dispatched is the URGENT one.\n- At every given moment only 1 request can be marked as URGENT.\n  Independent of it's location (driver or scheduler)\n\nOther changes to URGENT policy:\n- Only READ queues are allowed to notify of an URGENT request pending.\n\nCR fix:\nIf a pending urgent request (A) gets merged with another request (B)\nA is removed from scheduler queue but is not removed from\nrd->pending_urgent_rq.\n\nCRs-Fixed: 453712\nChange-Id: I321e8cf58e12a05b82edd2a03f52fcce7bc9a900\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: urgent request: remove unnecessary urgent marking\n\nAn urgent request is marked by the scheduler in rq->cmd_flags with the\nREQ_URGENT flag. There is no need to add an additional marking by\nthe block layer.\n\nChange-Id: I05d5e9539d2f6c1bfa80240b0671db197a5d3b3f\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Prevent starvation of regular priority by high priority\n\nAt the moment all REGULAR and LOW priority requests are starved as long as\nthere are HIGH priority requests to dispatch.\nThis patch prevents the above starvation by setting a starvation limit the\nREGULAR\\LOW priority requests can tolerate.\n\nChange-Id: Ibe24207982c2c55d75c0b0230f67e013d1106017\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Update sysfs functions\n\nAll ROW (time related) configurable parameters are stored in ms so there\nis no need to convert from/to ms when reading/updating them via sysfs.\n\nChange-Id: Ib6a1de54140b5d25696743da944c076dd6fc02ae\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: urgent request: Update dispatch_urgent in case of requeue/reinsert\n\nThe block layer implements a mechanism for verifying that the device\ndriver won't be notified of an URGENT request if there is already an\nURGENT request in flight. This is due to the fact that interrupting an\nURGENT request isn't efficient.\nThis patch fixes the above described mechanism in case the URGENT request\nwas returned back to the block layer from some reason: by requeue or\nreinsert.\n\nCRs-fixed: 473376, 473036, 471736\nChange-Id: Ie8b8208230a302d4526068531616984825f1050d\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Fix starvation tolerance values\n\nThe current starvation tolerance values increase the boot time\nsince high priority SW requests are delayed by regular priority requests.\nIn order to overcome this, increase the starvation tolerance values.\n\nChange-Id: I9947fca9927cbd39a1d41d4bd87069df679d3103\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\nSigned-off-by: Maya Erez <merez@codeaurora.org>\n\nblock: urgent: Fix dispatching of URGENT mechanism\n\nThere are cases when blk_peek_request is called not from blk_fetch_request\nthus the URGENT request may be started but the flag q->dispatched_urgent is\nnot updated.\n\nChange-Id: I4fb588823f1b2949160cbd3907f4729767932e12\nCRs-fixed: 471736\nCRs-fixed: 473036\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: Remove \"requeuing urgent req\" error messages\n\nIt is possible for URGENT request to be requeued/reinserted if it was\nfetched during the creation of a packed list. This end case is rare and is\nnot handled at the moment.\nThis patch changes the messages notifying of the above to debug level\n(instead of error) in order to clear the dmesg log.\n\nChange-Id: Ie8bc067e61559a6f702077b95c5dbcc426404232\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row-iosched idling triggered by readahead pages\n\nIn the current implementation idling is triggered only by request\ninsertion frequency. This heuristic is not very accurate and may hit\nrandom requests that shouldn't trigger idling. This patch uses the\nPG_readahead flag in struct page's flags, which indicates that the page\nis part of a readahead window, to start idling upon dispatch of a request\nassociated with a readahead page.\n\nThe above readehead flag is used together with the existing\ninsertion-frequency trigger. The frequency timer will catch read requests\nwhich are not part of a readahead window, but are still part of a\nsequential stream (and therefore dispatched in small time intervals).\n\nChange-Id: Icb7145199c007408de3f267645ccb842e051fd00\nSigned-off-by: Lee Susman <lsusman@codeaurora.org>\n\nblock: row: change hrtimer_cancel to hrtimer_try_to_cancel\n\nCalling hrtimer_cancel with interrupts disabled can result in a livelock.\nWhen flushing plug list in the block layer interrupts are disabled and an\nhrtimer is used when adding requests from that plug list to the scheduler.\nIn this code flow, if the hrtimer (which is used for idling) is set, it's\nbeing canceled by calling hrtimer_cancel. hrtimer_cancel will perform\nthe following in an endless loop:\n1. try cancel the timer\n2. if fails - rest_cpu\nthe cancellation can fail if the timer function already started. Since\ninterrupts are disabled it can never complete.\nThis patch reduced the number of times the hrtimer lock is taken while\ninterrupts are disabled by calling hrtimer_try_co_cancel. the later will\ntry to cancel the timer just once and return with an error code if fails.\n\nCRs-fixed: 499887\nChange-Id: I25f79c357426d72ad67c261ce7cb503ae97dc7b9\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: Add URGENT request notification support to CFQ scheduler\n\nWhen the scheduler reports to the block layer that there is an urgent\nrequest pending, the device driver may decide to stop the transmission\nof the current request in order to handle the urgent one. This is done\nin order to reduce the latency of an urgent request. For example:\nlong WRITE may be stopped to handle an urgent READ.\n\nChange-Id: I3072b8a1423870fed9c04c28d93caaf9557a7b89\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>\n\nblock: row: Remove warning massage from add_request\n\nRegular priority queues is marked as \"starved\" if it skipped a dispatch\ndue to being empty. When a new request is added to a \"starved\" queue\nit will be marked as urgent.\nThe removed WARN_ON was warning about an impossible case when a regular\npriority (read) queue was marked as starved but wasn't empty. This is\na possible case due to the bellow:\nIf the device driver fetched a read request that is pending for\ntransmission and an URGENT request arrives, the fetched read will be\nreinserted back to the scheduler. Its possible that the queue it will be\nreinserted to was marked as \"starved\" in the meanwhile due to being empty.\n\nCRs-fixed: 517800\nChange-Id: Iaae642ea0ed9c817c41745b0e8ae2217cc684f0c\nSigned-off-by: Tatyana Brokhman <tlinder@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/0606b4f24b5914268d360145e3ea77d0caf5aa4c"},{"sha":"f0970a645cc2c49c48c66db09592c2f1e9000a7f","author":{"email":"9ae2fff1e81f4043f3b3adb9ed5eedbbd34e3953@codeaurora.org","name":"Lee Susman"},"message":"mm: pass readahead info down to the i/o scheduler\n\nSome i/o schedulers (i.e. row-iosched, cfq-iosched) deploy an idling\nalgorithm in order to be better synced with the readahead algorithm.\nIdling is a prediction algorithm for incoming read requests.\n\nIn this patch we mark pages which are part of a readahead window, by\nsetting a newly introduced flag. With this flag, the i/o scheduler can\nidentify a request which is associated with a readahead page. This\nenables the i/o scheduler's idling mechanism to be en-sync with the\nreadahead mechanism and, in turn, can increase read throughput.\n\nChange-Id: I0654f23315b6d19d71bcc9cc029c6b281a44b196\nSigned-off-by: Lee Susman <lsusman@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/f0970a645cc2c49c48c66db09592c2f1e9000a7f"},{"sha":"27e0a7ea8d2e702fcaebf39f5dadcc16d27197d0","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"defconfig: awifi: Change default IO scheduler to ROW","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/27e0a7ea8d2e702fcaebf39f5dadcc16d27197d0"},{"sha":"8968b3e5ebfef4a108b1f3ca56a1c10fcab931ee","author":{"email":"81d350bdba3c00ffd4ee275b8b38db13ebdb86e1@gmail.com","name":"jrior001"},"message":"fs: add f2fs support\n\nSquashed import of f2fs filesystem from:\nhttps://kernel.googlesource.com/pub/scm/linux/kernel/git/jaegeuk/f2fs\nbranch: linux-3.4\n\nImports all relevant changes, up to and including commit:\n  f2fs: support 3.4\n  Author: Jaegeuk Kim <jaegeuk.kim@samsung.com>\n  Date: Wed May 29 10:15:36 2013 +0900\n  SHA1: adecc452383b9394e75417c4516924ac00519ac0\n\nChange-Id: I75179ebca9f83c83a923fe150a68f986ba712d68","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/8968b3e5ebfef4a108b1f3ca56a1c10fcab931ee"},{"sha":"a780fb5d4d3b56a8fabdeae3cc94f2a3bbd37ec6","author":{"email":"51b0aed1a48556115b152d4619664105ddea9243@lge.com","name":"Kyungsik Lee"},"message":"decompressor: add LZ4 decompressor module\n\nAdd support for LZ4 decompression in the Linux Kernel.  LZ4 Decompression\nAPIs for kernel are based on LZ4 implementation by Yann Collet.\n\nBenchmark Results(PATCH v3)\nCompiler: Linaro ARM gcc 4.6.2\n\n1. ARMv7, 1.5GHz based board\n   Kernel: linux 3.4\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.7MB            20.1MB/s, 25.2MB/s(UA)\n   LZ4  7.3MB            29.1MB/s, 45.6MB/s(UA)\n\n2. ARMv7, 1.7GHz based board\n   Kernel: linux 3.7\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.0MB            34.1MB/s, 52.2MB/s(UA)\n   LZ4  6.5MB            86.7MB/s\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch set is for adding support for LZ4-compressed Kernel.  LZ4 is a\nvery fast lossless compression algorithm and it also features an extremely\nfast decoder [1].\n\nBut we have five of decompressors already and one question which does\narise, however, is that of where do we stop adding new ones?  This issue\nhad been discussed and came to the conclusion [2].\n\nRussell King said that we should have:\n\n - one decompressor which is the fastest\n - one decompressor for the highest compression ratio\n - one popular decompressor (eg conventional gzip)\n\nIf we have a replacement one for one of these, then it should do exactly\nthat: replace it.\n\nThe benchmark shows that an 8% increase in image size vs a 66% increase\nin decompression speed compared to LZO(which has been known as the\nfastest decompressor in the Kernel).  Therefore the \"fast but may not be\nsmall\" compression title has clearly been taken by LZ4 [3].\n\n[1] http://code.google.com/p/lz4/\n[2] http://thread.gmane.org/gmane.linux.kbuild.devel/9157\n[3] http://thread.gmane.org/gmane.linux.kbuild.devel/9347\n\nLZ4 homepage: http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository: http://code.google.com/p/lz4/\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Yann Collet <yann.collet.73@gmail.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib: add support for LZ4-compressed kernel\n\nAdd support for extracting LZ4-compressed kernel images, as well as\nLZ4-compressed ramdisk images in the kernel boot process.\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib: add lz4 compressor module\n\nThis patchset is for supporting LZ4 compression and the crypto API using\nit.\n\nAs shown below, the size of data is a little bit bigger but compressing\nspeed is faster under the enabled unaligned memory access.  We can use\nlz4 de/compression through crypto API as well.  Also, It will be useful\nfor another potential user of lz4 compression.\n\nlz4 Compression Benchmark:\nCompiler: ARM gcc 4.6.4\nARMv7, 1 GHz based board\n   Kernel: linux 3.4\n   Uncompressed data Size: 101 MB\n         Compressed Size  compression Speed\n   LZO   72.1MB\t\t  32.1MB/s, 33.0MB/s(UA)\n   LZ4   75.1MB\t\t  30.4MB/s, 35.9MB/s(UA)\n   LZ4HC 59.8MB\t\t   2.4MB/s,  2.5MB/s(UA)\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch:\n\nAdd support for LZ4 compression in the Linux Kernel.  LZ4 Compression APIs\nfor kernel are based on LZ4 implementation by Yann Collet and were changed\nfor kernel coding style.\n\nLZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository : http://code.google.com/p/lz4/\nsvn revision : r90\n\nTwo APIs are added:\n\nlz4_compress() support basic lz4 compression whereas lz4hc_compress()\nsupport high compression or CPU performance get lower but compression\nratio get higher.  Also, we require the pre-allocated working memory with\nthe defined size and destination buffer must be allocated with the size of\nlz4_compressbound.\n\n[akpm@linux-foundation.org: make lz4_compresshcctx() static]\nSigned-off-by: Chanho Min <chanho.min@lge.com>\nCc: \"Darrick J. Wong\" <djwong@us.ibm.com>\nCc: Bob Pearson <rpearson@systemfabricworks.com>\nCc: Richard Weinberger <richard@nod.at>\nCc: Herbert Xu <herbert@gondor.hengli.com.au>\nCc: Yann Collet <yann.collet.73@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib/lz4: correct the LZ4 license\n\nThe LZ4 code is listed as using the \"BSD 2-Clause License\".\n\nSigned-off-by: Richard Laager <rlaager@wiktel.com>\nAcked-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: Chanho Min <chanho.min@lge.com>\nCc: Richard Yao <ryao@gentoo.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\n[ The 2-clause BSD can be just converted into GPL, but that's rude and\n  pointless, so don't do it   - Linus ]\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlz4: fix compression/decompression signedness mismatch\n\nLZ4 compression and decompression functions require different in\nsignedness input/output parameters: unsigned char for compression and\nsigned char for decompression.\n\nChange decompression API to require \"(const) unsigned char *\".\n\nSigned-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: Geert Uytterhoeven <geert@linux-m68k.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlz4: ensure length does not wrap\n\nGiven some pathologically compressed data, lz4 could possibly decide to\nwrap a few internal variables, causing unknown things to happen.  Catch\nthis before the wrapping happens and abort the decompression.\n\nReported-by: \"Don A. Bailey\" <donb@securitymouse.com>\nCc: stable <stable@vger.kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nlz4: fix another possible overrun\n\nThere is one other possible overrun in the lz4 code as implemented by\nLinux at this point in time (which differs from the upstream lz4\ncodebase, but will get synced at in a future kernel release.)  As\npointed out by Don, we also need to check the overflow in the data\nitself.\n\nWhile we are at it, replace the odd error return value with just a\n\"simple\" -1 value as the return value is never used for anything other\nthan a basic \"did this work or not\" check.\n\nReported-by: \"Don A. Bailey\" <donb@securitymouse.com>\nReported-by: Willy Tarreau <w@1wt.eu>\nCc: stable <stable@vger.kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nlz4: add overrun checks to lz4_uncompress_unknownoutputsize()\n\nJan points out that I forgot to make the needed fixes to the\nlz4_uncompress_unknownoutputsize() function to mirror the changes done\nin lz4_decompress() with regards to potential pointer overflows.\n\nThe only in-kernel user of this function is the zram code, which only\ntakes data from a valid compressed buffer that it made itself, so it's\nnot a big issue.  But due to external kernel modules using this\nfunction, it's better to be safe here.\n\nReported-by: Jan Beulich <JBeulich@suse.com>\nCc: \"Don A. Bailey\" <donb@securitymouse.com>\nCc: stable <stable@vger.kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nLZ4 : fix the data abort issue\n\nIf the part of the compression data are corrupted, or the compression\ndata is totally fake, the memory access over the limit is possible.\n\nThis is the log from my system usning lz4 decompression.\n   [6502]data abort, halting\n   [6503]r0  0x00000000 r1  0x00000000 r2  0xdcea0ffc r3  0xdcea0ffc\n   [6509]r4  0xb9ab0bfd r5  0xdcea0ffc r6  0xdcea0ff8 r7  0xdce80000\n   [6515]r8  0x00000000 r9  0x00000000 r10 0x00000000 r11 0xb9a98000\n   [6522]r12 0xdcea1000 usp 0x00000000 ulr 0x00000000 pc  0x820149bc\n   [6528]spsr 0x400001f3\nand the memory addresses of some variables at the moment are\n    ref:0xdcea0ffc, op:0xdcea0ffc, oend:0xdcea1000\n\nAs you can see, COPYLENGH is 8bytes, so @ref and @op can access the momory\nover @oend.\n\nChange-Id: I9919c9bcfca9ae9e26d83fa49afff99e74295d3b\nSigned-off-by: JeHyeon Yeon <tom.yeon@windriver.com>\nReviewed-by: David Sterba <dsterba@suse.cz>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/a780fb5d4d3b56a8fabdeae3cc94f2a3bbd37ec6"},{"sha":"d09a4cf5426fae0a7e0940726cf659e3f8f69e2f","author":{"email":"51b0aed1a48556115b152d4619664105ddea9243@lge.com","name":"Kyungsik Lee"},"message":"arm: add support for LZ4-compressed kernel\n\nIntegrates the LZ4 decompression code to the arm pre-boot code.\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/boot/compressed/Makefile\n\tarch/x86/boot/compressed/Makefile\n\nChange-Id: I4ed47a5f99e0e777bcc1f2d132e2361490f8fe19","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/d09a4cf5426fae0a7e0940726cf659e3f8f69e2f"},{"sha":"149c65b048db36a5fbaa413e4950b495969d0a72","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"defconfig: awifi: Enable f2fs and LZ4","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/149c65b048db36a5fbaa413e4950b495969d0a72"},{"sha":"4a31313567c9139c2617ad58124691863fbeba25","author":{"email":"3aa1af0b84637f6957d3e83d52f23fe513bfe974@gmail.com","name":"Sultanxda"},"message":"init: Kconfig: Don't force DEBUG_KERNEL","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/4a31313567c9139c2617ad58124691863fbeba25"},{"sha":"eb44d1e740870adf0c65f120663217ec4feedbab","author":{"email":"17025e8634a38137c09e61d7c9a5b5e053e5200a@gmail.com","name":"fefifofum"},"message":"defconfig: awifi: Disable DEBUG_KERNEL","distinct":true,"url":"https://api.github.com/repos/awifi-dev/android_kernel_lge_awifi/commits/eb44d1e740870adf0c65f120663217ec4feedbab"}]}