Commit graph

591687 commits

Author SHA1 Message Date
Prateek Sood
ba6bd90a30 osq_lock: fix osq_lock queue corruption
Fix ordering of link creation between node->prev and prev->next in
osq_lock(). A case in which the status of optimistic spin queue is
CPU6->CPU2 in which CPU6 has acquired the lock. At this point if CPU0
comes in to acquire osq_lock, it will update the tail count. After tail
count update if CPU2 starts to unqueue itself from optimistic spin queue,
it will find updated tail count with CPU0 and update CPU2 node->next to
NULL in osq_wait_next(). If reordering of following stores happen then
prev->next where prev being CPU2 would be updated to point to CPU0 node:
	node->prev = prev;
	WRITE_ONCE(prev->next, node);

At this point if next instruction
	WRITE_ONCE(next->prev, prev);

in CPU2 path is committed before the update of CPU0 node->prev = prev then
CPU0 node->prev will point to CPU6 node. At this point if CPU0 path's
node->prev = prev is committed resulting in change of CPU0 prev back to
CPU2 node. CPU2 node->next is NULL currently, so if CPU0 gets into unqueue
path of osq_lock it will keep spinning in infinite loop as condition
prev->next == node will never be true.

Change-Id: I48d847096daf3c228de90ae1cd2a6415b7bde65a
Signed-off-by: Prateek Sood <prsood@codeaurora.org>
2017-07-02 21:22:04 -07:00
Linux Build Service Account
bc399a65c4 Merge "msm: kgsl: Limit the frequency of logging on memory allocation failure" 2017-07-02 16:11:43 -07:00
Linux Build Service Account
b0bcf92508 Merge "msm: kgsl: Directly return page size of the supported pool" 2017-07-02 16:11:40 -07:00
Ashay Jaiswal
57f064ca9b power: qcom: smb-lib: handle dynamic Rp change
The legacy detection workaround change restricts DCP to 1.5A draw,
regardless of legacy/non-legacy type. This was to prevent a legacy
(non-compliant) cable, incorrectly detected as non-legacy cable from
drawing more than 1.5A.

The issue with legacy bit is that hardware could end up reporting
non-legacy for a legacy cable (not the other way round). We want to
ensure that for non-compliant legacy cable SDP/CDP current limits
are honoured and that for a Rp = 10k legacy cable VBUS shouldn't go
higher than 5V.

This cap of 1.5A on DCP is not necessary. Moreover AICL will limit the
current if needed.

To realize this force the Rp based current whenever DCP or float
is seen via the LEGACY_UNKNOWN_VOTER. LEGACY_UNKNOWN_VOTER is not
removed unless a confirmed hvdcp or pd is seen.

Change-Id: I89505e9db4f045aaf71ab0ee534de783ea4d2df3
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2017-07-01 06:16:32 +05:30
Deepak Kumar
d9eb3ce9a8 msm: kgsl: Limit the frequency of logging on memory allocation failure
Excessive logging due to several successive memory allocation failure
may cause a watchdog bite. Hence, this change adds ratelimit to logging
on memory allocation failure.

Change-Id: I8e5d78918a32c48ef7fa587f3dc63cbd1f065d5f
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
2017-06-30 20:39:29 +05:30
Mohammed Javid
50989c54d6 msm: ipa: Fix the problem with nested sleeping primitives
prepare_to_wait() will enqueue the thread on the given queue
and put it into the given execution state,
which is TASK_INTERRUPTIBLE.

Further processing in function, calls  mutex_lock(),
will go into a new version of the going-to-sleep code,
changing the task state.

That, of course, may well interfere with the outer
sleeping code.

So, nesting of sleeping primitives in this way is discouraged.

And new warning was added to point out this kind of nesting.

Fix the nesting of sleeping primitives with the new solution
provide in linux kernel.

Change-Id: Id1a5f64472cd2d63e679706c6482db98f89ec765
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-06-30 17:44:39 +05:30
Revathi Uddaraju
35f63de1e1 ASoC: msm-cpe: Resolve memory out of bound access
Resolve memory out of bound access by correcting the
length of the buffer to be copied.

Change-Id: I2cc74a664399913acf67464a5f6827b100522676
Signed-off-by: Revathi Uddaraju <revathiu@codeaurora.org>
2017-06-30 04:15:08 -07:00
Hardik Arya
c36e61af0f diag: Add protection while processing non-hdlc packets
Currently, there is possibility of out-of-bound accesses during
handling of data in non-hdlc path. The patch adds proper protection
when processing non-hdlc packet information to fix the issue.

