Commit graph

595084 commits

Author SHA1 Message Date
Andrea Reale
efdbaef3e1 arm64: Hot-remove implementation for arm64
- arch_remove_memory interface
- kernel page tables cleanup
- vmemmap_free implementation for arm64

Change-Id: I8945b6b91ed7012abc1478de266302427ebeb639
Signed-off-by: Andrea Reale <ar@linux.vnet.ibm.com>
Signed-off-by: Maciej Bielski <m.bielski@virtualopensystems.com>
Patch-mainline: linux-kernel @ 11 Apr 2017, 18:25
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Signed-off-by: Arun KS <arunks@codeaurora.org>
2017-11-22 08:14:21 +05:30
Maciej Bielski
9bade51dc7 arm64: Memory hotplug support for arm64 platform
This is a second and improved version of the patch previously released
in [3].

It builds on the work by Scott Branden [2] and, henceforth,
it needs to be applied on top of Scott's patches [2].
Comments are very welcome.

Changes from the original patchset and known issues:

- Compared to Scott's original patchset, this work adds the mapping of
  the new hotplugged pages into the kernel page tables. This is done by
  copying the old swapper_pg_dir over a new page, adding the new mappings,
  and then switching to the newly built pg_dir (see `hotplug_paging` in
  arch/arm64/mmu.c). There might be better ways to to this: suggestions
  are more than welcome.

- The stub function for `arch_remove_memory` has been removed for now; we
  are working in parallel on memory hot remove, and we plan to contribute
  it as a separate patch.

- Corresponding Kconfig flags have been added;

- Note that this patch does not work when NUMA is enabled; in fact,
  the function `memory_add_physaddr_to_nid` does not have an
  implementation when the NUMA flag is on: this function is supposed to
  return the nid the hotplugged memory should be associated with. However
  it is not really clear to us  yet what the semantics of this function
  in the context of a NUMA system should be. A quick and dirty fix would
  be to always attach to the first available NUMA node.

- In arch/arm64/mm/init.c `arch_add_memory`, we are doing a hack with the
  nomap memory block flags to satisfy preconditions and postconditions of
  `__add_pages` and postconditions of `arch_add_memory`. Compared to
  memory hotplug implementation for other architectures, the "issue"
  seems to be in the implemenation of `pfn_valid`. Suggestions on how
  to cleanly avoid this hack are welcome.

This patchset can be tested by starting the kernel with the `mem=X` flag, where
X is less than the total available physical memory and has to be multiple of
MIN_MEMORY_BLOCK_SIZE. We also tested it on a customised version of QEMU
capable to emulate physical hotplug on arm64 platform.

To enable the feature the CONFIG_MEMORY_HOTPLUG compilation flag
needs to be set to true. Then, after memory is physically hotplugged,
the standard two steps to make it available (as also documented in
Documentation/memory-hotplug.txt) are:

(1) Notify memory hot-add
 	echo '0xYY000000' > /sys/devices/system/memory/probe

where 0xYY000000 is the first physical address of the new memory section.

(2) Online new memory block(s)
    echo online > /sys/devices/system/memory/memoryXXX/state
    -- or --
    echo online_movable > /sys/devices/system/memory/memoryXXX/state

where XXX corresponds to the ids of newly added blocks.

Onlining can optionally be automatic at hot-add notification by enabling
the global flag:
	echo online > /sys/devices/system/memory/auto_online_blocks
or by setting the corresponding config flag in the kernel build.

Again, any comment is highly appreciated.

[1] https://lkml.org/lkml/2016/11/17/49
[2] https://lkml.org/lkml/2016/12/1/811
[3] https://lkml.org/lkml/2016/12/14/188

Change-Id: I545807e3121c159aaa2f917ea914ee98f38fb296
Signed-off-by: Maciej Bielski <m.bielski@virtualopensystems.com>
Signed-off-by: Andrea Reale <ar@linux.vnet.ibm.com>
Patch-mainline: linux-kernel @ 11 Apr 2017, 18:25
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
[arunks@codeaurora.org: fix to pass checker test]
Signed-off-by: Arun KS <arunks@codeaurora.org>
2017-11-22 08:11:50 +05:30
Scott Branden
a1185dc1d2 arm64: memory-hotplug: Add MEMORY_HOTPLUG, MEMORY_HOTREMOVE, MEMORY_PROBE
Add memory-hotplug support for ARM64 platform.

This requires addition of
ARCH_ENABLE_MEMORY_HOTPLUG and ARCH_ENABLE_MEMORY_HOTREMOVE config options.

MEMORY_PROBE config option is added to support
/sys/devices/system/memory/probe functionality.

In addition architecture specific arch_add_memory and
arch_remove memory management functions are added.

