Commit Graph

1056411 Commits

Author SHA1 Message Date
Will McVicker
750af2afbe ANDROID: GKI: Add generic aarch64 symbol list
Useful set of generic aarch64 symbols for GKI.

Bug: 182844240
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I9fcefdb83e2fc1c65d0f768146e859286140a5ce
2021-04-13 23:27:58 +00:00
J. Avila
01a0d1ea31 ANDROID: usb: host: Use old init scheme when hook unavailable
In cases where the new xhci hooks are unimplemented, ctx->bytes may
never be initialized, leading to null pointer crashes. Fix this by only
calling xhci_vendor_alloc/free_container_ctx when the corresponding hook
is present.

Bug: 185191548
Signed-off-by: J. Avila <elavila@google.com>
Change-Id: Ia77b0815ddc8bc340a286731558c754c779e883a
2021-04-13 23:22:23 +00:00
David Anderson
6aee238019 Revert "dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size"
This reverts commit 7bda53f463.

Bug: 184927119
Test: OTA works
Change-Id: I96ee9a0a81659fccebdd6f6cb3edd8c8de1f15f1
Signed-off-by: David Anderson <dvander@google.com>
2021-04-13 19:03:53 +00:00
David Anderson
59977fca5c Revert "dm verity: fix FEC for RS roots unaligned to block size"
This reverts commit ce1cca1738.

Bug: 184927119
Test: OTA works
Change-Id: I23d4da47ba620085ea12ec38a80c106fa24d756f
Signed-off-by: David Anderson <dvander@google.com>
2021-04-13 19:03:44 +00:00
Alistair Delva
ea2cf4bea8 Revert "ANDROID: AVB error handler to invalidate vbmeta partition."
This driver is not used and can cause problems if used on modern
devices. Remove it.

This reverts commit 6115619831.

Bug: 185178770
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I1d5acb96dda765a1e3ea0cf62a3bf4b2a78892ea
2021-04-13 18:00:02 +00:00
Alexander Potapenko
d2521bc897 ANDROID: gki_defconfig: reduce KFENCE pool size
CONFIG_KFENCE_NUM_OBJECTS controls the constant memory overhead that
KFENCE introduces for its memory pool. By default it is 255 objects
(2Mb extra memory), but since concerns have been raised that low-memory
devices may not afford that, we are lowering the number of objects
to 63 (512Kb extra memory).

So far we haven't seen Android devices allocate more than 50 KFENCE
objects. Should the kernel exhaust the pool, KFENCE will stop allocating
new objects and fall back to SLAB/SLUB until one of the objects is
freed.

An immediate consequence of reducing the pool size is that a freed
KFENCE object will be reused 4x times faster, effectively reducing the
probability of detecting a use-after-free. Since KFENCE is a best-effort
error detection tool, not a use-after-free mitigation mechanism, we
believe this should not be problematic.

Bug: 181822795
Test: run KFENCE on an Android device
Signed-off-by: Alexander Potapenko <glider@google.com>
Change-Id: I88fca80eea8b382115de03dbb104fd305b35476f
2021-04-13 15:06:47 +00:00
A. Cody Schuffelen
c70d90263c FROMGIT: virt_wifi: Return micros for BSS TSF values
cfg80211_inform_bss expects to receive a TSF value, but is given the
time since boot in nanoseconds. TSF values are expected to be at
microsecond scale rather than nanosecond scale.