CRs-Fixed: 2029216
Change-Id: I07c466f85bd8ac08226948fea86b1d8567e68431
Signed-off-by: Hardik Arya <harya@codeaurora.org>
2017-06-30 16:06:26 +05:30
Sriraj Hebbar
6724296d3f msm: camera: isp: Handle array out of bound access
The pointer req_frm is coming from userspace, it may overflow stream_info.
Adding a bound check to prevent the same.

CRs-fixed: 2008683
Change-Id: I8682e09ff2ab7ba490bbbd9e20db978493c5f3e4
Signed-off-by: Senthil Kumar Rajagopal <skrajago@codeaurora.org>
Signed-off-by: Andy Sun <bins@codeaurora.org>
2017-06-30 18:02:36 +08:00
Prateek Sood
6933043199 osq_lock: avoid live-lock issue for RT task
Live Lock  due to task spinning while unqueue of CPU osq_node
from optimistic_spin_queue. Task T1 had decremented mutex count to
acquire the lock on CPU0. Before setting owner it got preempted. On
CPU1 task T2 acquired osq_lock and started spinning on owner of mutex
with preemption disabled. CPU1 runq has one task, so need_resched will
not be set. On CPU0 task T3 tried to acquire osq_lock to spin on the
same mutex. At this time following scenario causes soft lockup:

After preemption of task T1, RT task T3 tried to acquire the same
mutex. It will start spinning on the osq_lock until the lock is available
or need_resched is set. For RT task, need_resched will not be set. Task T3
will not be able to bail out of the infinite loop.

Change-Id: Ifd7506047119a22e14b15459ac6b04b410ba1c84
Signed-off-by: Prateek Sood <prsood@codeaurora.org>
2017-06-30 02:06:25 -07:00
Abhinav Kumar
f9dd40aaef drm/msm: add support for parsing YUV 420 deep color
Current upstream parser only handles RGB deep color
modes.

Add support in the SDE EDID parser module to parse
HDMI VSDB block and indicate support for YUV 420
deep color modes in the sink.

Change-Id: If6c007263094e7716a29cae503d3e3471ae04306
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-30 01:09:45 -07:00
Jin Li
07855f70a3 drm/msm: add default value for plane enum property
Add default value support for plane enum property which caller is
able to pass in different default value when initialize the enum
property list.

Change-Id: I57595bf7c42b0e528a18ab0951655a169b00d611
Signed-off-by: Jin Li <jinl@codeaurora.org>
Signed-off-by: Yunyun Cao <yunyunc@codeaurora.org>
2017-06-30 01:03:40 -07:00
Tejaswi Tanikella
41ffaeef9a ipv4: Drop packets if checksum is invalidated
Conntrack, if enabled, verifies complete checksum on all tcp
packets. If a packet is corrupted, it sets ip_summed field
to CHECKSUM_COMPLETE and checksum valid field to false.
With these changes such packet will be dropped.

Packets that are corrupted can go into userspace even when
the checksum is wrong. The io_vec library pushes the data into
pipe before checking the checksum. If the checksum is wrong,
the copied data is not reverted. Users observe corrupted data
in the application memory due to such corrupted packets.
This fix is to plug one such hole.
This change might be redundant on kernels after v4.9.

Change-Id: Iffface598d0fa2b25fb9c20c7aa6443aab9d8aea
Signed-off-by: Tejaswi Tanikella <tejaswit@codeaurora.org>
2017-06-30 13:28:14 +05:30
Pengfei Liu
ca0c16ad01 msm: actuator: Add protection condition for move focus
Neighbour index of step table possibly have same position,
so i2c operation reported invalid size parameters.
we add protection condition to return success value.

Change-Id: I7dab8f44a99c7c3c7d6996c8decb8bcd09c246c9
Signed-off-by: penliu <pengfeiliu@codeaurora.org>
2017-06-30 00:43:59 -07:00
Arumuga Durai A
0a28ea9cf0 usb: bam: Remove inactivity_timer sysfs attribute
Sysfs attribute "inactivity_timer" not being used anymore so remove that
entry from sysfs.

CRs-Fixed: 2048725
Change-Id: I30d2d4a3cb9899b7975a6395eab90337fc006488
Signed-off-by: Arumuga Durai A <cadurai@codeaurora.org>
2017-06-30 12:31:01 +05:30
Pavankumar Kondeti
971af7d6ed genirq: honour default IRQ affinity setting during migration
Userspace can set the default IRQ affinity setting by writing into
/proc/irq/default_smp_affinity file. When an IRQ affinity is
broken during isolation/hotplug,override the affinity to online and
un-isolated CPUs from the default affinity CPUs. If no such CPU
is available, then only override with cpu_online_mask.