Change-Id: I1fc4e8c93cfe1b9722b2fc8d811390e6cdfa7995
Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Patch-mainline: linux-kernel @ 11 Apr 2017, 18:24
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
2017-11-21 18:55:04 +05:30
Linux Build Service Account
ce488494ce Merge "msm: camera: isp: don't set stripe_rd reload bit during hw reset" 2017-11-20 15:38:48 -08:00
Linux Build Service Account
31eebba21f Merge "USB: core: Add USB_DEVICE_ERROR uevent for enumeration timeout" 2017-11-20 15:38:47 -08:00
Linux Build Service Account
d33ed6b2cc Merge "cnss2: fix PCIe D3hot when suspending link" 2017-11-19 07:45:23 -08:00
Linux Build Service Account
15e05b3a9f Merge "FROMLIST: binder: fix proc->files use-after-free" 2017-11-19 07:45:22 -08:00
Linux Build Service Account
04e4c990b1 Merge "ais: query field info and pass to user space" 2017-11-19 07:45:21 -08:00
Linux Build Service Account
594c9a979d Merge "msm: kgsl: Update the dispatcher timer properly" 2017-11-19 07:45:20 -08:00
Linux Build Service Account
9715e41c28 Merge "clk: qcom: mdss: fix the divider programming for DisplayPort PLL" 2017-11-19 07:45:19 -08:00
Linux Build Service Account
2f1c6c842d Merge "msm: camera: Version changes for new csid on msm8953" 2017-11-19 07:45:18 -08:00
Linux Build Service Account
cfa80d3508 Merge "msm: camera: Changing return condition after NULL check" 2017-11-19 07:45:17 -08:00
Linux Build Service Account
13879a35f3 Merge "msm: vidc: Fix instance formats initialization issue" 2017-11-19 07:45:16 -08:00
Linux Build Service Account
ac25624726 Merge "msm: mdss: dp: fix programming of DisplayPort SDP registers" 2017-11-19 07:45:14 -08:00
Linux Build Service Account
d7ad9cc3e5 Merge "msm: mdss: adjust mdss_mdp_get_plane_sizes parameters init order" 2017-11-19 07:45:13 -08:00
Linux Build Service Account
72c7a91cb3 Merge "msm: kgsl: Use the bind lock when dumping entries" 2017-11-19 07:45:12 -08:00
Linux Build Service Account
99e4961cf1 Merge "msm: ais: sensor: actuator: avoid accessing out of bound memory" 2017-11-19 07:45:11 -08:00
Linux Build Service Account
c71f1f1ef1 Merge "drivers: qdsp6v2: Add mutex unlock to properly release lock" 2017-11-19 07:45:10 -08:00
Linux Build Service Account
594cb9819c Merge "security: pfe: Return proper error code" 2017-11-19 07:45:09 -08:00
Linux Build Service Account
ee49de496a Merge "ARM: dts: msm: Fix tavil codec reset issue on sdm660" 2017-11-19 07:45:08 -08:00
Linux Build Service Account
74a9c48a91 Merge "ath10k: check the pipe credit update enabled flag before set" 2017-11-18 00:35:27 -08:00
Linux Build Service Account
e18df67a5b Merge "power: qpnp-fg-gen3: update battery profile based on Rconn configuration" 2017-11-18 00:35:25 -08:00
Linux Build Service Account
f0fa03855a Merge "DRM: SDE: Fix the spelling in DTS parser" 2017-11-17 16:00:54 -08:00
Linux Build Service Account
3105f28036 Merge "ARM: dts: msm: Add support for MSM8996 Mizar platform" 2017-11-17 16:00:54 -08:00
Sarada Prasanna Garnayak
7234f3d164 ath10k: check the pipe credit update enabled flag before set
Check the credit update flag has enabled for the pipe
before setting the flag for credit report update request
on the wcn3990 WLAN module.