Bug: 181840234
Test: atest CtsWifiTestCases:android.net.wifi.cts.ScanResultTest#testScanResultTimeStamp -- --abi x86_64
Signed-off-by: A. Cody Schuffelen <schuffelen@google.com>
Link: https://lore.kernel.org/r/20210318200419.1421034-1-schuffelen@google.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
(cherry picked from commit b57aa17f07
https: //git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git master)
Change-Id: Icafc24ad303357926cbe955ffa12e28e0bf31e6f
2021-04-13 14:55:05 +00:00
Sangmoon Kim
09eafb2817 ANDROID: stacktrace: export stack_trace_save_tsk/regs
Export stack_trace_save_tsk and stack_trace_save_regs so that modules
can use it to get the stacktrace of specific tasks or pt_regs.

Bug: 184317765

Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: Ice4ede172b5ef2f1cf311a28414db0d8bf929ced
2021-04-13 13:18:04 +00:00
Park Bumgyu
6f6d8bb444 ANDROID: arm64: declare system_32bit_el0_cpumask as export
To know whether CPU supports 32bit el0 or not at module, declare
system_32bit_el0_cpumask as EXPORT_SYMBOL_GPL.

Bug: 184233663

Signed-off-by: Park Bumgyu <bumgyu.park@samsung.com>
Change-Id: Ia329a5cf35c0f2a40b8088b0c1facad2532b5a0b
2021-04-13 12:28:44 +00:00
Isaac J. Manjarres
b492fa8a50 ANDROID: Fix compilation warning in __iommu_map_pages()
Commit 08d46858c7 ("FROMLIST: iommu: Add support for the map_pages()
callback") used the wrong format specifier for the count variable in
__iommu_map_pages(), and introduced the following compilation warning:

   drivers/iommu/iommu.c: In function '__iommu_map_pages':
>> drivers/iommu/iommu.c:7:24: warning: format '%ld' expects argument of
>> type 'long int', but argument 6 has type 'size_t' {aka 'unsigned
>> int'} [-Wformat=]
       7 | #define pr_fmt(fmt)    "iommu: " fmt
         |                        ^~~~~~~~~
   include/linux/dynamic_debug.h:129:15: note: in expansion of macro
'pr_fmt'
     129 |   func(&id, ##__VA_ARGS__);  \
         |               ^~~~~~~~~~~
   include/linux/dynamic_debug.h:147:2: note: in expansion of macro
'__dynamic_func_call'
     147 |  __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func,
         |  ^~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:157:2: note: in expansion of macro
'_dynamic_func_call'
     157 |  _dynamic_func_call(fmt, __dynamic_pr_debug,  \
         |  ^~~~~~~~~~~~~~~~~~
   include/linux/printk.h:424:2: note: in expansion of macro
'dynamic_pr_debug'
     424 |  dynamic_pr_debug(fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~
   drivers/iommu/iommu.c:2398:2: note: in expansion of macro 'pr_debug'
    2398 |  pr_debug("mapping: iova 0x%lx pa %pa pgsize 0x%zx count
%ld\n",
         |  ^~~~~~~~
   drivers/iommu/iommu.c:2398:60: note: format string is defined here
    2398 |  pr_debug("mapping: iova 0x%lx pa %pa pgsize 0x%zx count
%ld\n",

Fix by using the correct format specifier for the count variable.

Bug: 178537788
Fixes: 08d46858c7 ("FROMLIST: iommu: Add support for the map_pages() callback")
Reported-by: kernel test robot <lkp@intel.com>
Change-Id: Idc116f559c89e7da8a2b7ae5d8ce173923424588
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2021-04-13 11:27:32 +00:00
Tao Huang
33bae277f6 gpu: remove unused rogue_m driver
Change-Id: I2d38df29926bc7c2e7e618b777cd36768cab0d0e
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-04-13 18:55:57 +08:00
Tao Huang
b72885a1c1 gpu: remove unused rogue driver
Change-Id: I067a96e88b4a389470b12446dea573134b835018
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-04-13 18:46:13 +08:00
Shawn Lin
78f9ac0daa treewide: Migrate rockchip dts file to use new host type tags
supports-* stuff were used for rockchip platforms to speed up booting
if we know what exactly the host was used for. As we have upstreamed all
these with some very similar ways, now it's the time we migrate our dts
files to use new properties.

They were converted by:

sed -i "s/supports-emmc;/no-sdio;\n\tno-sd;/g" `grep supports-emmc -rl arch/*`
sed -i "s/supports-sd;/no-sdio;\n\tno-mmc;/g" `grep supports-sd -rl arch/*`
sed -i "s/supports-sdio;/no-sd;\n\tno-mmc;/g" `grep supports-sdio -rl arch/*`

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: I33e5317ee5c7305803cf18ff4a370658abf555b0
2021-04-13 14:40:36 +08:00
Isaac J. Manjarres
947f7639b3 ANDROID: iommu/io-pgtable-arm: Fix arguments for __arm_lpae_map()
arm_lpae_map_pages() is currently passing NULL to __arm_lpae_map()
for its mapped argument, instead of the mapped argument that it is
supposed to pass, which can lead to memory that has been mapped
not being counted as mapped.

Fix this by passing the mapped argument from arm_lpae_map_pages()
to __arm_lpae_map().

Bug: 178537788
Reported-by: John Stultz <john.stultz@linaro.org>
Fixes: ac3994447c ("FROMLIST: iommu/io-pgtable-arm: Implement arm_lpae_map_pages()")
Change-Id: Ic97df34fc2e9e0404d193eff2024d334e3e75a24
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2021-04-12 17:13:52 -07:00
Alistair Delva
40537e85f7 ANDROID: GKI: Bump KMI_GENERATION, ABI representation
KMI_GENERATION is bumped to 1.

Leaf changes summary: 10 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 7 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 3 Added variables

7 Added functions:

  [A] 'function void all_vm_events(unsigned long int*)'
  [A] 'function page* balloon_page_alloc()'
  [A] 'function page* balloon_page_dequeue(balloon_dev_info*)'
  [A] 'function void balloon_page_enqueue(balloon_dev_info*, page*)'
  [A] 'function int page_reporting_register(page_reporting_dev_info*)'
  [A] 'function void page_reporting_unregister(page_reporting_dev_info*)'
  [A] 'function long int si_mem_available()'

3 Added variables:

  [A] 'const address_space_operations balloon_aops'
  [A] 'static_key_false init_on_free'
  [A] 'vm_event_state vm_event_states'

Bug: 184983567
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I28114e1d3d264cbd8bd2007df37fc35dfa91f84b
2021-04-12 15:14:11 +00:00
Alistair Delva
af0bfc5b9d ANDROID: GKI: Update virtual device symbol list
For MEMORY_BALLOON symbols.

Bug: 183227346
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I7e050d7a680c3f967b7cf2eb880f85995d46054d
2021-04-12 15:14:05 +00:00
Shawn Lin
34c9946891 mmc: sdhci-of-dwcmshc: Initial support for rockchip platform
Change-Id: I25a54059a56f939996de89076550e6a0bb8404e0
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:16 +08:00
Shawn Lin
af02b05e59 mmc: add thunder boot support
Remove unnecessary initialization process from core as possible, such
as remove some idle process, shorten delay, remove parsing ext_csd,
remove post-delay for power and so on. All these stuffs are enabled
by CONFIG_ROCKCHIP_THUNDER_BOOT.

Change-Id: I0e2326dd79d938eb82c8cfac9db09e34d6c08987
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:16 +08:00
Shawn Lin
70f84526ba FROMLIST: mmc: core: fall back host->f_init if failing to init mmc card after resume
We observed the failure of initializing card after resume
accidentally. It's hard to reproduce but we did get report from
the suspend/resume test of our RK3399 mp test farm .Unfortunately,
we still fail to figure out what was going wrong at that time.
Also we can't achieve it by retrying the host->f_init without falling
back it. But this patch will solve the problem as we could add some log
there and see that we resume the mmc card successfully after falling
back the host->f_init. There is no obviousside effect found, so it seems
this patch will improve the stability.

[   93.405085] mmc1: unexpected status 0x800900 after switch
[   93.408474] mmc1: switch to bus width 1 failed
[   93.408482] mmc1: mmc_select_hs200 failed, error -110
[   93.408492] mmc1: error -110 during resume (card was removed?)
[   93.408705] PM: resume of devices complete after 213.453 msecs

Change-Id: I5b24cb84a223394392450a1f10d8bbacb9e1006e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:16 +08:00
Shawn Lin
795e052cc8 mmc: dw_mmc-rockchip: add v2 tuning support
v2 tuning will inherit pre-stage loader's phase
settings for the first time, and do re-tune if
necessary. Re-tune will still try the rough degrees,
for instance, 90, 180, 270, 360 but continue to do the
fine tuning if sample window isn't good enough.

Change-Id: I593384ee381d09df5b9adfc29a18eb22517b2764
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:16 +08:00
Shawn Lin
a95ce73bf7 mmc: core: Add mmc_sd_shutdown support for SD
The ROM code for Rockchip platform never support detecting
SD 3.0 mode, so if the SD card contains system image running
into SD 3.0 mode in kernel, it will fails to reboot.

The problem is SD 3.0 mode is using 1.8V signal and could only
be switched back into 2.0 mode by power cycle. If the customed
board could not switch off its power rail, the ROM code can't
soft reset the SD.

Add mmc_sd_shutdown to workaround this special case and don't
bother normal SD cards used as external disk by checking the
RESTRICT_CARD_TYPE_MMC flag.

Conflicts:
	drivers/mmc/core/sd.c

Change-Id: I4c3d3111c0bce0ad3cd4f0c6592ff595d7015afe
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
94728f4382 mmc: sdhci-of-arasan: Parse disable-cqe
Add support to disable cqe function if disable-cqe
is assigned by firmware.

Change-Id: Iac2826c4b986c122510af1594c971c4135bafc34
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
9d76cd58bf mmc: core: Set clock after changing timing immediately for mmc_select_hs400es()
This's what mmc_select_hs400() or mmc_select_hs() did,
since mmc_set_clock() will let sdhci_arasan_set_clock()
update the PHY clock to match the timing, otherwise
the following mmc_switch_status() will be failed.

Change-Id: Ic1a0178ec209ec71d904f7212a84da6665904007
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
4734c45258 mmc: core: don't check card status when flushing cache
It's meaningless to check the card's status which execute
the on-going flush. As the status been responded make no
any sense here.

Change-Id: I34197d1c93c01337dd2e68ec22e3ce8dd195c424
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
a03fec2ff6 mmc: dw_mmc: bypass RPM for native CD
Otherwise now the RPM core will gate the clk and power domain,
so that the hotplug will be broken.

Change-Id: I9104ff1beb2db5ef2752179eb91730f48f3089d7
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
976ea163ad mmc: dw_mmc: add xfer timer for avoid DTO without actual data payload
It has proved the controller has a potention broken state with a DTO
interrupt comes while the data payload is missing, which was not
covered by current software state machine. Add a xfer timer to work
around this buggy behaviour introduced by broken design.

Change-Id: I5019c5ba0cdeb59adcdd3a5231a2000b448762bc
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
8c7548af80 mmc: dw_mmc: initialize zero for dma_slave_config
This fixes uninitialized variable introduced by commit ddd2e87ad4
("dmaengine: pl330: add support for interlace size config")

Change-Id: Ib1bbec21053fbcccf85a339d8ed7eec0bbe77727
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
4f0afb8a55 mmc: sdhci-of-arasan: wakeup genpd in probe
Let's keep genpd for sdhci alive while entering deep
sleep which gte me out of yapping around.

Change-Id: I0da20b417621d277745bafd53d1ee461aae72e11
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Shawn Lin
22ddcf4e49 mmc: porting legacy tactices into 5.10
Change-Id: Ieb0e609f5cad4e889be6194f8fd8a54057a1174b
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2021-04-12 20:15:15 +08:00
Tao Huang
f3155b19d7 rk: get rid of legacy 'get_ds()' function
According to commit 736706bee3 ("get rid of legacy 'get_ds()' function")

Every in-kernel use of this function defined it to KERNEL_DS (either as
an actual define, or as an inline function).  It's an entirely
historical artifact, and long long long ago used to actually read the
segment selector valueof '%ds' on x86.

Which in the kernel is always KERNEL_DS.

Inspired by a patch from Jann Horn that just did this for a very small
subset of users (the ones in fs/), along with Al who suggested a script.
I then just took it to the logical extreme and removed all the remaining
gunk.

Roughly scripted with

   git grep -l '(get_ds())' -- :^tools/ | xargs sed -i 's/(get_ds())/(KERNEL_DS)/'
   git grep -lw 'get_ds' -- :^tools/ | xargs sed -i '/^#define get_ds()/d'

plus manual fixups to remove a few unusual usage patterns, the couple of
inline function cases and to fix up a comment that had become stale.

The 'get_ds()' function remains in an x86 kvm selftest, since in user
space it actually does something relevant.

Change-Id: I4b8e3436c958b7745059ea7ef4367f3fd4a0ebbe
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-04-12 19:56:40 +08:00
Tao Huang
d4de7bcdff rk: Replace deprecated PTR_RET
According to commit fad7c90209 ("err.h: remove deprecated PTR_RET for good").

Initially, commit fa9ee9c4b9 ("include/linux/err.h: add a function to
cast error-pointers to a return value") from Uwe Kleine-König introduced
PTR_RET in 03/2011. Then, in 07/2013, commit 6e8b8726ad ("PTR_RET is
now PTR_ERR_OR_ZERO") from Rusty Russell renamed PTR_RET to
PTR_ERR_OR_ZERO, and left PTR_RET as deprecated-marked alias.

After six years since the renaming and various repeated cleanups in the
meantime, it is time to finally remove the deprecated PTR_RET for good.

Change-Id: I2b5d464dc1c6bc0409e41dd9da503f14bef17dc7
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-04-12 19:40:45 +08:00
Tao Huang
fd2bfab3ee rk: remove ioremap_nocache and devm_ioremap_nocache
According to commit 4bdc0d676a ("remove ioremap_nocache and devm_ioremap_nocache").

ioremap has provided non-cached semantics by default since the Linux 2.6
days, so remove the additional ioremap_nocache interface.

Change-Id: Id62917547d7d0d838ac3785f8c2bfd2d645af034
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2021-04-12 19:24:04 +08:00
Tao Huang
30dac6b636 arm64: rockchip_defconfig: Enable CONFIG_ARM_PSCI_CPUIDLE
Enable support for PSCI firmware based cpuidle.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I746d25e8e38cac39e895d00c33e7e3ae27bf61a7
2021-04-12 18:38:21 +08:00
Tao Huang
68d7a58af3 ARM: rockchip_defconfig: Enable CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND
GPU drivers should select this config.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Id44c1aff8216550e50341667d0f63fdbf2cf9137
2021-04-12 18:34:44 +08:00
Tao Huang
42ed6f90e0 arm64: rockchip_defconfig: Enable CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND
GPU drivers should select this config.

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I2942405980648abc8cee8de3a0f1e0ec5379724c
2021-04-12 18:28:21 +08:00
Howard Yen
216fe64b61 ANDROID: usb: host: free the offload TR by vendor hook
Free vendor specific transfer ring through vendor hook
when the offload is enabled.

Bug: 175850224
Test: boot pass and headset works
Change-Id: I1ee112f41dae56bf6e0b8cc5575d8f4e893071f5
Signed-off-by: Howard Yen <howardyen@google.com>
Signed-off-by: Puma Hsu <pumahsu@google.com>
2021-04-12 08:52:39 +00:00
Greg Kroah-Hartman
c62f09151d Merge 5.10.29 into android12-5.10
Changes in 5.10.29
	ARM: dts: am33xx: add aliases for mmc interfaces
	bus: ti-sysc: Fix warning on unbind if reset is not deasserted
	platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
	bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp
	net/mlx5e: Enforce minimum value check for ICOSQ size
	net: pxa168_eth: Fix a potential data race in pxa168_eth_remove
	kunit: tool: Fix a python tuple typing error
	mISDN: fix crash in fritzpci
	mac80211: Check crypto_aead_encrypt for errors
	mac80211: choose first enabled channel for monitor
	drm/msm/dsi_pll_7nm: Fix variable usage for pll_lockdet_rate
	drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs
	drm/msm: Ratelimit invalid-fence message
	netfilter: conntrack: Fix gre tunneling over ipv6
	netfilter: nftables: skip hook overlap logic if flowtable is stale
	net: ipa: fix init header command validation
	platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
	kselftest/arm64: sve: Do not use non-canonical FFR register value
	drm/msm/disp/dpu1: icc path needs to be set before dpu runtime resume
	x86/build: Turn off -fcf-protection for realmode targets
	block: clear GD_NEED_PART_SCAN later in bdev_disk_changed
	platform/x86: intel_pmc_core: Ignore GBE LTR on Tiger Lake platforms
	ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation
	scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
	selftests/vm: fix out-of-tree build
	ia64: mca: allocate early mca with GFP_ATOMIC
	ia64: fix format strings for err_inject
	cifs: revalidate mapping when we open files for SMB1 POSIX
	cifs: Silently ignore unknown oplock break handle
	io_uring: fix timeout cancel return code
	math: Export mul_u64_u64_div_u64
	tools/resolve_btfids: Build libbpf and libsubcmd in separate directories
	tools/resolve_btfids: Check objects before removing
	tools/resolve_btfids: Set srctree variable unconditionally
	kbuild: Add resolve_btfids clean to root clean target
	kbuild: Do not clean resolve_btfids if the output does not exist
	tools/resolve_btfids: Add /libbpf to .gitignore
	bpf, x86: Validate computation of branch displacements for x86-64
	bpf, x86: Validate computation of branch displacements for x86-32
	init/Kconfig: make COMPILE_TEST depend on !S390
	init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
	Linux 5.10.29

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib3f9484150747de48eca46c69d690830b790418e
2021-04-11 09:11:53 +02:00
Michael Hoyle
1d3b80670f ANDROID: Add GKI_HIDDEN_MM_CONFIGS to support ballooning.
Bug: 183227346
Signed-off-by: Michael Hoyle <mikehoyle@google.com>
Change-Id: I67ab3cd12ee5925a941af2509ec1eef1fac07b86
2021-04-10 13:53:31 -07:00
Ray Chi
92de566762 ANDROID: usb: dwc3: gadget: don't cancel the started requests
Currently, there is an application on Mac that it will send
ClearFeature(halt_ep) request before transfering USB data.

If the device receives the ClearFeature(halt_ep) request, the
started requests would be removed and restart the transfer.
However, userspace services don't know this behavior. The services
will free the requests instead of retry and resend the requests.

It will cause the USB host can't get response so that it will try
to recover by issuing a reset signal.

Finally, it will take the infinite loop.
send reqeust > reset > re-enumeration > send request > reset > ...

To avoid this symptom, this patch will keep the started requests
so that userspace services didn't free the requests.

Bug: 178904115
Bug: 177879761
Signed-off-by: Ray Chi <raychi@google.com>
Change-Id: I52acf48871fd7f86cfcc51fb41c67d21ea895d69
Signed-off-by: Saravana Kannan <saravanak@google.com>
2021-04-10 10:03:50 -07:00
Greg Kroah-Hartman
d8cf82b410 Linux 5.10.29
Tested-by: A. Rabusov <a.rabusov@tum.de>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Hulk Robot <hulkrobot@huawei.com>
Tested-by: Jason Self <jason@bluehome.net>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Link: https://lore.kernel.org/r/20210409095304.818847860@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-10 13:36:11 +02:00
Masahiro Yamada
cef13a0437 init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
commit ea29b20a82 upstream.

I read the commit log of the following two:

- bc083a64b6 ("init/Kconfig: make COMPILE_TEST depend on !UML")
- 334ef6ed06 ("init/Kconfig: make COMPILE_TEST depend on !S390")

Both are talking about HAS_IOMEM dependency missing in many drivers.

So, 'depends on HAS_IOMEM' seems the direct, sensible solution to me.

This does not change the behavior of UML. UML still cannot enable
COMPILE_TEST because it does not provide HAS_IOMEM.

The current dependency for S390 is too strong. Under the condition of
CONFIG_PCI=y, S390 provides HAS_IOMEM, hence can enable COMPILE_TEST.

I also removed the meaningless 'default n'.

Link: https://lkml.kernel.org/r/20210224140809.1067582-1-masahiroy@kernel.org
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: KP Singh <kpsingh@google.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Terrell <terrelln@fb.com>
Cc: Quentin Perret <qperret@google.com>
Cc: Valentin Schneider <valentin.schneider@arm.com>
Cc: "Enrico Weigelt, metux IT consult" <lkml@metux.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-10 13:36:11 +02:00
Heiko Carstens
ba02635769 init/Kconfig: make COMPILE_TEST depend on !S390
commit 334ef6ed06 upstream.

While allmodconfig and allyesconfig build for s390 there are also
various bots running compile tests with randconfig, where PCI is
disabled. This reveals that a lot of drivers should actually depend on
HAS_IOMEM.
Adding this to each device driver would be a never ending story,
therefore just disable COMPILE_TEST for s390.

The reasoning is more or less the same as described in
commit bc083a64b6 ("init/Kconfig: make COMPILE_TEST depend on !UML").

Reported-by: kernel test robot <lkp@intel.com>
Suggested-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-10 13:36:11 +02:00
Piotr Krysiuk
faa30969f6 bpf, x86: Validate computation of branch displacements for x86-32
commit 26f55a59dc upstream.

The branch displacement logic in the BPF JIT compilers for x86 assumes
that, for any generated branch instruction, the distance cannot
increase between optimization passes.

But this assumption can be violated due to how the distances are
computed. Specifically, whenever a backward branch is processed in
do_jit(), the distance is computed by subtracting the positions in the
machine code from different optimization passes. This is because part
of addrs[] is already updated for the current optimization pass, before
the branch instruction is visited.

And so the optimizer can expand blocks of machine code in some cases.

This can confuse the optimizer logic, where it assumes that a fixed
point has been reached for all machine code blocks once the total
program size stops changing. And then the JIT compiler can output
abnormal machine code containing incorrect branch displacements.

To mitigate this issue, we assert that a fixed point is reached while
populating the output image. This rejects any problematic programs.
The issue affects both x86-32 and x86-64. We mitigate separately to
ease backporting.

Signed-off-by: Piotr Krysiuk <piotras@gmail.com>
Reviewed-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-10 13:36:11 +02:00
Piotr Krysiuk
3edb8967d9 bpf, x86: Validate computation of branch displacements for x86-64
commit e4d4d45643 upstream.

The branch displacement logic in the BPF JIT compilers for x86 assumes
that, for any generated branch instruction, the distance cannot
increase between optimization passes.

But this assumption can be violated due to how the distances are
computed. Specifically, whenever a backward branch is processed in
do_jit(), the distance is computed by subtracting the positions in the
machine code from different optimization passes. This is because part
of addrs[] is already updated for the current optimization pass, before
the branch instruction is visited.

And so the optimizer can expand blocks of machine code in some cases.

This can confuse the optimizer logic, where it assumes that a fixed
point has been reached for all machine code blocks once the total
program size stops changing. And then the JIT compiler can output
abnormal machine code containing incorrect branch displacements.

To mitigate this issue, we assert that a fixed point is reached while
populating the output image. This rejects any problematic programs.
The issue affects both x86-32 and x86-64. We mitigate separately to
ease backporting.

Signed-off-by: Piotr Krysiuk <piotras@gmail.com>
Reviewed-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-10 13:36:11 +02:00
Stanislav Fomichev
f890246ae7 tools/resolve_btfids: Add /libbpf to .gitignore
[ Upstream commit 90a82b1fa4 ]

This is what I see after compiling the kernel:

 # bpf-next...bpf-next/master
 ?? tools/bpf/resolve_btfids/libbpf/

Fixes: fc6b48f692 ("tools/resolve_btfids: Build libbpf and libsubcmd in separate directories")
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210212010053.668700-1-sdf@google.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00
Jiri Olsa
76983e2449 kbuild: Do not clean resolve_btfids if the output does not exist
[ Upstream commit 0e1aa629f1 ]

Nathan reported issue with cleaning empty build directory:

  $ make -s O=build distclean
  ../../scripts/Makefile.include:4: *** \
  O=/ho...build/tools/bpf/resolve_btfids does not exist.  Stop.

The problem that tools scripts require existing output
directory, otherwise it fails.

Adding check around the resolve_btfids clean target to
ensure the output directory is in place.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/bpf/20210211124004.1144344-1-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00
Jiri Olsa
0945d67e5d kbuild: Add resolve_btfids clean to root clean target
[ Upstream commit 50d3a3f816 ]

The resolve_btfids tool is used during the kernel build,
so we should clean it on kernel's make clean.

Invoking the the resolve_btfids clean as part of root
'make clean'.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20210205124020.683286-5-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00
Jiri Olsa
eff1e04657 tools/resolve_btfids: Set srctree variable unconditionally
[ Upstream commit 7962cb9b64 ]

We want this clean to be called from tree's root Makefile,
which defines same srctree variable and that will screw
the make setup.

We actually do not use srctree being passed from outside,
so we can solve this by setting current srctree value
directly.

Also changing the way how srctree is initialized as suggested
by Andrri.

Also root Makefile does not define the implicit RM variable,
so adding RM initialization.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210205124020.683286-4-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00
Jiri Olsa
f60c918b07 tools/resolve_btfids: Check objects before removing
[ Upstream commit f23130979c ]

We want this clean to be called from tree's root clean
and that one is silent if there's nothing to clean.

Adding check for all object to clean and display CLEAN
messages only if there are objects to remove.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210205124020.683286-3-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00
Jiri Olsa
2497190924 tools/resolve_btfids: Build libbpf and libsubcmd in separate directories
[ Upstream commit fc6b48f692 ]

Setting up separate build directories for libbpf and libpsubcmd,
so it's separated from other objects and we don't get them mixed
in the future.

It also simplifies cleaning, which is now simple rm -rf.

Also there's no need for FEATURE-DUMP.libbpf and bpf_helper_defs.h
files in .gitignore anymore.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210205124020.683286-2-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-10 13:36:10 +02:00