Change-Id: I7578728ed0d7c17c5890d9916cfd6451d1968568
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2017-06-30 10:41:00 +05:30
Pavankumar Kondeti
cd6d19b8e4 genriq: pick only one CPU while overriding the affinity during migration
With commit bfc60d474137 ("genirq: Use irq_set_affinity_locked to change
irq affinity"), affinity listeners receive the notification when the irq
affinity is changed during migration. If there is no online and
un-isolated CPU available from the user specified affinity, the affinity
is overridden with all online and un-isolated CPUs. The same cpumask is
notified to PM QOS affinity listener which applies PM_QOS_CPU_DMA_LATENCY
vote to all those CPUs. As the low level irqchip driver sets affinity to
only one CPU, do the same while overriding the affinity during migration.

Change-Id: I0bcb75dd356658da100fbeeefd33ef8b121f4d6d
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2017-06-30 10:41:00 +05:30
Yuanyuan Liu
e96a24d253 cnss_utils: Add support of cnss_utils for WLAN
Add support of cnss_utils for WLAN. Export APIs to WLAN
host driver which are used to set/get WLAN related
information. These information could be retrived later
when WLAN driver is reloaded.

CRs-Fixed: 2060693
Change-Id: I2c8c36602ec8af133946ff00c41ce648a2628041
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
2017-06-29 16:47:46 -07:00
Vinayak Soni
5cc10e3a34 defconfig: Enable TSPP, MPQ and MPQ_DEMUX for apq8098
To bring-up Demux & DVR nodes.

Change-Id: Ia624220e2fd943ea6bbba81c8f7dcf1475c27065
Signed-off-by: Vinayak Soni <soniv@codeaurora.org>
2017-06-29 15:48:55 -07:00
Linux Build Service Account
c1a5075d60 Merge "ARM: dts: msm: Add non-removable ufs property for SDM630" 2017-06-29 11:34:49 -07:00
Linux Build Service Account
e06e098ca3 Merge "msm: mdss: Allow post-processing clean-up for primary display" 2017-06-29 11:34:48 -07:00
Linux Build Service Account
b1db0d66cf Merge "msm: mdss: Correct PP register programming deferring" 2017-06-29 11:34:47 -07:00
Linux Build Service Account
40f83efeab Merge "scsi: ufs: Unblock UFS while ICE HW configuration" 2017-06-29 11:34:46 -07:00
Lokesh Kumar Aakulu
40cfe338ba msm: camera: isp: Avoid reading stale ping pong status
When write masters are reloaded pingpong status regi-
-ster will not be reset. Instead, it would be holding
a stale data, until new axi_done irq is interrupted.
So, place a check to validate the pingpong register
value based on the reloaded status of write masters.

Change-Id: Id14b886154f8a8ef8d5c05338023d8172d6925d0
Signed-off-by: Lokesh Kumar Aakulu <lkumar@codeaurora.org>
2017-06-29 19:27:27 +05:30
Harsh Sahu
b32ded99df msm: sde: fix unaligned access problem
debug offset comes from the user and can hold any value which can
cause unaligned access. This change fixes the unaligned access
problem on debug offset by properly aligning it.

Change-Id: Ie4de9a12433f6ffd568c6c86928b71a5537b0dff
Signed-off-by: Harsh Sahu <hsahu@codeaurora.org>
2017-06-29 05:10:47 -07:00
Pavankumar Kondeti
76aa496f89 cpu-hotplug: Keep atleast 1 online and un-isolated CPU
The PM_QOS_CPU_DMA_LATENCY vote attached to an IRQ is discarded,
if it is affined to an isolated CPU. So we need atleast 1 CPU
in online and un-isolate state. The scheduler rejects isolating
a CPU if it is the only online and un-isolated CPU in the system.
Add the same check for CPU hotplug.

Change-Id: I5bdfe6e3bb0352ed3ae5a2de90097b73d248f3fc
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2017-06-29 16:27:33 +05:30
Linux Build Service Account
ed7868840b Merge "msm: camera: Use mutex lock to avoid race condition" 2017-06-29 03:32:33 -07:00
Linux Build Service Account
586584b2b2 Merge "soc: qcom: glink: Move get reference to valid location" 2017-06-29 03:32:32 -07:00
Linux Build Service Account
7ce539a628 Merge "soc: qcom: glink: Remove magic number logic" 2017-06-29 03:32:32 -07:00
Mohammed Javid
aa8d03f7bc ARM: dts: msm: Disable IPA in APQ 8098
IPA needs to be kept disabled in APQ 8098 platform.

Change-Id: If340d72d1dc18f2861635528ea1a37a4d81421bd
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
2017-06-29 15:51:49 +05:30
Mukesh Kumar Savaliya
61b9e193aa spi: spi_qsd: serve set_cs call only for valid device status
when set_cs() is called by framework, first check the device suspend
status and if not suspended then proceed for register access. Let system
suspend call SPI runtime suspend but make sure set_cs doesn't race with
it by holding the mutex.

Change-Id: Id6d05ac37227bf3358438eeedf279ddd1c9aab8b
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
2017-06-29 15:50:38 +05:30
mohamed sunfeer
2ec173df69 crypto: Change format specifier %p to %pK
Format specifier %p can leak kernel addresses while not valuing the
kptr_restrict system settings. When kptr_restrict is set to (1), kernel
pointers printed using the %pK format specifier will be replaced with 0's

Change-Id: Iff8d82b12e958b938fc767bf3e8c3a3c8fc65c2a
Signed-off-by: mohamed sunfeer <msunfeer@codeaurora.org>
2017-06-29 15:13:34 +05:30
Ashutosh Kumar
09002ed79c ath10k: Populate ACS survey results
ACS fails as channel details are null in survey info.
Add the missing fields in survey_info structure and
populate the channel details in survey results.

CRs-Fixed: 2027495
Change-Id: I1ca933ded4ca039845203ccd51d77cf7cef1c000
Signed-off-by: Ashutosh Kumar <askuma@codeaurora.org>
2017-06-29 02:31:57 -07:00
Sandeep Panda
b3c7e19b74 msm: mdss: fix the pixel clock calculation for fb modes
In the current implementation, if panel is configured in split
mode and supports multiple resolutions, then the pixel clock
calculation for the supported modes does not take split mode
into consideration. This causes issues when recovery or charger
application try to configure display. So fix the same by
recalculating the pixel clock with taking care of proper width
in case of split mode panel.

Change-Id: Ie6b50bcd67d3e283610f8b04ac0a974b3527e552
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2017-06-29 10:24:06 +05:30
Sayali Lokhande
d74ea38a01 ARM: dts: msm: Add non-removable ufs property for SDM630
Defines the non-removable property for UFS device node.
This basically lets the driver know that UFS is the
boot device.

Change-Id: I1c8aa298af4afc7e42d0c8a3690f7d3360e37647
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
2017-06-29 09:08:09 +05:30
Linux Build Service Account
41f7afc189 Merge "drm/msm/sde: add kernel traces to measure enable/disable/kickoff times" 2017-06-28 20:09:04 -07:00
Linux Build Service Account
f244955097 Merge "ARM: dts: msm: update rmtfs shared memory address for SDM660/630" 2017-06-28 20:09:03 -07:00
Linux Build Service Account
17fbca8726 Merge "defconfig: msm: enable remote debugger driver" 2017-06-28 20:09:02 -07:00
Linux Build Service Account
1014096cda Merge "mm: avoid taking zone lock in pagetypeinfo_showmixed()" 2017-06-28 20:09:01 -07:00
Linux Build Service Account
04fdd6f571 Merge "icnss: Fix incorrect clean-up of stats" 2017-06-28 20:09:00 -07:00
Linux Build Service Account
e80ffe4ec7 Merge "icnss: Add specific statistics for PDR" 2017-06-28 20:08:59 -07:00
Linux Build Service Account
823d04d683 Merge "input: synaptics_dsx: validate bounds of intr_reg_num" 2017-06-28 11:59:58 -07:00
Linux Build Service Account
2a24534bf6 Merge "soc: qcom: glink_smem_native_xport: Allocate smem item in non cache region" 2017-06-28 11:59:58 -07:00
Linux Build Service Account
821524723a Merge "power: reset: msm: add support to select both dumps" 2017-06-28 11:59:57 -07:00
Linux Build Service Account
5901738d81 Merge "ARM: dts: msm: Update USB PHY0 parameters for SDA660/630 HDK platform" 2017-06-28 11:59:56 -07:00
Linux Build Service Account
c7773e1eca Merge "drm/msm: program hdr information to HDMI registers" 2017-06-28 11:59:55 -07:00
Linux Build Service Account
c6fd1ba1ad Merge "drm/msm/sde: add sde_connector kickoff callbacks" 2017-06-28 11:59:54 -07:00
Linux Build Service Account
62cf4dab17 Merge "soc: qcom: ipc_router: Improve IPC attribution" 2017-06-28 11:59:53 -07:00
Linux Build Service Account
9435c0d514 Merge "msm: camera: Fix a deadlock in power-up sequence of the I2C-TZ relay" 2017-06-28 11:59:52 -07:00
Linux Build Service Account
3a2719b7df Merge "msm: camera: isp: Set the sync mode to async" 2017-06-28 11:59:51 -07:00