CRs-Fixed: 2141924
Change-Id: Ic628fa49934c110b7abccefb45a2a354dc462791
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
2017-11-17 07:04:25 -08:00
Todd Kjos
6bfca30de9 FROMLIST: binder: fix proc->files use-after-free
(from https://patchwork.kernel.org/patch/10058587/)

proc->files cleanup is initiated by binder_vma_close. Therefore
a reference on the binder_proc is not enough to prevent the
files_struct from being released while the binder_proc still has
a reference. This can lead to an attempt to dereference the
stale pointer obtained from proc->files prior to proc->files
cleanup. This has been seen once in task_get_unused_fd_flags()
when __alloc_fd() is called with a stale "files".

The fix is to always use get_files_struct() to obtain struct_files
so that the refcount on the files_struct is used to prevent
a premature free. proc->files is removed since we get it every
time.

Bug: 69164715
Change-Id: I6431027d3d569e76913935c21885201505627982
Signed-off-by: Todd Kjos <tkjos@google.com>
Git-commit: 1d6b43334b45144beb0dc8236f9eb3b6cf3b2995
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
2017-11-16 23:53:41 -08:00
Linux Build Service Account
d092195048 Merge "msm: camera: Enable (2+1) lane csiphy combo mode" 2017-11-16 19:11:13 -08:00
jiad
1857b211df cnss2: fix PCIe D3hot when suspending link
When doing WLAN SSR tests on Rome PCIe platform, system hang
is observed. After debugging, setting D3hot to PCIe link when
suspending leads to the hang.

Setting D3hot is a new change, which is added for Napier platform.
But this code path shares with legacy Rome platform. In previous
implementations for Rome PCIe platforms, setting D3hot to link
is not needed.

Fix is to set D3hot for Napier specific platforms.

Change-Id: Ia6bcb1b898204c0a8fd63355dd1f0808021182c4
CRs-Fixed: 2145090
Signed-off-by: Jia Ding <jiad@codeaurora.org>
2017-11-17 09:35:25 +08:00
Camus Wong
59c20536bc DRM: SDE: Fix the spelling in DTS parser
Fix one of the mode properties' spelling error.

Change-Id: I6cb0f31aa62b825773b97099fcac3da8a2b94af6
Signed-off-by: Camus Wong <camusw@codeaurora.org>
2017-11-16 08:08:16 -08:00
Padmanabhan Komanduru
f96e94247a clk: qcom: mdss: fix the divider programming for DisplayPort PLL
Fix the divider programming of DisplayPort PLL with the correct
value. Without this, display doesn't up fine with certain
resolutions on some sinks when link rate is 5.4 GHz.

Change-Id: I7c5a452a9df757240a1c6c3d371bd46a16f98efd
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2017-11-16 12:10:08 +05:30
Shankar Ravi
11490ec83c msm: camera: Version changes for new csid on msm8953
msm8953 uses a new version of csid. Adding new
configuration file and making necessary driver changes.

Change-Id: I5c0ce7f43a4ccd55bd18461bc910e4dcb0c23bb0
Signed-off-by: Shankar Ravi <rshankar@codeaurora.org>
2017-11-15 22:01:58 -08:00
Samyukta Mogily
e2f573259f msm: camera: Changing return condition after NULL check
If return is inside the if condition, rc value is returned
only for that case. Hence shifting the return rc statement
outside the if loop, to return the value of rc for all cases.

Change-Id: I2f96cd0d301f580c0e7019746bade4e125661a36
CRs-Fixed: 1076948
Signed-off-by: Samyukta Mogily <smogily@codeaurora.org>
2017-11-15 21:57:22 -08:00
Camus Wong
a8988fe98c SDE: Fix the minimum value in display property
The minium value of u32 is zero instead of -1.  -1 will become the
largest value in u32.

Change-Id: I20fcab7d5912d6da7c4afe1ec7a86333767b0bf1
Signed-off-by: Camus Wong <camusw@codeaurora.org>
2017-11-15 10:35:25 -08:00
Benjamin Chan
9b0c877cd1 msm: mdss: adjust mdss_mdp_get_plane_sizes parameters init order
Parameter mdss_mdp_plane_sizes must be cleared to 0 before returning
under an error condition, otherwise caller function will use the
uninitialized mdss_mdp_plane_sizes values and caused incorrect
operation.

Change-Id: I856b17ce9e917cc450040463ec34b7309d34b9b5
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
2017-11-15 08:28:05 -08:00
Bharathraj Nagaraju
04332db32d ARM: dts: msm: Add support for MSM8996 Mizar platform
Add device tree files needed to support MSM8996 based
mizar platform.

Change-Id: Ife6c6659b981b37c6b9d9cbb0a0c106488f1e07f
Signed-off-by: Bharathraj Nagaraju <snbraj@codeaurora.org>
2017-11-15 07:29:06 -08:00
Chandana Kishori Chiluveru
6e8f263048 USB: core: Add USB_DEVICE_ERROR uevent for enumeration timeout
Some userspace modules expect USB driver to send event to userspace, when
usb device enumeration failure with device descriptor read errors.
Add USB_DEVICE_ERROR uevent in the USB driver to explicitly send the ERROR
uevent for such case.

Change-Id: I7128869ff0700ab90d4c949de24cd03c5c90e22e
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
2017-11-15 16:16:48 +05:30
Andy Sun
3375a292ea ais: query field info and pass to user space
Current path to query field info: SOF ISR -> tasklet -> query thread
with high priority -> ba driver -> adv7481.

Pass field type to user space if they are valid after verification.

Change-Id: Id9926236389200446092dc9abb688ee1f83ab0c3
Signed-off-by: Andy Sun <bins@codeaurora.org>
2017-11-15 16:21:28 +08:00
Gaoxiang Chen
61c2f04f34 msm: camera: isp: don't set stripe_rd reload bit during hw reset
During reset isp HW, don't set stripe_rd reload bit, otherwise
it might cause iommu page fault, which actually is a fasle alarm.

CRs-Fixed: 2135311
Change-Id: I9be0400640edbf687ecfe08edcfdc1c7f7de25b6
Signed-off-by: Gaoxiang Chen <gaochen@codeaurora.org>
2017-11-14 22:46:43 -08:00
Lynus Vaz
771c10f112 msm: kgsl: Use the bind lock when dumping entries
Take the bind lock when we dump information about sparse memory
allocations through the debugfs node.

Change-Id: I955d64d06a259a2bbe4d85a33d68887ee01aad07
Signed-off-by: Lynus Vaz <lvaz@codeaurora.org>
2017-11-14 22:36:49 -08:00
Subbaraman Narayanamurthy
1ff9fbe486 power: qpnp-fg-gen3: update battery profile based on Rconn configuration
Currently, Rconn is configured once in fg_hw_init() if it is not
configured already. However, if the driver loads the profile
later, it will overwrite the Rconn value configured during
fg_hw_init. To fix this problem, configure Rconn after handling
battery profile loading.

Usually the Rconn configuration is setup differently from what
the profile has for it. We check if the profile in SRAM is bit
to bit matching with the profile in device tree. We may come
across a mismatch for Rconn configuration and conclude that the
profile isn't matching. Fix this by initializing the Rconn
configuration in the profile read from device tree to the value
read from SRAM.

CRs-Fixed: 2142441
Change-Id: I2b7ac8cd6efe811527c29bc5cd0fa43b77da7b15
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2017-11-14 19:44:04 -08:00
Linux Build Service Account
ae2f6cb5ad Merge "soc: qcom: service-locator: Update incorrect usage of qmi_send_req_wait" 2017-11-14 09:45:24 -08:00
Tanya Dixit
4273a189a9 drivers: qdsp6v2: Add mutex unlock to properly release lock
Add mutex unlock in function audio_effects_shared_ioctl
at appropriate place to prevent use after free.

CRs-Fixed: 2123291
Change-Id: Ie0d321dc8cc20a295d102a44faea7e5710834932
Signed-off-by: Tanya Dixit <tdixit@codeaurora.org>
2017-11-14 05:18:43 -08:00
Kyle Yan
191e097508 soc: qcom: service-locator: Update incorrect usage of qmi_send_req_wait
qmi_send_req_wait expects timeout argument to be passed in ms and not
in jiffies. Update the call in service-locator to pass in the correct
argument.

Change-Id: Ib2f8deedf2fb2a561c30b0c8511bb1edd5a37361
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
2017-11-13 23:01:20 -08:00
Kyle Yan
6c06d8ddf7 soc: qcom: service-locator: Fix error message prints for receiving messages
ENOMSG is not a real failure return code for qmi_recv_msg. Instead ENOMSG
signifies that we have finished reading the entirety of the message buffer.
Update the error condition to print errors only when any error message
other than ENOMSG is returned.

Change-Id: Id6b42df182cb02f2cbffaae9698363b7dafce4e4
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
2017-11-13 22:56:58 -08:00
Linux Build Service Account
f2170a2917 Merge "power: qcom: msm-core: Add mutex lock for ioctl" 2017-11-13 07:26:33 -08:00
Linux Build Service Account
adff01925e Merge "ASoC: msm: qdsp6v2: Remove excess logs in compress driver" 2017-11-13 07:26:32 -08:00
Linux Build Service Account
290c401bca Merge "adv7481: Changes to compile ADV7481 as a module" 2017-11-13 07:26:31 -08:00
Linux Build Service Account
525336aad1 Merge "usb: gadget: ffs: Defer freeing memory on free_inst if in use" 2017-11-13 07:26:30 -08:00
Linux Build Service Account
3d47351ac1 Merge "ARM: dts: msm: add SLPI fw name property for msm8996" 2017-11-13 07:26:29 -08:00
Padmanabhan Komanduru
6254597c2b msm: mdss: dp: fix programming of DisplayPort SDP registers
Fix the programming of DisplayPort SDP registers primarily related
to Audio enable sequence. This would fix potential issues caused by
read/append/write operations on SDP registers which might corrupt
the parity/data bytes. This would lead to audio issues since the DP
controller would treat the corrupt SDP information as invalid data.

Change-Id: I55db6a70be0fdf94a60fd7cc8bf0d30702febef8
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2017-11-13 19:18:40 +05:30