{"push_id":906158103,"size":225,"distinct_size":225,"ref":"refs/heads/cm-13.0","head":"9e95643ebe664102e20f6631a21da4d456bcf2fa","before":"958fd913c9496083e4ec3bd2d416af7cc87b91ff","commits":[{"sha":"25aab54b3209253804b7f295a751640a69c9c26c","author":{"email":"e8fe5f059e74983fd26f41df721856f0a2c8092a@codeaurora.org","name":"Alexy Joseph"},"message":"ASoC: msm: qdsp6v2: Handle additional codec specific metadata\n\nCodec specific  metadata is sent only for first stream in gapless\nplayback. This causes incorrect configuration to be set for second\nstream and distortions are observed due to framedrops in adsp.\nAdd support to send codec specific format during start of\nnext stream in gapless.\nAdd bit rate to wma codec data structure as it can vary between\nstreams in gapless.\n\nChange-Id: I39f34ea1addff720612fe3e06257e7d75889e574\nSigned-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>\nSigned-off-by: Fred Oh <fred@codeaurora.org>\nSigned-off-by: Alexy Joseph <alexyj@codeaurora.org>\n\nALSA: compress: Add support to send codec specific data\n\nCodec specific  metadata is sent only for first stream in gapless\nplayback. This causes incorrect configuration to be set for second\nstream and distortions are observed due to framedrops in adsp.\nAdd support to send codec specific format during start of\nnext stream in gapless using set_next_track_param.\n\nChange-Id: Ieec6b2afedec156e47873efcad9b3571160b0a29\nSigned-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/25aab54b3209253804b7f295a751640a69c9c26c"},{"sha":"d39b09e261857706be0c52c702a7d6de885e0084","author":{"email":"24ee2bf0bd8ac766c348bf1f0639943bac1535c6@intel.com","name":"Dan Williams"},"message":"[SCSI] async: make async_synchronize_full() flush all work regardless of domain\n\nIn response to an async related regression James noted:\n\n  \"My theory is that this is an init problem: The assumption in a lot of\n   our code is that async_synchronize_full() waits for everything ... even\n   the domain specific async schedules, which isn't true.\"\n\n...so make this assumption true.\n\nEach domain, including the default one, registers itself on a global domain\nlist when work is scheduled.  Once all entries complete it exits that\nlist.  Waiting for the list to be empty syncs all in-flight work across\nall domains.\n\nDomains can opt-out of global syncing if they are declared as exclusive\nASYNC_DOMAIN_EXCLUSIVE().  All stack-based domains have been declared\nexclusive since the domain may go out of scope as soon as the last work\nitem completes.\n\nStatically declared domains are mostly ok, but async_unregister_domain()\nis there to close any theoretical races with pending\nasync_synchronize_full waiters at module removal time.\n\nSigned-off-by: Dan Williams <dan.j.williams@intel.com>\nAcked-by: Arjan van de Ven <arjan@linux.intel.com>\nReported-by: Meelis Roos <mroos@linux.ee>\nReported-by: Eldad Zack <eldadzack@gmail.com>\nTested-by: Eldad Zack <eldad@fogrefinery.com>\nSigned-off-by: James Bottomley <JBottomley@Parallels.com>\n\n[SCSI] sd: limit the scope of the async probe domain\n\nsd injects and synchronizes probe work on the global kernel-wide domain.\nThis runs into conflict with PM that wants to perform resume actions in\nasync context:\n\n[  494.237079] INFO: task kworker/u:3:554 blocked for more than 120 seconds.\n[  494.294396] \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n[  494.360809] kworker/u:3     D 0000000000000000     0   554      2 0x00000000\n[  494.420739]  ffff88012e4d3af0 0000000000000046 ffff88013200c160 ffff88012e4d3fd8\n[  494.484392]  ffff88012e4d3fd8 0000000000012500 ffff8801394ea0b0 ffff88013200c160\n[  494.548038]  ffff88012e4d3ae0 00000000000001e3 ffffffff81a249e0 ffff8801321c5398\n[  494.611685] Call Trace:\n[  494.632649]  [<ffffffff8149dd25>] schedule+0x5a/0x5c\n[  494.674687]  [<ffffffff8104b968>] async_synchronize_cookie_domain+0xb6/0x112\n[  494.734177]  [<ffffffff810461ff>] ? __init_waitqueue_head+0x50/0x50\n[  494.787134]  [<ffffffff8131a224>] ? scsi_remove_target+0x48/0x48\n[  494.837900]  [<ffffffff8104b9d9>] async_synchronize_cookie+0x15/0x17\n[  494.891567]  [<ffffffff8104ba49>] async_synchronize_full+0x54/0x70  <-- here we wait for async contexts to complete\n[  494.943783]  [<ffffffff8104b9f5>] ? async_synchronize_full_domain+0x1a/0x1a\n[  495.002547]  [<ffffffffa00114b1>] sd_remove+0x2c/0xa2 [sd_mod]\n[  495.051861]  [<ffffffff812fe94f>] __device_release_driver+0x86/0xcf\n[  495.104807]  [<ffffffff812fe9bd>] device_release_driver+0x25/0x32  <-- here we take device_lock()\n\n[  853.511341] INFO: task kworker/u:4:549 blocked for more than 120 seconds.\n[  853.568693] \"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n[  853.635119] kworker/u:4     D ffff88013097b5d0     0   549      2 0x00000000\n[  853.695129]  ffff880132773c40 0000000000000046 ffff880130790000 ffff880132773fd8\n[  853.758990]  ffff880132773fd8 0000000000012500 ffff88013288a0b0 ffff880130790000\n[  853.822796]  0000000000000246 0000000000000040 ffff88013097b5c8 ffff880130790000\n[  853.886633] Call Trace:\n[  853.907631]  [<ffffffff8149dd25>] schedule+0x5a/0x5c\n[  853.949670]  [<ffffffff8149cc44>] __mutex_lock_common+0x220/0x351\n[  854.001225]  [<ffffffff81304bd7>] ? device_resume+0x58/0x1c4\n[  854.049082]  [<ffffffff81304bd7>] ? device_resume+0x58/0x1c4\n[  854.097011]  [<ffffffff8149ce48>] mutex_lock_nested+0x2f/0x36   <-- here we wait for device_lock()\n[  854.145591]  [<ffffffff81304bd7>] device_resume+0x58/0x1c4\n[  854.192066]  [<ffffffff81304d61>] async_resume+0x1e/0x45\n[  854.237019]  [<ffffffff8104bc93>] async_run_entry_fn+0xc6/0x173  <-- ...while running in async context\n\nProvide a 'scsi_sd_probe_domain' so that async probe actions actions can\nbe flushed without regard for the state of PM, and allow for the resume\npath to handle devices that have transitioned from SDEV_QUIESCE to\nSDEV_DEL prior to resume.\n\nAcked-by: Alan Stern <stern@rowland.harvard.edu>\n[alan: uplevel scsi_sd_probe_domain, clarify scsi_device_resume]\nSigned-off-by: Dan Williams <dan.j.williams@intel.com>\n[jejb: remove unneeded config guards in include file]\nSigned-off-by: James Bottomley <JBottomley@Parallels.com>\n\n[SCSI] Fix sd_probe_domain config problem\n\nWith CONFIG_BLK_DEV_SD = n and CONFIG_PM = n, you get this compile failure:\n\n(.text+0x4f6c77): undefined reference to `scsi_sd_probe_domain'\n\nThis was introduced by\n\ncommit a7a20d103994fd760766e6c9d494daa569cbfe06\nAuthor: Dan Williams <dan.j.williams@intel.com>\nDate:   Thu Mar 22 17:05:11 2012 -0700\n\n    [SCSI] sd: limit the scope of the async probe domain\n\nAnd happens because scsi_sd_probe_domain is conditionally defined but\nunconditionally used.  Fix this by making the symbol unconditionally defined.\n\nReported-by: Randy Dunlap <rdunlap@xenotime.net>\nCc: Dan Williams <dan.j.williams@intel.com>\nTested-by: Randy Dunlap <rdunlap@xenotime.net>\nSigned-off-by: James Bottomley <JBottomley@Parallels.com>\n\nasync: fix __lowest_in_progress()\n\nCommit 083b804c4d3e (\"async: use workqueue for worker pool\") made it\npossible that async jobs are moved from pending to running out-of-order.\nWhile pending async jobs will be queued and dispatched for execution in\nthe same order, nothing guarantees they'll enter \"1) move self to the\nrunning queue\" of async_run_entry_fn() in the same order.\n\nBefore the conversion, async implemented its own worker pool.  An async\nworker, upon being woken up, fetches the first item from the pending\nlist, which kept the executing lists sorted.  The conversion to\nworkqueue was done by adding work_struct to each async_entry and async\njust schedules the work item.  The queueing and dispatching of such work\nitems are still in order but now each worker thread is associated with a\nspecific async_entry and moves that specific async_entry to the\nexecuting list.  So, depending on which worker reaches that point\nearlier, which is non-deterministic, we may end up moving an async_entry\nwith larger cookie before one with smaller one.\n\nThis broke __lowest_in_progress().  running->domain may not be properly\nsorted and is not guaranteed to contain lower cookies than pending list\nwhen not empty.  Fix it by ensuring sort-inserting to the running list\nand always looking at both pending and running when trying to determine\nthe lowest cookie.\n\nOver time, the async synchronization implementation became quite messy.\nWe better restructure it such that each async_entry is linked to two\nlists - one global and one per domain - and not move it when execution\nstarts.  There's no reason to distinguish pending and running.  They\nbehave the same for synchronization purposes.\n\nSigned-off-by: Tejun Heo <tj@kernel.org>\nCc: Arjan van de Ven <arjan@linux.intel.com>\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nasync: use ULLONG_MAX for infinity cookie value\n\nCurrently, next_cookie is used as the infinity value.  In most cases,\nthis should work fine but it theoretically could bring subtle behavior\ndifference between async_synchronize_full() and\nasync_synchronize_full_domain().\n\nasync_synchronize_full() keeps waiting until there's no registered\nasync_entry left regardless of what next_cookie was when the function\nwas called.  It guarantees that the queue is completely drained at\nleast once before returning.\n\nHowever, async_synchronize_full_domain() doesn't.  It synchronizes\nupto next_cookie and if further async jobs are queued after the\nnext_cookie value to synchronize is decided, they won't be waited for.\n\nFor unrelated async jobs, the behavior difference doesn't matter;\nhowever, if async jobs which are related (nested or otherwise) to the\nexecuting ones are queued while sychronization is in progress, the\nresulting behavior difference could be problematic.\n\nThis can be easily fixed by using ULLONG_MAX as the infinity value\ninstead.  Define ASYNC_COOKIE_MAX as ULLONG_MAX and use it as the\ninfinity value for synchronization.  This makes\nasync_synchronize_full_domain() fully drain the domain at least once\nbefore returning, making its behavior match async_synchronize_full().\n\nSigned-off-by: Tejun Heo <tj@kernel.org>\nCc: Arjan van de Ven <arjan@linux.intel.com>\nCc: Dan Williams <djbw@fb.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/d39b09e261857706be0c52c702a7d6de885e0084"},{"sha":"c29def63babb20a307cbcdf08be0b388a886c5e2","author":{"email":"0d1dae58f23e775314d087dff72f8e136928d2cc@codeaurora.org","name":"Raghavendra Ambadas"},"message":"msm: mdss: Acquire lock for source format b/w line and block mode\n\nCurrently there is a page fault and flicker while programming\nDMA pipe registers in Line mode. To prevent this acquire wb_lock\nbetween writeback kickoff (N-Cycle) and rotator setup(N+1 Cycle).\nwb_lock avoid rotator to update the pipe structure before writeback\nis finished programming to the hardware.\n\nChange-Id: I589032831ec1813f12ce3f91e3aa8a6b187ebfdd\nSigned-off-by: Raghavendra Ambadas <rambad@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/c29def63babb20a307cbcdf08be0b388a886c5e2"},{"sha":"78e27d444690f3804312f51bba36cb1e1987d4c6","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"perf: Fix a mismerge\n\nChange-Id: I121f344fb99a3bd630cac148f7840e34b2cd1b0d","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/78e27d444690f3804312f51bba36cb1e1987d4c6"},{"sha":"cbc058375cd21bf13d40b5f45b2e6beb78a7f557","author":{"email":"88a1d58bf22a647dce58dd91f9595600dceabba9@redhat.com","name":"Paul Moore"},"message":"selinux: handle TCP SYN-ACK packets correctly in selinux_ip_postroute()\n\ncommit 446b802437f285de68ffb8d6fac3c44c3cab5b04 upstream.\n\nIn selinux_ip_postroute() we perform access checks based on the\npacket's security label.  For locally generated traffic we get the\npacket's security label from the associated socket; this works in all\ncases except for TCP SYN-ACK packets.  In the case of SYN-ACK packet's\nthe correct security label is stored in the connection's request_sock,\nnot the server's socket.  Unfortunately, at the point in time when\nselinux_ip_postroute() is called we can't query the request_sock\ndirectly, we need to recreate the label using the same logic that\noriginally labeled the associated request_sock.\n\nSee the inline comments for more explanation.\n\nChange-Id: I68ed3c0a813bdeec21fdb6a14e1c7bd49f48ce91\nReported-by: Janak Desai <Janak.Desai@gtri.gatech.edu>\nTested-by: Janak Desai <Janak.Desai@gtri.gatech.edu>\nSigned-off-by: Paul Moore <pmoore@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/cbc058375cd21bf13d40b5f45b2e6beb78a7f557"},{"sha":"e3f0d9531fe8854642ab70a42bf7bf3370855d54","author":{"email":"72af4739cc81e1db6b65aae97d2a23b3b40af31c@trustedcs.com","name":"Chad Hanson"},"message":"selinux: fix broken peer recv check\n\ncommit 46d01d63221c3508421dd72ff9c879f61053cffc upstream.\n\nFix a broken networking check. Return an error if peer recv fails.  If\nsecmark is active and the packet recv succeeds the peer recv error is\nignored.\n\nChange-Id: Ic50f9215cbcaa239c03338fe462436274a0bb550\nSigned-off-by: Chad Hanson <chanson@trustedcs.com>\nSigned-off-by: Paul Moore <pmoore@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/e3f0d9531fe8854642ab70a42bf7bf3370855d54"},{"sha":"c2423aea99d0a983ca1ff09d76b034e6e2c97e54","author":{"email":"88a1d58bf22a647dce58dd91f9595600dceabba9@redhat.com","name":"Paul Moore"},"message":"selinux: handle TCP SYN-ACK packets correctly in selinux_ip_output()\n\ncommit 47180068276a04ed31d24fe04c673138208b07a9 upstream.\n\nIn selinux_ip_output() we always label packets based on the parent\nsocket.  While this approach works in almost all cases, it doesn't\nwork in the case of TCP SYN-ACK packets when the correct label is not\nthe label of the parent socket, but rather the label of the larval\nsocket represented by the request_sock struct.\n\nUnfortunately, since the request_sock isn't queued on the parent\nsocket until *after* the SYN-ACK packet is sent, we can't lookup the\nrequest_sock to determine the correct label for the packet; at this\npoint in time the best we can do is simply pass/NF_ACCEPT the packet.\nIt must be said that simply passing the packet without any explicit\nlabeling action, while far from ideal, is not terrible as the SYN-ACK\npacket will inherit any IP option based labeling from the initial\nconnection request so the label *should* be correct and all our\naccess controls remain in place so we shouldn't have to worry about\ninformation leaks.\n\nChange-Id: I8b6b4cf3960046cee33c5f174569958392b181e7\nReported-by: Janak Desai <Janak.Desai@gtri.gatech.edu>\nTested-by: Janak Desai <Janak.Desai@gtri.gatech.edu>\nSigned-off-by: Paul Moore <pmoore@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/c2423aea99d0a983ca1ff09d76b034e6e2c97e54"},{"sha":"dd2dd4f31741e7f374c66bbda58efea0c8e9d834","author":{"email":"88a1d58bf22a647dce58dd91f9595600dceabba9@redhat.com","name":"Paul Moore"},"message":"selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute()\n\ncommit c0828e50485932b7e019df377a6b0a8d1ebd3080 upstream.\n\nDue to difficulty in arriving at the proper security label for\nTCP SYN-ACK packets in selinux_ip_postroute(), we need to check packets\nwhile/before they are undergoing XFRM transforms instead of waiting\nuntil afterwards so that we can determine the correct security label.\n\nChange-Id: Ic2de6c9eba7c17b70bb8b3e76b1d6ec05c4322d6\nReported-by: Janak Desai <Janak.Desai@gtri.gatech.edu>\nSigned-off-by: Paul Moore <pmoore@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/dd2dd4f31741e7f374c66bbda58efea0c8e9d834"},{"sha":"4e95f950ffb17e7214637f7174f1a13a88b21538","author":{"email":"20b70f0af00562e63758b9ee42012ecc96c58590@redhat.com","name":"Oleg Nesterov"},"message":"selinux: selinux_setprocattr()->ptrace_parent() needs rcu_read_lock()\n\ncommit c0c1439541f5305b57a83d599af32b74182933fe upstream.\n\nselinux_setprocattr() does ptrace_parent(p) under task_lock(p),\nbut task_struct->alloc_lock doesn't pin ->parent or ->ptrace,\nthis looks confusing and triggers the \"suspicious RCU usage\"\nwarning because ptrace_parent() does rcu_dereference_check().\n\nAnd in theory this is wrong, spin_lock()->preempt_disable()\ndoesn't necessarily imply rcu_read_lock() we need to access\nthe ->parent.\n\nChange-Id: If1d558a7746fcabe4429e3371122471b6c18d6e6\nReported-by: Evan McNabb <emcnabb@redhat.com>\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Paul Moore <pmoore@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/4e95f950ffb17e7214637f7174f1a13a88b21538"},{"sha":"d30f0bae52678828f989846ace6d38ef90a49456","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"genirq: Allow check_wakeup_irqs to notice level-triggered interrupts\n\nLevel triggered interrupts do not cause IRQS_PENDING to be set when\nthey fire while \"disabled\" as the 'pending' state is always present in\nthe level - they automatically refire where re-enabled.\n\nHowever the IRQS_PENDING flag is also used to abort a suspend cycle -\nif any 'is_wakeup_set' interrupt is PENDING, check_wakeup_irqs() will\ncause suspend to abort. Without IRQS_PENDING, suspend won't abort.\n\nConsequently, level-triggered interrupts that fire during the 'noirq'\nphase of suspend do not currently abort suspend.\n\nSo set IRQS_PENDING even for level triggered interrupts, and make sure\nto clear the flag in check_irq_resend.\n\n[ Changelog by courtesy of Neil ]\n\nTested-by: NeilBrown <neilb@suse.de>\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/d30f0bae52678828f989846ace6d38ef90a49456"},{"sha":"7d9973694d0a182eb428a50a541b244969e2bd1d","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"genirq: Provide means to retrigger parent\n\nAttempts to retrigger nested threaded IRQs currently fail because they\nhave no primary handler. In order to support retrigger of nested\nIRQs, the parent IRQ needs to be retriggered.\n\nTo fix, when an IRQ needs to be resent, if the interrupt has a parent\nIRQ and runs in the context of the parent IRQ, then resend the parent.\n\nAlso, handle_nested_irq() needs to clear the replay flag like the\nother handlers, otherwise check_irq_resend() will set it and it will\nnever be cleared.  Without clearing, it results in the first resend\nworking fine, but check_irq_resend() returning early on subsequent\nresends because the replay flag is still set.\n\nProblem discovered on ARM/OMAP platforms where a nested IRQ that's\nalso a wakeup IRQ happens late in suspend and needed to be retriggered\nduring the resume process.\n\n[khilman@ti.com: changelog edits, clear IRQS_REPLAY in handle_nested_irq()]\n\nReported-by: Kevin Hilman <khilman@ti.com>\nTested-by: Kevin Hilman <khilman@ti.com>\nCc: linux-arm-kernel@lists.infradead.org\nLink: http://lkml.kernel.org/r/1350425269-11489-1-git-send-email-khilman@deeprootsystems.com\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/7d9973694d0a182eb428a50a541b244969e2bd1d"},{"sha":"630640f0bdd84857f2e65e74a28d4bddeb8c379c","author":{"email":"3e2c440eda33f1d5487d373e910e4b0650c6b8f5@gmail.com","name":"Ning Jiang"},"message":"genirq: Add IRQS_PENDING for nested and simple irq\n\nEvery interrupt which is an active wakeup source needs the ability to\nabort suspend if there is a pending irq. Right now only edge and level\nirqs can do that.\n\n            |\n       +---------+\n       |   INTC  |\n       +---------+\n               | GPIO_IRQ\n            +------------+\n            |  gpio-exp  |\n            +------------+\n              |        |\n         GPIO0_IRQ  GPIO1_IRQ\n\nIn the above diagram, gpio expander has irq number GPIO_IRQ, it is\nconnected with two sub GPIO pins, GPIO0 and GPIO1.\n\nDuring suspend, we set IRQF_NO_SUSPEND for GPIO_IRQ so that gpio\nexpander driver can handle the sub irq GPIO0_IRQ and GPIO1_IRQ, and\nthese two irqs themselves can further be handled by simple or nested\nirq in some drivers(typically gpio and mfd driver). If they are used\nas wakeup sources during suspend, we want them to be able to abort\nsuspend too.\n\nSetting IRQS_PENDING flag in handle_nested_irq() and handle_simple_irq()\nwhen the irq is disabled allows check_wakeup_irqs() to identify such\nirqs as source for aborting suspend.\n\nChange-Id: I24fe248c4705b622cb8effb7efc82cf7bbd3487b\nSigned-off-by: Ning Jiang <ning.n.jiang@gmail.com>\nCc: rjw@sisk.pl\nLink: http://lkml.kernel.org/r/CAH3Oq6T905%2B3fkF43NAMMFvJvq7dsk_so6T2vQ8ZJrA5xiU3YA@mail.gmail.com\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/630640f0bdd84857f2e65e74a28d4bddeb8c379c"},{"sha":"dfd6a68bb5d7a820f7d5e74f8f2fc1d5b4de24f7","author":{"email":"af9cbceb8388e2170881d17f5ca88833c5c37ed6@codeaurora.org","name":"Shubhraprakash Das"},"message":"msm: kgsl: Rate limit interrupt error messages\n\nLimit the interrupt error messages to prevent them from\ncausing watchdog. Most important interrupt errors will still\nbe printed but the interrupts that do not cause hang can be\nrate limited.\n\nConflicts:\n\tdrivers/gpu/msm/adreno_a3xx.c\n\nChange-Id: I6f8b7ca590159904d89b98ca25e34448642dd5e1\nSigned-off-by: Shubhraprakash Das <sadas@codeaurora.org>\nSigned-off-by: Digish Pandya <digishp@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/dfd6a68bb5d7a820f7d5e74f8f2fc1d5b4de24f7"},{"sha":"e5539cadbe4234f5b342804bb33b554744ee78b2","author":{"email":"32f41aacb8b63fec32f7001294b88acbe16ae776@codeaurora.org","name":"Prabhat Awasthi"},"message":"msm: kgsl: Add ratelimit check to limit excessive kernel logging\n\nIn a3xx_err_callback(), ratelimit check is needed to limit error interrupt\nreporting messages. This will prevent kernel logs causing watchdog timeout.\n\nConflicts:\n\tdrivers/gpu/msm/adreno_a3xx.c\n\nChange-Id: Id01f232fa5dd6b54e1ca9af8d6b7f37f34ed85b8\nSigned-off-by: Prabhat Awasthi <pawasthi@codeaurora.org>\nSigned-off-by: Digish Pandya <digishp@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/e5539cadbe4234f5b342804bb33b554744ee78b2"},{"sha":"c4fd558f8864c971e9213bfc28cbcba4c614b4b6","author":{"email":"af9cbceb8388e2170881d17f5ca88833c5c37ed6@codeaurora.org","name":"Shubhraprakash Das"},"message":"msm: kgsl: Read fault register on ringbuffer h/w fault\n\nRead the CP_HW_FAULT register which gives more information\nabout the fault when ringbuffer h/w fault interrupt is\ngenerated. Also, limit the printing of this interrupt to\nprevent watchdog timeout.\n\nConflicts:\n\tdrivers/gpu/msm/adreno.h\n\tdrivers/gpu/msm/adreno_a3xx.c\n\nCRs-Fixed: 613940\nChange-Id: I8eba72ab50553e72f733034c7fa0ea3ca69db343\nSigned-off-by: Shubhraprakash Das <sadas@codeaurora.org>\nSigned-off-by: Digish Pandya <digishp@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/c4fd558f8864c971e9213bfc28cbcba4c614b4b6"},{"sha":"021fa43506a3c0a3e5ce52e9e292ed63375adda7","author":{"email":"af9cbceb8388e2170881d17f5ca88833c5c37ed6@codeaurora.org","name":"Shubhraprakash Das"},"message":"msm: kgsl: Enable hang interrupt by setting right bits for A330V2\n\nA330V2 hang interrupt bit is at a different location compared to\nother A3XX cores. Set the right hang interrupt bit for A330V2.\n\nChange-Id: I702f1653ed31907a708b19c7b2288644e2d45220\nSigned-off-by: Shubhraprakash Das <sadas@codeaurora.org>\nSigned-off-by: Tarun Karra <tkarra@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/021fa43506a3c0a3e5ce52e9e292ed63375adda7"},{"sha":"19b7b8cfe784fa5a678f23bd128557e53aa21cef","author":{"email":"130908656622cf304523d334877ef0f505f9a71e@codeaurora.org","name":"Tarun Karra"},"message":"msm: kgsl: Enable hang interrupt for a330v2\n\nEnable hang interrupt for a330v2 by default during\nGPU initialization.\n\nChange-Id: I0dd2054b8d640cf3b17afd3e2f8c4b88d575fce2\nSigned-off-by: Tarun Karra <tkarra@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/19b7b8cfe784fa5a678f23bd128557e53aa21cef"},{"sha":"474205ee29d7d96ec22268bf70a6e8b0da2e715f","author":{"email":"af9cbceb8388e2170881d17f5ca88833c5c37ed6@codeaurora.org","name":"Shubhraprakash Das"},"message":"msm: kgsl: Fix memory entry leak when calling adreno_convertaddr\n\nWhen adreno_convertaddr is called the memory searched in this function\nmay have a memory entry associated with it if this allocation belongs\nto user space. A reference to this memory entry is taken when\nthis function is called which should be returned when the caller is\ndone using the memory. Made changes to return a reference to the\nentry when calling this function which is returned when caller is\ndone using the memory.\n\nChange-Id: I610553fd4b119d3c47cbfcec970d50046dbb2863\nSigned-off-by: Shubhraprakash Das <sadas@codeaurora.org>\nSigned-off-by: Lynus Vaz <lvaz@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/474205ee29d7d96ec22268bf70a6e8b0da2e715f"},{"sha":"43ff64385a806265f6bf3a20114c02fa75d7d9d1","author":{"email":"130908656622cf304523d334877ef0f505f9a71e@codeaurora.org","name":"Tarun Karra"},"message":"msm: kgsl: Policy change to skip entire command during fault recovery\n\nDuring fault recovery change default policy to skip entire command instead\nof skipping faulting indirect buffer.\n\nChange-Id: I3c2d159dbb3f2523a05f4bcbf65195673e26c020\nSigned-off-by: Tarun Karra <tkarra@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/43ff64385a806265f6bf3a20114c02fa75d7d9d1"},{"sha":"41cd93af7b5e1f8d83627a2986ccd59c6f11b806","author":{"email":"fec53db8c4887e6e95defbb5052bc6438029c1e6@codeaurora.org","name":"Jordan Crouse"},"message":"msm: kgsl: Restrict GPU memory object alignment to 32MB\n\nThe code was being very generous in giving the user the ability to\nalign GPU objects on 4GB boundaries. Cut the restriction down to\n32MB which is still pretty generous but within the realm of\npossiblity (especially for a 32 bit GPU).  While we are at it fix\na bug in the page_alloc code that was accidently resetting the\nalignment to the alloc page size.  The alignment cannot be _less_\nthan the max page_alloc size but there certainly isn't any reason\nwhy you couldn't specify a larger alignment if you so wished.\n\nChange-Id: Ic0dedbadebd4c6fd98e3bf2f3d6d5bb924223157\nSigned-off-by: Jordan Crouse <jcrouse@codeaurora.org>\nSigned-off-by: Lynus Vaz <lvaz@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/tmimsk/android_kernel_oneplus_msm8974/commits/41cd93af7b5e1f8d83627a2986ccd59c6f11b806"}]}