[Galaxy S Plus I9001 Android Development] Christopher83:
K^Kernel 3.4.98 v1.7 for JB 4.2.2 ION+PMEM ADSP

Hi guys,

I released the new v1.7 builds of the kernel, ready to be used with ADC ROM CM 10.1 Release 5.

Changelog:

- Kernel 3.4.98
- Sources synched with cm-10.1 branch of DevCon Team
- Built with my latest custom Linaro 4.9.1-2014.06 toolchain optimized for Cortex-A8
- ksm: Provide support to use deferred timers for scanner thread (credits to Chintan Pandya)
- net: ipv6: ping: Use socket mark in routing lookup (credits to Lorenzo Colitti)
- net: ipv6: autoconf routes into per-device tables (credits to Lorenzo Colitti)
- net: add a sysctl to reflect the fwmark on replies (credits to Lorenzo Colitti)
- net: support marking accepting TCP sockets (credits to Lorenzo Colitti)
- radio: iris: Checking if driver's buffer is large enough. (credits to Satish Kodishala)
- misc: qfpfuse: Fix overflow condition. (credits to Venkatesh Yadav Abbarapu)
- misc: qfpfuse: validate ioctl input parameters. (credits to Venkatesh Yadav Abbarapu)
- mmc: core: enable eMMC5.0 card detection (credits to Subhash Jadavani)
- audio: Change to set the USB switch state correctly (credits to Shreyas Nagasandra Chandrasekhar)
- block: bfq: Squashed update from BFQ-v7r3 to BFQ-v7r4 (credits to arco68)
- futex: Prevent attaching to kernel threads (credits to Thomas Gleixner)
- futex: Add another early deadlock detection check (credits to Thomas Gleixner)
- futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) (credits to Thomas Gleixner)
- futex: Validate atomic acquisition in futex_lock_pi_atomic() (credits to Thomas Gleixner)
- futex: Always cleanup owner tid in unlock_pi (credits to Thomas Gleixner)
- futex: Make lookup_pi_state more robust (credits to Thomas Gleixner)
- mach-msm: Use ION_CP_MM_HEAP_ID instead of ION_CAMERA_HEAP_ID (credits to Christopher83)
- Revert "msm: pm2: Setup memory for save/restore cpu registers early" (credits to Christopher83)
- msm7x30: Use CMA for MM ION heap (credits to Christopher83)
- msm7x30: Update defconfigs to enable CMA (credits to Christopher83)
- mm: try_to_unmap_cluster() should lock_page() before mlocking (credits to Vlastimil Babka)
- msm:vidc: Amend error checks on ION API failures (credits to Maheshwar Ajja)
- ion: cma: Add debug heap ops for CMA heap (credits to Chintan Pandya)
- ancora : update board (credits to madridii)
- ancora: Increased audio volume on board side (credits to madridii)
- ancora: Lowered WIFI voltage (credits to madridii)
- ancora: Lowered display panel voltage (credits to madridii)
- ancora: High Memory (credits to madridii)
- ancora: Lowered Vibetonz voltage (credits to madridii)
- ancora_tmo : update board (credits to doadin)
- ancora_tmo: Lowered WIFI voltage (credits to doadin)
- ancora_tmo: Lowered display panel voltage (credits to doadin)
- ancora_tmo: Lowered Vibetonz voltage (credits to doadin)
- ariesve: Revised high memory configuration descriptions (credits to Christopher83)
- msm7x30: Update default and custom configs (credits to Christopher83)
- ancora: High memory allocations (credits to Christopher83)
- ancora: Add custom defconfigs (credits to Christopher83)
- mmc: msm_sdcc: Advertise erase capability for ancora (credits to arco68)
- gpu: ion: Sync CMA caching logic with carveout heap. (credits to Blefish)
- defconfigs: Build crypto devices as modules (credits to arco68)
- msm: dma: Moving queue_work() function within spinlock (credits to Utsab Bose)
- sched: Reset rq->next_interval before going idle (credits to Srivatsa Vaddagiri)
- sched: re-calculate a cpu's next_balance point upon sched domain changes (credits to Srivatsa Vaddagiri)
- ARM: 7486/1: sched_clock: update epoch_cyc on resume (credits to Colin Cross)
- ARM: 7565/1: sched: stop sched_clock() during suspend (credits to Felipe Balbi 2)
- sched: Set MC (multi-core) sched domain's busy_factor attribute to 1 (credits to Srivatsa Vaddagiri)
- power: ancora_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Remove trailing spaces (credits to Christopher83)
- power: apache_battery: Remove trailing spaces (credits to Christopher83)
- power: ancora_tmo_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: Add Battery Life eXtender (BLX) support (credits to Christopher83)
- power: apache_battery: 100% battery notification after charger unplug (credits to Christopher83)
- power: ancora_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: ancora_tmo_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- power: apache_battery: Increase battery check interval from 5 seconds to 15 seconds (credits to Christopher83)
- ancora_tmo: High memory configurations (credits to Christopher83)
- apache: High memory configurations (credits to Christopher83)
- msm7x30: Better manage cpu frequencies for MSM8255 and MSM8255T (credits to Christopher83)
- ancora_tmo: Add custom defconfigs (credits to Christopher83)
- apache: Add custom defconfigs (credits to Christopher83)
- arm: Add a config option to use GLibC memcpy and memmove versions (credits to Christopher83)
- msm7x30: Update defconfigs to use GLibC versions of memcpy and memmove (credits to Christopher83)
- mmc: msm_sdcc: Advertise erase capability for ancora_tmo and apache (credits to arco68)
- ARM: 7693/1: mm: clean-up in order to reduce to call kmap_high_get() (credits to Joonsoo Kim)
- mm: Don't use CMA page for file cache (credits to Laura Abbott)
- mm/page_alloc.c: fix watermark check in __zone_watermark_ok() (credits to Tomasz Stanislawski)
- mm: cma: fix alignment requirements for contiguous regions (credits to Marek Szyprowski)
- drivers: cma: represent physical addresses as phys_addr_t (credits to Vitaly Andrianov)
- drivers: dma-contiguous: refactor dma_alloc_from_contiguous() (credits to Michal Nazarewicz)
- mm: cma: fix condition check when setting global cma area (credits to Marek Szyprowski)
- drivers: dma-contiguous: clean source code and prepare for device tree (credits to Marek Szyprowski)
- drivers: dma-contiguous: add initialization from device tree (credits to Marek Szyprowski)
- cma: Remove __init annotations from data structures (credits to Laura Abbott)
- cma: Fix up devicetree bindings (credits to Laura Abbott)
- cma: Add support for associating regions by name (credits to Laura Abbott)
- cma: Remove restriction on region names (credits to Laura Abbott)
- cma: use MEMBLOCK_ALLOC_ANYWHERE for placing CMA regions (credits to Laura Abbott)
- cma: Add API to get the start address of a CMA region (credits to Laura Abbott)
- cma: Remove potential deadlock situation (credits to Laura Abbott)
- cma: Add support for memory limits (credits to Laura Abbott)
- cma: Make locking finer grained (credits to Laura Abbott)
- cma: Drop the right mutex (credits to Laura Abbott)
- dma-contiguous: Return 'zero' pfn in case of error (credits to Chintan Pandya)
- ARM: dma-mapping: fix incorrect freeing of atomic allocations (credits to Aaro Koskinen)
- mm: vmalloc: use const void * for caller argument (credits to Marek Szyprowski)
- ARM: dma-mapping: remove custom consistent dma region (credits to Marek Szyprowski)
- mm: push lru index into shrink_[in]active_list() (credits to Konstantin Khlebnikov)
- swap: add per-partition lock for swapfile (credits to Shaohua Li)
- mm: vmscan: fix do_try_to_free_pages() livelock (credits to Lisa Du)
- mm: vmscan: remove lumpy reclaim (credits to Mel Gorman)
- mm: vmscan: do not stall on writeback during memory compaction (credits to Mel Gorman)
- mm: vmscan: remove reclaim_mode_t (credits to Mel Gorman)
- mm: remove lru type checks from __isolate_lru_page() (credits to Konstantin Khlebnikov)
- mm/memcg: kill mem_cgroup_lru_del() (credits to Konstantin Khlebnikov)
- mm/memcg: scanning_global_lru means mem_cgroup_disabled (credits to Hugh Dickins)
- mm/memcg: use vm_swappiness from target memory cgroup (credits to Konstantin Khlebnikov)
- mm: remove swap token code (credits to Rik van Riel)
- mm/vmscan: store "priority" in struct scan_control (credits to Konstantin Khlebnikov)
- kernel: cgroup: push rcu read locking from css_is_ancestor() to callsite (credits to Johannes Weiner)
- mm: memcg: count pte references from every member of the reclaimed hierarchy (credits to Johannes Weiner)
- mm/vmscan: push zone pointer into shrink_page_list() (credits to Konstantin Khlebnikov)
- mm/vmscan: push lruvec pointer into isolate_lru_pages() (credits to Konstantin Khlebnikov)
- mm/vmscan: remove update_isolated_counts() (credits to Konstantin Khlebnikov)
- mm: cma: discard clean pages during contiguous allocation instead of migration (credits to Minchan Kim)
- cma: decrease cc.nr_migratepages after reclaiming pagelist (credits to Minchan Kim)
- mm/compaction.c: fix deferring compaction mistake (credits to Minchan Kim)
- mm: compaction: Abort async compaction if locks are contended or taking too long (credits to Mel Gorman)
- mm: compaction: update comment in try_to_compact_pages (credits to Mel Gorman)
- mm: compaction: capture a suitable high-order page immediately when it is made available (credits to Mel Gorman)
- mm: compaction: abort compaction loop if lock is contended or run too long (credits to Shaohua Li)
- mm: compaction: move fatal signal check out of compact_checklock_irqsave (credits to Mel Gorman)
- mm: compaction: Update try_to_compact_pages()kerneldoc comment (credits to Mel Gorman)
- mm: compaction: acquire the zone->lru_lock as late as possible (credits to Mel Gorman)
- mm: compaction: acquire the zone->lock as late as possible (credits to Mel Gorman)
- mm: compaction: cache if a pageblock was scanned and no pages were isolated (credits to Mel Gorman)
- mm: cma: WARN if freed memory is still in use (credits to Marek Szyprowski)
- mm: do not use page_count() without a page pin (credits to Minchan Kim)
- mm: clean up __count_immobile_pages() (credits to Minchan Kim)
- mm: compaction: Restart compaction from near where it left off (credits to Mel Gorman)
- mm: compaction: clear PG_migrate_skip based on compaction and reclaim activity (credits to Mel Gorman)
- CMA: migrate mlocked pages (credits to Minchan Kim)
- mm: compaction: correct the nr_strict va isolated check for CMA (credits to Mel Gorman)
- mm: compaction: validate pfn range passed to isolate_freepages_block (credits to Mel Gorman)
- mm: compaction: Move migration fail/success stats to migrate.c (credits to Mel Gorman)
- mm: compaction: Add scanned and isolated counters for compaction (credits to Mel Gorman)
- mm: cma: skip watermarks check for already isolated blocks in split_free_page() (credits to Marek Szyprowski)
- mm: compaction: partially revert capture of suitable high-order page (credits to Mel Gorman)
- compaction: fix build error in CMA && !COMPACTION (credits to Minchan Kim)
- mm: vmscan: do not keep kswapd looping forever due to individual uncompactable zones (credits to Johannes Weiner)
- mm: vmscan: Fix build error (credits to Christopher83)
- msm: Allow lowmem to be non contiguous and mixed. (credits to Neeti Desai)
- msm: Increase the kernel virtual area to include lowmem (credits to Neeti Desai)
- mm: Remove __init annotations from free_bootmem_late (credits to Laura Abbott)
- kernel/lib: add additional debug capabilites for data corruption (credits to Syed Rameez Mustafa)
- mm: panic on the first bad page table entry access (credits to Pushkar Joshi)
- mm: Update is_vmalloc_addr to account for vmalloc savings (credits to Laura Abbott)
- slub: tid must be retrieved from the percpu area of the current processor (credits to Christoph Lameter)
- mm: vmscan: Move pages that fail swapout to LRU active list (credits to Olav Haugan)
- mm: swap: Rate limit swap write errors (credits to Olav Haugan)
- mm: change freepage state correctly in __isolate_free_page (credits to Laura Abbott)
- mm: make is_vmalloc_addr lockless (credits to Laura Abbott)
- mm/compaction: Break out of loop on !PageBuddy in isolate_freepages_block (credits to Laura Abbott)
- mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip() (credits to Bartlomiej Zolnierkiewicz)
- gpu: ion: Don't call virt_to_page on addresses from dma_alloc (credits to Laura Abbott)
- gpu: ion: Explictly mark DMA allocations as GFP_KERNEL (credits to Laura Abbott)
- msm7x30: Disable unsupported features (credits to Blefish)
- Revert "nohz: Fix another inconsistency between CONFIG_NO_HZ=n and nohz=off" (credits to Christopher83)
- apache: Fix board build error (credits to Christopher83)
- block: bfq: Squashed update from BFQ-v7r4 to BFQ-v7r5 (credits to arco68)
- misc: pmem: Support for dynamic allocation through CMA (credits to Christopher83)
- msm7x30: Simplify the code for hybrid memory allocations on board side (credits to Christopher83)
- msm7x30: Allow to optionally enable the use of CMA for ION MM and PMEM ADSP heaps (credits to Christopher83)
- msm7x30: Use CMA for PMEM ADSP (credits to Christopher83)
- msm7x30: Update defconfigs (credits to Christopher83)
- msm7x30: Use a higher memory allocation if CMA is used for ION MM heap (credits to Christopher83)
- mmc: core: enhance card removal judgement for slow removal (credits to Kevin Liu)
- mmc: core: invoke low power mode if card is not present (credits to Asutosh Das)
- block: row: Fix crash when adding a new field in bio struct (credits to Tanya Brokhman)
- android/lowmemorykiller: Selectively count free CMA pages (credits to Liam Mark)
- msm: Remove old unused sdio related code (credits to Venkat Gopalakrishnan)
- msm7x30: Update defconfigs (credits to Christopher83)
- misc: pmem: Retry again a few times if DMA allocation fails (credits to Christopher83)

NOTE:

The kernel is not compatible with old rom releases and includes the implementation of dynamic allocation through CMA for ION MM and PMEM ADSP heaps, so the needed memory will be dynamically allocated when the camera, camcorder and video encoder/decoder will be used, then freed up when is no more used.

The new amounts of free memory are 398MB, 406MB and 416MB.

Please still keep KSM deactivated (option inside Settings -> Performance -> Memory Management).

Take a look at the FAQ post on first page if you want more details.