mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
3b2e004494de3fa54fffaf220eeb1512cc49dada
1165241 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dda68b1657 |
ANDROID: 16K: Only check basename of linker context
Depending on the platform binary being executed, the linker
(interpreter) requested can be one of:
1) /system/bin/bootstrap/linker64
2) /system/bin/linker64
3) /apex/com.android.runtime/bin/linker64
Relax the check to the basename (linker64), instead of the path.
Bug: 330767927
Bug: 335584973
Change-Id: I4a1f95b7cecd126f85ad8cefd9ff10d272947f9e
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
|
||
|
|
65aed0e2f7 |
ANDROID: 16K: Avoid and document padding madvise lock warning
Usually to modify vm_flags we need to take exclusive mmap_lock but here only have the lock in read mode, to avoid all DONTNEED/DONTNEED_LOCKED calls needing the write lock. A race to the flags update can only happen with another MADV_DONTNEED on the same process and same range (VMA). In practice, this specific scenario is not possible because the action that could cause it is usually performed at most once per VMA and only by the dynamic linker. Forego protection for this case, to avoid penalties in the common cases. Bug: 344634072 Change-Id: I54ac1f204e0445291f3df3872fbaa16b37722812 Signed-off-by: Kalesh Singh <kaleshsingh@google.com> |
||
|
|
ec795e4eaa |
ANDROID: arm64: vdso32: support user-supplied flags
This introduces a new environment variable, KCPPFLAGS_COMPAT. One use-case is to ensure -ffile-prefix-map is passed to the arm32 compiler to normalise compilation directory and make the ELF build ID reproducible. Bug: 345452375 Change-Id: I6ae1df58172f4dadeac1dbbee2e3241b704a9256 Signed-off-by: Giuliano Procida <gprocida@google.com> |
||
|
|
ac9706483e |
ANDROID: GKI: Add initial symbol list for bcmstb
Add initial symbol list for the bcmstb target that represents the Broadcom Set Top Box SoCs. INFO: 32 function symbol(s) added 'u32 brcmstb_get_family_id()' 'u32 brcmstb_get_product_id()' 'int clk_hw_register_clkdev(struct clk_hw*, const char*, const char*)' 'int device_get_ethdev_address(struct device*, struct net_device*)' 'int ehci_resume(struct usb_hcd*, bool)' 'int ehci_suspend(struct usb_hcd*, bool)' 'int fixed_phy_set_link_update(struct phy_device*, int(*)(struct net_device*, struct fixed_phy_status*))' 'int generic_access_phys(struct vm_area_struct*, unsigned long, void*, int, int)' 'struct gpio_desc* gpiochip_request_own_desc(struct gpio_chip*, unsigned int, const char*, enum gpio_lookup_flags, enum gpiod_flags)' 'void irq_gc_mask_disable_reg(struct irq_data*)' 'void irq_gc_noop(struct irq_data*)' 'void irq_gc_unmask_enable_reg(struct irq_data*)' 'void netdev_crit(const struct net_device*, const char*, ...)' 'bool of_device_is_big_endian(const struct device_node*)' 'struct net_device* of_find_net_device_by_node(struct device_node*)' 'int of_get_ethdev_address(struct device_node*, struct net_device*)' 'const char* pci_speed_string(enum pci_bus_speed)' 'struct phy_device* phy_attach(struct net_device*, const char*, phy_interface_t)' 'int phy_resume(struct phy_device*)' 'void phy_start_machine(struct phy_device*)' 'bool phy_validate_pause(struct phy_device*, struct ethtool_pauseparam*)' 'pgprot_t phys_mem_access_prot(struct file*, unsigned long, unsigned long, pgprot_t)' 'const char* pinctrl_dev_get_devname(struct pinctrl_dev*)' 'void recalc_sigpending()' 'int restore_online_page_callback(online_page_callback_t)' 'u16 sdhci_calc_clk(struct sdhci_host*, unsigned int, unsigned int*)' 'int sdhci_pltfm_resume(struct device*)' 'int sdhci_pltfm_suspend(struct device*)' 'int serial8250_handle_irq(struct uart_port*, unsigned int)' 'int set_online_page_callback(online_page_callback_t)' 'int spi_split_transfers_maxsize(struct spi_controller*, struct spi_message*, size_t, gfp_t)' 'void vm_unmap_aliases()' 4 variable symbol(s) added 'unsigned long empty_zero_page[512]' 'const unsigned char pcie_link_speed[16]' 'unsigned long phy_basic_features[2]' 'unsigned long phy_gbit_features[2]' Bug: 343006993 Change-Id: Ia094cd3f5444ea60b273415990bceb7a523cfee8 Signed-off-by: Pierre Couillaud <pierre@broadcom.com> Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com> |
||
|
|
b164ce27fa |
ANDROID: gki_defconfig: Enable Broadcom STB SoCs
Enable configs required for Broadcom Set Top Box SoCs. Also explicitly disable the Broadcom Set Top Box SoC drivers that we wish to build as loadable modules. Bug: 343006993 Change-Id: Ia3e542d0eeb519539aba2990fb4eb4eb2970a867 Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com> |
||
|
|
d385f8f23f |
UPSTREAM: mmc: core: Do not force a retune before RPMB switch
Requesting a retune before switching to the RPMB partition has been observed to cause CRC errors on the RPMB reads (-EILSEQ). Since RPMB reads can not be retried, the clients would be directly affected by the errors. This commit disables the retune request prior to switching to the RPMB partition: mmc_retune_pause() no longer triggers a retune before the pause period begins. This was verified with the sdhci-of-arasan driver (ZynqMP) configured for HS200 using two separate eMMC cards (DG4064 and 064GB2). In both cases, the error was easy to reproduce triggering every few tenths of reads. With this commit, systems that were utilizing OP-TEE to access RPMB variables will experience an enhanced performance. Specifically, when OP-TEE is configured to employ RPMB as a secure storage solution, it not only writes the data but also the secure filesystem within the partition. As a result, retrieving any variable involves multiple RPMB reads, typically around five. For context, on ZynqMP, each retune request consumed approximately 8ms. Consequently, reading any RPMB variable used to take at the very minimum 40ms. After droping the need to retune before switching to the RPMB partition, this is no longer the case. Change-Id: I2320a38436b05b435ac528c6656b621a1e2eaeb7 Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Acked-by: Avri Altman <avri.altman@wdc.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Link: https://lore.kernel.org/r/20240103112911.2954632-1-jorge@foundries.io Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> (cherry picked from commit 67380251e8bbd3302c64fea07f95c31971b91c22) Signed-off-by: Danesh Petigara <danesh.petigara@broadcom.com> |
||
|
|
5c4b00b73e |
UPSTREAM: arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers
The driver used to truncate several 64-bit registers such as PMCEID[n]
registers used to describe whether architectural and microarchitectural
events in range 0x4000-0x401f exist. Due to discarding the bits, the
driver made the events invisible, even if they existed.
Moreover, PMCCFILTR and PMCR registers have additional bits in the upper
32 bits. This patch makes them available although they aren't currently
used. Finally, functions handling PMXEVCNTR and PMXEVTYPER registers are
removed as they not being used at all.
Fixes:
|
||
|
|
ad62d386c8 |
BACKPORT: net: phy: Allow drivers to always call into ->suspend()
A few PHY drivers are currently attempting to not suspend the PHY when
Wake-on-LAN is enabled, however that code is not currently executing at
all due to an early check in phy_suspend().
This prevents PHY drivers from making an appropriate decisions and put
the hardware into a low power state if desired.
In order to allow the PHY drivers to opt into getting their ->suspend
routine to be called, add a PHY_ALWAYS_CALL_SUSPEND bit which can be
set. A boolean that tracks whether the PHY or the attached MAC has
Wake-on-LAN enabled is also provided for convenience.
If phydev::wol_enabled then the PHY shall not prevent its own
Wake-on-LAN detection logic from working and shall not prevent the
Ethernet MAC from receiving packets for matching.
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Change-Id: I9077fe16d2515b60a2cb58753e6914be95a6923a
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit
|
||
|
|
7c09ddbf94 |
UPSTREAM: ARM: perf: Mark all accessor functions inline
When just including <asm/arm_pmuv3.h>:
arch/arm/include/asm/arm_pmuv3.h:110:13: error: ‘write_pmevtypern’ defined but not used [-Werror=unused-function]
110 | static void write_pmevtypern(int n, unsigned long val)
| ^~~~~~~~~~~~~~~~
arch/arm/include/asm/arm_pmuv3.h:103:13: error: ‘write_pmevcntrn’ defined but not used [-Werror=unused-function]
103 | static void write_pmevcntrn(int n, unsigned long val)
| ^~~~~~~~~~~~~~~
arch/arm/include/asm/arm_pmuv3.h:95:22: error: ‘read_pmevcntrn’ defined but not used [-Werror=unused-function]
95 | static unsigned long read_pmevcntrn(int n)
| ^~~~~~~~~~~~~~
Fix this by adding the missing "inline" keywords to the three accessor
functions that lack them.
Fixes:
|
||
|
|
f5e0452e91 |
UPSTREAM: arm64: perf: Mark all accessor functions inline
When just including <asm/arm_pmuv3.h>:
arch/arm64/include/asm/arm_pmuv3.h:31:13: error: ‘write_pmevtypern’ defined but not used [-Werror=unused-function]
31 | static void write_pmevtypern(int n, unsigned long val)
| ^~~~~~~~~~~~~~~~
arch/arm64/include/asm/arm_pmuv3.h:24:13: error: ‘write_pmevcntrn’ defined but not used [-Werror=unused-function]
24 | static void write_pmevcntrn(int n, unsigned long val)
| ^~~~~~~~~~~~~~~
arch/arm64/include/asm/arm_pmuv3.h:16:22: error: ‘read_pmevcntrn’ defined but not used [-Werror=unused-function]
16 | static unsigned long read_pmevcntrn(int n)
| ^~~~~~~~~~~~~~
Fix this by adding the missing "inline" keywords to the three accessor
functions that lack them.
Fixes:
|
||
|
|
6d7eea37f7 |
UPSTREAM: perf/core: Drop __weak attribute from arch_perf_update_userpage() prototype
Reiji reports that the arm64 implementation of arch_perf_update_userpage() is now ignored and replaced by the dummy stub in core code. This seems to happen since the PMUv3 driver was moved to driver/perf. As it turns out, dropping the __weak attribute from the *prototype* of the function solves the problem. You're right, this doesn't seem to make much sense. And yet... It appears that both symbols get flagged as weak, and that the first one to appear in the link order wins: $ nm drivers/perf/arm_pmuv3.o|grep arch_perf_update_userpage 0000000000001db0 W arch_perf_update_userpage Dropping the attribute from the prototype restores the expected behaviour, and arm64 is able to enjoy arch_perf_update_userpage() again. Fixes: |
||
|
|
bf3022d3c3 |
UPSTREAM: ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM
The only thing stopping the PMUv3 driver from compiling on 32bit
is the lack of defined system registers names and the handful of
required helpers.
This is easily solved by providing the sysreg accessors and updating
the Kconfig entry.
Change-Id: I3f7f46feaeac69bb7d20c86b013e4a3091fb4bce
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Co-developed-by: Zaid Al-Bassam <zalbassam@google.com>
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-8-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
393be9f6d0 |
UPSTREAM: ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations
ARMv8 is a superset of ARMv7, and all the ARMv8 features are
discoverable with a set of ID registers. It means that we can
use CPU_V7 to guard ARMv8 features at compile time.
This commit simply amends the CPU_V7 configuration symbol comment
to reflect that CPU_V7 also covers ARMv8.
Change-Id: Ibfa141b7fcf77619cea6f95d562b8ddf959187a3
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-7-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
9d0a91c993 |
UPSTREAM: perf: pmuv3: Change GENMASK to GENMASK_ULL
GENMASK macro uses "unsigned long" (32-bit wide on arm and 64-bit
on arm64), This causes build issues when enabling PMUv3 on arm as
it tries to access bits > 31. This patch switches the GENMASK to
GENMASK_ULL, which uses "unsigned long long" (64-bit on both arm
and arm64).
Change-Id: I44e30f5326202a4e691bf70ce15ac5c946cca19a
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-6-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
ab26945ffd |
UPSTREAM: perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper
KVM host support is available only on arm64.
By moving the inclusion of kvm_host.h to an arm64-specific file,
the 32bit architecture will be able to implement dummy helpers.
Change-Id: I219958c7d95fa89b3fadcfaa73eec7392717a534
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-5-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
3e7e6fa4da |
UPSTREAM: perf: pmuv3: Abstract PMU version checks
The current PMU version definitions are available for arm64 only,
As we want to add PMUv3 support to arm (32-bit), abstracts
these definitions by using arch-specific helpers.
Change-Id: I4d487c354c5b1384d2e8c95d097c0d3864907787
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-4-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
55cfecdaaa |
UPSTREAM: arm64: perf: Abstract system register accesses away
As we want to enable 32bit support, we need to distanciate the
PMUv3 driver from the AArch64 system register names.
This patch moves all system register accesses to an architecture
specific include file, allowing the 32bit counterpart to be
slotted in at a later time.
Change-Id: Ib5c22a45d2b0ed844ee7d03cb7a7fa855230fcca
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Co-developed-by: Zaid Al-Bassam <zalbassam@google.com>
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-3-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
278e973f01 |
UPSTREAM: arm64: perf: Move PMUv3 driver to drivers/perf
Having the ARM PMUv3 driver sitting in arch/arm64/kernel is getting
in the way of being able to use perf on ARMv8 cores running a 32bit
kernel, such as 32bit KVM guests.
This patch moves it into drivers/perf/arm_pmuv3.c, with an include
file in include/linux/perf/arm_pmuv3.h. The only thing left in
arch/arm64 is some mundane perf stuff.
Change-Id: I1928ceb684a107ef991401175458f2ea6c711826
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Zaid Al-Bassam <zalbassam@google.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230317195027.3746949-2-zalbassam@google.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
222a79a1bb |
UPSTREAM: arm64/perf: Replace PMU version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
__armv8pmu_probe_pmu() returns if detected PMU is either not implemented or
implementation defined. Extracted ID_AA64DFR0_EL1_PMUVer value, when PMU is
not implemented is '0' which can be replaced with ID_AA64DFR0_EL1_PMUVer_NI
defined as '0b0000'.
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Change-Id: I1d3b7e35313b967b19fb4370fde4ad3392f28db2
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20221128025449.39085-1-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit
|
||
|
|
62a4d78dda |
ANDROID: GKI: Update oplus symbol list
17 function symbol(s) added 'void __netif_schedule(struct Qdisc*)' 'void __qdisc_calculate_pkt_len(struct sk_buff*, const struct qdisc_size_table*)' 'void gnet_stats_add_queue(struct gnet_stats_queue*, const struct gnet_stats_queue*, const struct gnet_stats_queue*)' 'int gnet_stats_copy_basic(struct gnet_dump*, struct gnet_stats_basic_sync*, struct gnet_stats_basic_sync*, bool)' 'int gnet_stats_copy_queue(struct gnet_dump*, struct gnet_stats_queue*, struct gnet_stats_queue*, __u32)' 'void psched_ratecfg_precompute(struct psched_ratecfg*, const struct tc_ratespec*, u64)' 'struct Qdisc* qdisc_create_dflt(struct netdev_queue*, const struct Qdisc_ops*, unsigned int, struct netlink_ext_ack*)' 'void qdisc_hash_add(struct Qdisc*, bool)' 'void qdisc_put(struct Qdisc*)' 'void qdisc_reset(struct Qdisc*)' 'void qdisc_tree_reduce_backlog(struct Qdisc*, int, int)' 'void qdisc_watchdog_cancel(struct qdisc_watchdog*)' 'void qdisc_watchdog_init(struct qdisc_watchdog*, struct Qdisc*)' 'void qdisc_watchdog_schedule_range_ns(struct qdisc_watchdog*, u64, u64)' 'int tcf_block_get(struct tcf_block**, struct tcf_proto**, struct Qdisc*, struct netlink_ext_ack*)' 'void tcf_block_put(struct tcf_block*)' 'int tcf_classify(struct sk_buff*, const struct tcf_block*, const struct tcf_proto*, struct tcf_result*, bool)' 2 variable symbol(s) added 'struct Qdisc noop_qdisc' 'struct Qdisc_ops pfifo_qdisc_ops' Bug: 344702684 Change-Id: I42fa44b9e95c24b0ef3347f837561e79913878b9 Signed-off-by: Wei Liu <liuwei.a@oppo.com> |
||
|
|
bfacfd198e |
UPSTREAM: block/blk-mq: Don't complete locally if capacities are different
The logic in blk_mq_complete_need_ipi() assumes SMP systems where all CPUs have equal compute capacities and only LLC cache can make a different on perceived performance. But this assumption falls apart on HMP systems where LLC is shared, but the CPUs have different capacities. Staying local then can have a big performance impact if the IO request was done from a CPU with higher capacity but the interrupt is serviced on a lower capacity CPU. Use the new cpus_equal_capacity() function to check if we need to send an IPI. Without the patch I see the BLOCK softirq always running on little cores (where the hardirq is serviced). With it I can see it running on all cores. This was noticed after the topology change [1] where now on a big.LITTLE we truly get that the LLC is shared between all cores where as in the past it was being misrepresented for historical reasons. The logic exposed a missing dependency on capacities for such systems where there can be a big performance difference between the CPUs. This of course introduced a noticeable change in behavior depending on how the topology is presented. Leading to regressions in some workloads as the performance of the BLOCK softirq on littles can be noticeably worse on some platforms. Worth noting that we could have checked for capacities being greater than or equal instead for equality. This will lead to favouring higher performance always. But opted for equality instead to match the performance of the requester without making an assumption that can lead to power trade-offs which these systems tend to be sensitive about. If the requester would like to run faster, it's better to rely on the scheduler to give the IO requester via some facility to run on a faster core; and then if the interrupt triggered on a CPU with different capacity we'll make sure to match the performance the requester is supposed to run at. [1] https://lpc.events/event/16/contributions/1342/attachments/962/1883/LPC-2022-Android-MC-Phantom-Domains.pdf Bug: 341551538 Signed-off-by: Qais Yousef <qyousef@layalina.io> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20240223155749.2958009-3-qyousef@layalina.io Signed-off-by: Jens Axboe <axboe@kernel.dk> (cherry picked from commit af550e4c968294398fc76b075f12d51c76caf753) Signed-off-by: Qais Yousef <qyousef@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:d01dc1c7d020f49f31194254a89694bd23ad3dd5) Merged-In: Iefed6a19b9d25102642e264118431f5e12e23fea Change-Id: Iefed6a19b9d25102642e264118431f5e12e23fea |
||
|
|
cf4893eb95 |
BACKPORT: sched: Add a new function to compare if two cpus have the same capacity
The new helper function is needed to help blk-mq check if it needs to dispatch the softirq on another CPU to match the performance level the IO requester is running at. This is important on HMP systems where not all CPUs have the same compute capacity. Bug: 341551538 Signed-off-by: Qais Yousef <qyousef@layalina.io> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20240223155749.2958009-2-qyousef@layalina.io Signed-off-by: Jens Axboe <axboe@kernel.dk> (cherry picked from commit b361c9027b4e4159e7bcca4eb64fd26507c19994) [Trivial clash due to some code shuffling between versions] Signed-off-by: Qais Yousef <qyousef@google.com> (cherry picked from https://android-review.googlesource.com/q/commit:ee8168e00c6e4fb04bea953bacb61ff017a39f63) Merged-In: I58f3f3e3560f4800b5c73b3c85bbfdf628e9764e Change-Id: I58f3f3e3560f4800b5c73b3c85bbfdf628e9764e |
||
|
|
e4622d460e |
ANDROID: GKI: Update rockchip symbols for rndis_host.
3 function symbol(s) added 'void usbnet_cdc_unbind(struct usbnet*, struct usb_interface*)' 'int usbnet_cdc_zte_rx_fixup(struct usbnet*, struct sk_buff*)' 'int usbnet_generic_cdc_bind(struct usbnet*, struct usb_interface*)' Bug: 300024866 Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com> Change-Id: Ibd1798bc17f99767507eec2fb8ca7e1608e16488 |
||
|
|
f601b06a7e |
ANDROID: GKI: Update rockchip symbols for snd multi dais.
2 function symbol(s) added 'void snd_pcm_stream_lock_irq(struct snd_pcm_substream*)' 'void snd_pcm_stream_unlock_irq(struct snd_pcm_substream*)' Bug: 300024866 Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com> Change-Id: Ic35b2fc03132b0fb7edd5df3e4393109d7b47302 |
||
|
|
986fffb590 |
UPSTREAM: usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
FFS based applications can utilize the aio_cancel() callback to dequeue
pending USB requests submitted to the UDC. There is a scenario where the
FFS application issues an AIO cancel call, while the UDC is handling a
soft disconnect. For a DWC3 based implementation, the callstack looks
like the following:
DWC3 Gadget FFS Application
dwc3_gadget_soft_disconnect() ...
--> dwc3_stop_active_transfers()
--> dwc3_gadget_giveback(-ESHUTDOWN)
--> ffs_epfile_async_io_complete() ffs_aio_cancel()
--> usb_ep_free_request() --> usb_ep_dequeue()
There is currently no locking implemented between the AIO completion
handler and AIO cancel, so the issue occurs if the completion routine is
running in parallel to an AIO cancel call coming from the FFS application.
As the completion call frees the USB request (io_data->req) the FFS
application is also referencing it for the usb_ep_dequeue() call. This can
lead to accessing a stale/hanging pointer.
commit
|
||
|
|
163070bc79 |
UPSTREAM: usb: gadget: f_fs: use io_data->status consistently
Commit |
||
|
|
3c19f7015e |
ANDROID: set rewrite_absolute_paths_in_config for GKI aarch64.
For GKI targets with kmi_symbol_list set,
also set rewrite_absolute_paths_in_config to True
so that CONFIG_UNUSED_KSYMS_WHITELIST is not an
absolute path any more, increasing reproducibility
on different machines.
This is made possible with
|
||
|
|
9fcc2459ef |
UPSTREAM: wifi: cfg80211: Clear mlo_links info when STA disconnects
wdev->valid_links is not cleared when upper layer disconnect from a wdev->AP MLD. It has been observed that this would prevent offchannel operations like remain-on-channel which would be needed for user space operations with Public Action frame. Clear the wdev->valid_links when STA disconnects. Signed-off-by: Xin Deng <quic_deng@quicinc.com> Link: https://msgid.link/20240426092501.8592-1-quic_deng@quicinc.com Signed-off-by: Johannes Berg <johannes.berg@intel.com> Bug: 344476904 Change-Id: Ie84dda35e26d2792ed39f50d0c3f959682730d89 (cherry picked from commit 9f6d4b8d149af8dc3f9a1e3000168b99ca576390) Signed-off-by: Xin Deng <quic_deng@quicinc.com> |
||
|
|
e2c5ee3d15 |
ANDROID: ABI: Add usb_gadget_connect & usb_gadget_disconnect symbol
Add the usb gadget connect/disconnect symbols to ABI to be used by vendor driver: usb_gadget_connect usb_gadget_disconnect Bug: 344835325 Change-Id: I506d142ed863e6ce0d21b7a0e31c1721f6bdba93 Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com> |
||
|
|
c5abb61725 |
ANDROID: GKI: Update symbol list for mtk
10 function symbol(s) added 'struct fwnode_handle* fwnode_get_next_available_child_node(const struct fwnode_handle*, struct fwnode_handle*)' 'int genphy_c45_aneg_done(struct phy_device*)' 'int genphy_c45_pma_read_abilities(struct phy_device*)' 'int genphy_c45_read_lpa(struct phy_device*)' 'int genphy_read_master_slave(struct phy_device*)' 'unsigned int linear_range_get_max_value(const struct linear_range*)' 'int linear_range_get_selector_high(const struct linear_range*, unsigned int, unsigned int*, bool*)' 'int phy_get_c45_ids(struct phy_device*)' 'int regulator_get_bypass_regmap(struct regulator_dev*, bool*)' 'int regulator_set_bypass_regmap(struct regulator_dev*, bool)' Bug: 344729193 Change-Id: I2c3a565d9693baa19224cc4d0dd633ae14b2a38e Signed-off-by: Seiya Wang <seiya.wang@mediatek.com> |
||
|
|
c36abc6d42 |
BACKPORT: iommu: Have __iommu_probe_device() check for already probed devices
This is a step toward making __iommu_probe_device() self contained.
It should, under proper locking, check if the device is already associated
with an iommu driver and resolve parallel probes. All but one of the
callers open code this test using two different means, but they all
rely on dev->iommu_group.
Currently the bus_iommu_probe()/probe_iommu_group() and
probe_acpi_namespace_devices() rejects already probed devices with an
unlocked read of dev->iommu_group. The OF and ACPI "replay" functions use
device_iommu_mapped() which is the same read without the pointless
refcount.
Move this test into __iommu_probe_device() and put it under the
iommu_probe_device_lock. The store to dev->iommu_group is in
iommu_group_add_device() which is also called under this lock for iommu
driver devices, making it properly locked.
The only path that didn't have this check is the hotplug path triggered by
BUS_NOTIFY_ADD_DEVICE. The only way to get dev->iommu_group assigned
outside the probe path is via iommu_group_add_device(). Today the only
caller is VFIO no-iommu which never associates with an iommu driver. Thus
adding this additional check is safe.
Bug: 337990354
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/1-v3-328044aa278c+45e49-iommu_probe_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
(cherry picked from commit
|
||
|
|
416b90bf47 |
Revert "vsock/virtio: fix packet delivery to tap device"
This reverts commit
|
||
|
|
a7462d7032 |
ANDROID: ABI fixup for abi break in struct dst_ops
In commit 92f1655aa2b2 ("net: fix __dst_negative_advice() race") the
struct dst_ops callback negative_advice is callback changes function
parameters. But as this pointer is part of a structure that is tracked
in the ABI checker, the tool triggers when this is changed.
However, the callback pointer is internal to the networking stack, so
changing the function type is safe, so needing to preserve this is not
required. To do so, switch the function pointer type back to the old
one so that the checking tools pass, AND then do a hard cast of the
function pointer to the new type when assigning and calling the
function.
[6.1.y backport note, work around --Werror=cast-function-type issue by
abusing void * for function pointer types, despite its best effort, C
still let's us shoot our foot off if we really want to!]
Bug: 343727534
Fixes: 92f1655aa2b2 ("net: fix __dst_negative_advice() race")
Change-Id: I48d4ab4bbd29f8edc8fbd7923828b7f78a23e12e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
|
||
|
|
bd2bcb81d4 |
BACKPORT: net: fix __dst_negative_advice() race
__dst_negative_advice() does not enforce proper RCU rules when
sk->dst_cache must be cleared, leading to possible UAF.
RCU rules are that we must first clear sk->sk_dst_cache,
then call dst_release(old_dst).
Note that sk_dst_reset(sk) is implementing this protocol correctly,
while __dst_negative_advice() uses the wrong order.
Given that ip6_negative_advice() has special logic
against RTF_CACHE, this means each of the three ->negative_advice()
existing methods must perform the sk_dst_reset() themselves.
Note the check against NULL dst is centralized in
__dst_negative_advice(), there is no need to duplicate
it in various callbacks.
Many thanks to Clement Lecigne for tracking this issue.
This old bug became visible after the blamed commit, using UDP sockets.
Bug: 343727534
Fixes:
|
||
|
|
66a1080110 |
Merge 6.1.85 into android14-6.1-lts
Changes in 6.1.85 scripts/bpf_doc: Use silent mode when exec make cmd dma-buf: Fix NULL pointer dereference in sanitycheck() nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet mlxbf_gige: stop PHY during open() error paths wifi: iwlwifi: mvm: rfi: fix potential response leaks ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa() s390/qeth: handle deferred cc1 tcp: properly terminate timers for kernel sockets net: wwan: t7xx: Split 64bit accesses to fix alignment issues ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields() net: hns3: fix index limit to support all queue stats net: hns3: fix kernel crash when devlink reload during pf initialization net: hns3: mark unexcuted loopback test result as UNEXECUTED tls: recv: process_rx_list shouldn't use an offset with kvec tls: adjust recv return with async crypto and failed copy to userspace tls: get psock ref after taking rxlock to avoid leak mlxbf_gige: call request_irq() after NAPI initialized bpf: Protect against int overflow for stack access size cifs: Fix duplicate fscache cookie warnings net: lan743x: Add set RFE read fifo threshold for PCI1x1x chips Octeontx2-af: fix pause frame configuration in GMP mode inet: inet_defrag: prevent sk release while still in use dm integrity: fix out-of-range warning x86/cpufeatures: Add new word for scattered features perf/x86/amd/lbr: Use freeze based on availability KVM: arm64: Fix host-programmed guest events in nVHE r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d x86/cpufeatures: Add CPUID_LNX_5 to track recently added Linux-defined word Revert "Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT" arm64: dts: qcom: sc7180-trogdor: mark bluetooth address as broken Bluetooth: qca: fix device-address endianness Bluetooth: add quirk for broken address properties Bluetooth: hci_event: set the conn encrypted before conn establishes Bluetooth: Fix TOCTOU in HCI debugfs implementation xen-netfront: Add missing skb_mark_for_recycle net/rds: fix possible cp null dereference net: usb: ax88179_178a: avoid the interface always configured as random address vsock/virtio: fix packet delivery to tap device Revert "x86/mm/ident_map: Use gbpages only where full GB page should be mapped." netfilter: nf_tables: reject new basechain after table flag update netfilter: nf_tables: flush pending destroy work before exit_net release netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get() netfilter: validate user input for expected length vboxsf: Avoid an spurious warning if load_nls_xxx() fails bpf, sockmap: Prevent lock inversion deadlock in map delete elem net/sched: act_skbmod: prevent kernel-infoleak net/sched: fix lockdep splat in qdisc_tree_reduce_backlog() net: stmmac: fix rx queue priority assignment net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping net: phy: micrel: Fix potential null pointer dereference selftests: net: gro fwd: update vxlan GRO test expectations gro: fix ownership transfer x86/bugs: Fix the SRSO mitigation on Zen3/4 x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO i40e: Fix VF MAC filter removal erspan: make sure erspan_base_hdr is present in skb->head selftests: reuseaddr_conflict: add missing new line at the end of the output ipv6: Fix infinite recursion in fib6_dump_done(). mlxbf_gige: stop interface during shutdown r8169: skip DASH fw status checks when DASH is disabled udp: do not accept non-tunnel GSO skbs landing in a tunnel udp: do not transition UDP GRO fraglist partial checksums to unnecessary udp: prevent local UDP tunnel packets from being GROed octeontx2-af: Fix issue with loading coalesced KPU profiles octeontx2-pf: check negative error code in otx2_open() octeontx2-af: Add array index check i40e: fix i40e_count_filters() to count only active/new filters i40e: fix vf may be used uninitialized in this function warning drm/amd: Evict resources during PM ops prepare() callback drm/amd: Add concept of running prepare_suspend() sequence for IP blocks drm/amd: Flush GFXOFF requests in prepare stage i40e: Store the irq number in i40e_q_vector i40e: Remove _t suffix from enum type names i40e: Enforce software interrupt during busy-poll exit r8169: use spinlock to protect mac ocp register access r8169: use spinlock to protect access to registers Config2 and Config5 r8169: prepare rtl_hw_aspm_clkreq_enable for usage in atomic context tcp: Fix bind() regression for v6-only wildcard and v4(-mapped-v6) non-wildcard addresses. drivers: net: convert to boolean for the mac_managed_pm flag net: fec: Set mac_managed_pm during probe net: ravb: Let IP-specific receive function to interrogate descriptors net: ravb: Always process TX descriptor ring net: ravb: Always update error counters KVM: SVM: enhance info printk's in SEV init KVM: SVM: WARN, but continue, if misc_cg_set_capacity() fails KVM: SVM: Use unsigned integers when dealing with ASIDs KVM: SVM: Add support for allowing zero SEV ASIDs fs/pipe: Fix lockdep false-positive in watchqueue pipe_write() 9p: Fix read/write debug statements to report server reply drivers/perf: riscv: Disable PERF_SAMPLE_BRANCH_* while not supported drm/panfrost: fix power transition timeout warnings ASoC: rt5682-sdw: fix locking sequence ASoC: rt711-sdca: fix locking sequence ASoC: rt711-sdw: fix locking sequence ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit scsi: mylex: Fix sysfs buffer lengths scsi: sd: Unregister device if device_add_disk() failed in sd_probe() cifs: Fix caching to try to do open O_WRONLY as rdwr on server ata: sata_mv: Fix PCI device ID table declaration compilation warning nfsd: hold a lighter-weight client reference over CB_RECALL_ANY x86/retpoline: Add NOENDBR annotation to the SRSO dummy return thunk ksmbd: don't send oplock break if rename fails ksmbd: validate payload size in ipc response ksmbd: do not set SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1 ALSA: hda/realtek - Fix inactive headset mic jack ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with microphone driver core: Introduce device_link_wait_removal() of: dynamic: Synchronize of_changeset_destroy() with the devlink removals x86/mm/pat: fix VM_PAT handling in COW mappings x86/mce: Make sure to grab mce_sysfs_mutex in set_bank() x86/coco: Require seeding RNG with RDRAND on CoCo systems s390/entry: align system call table on 8 bytes riscv: Fix spurious errors from __get/put_kernel_nofault riscv: process: Fix kernel gp leakage smb3: retrying on failed server close smb: client: fix potential UAF in cifs_debug_files_proc_show() smb: client: fix potential UAF in cifs_stats_proc_write() smb: client: fix potential UAF in cifs_stats_proc_show() smb: client: fix potential UAF in smb2_is_valid_oplock_break() smb: client: fix potential UAF in smb2_is_valid_lease_break() smb: client: fix potential UAF in is_valid_oplock_break() smb: client: fix potential UAF in smb2_is_network_name_deleted() smb: client: fix potential UAF in cifs_signal_cifsd_for_reconnect() selftests: mptcp: join: fix dev in check_endpoint mptcp: don't account accept() of non-MPC client as fallback to TCP selftests: mptcp: display simult in extra_msg mm/secretmem: fix GUP-fast succeeding on secretmem folios nvme: fix miss command type check x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file x86/syscall: Don't force use of indirect calls for system calls x86/bhi: Add support for clearing branch history at syscall entry x86/bhi: Define SPEC_CTRL_BHI_DIS_S x86/bhi: Enumerate Branch History Injection (BHI) bug x86/bhi: Add BHI mitigation knob x86/bhi: Mitigate KVM by default KVM: x86: Add BHI_NO x86: set SPECTRE_BHI_ON as default Linux 6.1.85 Change-Id: I8b0581cf7f5ea86885a78315729467d7f128e117 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> |
||
|
|
997e6b3f6a |
Revert "crypto: api - Disallow identical driver names"
This reverts commit
|
||
|
|
7b7c6df465 |
Merge branch 'android14-6.1' into branch 'android14-6.1-lts'
Sync up the android14-6.1-lts branch with recent android14-6.1 changes. This includes the following commits: * |
||
|
|
74c507aab1 |
UPSTREAM: USB: gadget: core: create sysfs link between udc and gadget
udc device and gadget device are tightly coupled, yet there's no good way to corelate the two. Add a sysfs link in udc that points to the corresponding gadget device. An example use case: userspace configures a f_midi configfs driver and bind the udc device, then it tries to locate the corresponding midi device, which is a child device of the gadget device. The gadget device that's associated to the udc device has to be identified in order to index the midi device. Having a sysfs link would make things much easier. Signed-off-by: Roy Luo <royluo@google.com> Link: https://lore.kernel.org/r/20240307030922.3573161-1-royluo@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Bug: 333778731 Change-Id: I9e3f782543eba5e026a65031aaae754daafb69ab (cherry picked from commit 0ef40f399aa2be8c04aee9b7430705612c104ce5) Signed-off-by: Roy Luo <royluo@google.com> |
||
|
|
92704e00b5 |
ANDROID: GKI: add tegra20-cpufreq.ko to rockpi4 build
Enabling configs for Tegra SoCs required this module to be included in
the rockpi4 builds. This change fixes the following build issue:
ERROR: The following kernel modules are built but not copied. Add these lines to the module_outs attribute of @@//common:rockpi4_no_kgdb:
"drivers/cpufreq/tegra20-cpufreq.ko",
Bug: 335325897
Change-Id: I898000725287f34956cb977b3b02685f189cd5a0
Signed-off-by: Carlos Llamas <cmllamas@google.com>
|
||
|
|
8498700531 |
ANDROID: GKI: update symbol list for db845c
Enabling configs for Tegra SoCs required these symbols to be included. This change fixes the following build issues: ERROR: modpost: "devm_tegra_memory_controller_get" [drivers/iommu/arm/arm-smmu/arm_smmu.ko] undefined! ERROR: modpost: "tegra_mc_probe_device" [drivers/iommu/arm/arm-smmu/arm_smmu.ko] undefined! Also update the STG file accordingly: 2 function symbol(s) added 'struct tegra_mc* devm_tegra_memory_controller_get(struct device*)' 'int tegra_mc_probe_device(struct tegra_mc*, struct device*)' Bug: 335325897 Change-Id: Ie357116189e074f1dc0e572553b2264abc910bd3 Signed-off-by: Carlos Llamas <cmllamas@google.com> |
||
|
|
1e4532a4a3 |
ANDROID: Build some tegra configs as vendor module
Build some configs that are tristate and selected by CONFIG_ARCH_TEGRA as vendor modules rather than built-in. Bug: 335325897 Change-Id: I7ce4cf975fcbc834bc5fc3c90317d9d81162185a Signed-off-by: Ahmad Chaudhry <ahmadc@nvidia.com> |
||
|
|
974a6f430e |
ANDROID: gki_defconfig: Enable Tegra SoCs
Enable configs required for Tegra SoCs. Bug: 335325897 Change-Id: I74fd9e1b16810ca417f656ed681e01dff8a4efc9 Signed-off-by: Ahmad Chaudhry <ahmadc@nvidia.com> |
||
|
|
6b75fd4835 |
ANDROID: Update the ABI symbol list
To use cpumask_parse_user in vendor code, it will call bitmap_parse_user. Adding the following symbols: - bitmap_parse_user Bug: 248621289 Change-Id: I4b24d8b1fba71af7b55c7444963a003d50f6d93c Signed-off-by: Rick Yiu <rickyiu@google.com> |
||
|
|
0cf5cecba6 |
Revert "crypto: api - Disallow identical driver names"
This reverts commit
|
||
|
|
c6427490ab |
Revert^2 "BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST ..."
This reverts commit
|
||
|
|
87a4e67740 |
Merge tag 'android14-6.1.78_r00' into branch android14-6.1
This brings the android14-6.1 branch up to date with the 6.1.78 LTS release. Included in here are the following commits: * |
||
|
|
a6358098da |
ANDROID: binder: fix KMI-break due to alloc->lock
Wrap 'struct binder_proc' inside 'struct binder_proc_wrap' to add the
alloc->lock equivalent without breaking the KMI. Also, add convenient
apis to access/modify this new spinlock.
Without this patch, the following KMI issues show up:
type 'struct binder_proc' changed
byte size changed from 616 to 576
type 'struct binder_alloc' changed
byte size changed from 152 to 112
member 'spinlock_t lock' was added
member 'struct mutex mutex' was removed
Bug: 254650075
Bug: 319778300
Change-Id: Ic31dc39fb82800a3e47be10a7873cd210f7b60be
Signed-off-by: Carlos Llamas <cmllamas@google.com>
[cmllamas: fixed trivial conflicts]
|
||
|
|
1c5fb0ebd8 |
ANDROID: binder: fix ptrdiff_t printk-format issue
The correct printk format specifier when calculating buffer offsets
should be "%tx" as it is a pointer difference (a.k.a ptrdiff_t). This
fixes some W=1 build warnings reported by the kernel test robot.
Bug: 329799092
Fixes:
|
||
|
|
d30de4c7b0 |
ANDROID: binder: fix KMI-break due to address type change
In commit ("binder: keep vma addresses type as unsigned long") the vma
address type in 'struct binder_alloc' and 'struct binder_buffer' is
changed from 'void __user *' to 'unsigned long'.
This triggers the following KMI issues:
type 'struct binder_buffer' changed
member changed from 'void* user_data' to 'unsigned long user_data'
type changed from 'void*' to 'unsigned long'
type 'struct binder_alloc' changed
member changed from 'void* buffer' to 'unsigned long buffer'
type changed from 'void*' to 'unsigned long'
This offending commit is being backported as part of a larger patchset
from upstream in [1]. Lets fix these issues by doing a partial revert
that restores the original types and casts to an integer type where
necessary.
Note this approach is preferred over dropping the single KMI-breaking
patch from the backport, as this would have created non-trivial merge
conflicts in the subsequent cherry-picks.
Bug: 254650075
Bug: 319778300
Link: https://lore.kernel.org/all/20231201172212.1813387-1-cmllamas@google.com/ [1]
Change-Id: Ief9de717d0f34642f5954ffa2e306075a5b4e02e
Signed-off-by: Carlos Llamas <cmllamas@google.com>
[cmllamas: fixed trivial conflicts]
|
||
|
|
81054a4507 |
Reapply "ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space"
This reverts commit 637c8e0d372f1dfff53337a5db89f772577828d7.
Also squash commit
|