Useful set of generic aarch64 symbols for GKI.
Bug: 182844240
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I9fcefdb83e2fc1c65d0f768146e859286140a5ce
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
This reverts commit 7bda53f463.
Bug: 184927119
Test: OTA works
Change-Id: I96ee9a0a81659fccebdd6f6cb3edd8c8de1f15f1
Signed-off-by: David Anderson <dvander@google.com>
This reverts commit ce1cca1738.
Bug: 184927119
Test: OTA works
Change-Id: I23d4da47ba620085ea12ec38a80c106fa24d756f
Signed-off-by: David Anderson <dvander@google.com>
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
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
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
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
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
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Enable support for PSCI firmware based cpuidle.
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I746d25e8e38cac39e895d00c33e7e3ae27bf61a7
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>
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
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>
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>
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>
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>
[ 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>
[ 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>