Merge tag 'android12-5.10.205_r00' into branch 'android12-5.10'
This merges commits up to the 5.10.205 LTS release into the android12-5.10 branch. It contains the following commits: *068af29e24
ANDROID: GKI: fix crc issue in include/net/addrconf.h *4a8f190c2a
Revert "cred: switch to using atomic_long_t" *b7733bafef
Merge 5.10.205 into android12-5.10-lts |\ | *ca4427ebc6
Linux 5.10.205 | *05c547e842
powerpc/ftrace: Fix stack teardown in ftrace_no_trace | *e30e62f0e1
powerpc/ftrace: Create a dummy stackframe to fix stack unwind | *5a82cf64f8
tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf() | *a11ea2c08f
tty: n_gsm, remove duplicates of parameters | *b8faa754b5
tty: n_gsm: fix tty registration before control channel open | *918ba07224
USB: gadget: core: adjust uevent timing on gadget unbind | *20c2cb79a3
ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs | *9f5bf009f7
ring-buffer: Fix writing to the buffer with max_data_size | *3e8055fc3b
ring-buffer: Have saved event hold the entire event | *d7a2939814
tracing: Update snapshot buffer on resize if it is allocated | *a3580b2bfe
ring-buffer: Fix memory leak of free page | *5ffda6998b
team: Fix use-after-free when an option instance allocation fails | *33fb8ac30c
arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify | *26eeec522a
ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS | *6e2628dfad
soundwire: stream: fix NULL pointer dereference for multi_link | *7ccfc078cd
perf: Fix perf_event_validate_size() lockdep splat | *5984306f6c
HID: hid-asus: add const to read-only outgoing usb buffer | *e9709a88a8
net: usb: qmi_wwan: claim interface 4 for ZTE MF290 | *09c8ee5f9b
asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation | *f6a1bf4299
HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad | *744027bb8e
HID: hid-asus: reset the backlight brightness level on resume | *1ac7379d2e
HID: add ALWAYS_POLL quirk for Apple kb | *a64a9f38ae
HID: glorious: fix Glorious Model I HID report | *6026a862f3
platform/x86: intel_telemetry: Fix kernel doc descriptions | *e01135763b
bcache: avoid NULL checking to c->root in run_cache_set() | *a7555524e3
bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc() | *3b48e1c048
bcache: remove redundant assignment to variable cur_idx | *ea2341d082
bcache: avoid oversize memory allocation by small stripe_size | *dbf0cdacdb
blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!" | *d69581c176
usb: aqc111: check packet for fixup for true limit | *1e3ea8d2ba
drm/mediatek: Add spinlock for setting vblank event in atomic_begin | *022b82336a
PCI: loongson: Limit MRRS to 256 | *791bca1b09
Revert "PCI: acpiphp: Reassign resources on bridge if necessary" | *7e2afd0885
ALSA: hda/realtek: Apply mute LED quirk for HP15-db | *0633028511
ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants | *851783a0c4
fuse: dax: set fc->dax to NULL in fuse_dax_conn_free() | *2623cf1fe8
cred: switch to using atomic_long_t | *03b50868ae
net: atlantic: fix double free in ring reinit logic | *a232eb81c7
appletalk: Fix Use-After-Free in atalk_ioctl | *9deccfbaed
net: stmmac: Handle disabled MDIO busses from devicetree | *5470533a7d
net: stmmac: use dev_err_probe() for reporting mdio bus registration failure | *52a4c0e82a
vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space() | *4c0d7e8261
sign-file: Fix incorrect return values check | *25bfae19b8
net: ena: Fix XDP redirection error | *c83544b70c
net: ena: Destroy correct number of xdp queues upon failure | *7ed59c4027
net: Remove acked SYN flag from packet in the transmit queue correctly | *10760f4234
qed: Fix a potential use-after-free in qed_cxt_tables_alloc | *7eda5960a5
net/rose: Fix Use-After-Free in rose_ioctl | *64a032015c
atm: Fix Use-After-Free in do_vcc_ioctl | *c20f425e06
net: fec: correct queue selection | *d15e4b825d
net: vlan: introduce skb_vlan_eth_hdr() | *bc0860a3c4
atm: solos-pci: Fix potential deadlock on &tx_queue_lock | *df5c24df63
atm: solos-pci: Fix potential deadlock on &cli_queue_lock | *6a7b673e6e
qca_spi: Fix reset behavior | *347d10877b
qca_debug: Fix ethtool -G iface tx behavior | *a07e5568d9
qca_debug: Prevent crash on TX ring changes | *97275e470c
net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX | *b30fbeb390
HID: lenovo: Restrict detection of patched firmware only to USB cptkbd | *84eed654ff
afs: Fix refcount underflow from error handling race | *8ee7b2c465
netfilter: nf_tables: fix 'exist' matching on bigendian arches * |63d180012d
Revert "psample: Require 'CAP_NET_ADMIN' when joining "packets" group" * |36f0b85aff
Revert "genetlink: add CAP_NET_ADMIN test for multicast bind" * |ae04f2701b
Revert "drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group" * |e4dd66fb02
Revert "perf/core: Add a new read format to get a number of lost samples" * |86a3866fec
Revert "perf: Fix perf_event_validate_size()" * |e710feda7e
Revert "hrtimers: Push pending hrtimers away from outgoing CPU earlier" * |001d2105f6
Merge 5.10.204 into android12-5.10-lts |\| | *b50306f771
Linux 5.10.204 | *fa49e956b7
r8169: fix rtl8125b PAUSE frames blasting when suspended | *9e3ca02b11
devcoredump: Send uevent once devcd is ready | *9e0ca92012
devcoredump : Serialize devcd_del work | *12467ad3f3
smb: client: fix potential NULL deref in parse_dfs_referrals() | *0b1711b486
cifs: Fix non-availability of dedup breaking generic/304 | *8cb1209989
Revert "btrfs: add dmesg output for first mount and last unmount of a filesystem" | *d7c3a467f4
mmc: block: Be sure to wait while busy in CQE error recovery | *91b70f60c8
platform/x86: asus-wmi: Document the dgpu_disable sysfs attribute | *a8b781c410
tools headers UAPI: Sync linux/perf_event.h with the kernel sources | *bdb26b8199
platform/x86: asus-wmi: Fix kbd_dock_devid tablet-switch reporting | *bf72b44fe8
netfilter: nft_set_pipapo: skip inactive elements during set walk | *e844a9309f
drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group | *ad2223a169
psample: Require 'CAP_NET_ADMIN' when joining "packets" group | *015870c10c
genetlink: add CAP_NET_ADMIN test for multicast bind | *df6cb4c430
netlink: don't call ->netlink_bind with table lock held | *3fe1ea5f92
io_uring/af_unix: disable sending io_uring over sockets | *3ee7e2faef
MIPS: Loongson64: Enable DMA noncoherent support | *ff803322e9
MIPS: Loongson64: Reserve vgabios memory on boot | *e0e897ddf3
KVM: s390/mm: Properly reset no-dat | *ab8816a7c2
x86/CPU/AMD: Check vendor in the AMD microcode callback | *6059c313ff
serial: 8250_omap: Add earlycon support for the AM654 UART controller | *8ffaaf80c6
serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt | *b74ace5dec
serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit | *863bacf3a3
serial: sc16is7xx: address RX timeout interrupt errata | *e4ed324746
ARM: PL011: Fix DMA support | *713f6ff326
usb: typec: class: fix typec_altmode_put_partner to put plugs | *f16d5355aa
Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1" | *9caaf469af
parport: Add support for Brainboxes IX/UC/PX parallel cards | *558b6a4368
usb: gadget: f_hid: fix report descriptor allocation | *d4fb20dcc1
drm/amdgpu: correct the amdgpu runtime dereference usage count | *b5862e5ca5
gpiolib: sysfs: Fix error handling on failed export | *208dd116f9
perf: Fix perf_event_validate_size() | *8bd3d61624
perf/core: Add a new read format to get a number of lost samples | *f460ff26bd
tracing: Stop current tracer when resizing buffer | *21beb0d86f
tracing: Set actual size after ring buffer resize | *7123b54c8b
ring-buffer: Force absolute timestamp on discard of event | *bceeaa5cda
misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write | *ee2719b59f
misc: mei: client.c: return negative error code in mei_cl_write | *3cd3eea1f7
arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory | *7f6daf9ee3
arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names | *0a9f3e1f57
arm64: dts: mediatek: mt7622: fix memory node warning check | *9bceffa423
packet: Move reference count in packet_sock to atomic_long_t | *0d0564cfb7
tracing: Fix a possible race when disabling buffered events | *85e86d6989
tracing: Fix incomplete locking when disabling buffered events | *ad9efb0b27
tracing: Disable snapshot buffer when stopping instance tracers | *97c2b3b232
tracing: Always update snapshot buffer size | *2f7368f336
checkstack: fix printed address | *35a7f92507
nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() | *8df769d92b
nilfs2: fix missing error check for sb_set_blocksize call | *3764b24499
ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5 | *0ff1c0f5a4
ALSA: pcm: fix out-of-bounds in snd_pcm_state_names | *1f1c2a3452
riscv: fix misaligned access handling of C.SWSP and C.SDSP | *cb3543fdaa
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt | *f337ccfa9f
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init | *04769017de
scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() | *a28083d41c
tracing: Fix a warning when allocating buffered events fails | *888580bfaa
ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate | *9dfd862418
hwmon: (acpi_power_meter) Fix 4.29 MW bug | *c0a428245a
RDMA/bnxt_re: Correct module description string | *58a7281feb
RDMA/rtrs-clt: Remove the warnings for req in_use check | *02916f39b8
arm64: dts: rockchip: Expand reg size of vdec node for RK3399 | *a953e45ebe
tee: optee: Fix supplicant based device enumeration | *3c852b26a5
bpf: sockmap, updating the sg structure should also update curr | *b17a886ed2
tcp: do not accept ACK of bytes we never sent | *f1a6a94912
netfilter: xt_owner: Fix for unsafe access of sk->sk_socket | *e94b6e9640
net: hns: fix fake link up on xge port | *f253568348
ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() | *860d53a347
ionic: Fix dim work handling in split interrupt mode | *b41bf6ac24
ionic: fix snprintf format length warning | *49809af89c
net: bnxt: fix a potential use-after-free in bnxt_init_tc | *2093072ed7
i40e: Fix unexpected MFS warning message | *d54f5a5bc8
arcnet: restoring support for multiple Sohard Arcnet cards | *effb9ad004
net: arcnet: com20020 fix error handling | *a657bddfb4
mlxbf-bootctl: correctly identify secure boot with development keys | *d3f4792836
hv_netvsc: rndis_filter needs to select NLS | *909de62207
octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam | *7827c1802d
ipv6: fix potential NULL deref in fib6_add() | *ba6dc2f564
of: dynamic: Fix of_reconfig_get_state_change() return value documentation | *08dbdacbfe
of: Add missing 'Return' section in kerneldoc comments | *f58e3b3652
of: Fix kerneldoc output formatting | *58ccdcc9d7
of: base: Fix some formatting issues and provide missing descriptions | *7db515e82a
platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code | *5fe052b8fa
platform/x86: asus-wmi: Simplify tablet-mode-switch handling | *a113da7590
platform/x86: asus-wmi: Simplify tablet-mode-switch probing | *68b795d040
platform/x86: asus-wmi: Add support for ROG X13 tablet mode | *97620a08fc
platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum | *ada7c5cc69
asus-wmi: Add dgpu disable method | *3a8fc16d5e
platform/x86: asus-nb-wmi: Add tablet_mode_sw=lid-flip quirk for the TP200s | *79b8633820
platform/x86: asus-nb-wmi: Allow configuring SW_TABLET_MODE method with a module option | *9a861dde99
platform/x86: asus-wmi: Add support for SW_TABLET_MODE on UX360 | *13b1fa5407
drm/amdgpu: correct chunk_ptr to a pointer to chunk. | *8887047de3
kconfig: fix memory leak from range properties | *96d5541430
tg3: Increment tx_dropped in tg3_tso_bug() | *9068403d94
tg3: Move the [rt]x_dropped counters to tg3_napi | *e7152a138a
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test | *348111c3be
i2c: designware: Fix corrupted memory seen in the ISR | *7f4c89400d
hrtimers: Push pending hrtimers away from outgoing CPU earlier * |70b6573bf9
Revert "mmc: core: add helpers mmc_regulator_enable/disable_vqmmc" * |8b5d58d51f
Revert "mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled" * |4a3e1eda87
Revert "driver core: Move the "removable" attribute from USB to core" * |51753f2409
Revert "drm/amdgpu: don't use ATRM for external devices" * |4b7ed9373a
Revert "HID: core: store the unique system identifier in hid_device" * |b8a7e36e04
Revert "HID: fix HID device resource race between HID core and debugging support" * |84f9dd98b7
Revert "wireguard: use DEV_STATS_INC()" * |bdd8d64f36
Merge 5.10.203 into android12-5.10-lts |\| | *d330ef1d29
Linux 5.10.203 | *9c957e2b52
driver core: Release all resources during unbind before updating device links | *2325d3b6b1
r8169: fix deadlock on RTL8125 in jumbo mtu mode | *b29e6055db
r8169: disable ASPM in case of tx timeout | *8b76708eb9
mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled | *b532bc9b73
mmc: core: add helpers mmc_regulator_enable/disable_vqmmc | *376fabe367
mmc: block: Retry commands in CQE error recovery | *bf62a283a7
mmc: core: convert comma to semicolon | *bb78501184
mmc: cqhci: Fix task clearing in CQE error recovery | *cb9ca7cc27
mmc: cqhci: Warn of halt or task clear failure | *e94ededefc
mmc: cqhci: Increase recovery halt timeout | *2011f06e32
cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily | *6b35f36ff8
cpufreq: imx6q: don't warn for disabling a non-existing frequency | *910566a789
scsi: qla2xxx: Fix system crash due to bad pointer access | *46a4bf1350
scsi: qla2xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request | *b19fe82b4b
scsi: core: Introduce the scsi_cmd_to_rq() function | *c2b6f7e48e
smb3: fix caching of ctime on setxattr | *f9aa2857c6
fs: add ctime accessors infrastructure | *8d4237a149
drm/amdgpu: don't use ATRM for external devices | *2df04d76c9
driver core: Move the "removable" attribute from USB to core | *01fbfcd810
ima: annotate iint mutex to avoid lockdep false positive warnings | *8a3322a35f
fbdev: stifb: Make the STI next font pointer a 32-bit signed offset | *15bc430fc1
misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support | *a6128ad787
misc: pci_endpoint_test: Add deviceID for AM64 and J7200 | *c922282d11
s390/cmma: fix detection of DAT pages | *03e07092c6
s390/mm: fix phys vs virt confusion in mark_kernel_pXd() functions family | *cb420e3557
ASoC: SOF: sof-pci-dev: Fix community key quirk detection | *b37e1fbe6d
ASoC: SOF: sof-pci-dev: don't use the community key on APL Chromebooks | *3a79fcb743
ASoC: SOF: sof-pci-dev: add parameter to override topology filename | *4aeb3320d7
ASoC: SOF: sof-pci-dev: use community key on all Up boards | *6368a32d26
ASoC: Intel: Move soc_intel_is_foo() helpers to a generic header | *8e52b19d92
smb3: fix touch -h of symlink | *889c84e2b2
net: ravb: Start TX queues after HW initialization succeeded | *5d428cda38
net: ravb: Use pm_runtime_resume_and_get() | *f78d0f3013
ravb: Fix races between ravb_tx_timeout_work() and net related ops | *a36e00e957
r8169: prevent potential deadlock in rtl8169_close | *8a909c1198
Revert "workqueue: remove unused cancel_work()" | *72ce3379cd
octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64 | *ef7af2105a
net: stmmac: xgmac: Disable FPE MMC interrupts | *f18bcace12
selftests/net: mptcp: fix uninitialized variable warnings | *cb1644f9f0
selftests/net: ipsec: fix constant out of range | *fe7fd9c209
dpaa2-eth: increase the needed headroom to account for alignment | *772fe1da9a
ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet | *9ef94ec8e5
usb: config: fix iteration issue in 'usb_get_bos_descriptor()' | *713530d3c8
USB: core: Change configuration warnings to notices | *ae6e41066e
hv_netvsc: fix race of netvsc and VF register_netdevice | *4937fb36bb
Input: xpad - add HyperX Clutch Gladiate Support | *5c4d5c8556
btrfs: make error messages more clear when getting a chunk map | *74ff16c844
btrfs: send: ensure send_fd is writable | *12a0ec5ed7
btrfs: fix off-by-one when checking chunk map includes logical address | *baaab02a8c
btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod() | *2d6c2238ac
btrfs: add dmesg output for first mount and last unmount of a filesystem | *bab9cec493
parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes | *b53dc7c766
powerpc: Don't clobber f0/vs0 during fp|altivec register save | *b5cbbc2b2d
iommu/vt-d: Add MTL to quirk list to skip TE disabling | *f62ceb880a
bcache: revert replacing IS_ERR_OR_NULL with IS_ERR | *18ac427906
dm verity: don't perform FEC for failed readahead IO | *c3c9f92738
dm-verity: align struct dm_verity_fec_io properly | *5de40a7ffa
ALSA: hda/realtek: Add supported ALC257 for ChromeOS | *cf80c53806
ALSA: hda/realtek: Headset Mic VREF to 100% | *f338f738d7
ALSA: hda: Disable power-save on KONTRON SinglePC | *b02b66194d
mmc: block: Do not lose cache flush during CQE error recovery | *71c9fb31e1
firewire: core: fix possible memory leak in create_units() | *d6bac7048f
pinctrl: avoid reload of p state in list iteration | *8fb79be6e9
io_uring: fix off-by one bvec index | *f5f85ea5bb
USB: dwc3: qcom: fix wakeup after probe deferral | *5ac96667ea
usb: dwc3: set the dma max_seg_size | *2620c5977f
usb: dwc3: Fix default mode initialization | *d5325ed6eb
USB: dwc2: write HCINT with INTMASK applied | *5d7a5e63dc
USB: serial: option: don't claim interface 4 for ZTE MF290 | *f1432dff5d
USB: serial: option: fix FM101R-GL defines | *14a6e089d6
USB: serial: option: add Fibocom L7xx modules | *f49ad460a2
bcache: fixup lock c->root error | *be327b8f76
bcache: fixup init dirty data errors | *3ebf83df62
bcache: prevent potential division by zero error | *e74c2e6fec
bcache: check return value from btree_node_alloc_replacement() | *c73dd8f4b4
dm-delay: fix a race between delay_presuspend and delay_bio | *a70b6da7c6
hv_netvsc: Mark VF as slave before exposing it to user-mode | *ff6c130e48
hv_netvsc: Fix race of register_netdevice_notifier and VF register | *518ef82501
USB: serial: option: add Luat Air72*U series products | *c841de6247
s390/dasd: protect device queue against concurrent access | *89f9ba7ee7
bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race | *cd7a069590
bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce() | *be8af3b6c8
swiotlb-xen: provide the "max_mapping_size" method | *8c4b5cc908
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA | *0f312dc1eb
ASoC: simple-card: fixup asoc_simple_probe() error handling | *fcc60c0a18
nfsd: lock_rename() needs both directories to live on the same fs | *ec75d1d0cd
ext4: make sure allocate pending entry not fail | *10341e77e4
ext4: fix slab-use-after-free in ext4_es_insert_extent() | *5527898c6a
ext4: using nofail preallocation in ext4_es_insert_extent() | *2ae2be6e7c
ext4: using nofail preallocation in ext4_es_insert_delayed_block() | *aa6568033c
ext4: using nofail preallocation in ext4_es_remove_extent() | *608758ef86
ext4: use pre-allocated es in __es_remove_extent() | *fcb07d8ea3
ext4: use pre-allocated es in __es_insert_extent() | *0cc7653887
ext4: factor out __es_alloc_extent() and __es_free_extent() | *8234c1c690
ext4: add a new helper to check if es must be kept | *62526a55fe
MIPS: KVM: Fix a build warning about variable set but not used | *3b2e8b30b0
media: ccs: Correctly initialise try compose rectangle | *1301467cbe
lockdep: Fix block chain corruption | *cbfa5aadd6
USB: dwc3: qcom: fix ACPI platform device leak | *68fe711312
USB: dwc3: qcom: fix resource leaks on probe deferral | *2be451e7a2
nvmet: nul-terminate the NQNs passed in the connect command | *86a7f67d76
nvmet: remove unnecessary ctrl parameter | *d24a18cb51
afs: Fix file locking on R/O volumes to operate in local mode | *6e48c3175d
afs: Return ENOENT if no cell DNS record can be found | *497e9b0b21
net: axienet: Fix check for partial TX checksum | *8fb804dabd
amd-xgbe: propagate the correct speed and duplex status | *b7c9e8c038
amd-xgbe: handle the corner-case during tx completion | *a2e868ad07
amd-xgbe: handle corner-case during sfp hotplug | *ebc7fbd15a
arm/xen: fix xen_vcpu_info allocation alignment | *5ada292b5c
net/smc: avoid data corruption caused by decline | *3ae55e3a37
net: usb: ax88179_178a: fix failed operations during ax88179_reset | *27914bff96
ipv4: Correct/silence an endian warning in __ip_do_redirect | *f8467afa75
HID: fix HID device resource race between HID core and debugging support | *2f0ea5e094
HID: core: store the unique system identifier in hid_device | *650e43dfe7
drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full | *cc3b63c089
ata: pata_isapnp: Add missing error check for devm_ioport_map() | *9942c19483
wireguard: use DEV_STATS_INC() | *939352ad65
drm/panel: simple: Fix Innolux G101ICE-L01 timings | *a5e82e345f
drm/panel: simple: Fix Innolux G101ICE-L01 bus flags | *60660af957
drm/panel: auo,b101uan08.3: Fine tune the panel power sequence | *2c688ae2dd
drm/panel: boe-tv101wum-nl6: Fine tune the panel power sequence | *3b797242d1
afs: Make error on cell lookup failure consistent with OpenAFS | *dbc1929a52
afs: Fix afs_server_list to be cleaned up with RCU | *c3bead2f8f
PCI: keystone: Drop __init from ks_pcie_add_pcie_{ep,port}() | *ac65f8979b
RDMA/irdma: Prevent zero-length STAG registration * |76b525ba59
ANDROID: Fix up ipvlan merge in 5.10.202 * |f6509591ff
Revert "ASoC: soc-card: Add storage for PCI SSID" * |2e1e5e63dd
Revert "tracing: Have trace_event_file have ref counters" * |7999a9a70d
Merge 5.10.202 into android12-5.10-lts |\| | *479e8b8925
Linux 5.10.202 | *610057f4f6
interconnect: qcom: Add support for mask-based BCMs | *7ce66afcaa
netfilter: nf_tables: disable toggling dormant table state more than once | *d9c4da8cb7
netfilter: nf_tables: fix table flag updates | *7d1d3f1134
netfilter: nftables: update table flags from the commit phase | *a98172e36e
tracing: Have trace_event_file have ref counters | *c6e8af2a8a
io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid | *aeeb1ad2dd
drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox | *e2bdd43788
drm/amdgpu: fix error handling in amdgpu_bo_list_get() | *dfa8e63ca5
drm/amd/pm: Handle non-terminated overdrive commands. | *7dc933b4b4
ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks | *0932764fb5
ext4: correct the start block of counting reserved clusters | *3c1ad03a5f
ext4: correct return value of ext4_convert_meta_bg | *d739a7e389
ext4: correct offset of gdb backup in non meta_bg group to update_backups | *c878db71ed
ext4: apply umask if ACL support is disabled | *3a51aee542
Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E" | *f6e014b5eb
media: qcom: camss: Fix vfe_get() error jump | *e2d2e26608
mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors | *6875820f36
nfsd: fix file memleak on client_opens_release | *b51b20c018
media: venus: hfi: add checks to handle capabilities from firmware | *bcee276a1e
media: venus: hfi: fix the check to handle session buffer requirement | *da240b7bad
media: venus: hfi_parser: Add check to keep the number of codecs within range | *0f887306bd
media: sharp: fix sharp encoding | *dfa9f4ea65
media: lirc: drop trailing space from scancode transmit | *c041f5ddef
f2fs: avoid format-overflow warning | *829f0d5231
i2c: i801: fix potential race in i801_block_transaction_byte_by_byte | *430603f6de
net: phylink: initialize carrier state at creation | *4dc0484e90
net: dsa: lan9303: consequently nested-lock physical MDIO | *cb1006640c
i2c: designware: Disable TX_EMPTY irq while waiting for block length byte | *8e29eebe4c
lsm: fix default return value for inode_getsecctx | *8327f50442
lsm: fix default return value for vm_enough_memory | *a011391f01
Revert ncsi: Propagate carrier gain/loss events to the NCSI controller | *969d994612
arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size | *2b3931eb8e
arm64: dts: qcom: ipq6018: switch TCSR mutex to MMIO | *bdda1c356d
PCI: exynos: Don't discard .remove() callback | *62d15b6a6e
Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE | *dbbf3c4560
Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables | *990d4c76d2
bluetooth: Add device 13d3:3571 to device tables | *3aba34baa4
bluetooth: Add device 0bda:887b to device tables | *0952747362
Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559 | *8617305611
cpufreq: stats: Fix buffer overflow detection in trans_stats() | *2ed25af15b
tty: serial: meson: fix hard LOCKUP on crtscts mode | *07c6183958
serial: meson: Use platform_get_irq() to get the interrupt | *980c3135f1
tty: serial: meson: retrieve port FIFO size from DT | *1e66cd4083
serial: meson: remove redundant initialization of variable id | *ba30578def
ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC | *ddd47d8d1b
ALSA: hda/realtek - Add Dell ALC295 to pin fall back table | *a681d28b97
ALSA: info: Fix potential deadlock at disconnection | *f04fa1e199
xhci: Enable RPM on controllers that support low-power states | *5e34fe50a9
parisc/pgtable: Do not drop upper 5 address bits of physical address | *064c697cac
parisc: Prevent booting 64-bit kernels on PA1.x machines | *c6effcdd7d
i3c: master: cdns: Fix reading status register | *76320f05b9
mtd: cfi_cmdset_0001: Byte swap OTP info | *dce3e7c400
mm/memory_hotplug: use pfn math in place of direct struct page manipulation | *63d2023fbb
mm/cma: use nth_page() in place of direct struct page manipulation | *d24340f081
dmaengine: stm32-mdma: correct desc prep when channel running | *788322e1ed
mcb: fix error handling for different scenarios when parsing | *25284c46b6
i2c: core: Run atomic i2c xfer when !preemptible | *8f8fc95b3a
kernel/reboot: emergency_restart: Set correct system_state | *9386f59759
quota: explicitly forbid quota files from being encrypted | *f729cf6f32
jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev | *db5ebaeb8f
PCI: keystone: Don't discard .probe() callback | *2bcdc1b6b6
PCI: keystone: Don't discard .remove() callback | *943347e53a
genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware | *b2c194fe8f
mmc: meson-gx: Remove setting of CMD_CFG_ERROR | *03ed26935b
wifi: ath11k: fix htt pktlog locking | *f882f51905
wifi: ath11k: fix dfs radar event locking | *c3f61ca486
wifi: ath11k: fix temperature event locking | *cd5a262a07
ima: detect changes to the backing overlay file | *df4133ebc8
firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit | *76211f1dd9
btrfs: don't arbitrarily slow down delalloc if we're committing | *175f4b062f
rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects | *3c1c1af25d
PM: hibernate: Clean up sync_read handling in snapshot_write_next() | *df8363e468
PM: hibernate: Use __get_safe_page() rather than touching the list | *21bc829337
arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM | *1fd46d3277
PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common() | *e3ed58ee4e
mmc: sdhci_am654: fix start loop index for TAP value parsing | *198366a5ff
mmc: vub300: fix an error code | *3a4431014c
clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks | *30af31fc00
clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks | *8dc83cf762
parisc/pdc: Add width field to struct pdc_model | *d08a1e7525
arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer | *61695b9aec
ACPI: resource: Do IRQ override on TongFang GMxXGxx | *6edbd6b481
watchdog: move softlockup_panic back to early_param | *85fe64c8dc
PCI/sysfs: Protect driver's D3cold preference from user space | *1b08362429
hvc/xen: fix error path in xen_hvc_init() to always register frontend driver | *d5455c421f
hvc/xen: fix console unplug | *a158a74e70
tty/sysrq: replace smp_processor_id() with get_cpu() | *fc557bcfd7
audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() | *121973ef1a
audit: don't take task_lock() in audit_exe_compare() code path | *910caee346
KVM: x86: Ignore MSR_AMD64_TW_CFG access | *66406d49ac
KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space | *8cf6b66585
x86/cpu/hygon: Fix the CPU topology evaluation for real | *243c4833f3
scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers | *697bc325b9
scsi: mpt3sas: Fix loop logic | *5fb8ec5943
bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END | *9617a9fe4f
bpf: Fix check_stack_write_fixed_off() to correctly spill imm | *7975f7b2a6
randstruct: Fix gcc-plugin performance mode to stay in group | *d83f4bc0a4
powerpc/perf: Fix disabling BHRB and instruction sampling | *e7de8ffbbb
media: venus: hfi: add checks to perform sanity on queue pointers | *99dbc39c22
cifs: fix check of rc in function generate_smb3signingkey | *e5a0ef0282
cifs: spnego: add ';' in HOST_KEY_LEN | *6d388b641c
tools/power/turbostat: Fix a knl bug | *f56e228d67
macvlan: Don't propagate promisc change to lower dev in passthru | *ac4979dbd9
net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors | *a3ce491b17
net/mlx5_core: Clean driver version and name | *0eaec8126b
net/mlx5e: fix double free of encap_header | *541fece7ca
net: stmmac: fix rx budget limit check | *66dbaa2eec
netfilter: nf_conntrack_bridge: initialize err to 0 | *3f64315056
net: ethernet: cortina: Fix MTU max setting | *eac9ef50d6
net: ethernet: cortina: Handle large frames | *f0d9b80f76
net: ethernet: cortina: Fix max RX frame define | *396baca668
bonding: stop the device in bond_setup_by_slave() | *1f368fd612
ptp: annotate data-race around q->head and q->tail | *ecc74e7acb
xen/events: fix delayed eoi list handling | *144a80ef40
ppp: limit MRU to 64K | *3ee249a3b9
tipc: Fix kernel-infoleak due to uninitialized TLV value | *072f0eb962
net: hns3: fix VF reset fail issue | *b0eac93bae
net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() | *48fa8a85f8
tty: Fix uninit-value access in ppp_sync_receive() | *43b781e7cb
ipvlan: add ipvlan_route_v6_outbound() helper | *59fadfa99b
gfs2: Silence "suspicious RCU usage in gfs2_permission" warning | *dedf2a0eb9
SUNRPC: Fix RPC client cleaned up the freed pipefs dentries | *39b2bf0405
NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO | *37f3aaf794
SUNRPC: Add an IS_ERR() check back to where it was | *c7eacf01dd
SUNRPC: ECONNRESET might require a rebind | *4ea3b98fa6
xhci: turn cancelled td cleanup to its own function | *6ebd42a7b7
wifi: iwlwifi: Use FW rate for non-data frames | *e52518b9cb
pwm: Fix double shift bug | *53b2393eeb
drm/amdgpu: fix software pci_unplug on some chips | *f1ea84696e
ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings | *3cfacacb9c
kgdb: Flush console before entering kgdb on panic | *79b6a90f4f
drm/amd/display: Avoid NULL dereference of timing generator | *0f5068519f
media: imon: fix access to invalid resource for the second interface | *cf8519f40c
media: cobalt: Use FIELD_GET() to extract Link Width | *5f8d51a04b
gfs2: fix an oops in gfs2_permission | *2a054b87a1
gfs2: ignore negated quota changes | *0ac2652b96
media: vivid: avoid integer overflow | *c6b6b86922
media: gspca: cpia1: shift-out-of-bounds in set_flicker | *90e3c3dd93
i2c: sun6i-p2wi: Prevent potential division by zero | *18fa7a30cd
9p/trans_fd: Annotate data-racy writes to file::f_flags | *76716a7604
usb: gadget: f_ncm: Always set current gadget in ncm_bind() | *4ef41a7f33
tty: vcc: Add check for kstrdup() in vcc_probe() | *484cc536a3
exfat: support handle zero-size directory | *491529d383
HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W | *65d78d54e4
misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller | *bb83f79f90
scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() | *5cebe796ea
atm: iphase: Do PCI error checks on own line | *6549196836
PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields | *25354bae4f
ALSA: hda: Fix possible null-ptr-deref when assigning a stream | *e0d739e66b
ARM: 9320/1: fix stack depot IRQ stack filter | *62d21f9df4
HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround | *1ba7df5457
jfs: fix array-index-out-of-bounds in diAlloc | *81aa58cd84
jfs: fix array-index-out-of-bounds in dbFindLeaf | *c6c8863fb3
fs/jfs: Add validity check for db_maxag and db_agpref | *524b4f203a
fs/jfs: Add check for negative db_l2nbperpage | *885824a44d
RDMA/hfi1: Use FIELD_GET() to extract Link Width | *e97bf4ada7
crypto: pcrypt - Fix hungtask for PADATA_RESET | *98fa52d89a
ASoC: soc-card: Add storage for PCI SSID | *f161a6b11a
selftests/efivarfs: create-read: fix a resource leak | *f475d5502f
drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL | *da1409ea08
drm/panel: st7703: Pick different reset sequence | *9acc2bc001
drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference | *c7dc0aca59
drm/panel: fix a possible null pointer dereference | *b93a25de28
drm/amdgpu: Fix potential null pointer derefernce | *8c1dbddbfc
drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga | *8af28ae3ac
drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 | *4ffb2b0e48
drm/msm/dp: skip validity check for DP CTS EDID checksum | *2810a9c40b
drm/komeda: drop all currently held locks if deadlock happens | *a70457f181
platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e | *53d61daf35
Bluetooth: Fix double free in hci_conn_cleanup | *9f8e4d1a4c
Bluetooth: btusb: Add date->evt_skb is NULL check | *bba97f5e8f
wifi: ath10k: Don't touch the CE interrupt registers after power up | *22fa35ded3
net: annotate data-races around sk->sk_dst_pending_confirm | *67b7de95d1
net: annotate data-races around sk->sk_tx_queue_mapping | *beb75dccba
wifi: ath10k: fix clang-specific fortify warning | *2d6303cafb
wifi: ath9k: fix clang-specific fortify warnings | *6058e48296
bpf: Detect IP == ksym.end as part of BPF program | *717de20abd
wifi: mac80211: don't return unset power in ieee80211_get_tx_power() | *cdfc689e10
wifi: mac80211_hwsim: fix clang-specific fortify warning | *a7aa2f1ca8
x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size | *89356bee8e
clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware | *1b8687ed3c
clocksource/drivers/timer-imx-gpt: Fix potential memory leak | *1a2a4202c6
perf/core: Bail out early if the request AUX area is out of bound | *9ed2d68b39
locking/ww_mutex/test: Fix potential workqueue corruption * |39feca3943
UPSTREAM: interconnect: qcom: Add support for mask-based BCMs * |53595e1cbf
Revert "ipvlan: properly track tx_errors" * |ddeac706a1
Revert "inet: shrink struct flowi_common" * |8f05c3a256
Revert "arm64/arm: xen: enlighten: Fix KPTI checks" * |c02da4e692
Revert "mfd: core: Un-constify mfd_cell.of_reg" * |195858a508
Merge "Merge 5.10.201 into android12-5.10-lts" into android12-5.10-lts |\ \ | * |cf3a19d56e
Merge 5.10.201 into android12-5.10-lts | |\| | | *6db6caba87
Linux 5.10.201 | | *4be0407ffc
btrfs: use u64 for buffer sizes in the tree search ioctls | | *2bbbb976fa
Revert "mmc: core: Capture correct oemid-bits for eMMC cards" | | *3b092dfdab
tracing/kprobes: Fix the order of argument descriptions | | *3697fda1c6
fbdev: fsl-diu-fb: mark wr_reg_wa() static | | *a4dfebec32
fbdev: imsttfb: fix a resource leak in probe | | *9e8e731571
fbdev: imsttfb: Fix error path of imsttfb_probe() | | *de721d7ef7
spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies | | *876a119790
drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE | | *b9bc1806b9
x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot | | *14042d6d80
x86: Share definition of __is_canonical_address() | | *bc794a667b
netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses | | *b65d851b2e
netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs | | *7764290452
netfilter: xt_recent: fix (increase) ipv6 literal buffer length | | *00b1882091
r8169: respect userspace disabling IFF_MULTICAST | | *e02824db7c
tg3: power down device only on SYSTEM_POWER_OFF | | *34c5a24633
net/smc: put sk reference if close work was canceled | | *f652ab15af
net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc | | *4e7bad7301
net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT | | *13d6bc35de
net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs | | *eafacef7ee
Fix termination state for idr_for_each_entry_ul() | | *0a84ffc72f
net: r8169: Disable multicast filter for RTL8168H and RTL8107E | | *4969fcebe7
dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. | | *7827667989
dccp: Call security_inet_conn_request() after setting IPv4 addresses. | | *f830d4f698
inet: shrink struct flowi_common | | *b33d130f07
tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING | | *ddf4e04e94
hsr: Prevent use after free in prp_create_tagged_frame() | | *3a2653828f
llc: verify mac len before reading mac header | | *6c71e065be
Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() | | *e5d481d9b6
pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume | | *005965cab1
pwm: sti: Reduce number of allocations and drop usage of chip_data | | *ce5e0a3c9d
pwm: sti: Avoid conditional gotos | | *0bc796e66b
regmap: prevent noinc writes from clobbering cache | | *1b86938925
media: dvb-usb-v2: af9035: fix missing unlock | | *2e2efaed79
media: cedrus: Fix clock/reset sequence | | *64863ba8e6
media: vidtv: mux: Add check and kfree for kstrdup | | *3387490c89
media: vidtv: psi: Add check for kstrdup | | *62557ab73d
media: s3c-camif: Avoid inappropriate kfree() | | *2f3d9198cd
media: bttv: fix use after free error due to btv->timeout timer | | *0627e8623e
media: i2c: max9286: Fix some redundant of_node_put() calls | | *c3e148aba9
pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() | | *84540ef924
pcmcia: ds: fix refcount leak in pcmcia_device_add() | | *cd154225d4
pcmcia: cs: fix possible hung task and memory leak pccardd() | | *5e3c751586
rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call | | *1832ed55df
i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs | | *a83fc293ac
perf hist: Add missing puts to hist__account_cycles | | *4e66bde5c7
perf machine: Avoid out of bounds LBR memory read | | *188425eb2d
usb: host: xhci-plat: fix possible kernel oops while resuming | | *ba894bd273
xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 | | *ad0370c41a
powerpc/pseries: fix potential memory leak in init_cpu_associativity() | | *d12372af89
powerpc/imc-pmu: Use the correct spinlock initializer. | | *c75707293d
powerpc/xive: Fix endian conversion size | | *f95f5512fd
powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro | | *b54a4c8ca1
modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host | | *362f0241db
interconnect: qcom: sc7180: Set ACV enable_mask | | *08588fac00
interconnect: qcom: sc7180: Retire DEFINE_QBCM | | *ebaf7a73f6
f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() | | *758f735604
dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() | | *5fe228041c
USB: usbip: fix stub_dev hub disconnect | | *798692e48c
tools: iio: iio_generic_buffer ensure alignment | | *3eadba0582
tools: iio: iio_generic_buffer: Fix some integer type and calculation | | *a0a41991dd
tools: iio: privatize globals and functions in iio_generic_buffer.c file | | *d046e3f8de
misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() | | *c53cfe99c2
dmaengine: ti: edma: handle irq_of_parse_and_map() errors | | *bdb3dd4096
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency | | *05de1536d0
livepatch: Fix missing newline character in klp_resolve_symbols() | | *3ebf42fe8c
tty: tty_jobctrl: fix pid memleak in disassociate_ctty() | | *3808370526
leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' | | *23eb8629c2
leds: pwm: Don't disable the PWM when the LED should be off | | *c2766ed2b7
mfd: dln2: Fix double put in dln2_probe | | *b708eb26b5
mfd: core: Ensure disabled devices are skipped without aborting | | *9f831533d2
mfd: core: Un-constify mfd_cell.of_reg | | *b7b4851e63
ASoC: ams-delta.c: use component after check | | *41aad9d695
padata: Fix refcnt handling in padata_free_shell() | | *7606807bd6
padata: Convert from atomic_t to refcount_t on parallel_data->refcnt | | *2de16f6169
ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails | | *6fd432f392
HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event() | | *7581eef4ae
HID: logitech-hidpp: Revert "Don't restart communication if not necessary" | | *c82e376bc2
HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only | | *0fe443314c
HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk | | *8337286600
Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures" | | *6d2de161cd
sh: bios: Revive earlyprintk support | | *2ca51477c6
hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip | | *9c895d20f8
RDMA/hfi1: Workaround truncation compilation error | | *cd268264f5
scsi: ufs: core: Leave space for '\0' in utf8 desc string | | *cded69a7f8
ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe | | *1596394868
RDMA/hns: Fix signed-unsigned mixed comparisons | | *8018a3444e
RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() | | *08a246064d
IB/mlx5: Fix rdma counter binding for RAW QP | | *53067926cd
ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described | | *83eee515e4
ext4: move 'ix' sanity check to corrent position | | *67959b3626
ARM: 9321/1: memset: cast the constant byte to unsigned char | | *3d959406c8
hid: cp2112: Fix duplicate workqueue initialization | | *63e8e2ee58
crypto: qat - increase size of buffers | | *a921d6b795
crypto: qat - mask device capabilities with soft straps | | *16f2033de0
crypto: caam/jr - fix Chacha20 + Poly1305 self test failure | | *727ba935d9
crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure | | *b0e7a93573
nd_btt: Make BTT lanes preemptible | | *efeaa2396e
libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value | | *ffb3483c4b
hwrng: geode - fix accessing registers | | *02db438311
crypto: hisilicon/hpre - Fix a erroneous check after snprintf() | | *5176ebe6aa
selftests/resctrl: Ensure the benchmark commands fits to its array | | *b3768f0892
selftests/pidfd: Fix ksft print formats | | *a0846b4c8e
clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped | | *bcc7d46fa4
firmware: ti_sci: Mark driver as non removable | | *5e5b85ea0f
soc: qcom: llcc: Handle a second device without data corruption | | *a44aa8d8a5
ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator | | *8bd7c8a9b8
arm64: dts: qcom: sdm845-mtp: fix WiFi configuration | | *4df18b233e
arm64: dts: qcom: msm8916: Fix iommu local address range | | *1e17eab1a4
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled | | *bc714abe7d
drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() | | *666a4120dc
arm64/arm: xen: enlighten: Fix KPTI checks | | *0dd40dca1e
drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() | | *6f710918df
drm/mediatek: Fix iommu fault during crtc enabling | | *c12f2eaeb3
drm/bridge: tc358768: Fix bit updates | | *1133e72cd8
drm/bridge: tc358768: Disable non-continuous clock mode | | *c0d25ef81a
drm/bridge: tc358768: Fix use of uninitialized variable | | *7b063c93be
drm/radeon: possible buffer overflow | | *a6d6769e2d
drm/rockchip: vop: Fix call to crtc reset helper | | *bb81430161
drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs | | *9899097b1f
hwmon: (coretemp) Fix potentially truncated sysfs attribute name | | *7d870088db
hwmon: (axi-fan-control) Fix possible NULL pointer dereference | | *060d54f090
hwmon: (axi-fan-control) Support temperature vs pwm points | | *d426a2955e
platform/x86: wmi: Fix opening of char device | | *d222073733
platform/x86: wmi: remove unnecessary initializations | | *3433a69c00
platform/x86: wmi: Fix probe failure when failing to register WMI devices | | *b16622d304
clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM | | *001e5def77
clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data | | *4f861b6394
clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data | | *96e9544a0c
clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data | | *81b1628611
clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data | | *3994387ba3
clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data | | *2617aa8cea
clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data | | *55e5fd11a2
clk: npcm7xx: Fix incorrect kfree | | *0beaefa988
clk: ti: fix double free in of_ti_divider_clk_setup() | | *acb535d750
clk: ti: change ti_clk_register[_omap_hw]() API | | *98c5012c11
clk: ti: Update component clocks to use ti_dt_clk_name() | | *1c4253252c
clk: ti: Update pll and clockdomain clocks to use ti_dt_clk_name() | | *00c67e0aa7
clk: ti: Add ti_dt_clk_name() helper to use clock-output-names | | *de33b367f8
clk: keystone: pll: fix a couple NULL vs IS_ERR() checks | | *c07a0e2e93
spi: nxp-fspi: use the correct ioremap function | | *d459cb4244
clk: linux/clk-provider.h: fix kernel-doc warnings and typos | | *f28709097d
clk: asm9260: use parent index to link the reference clock | | *8d03f7c580
clk: imx: imx8mq: correct error handling path | | *c1bacea8a6
clk: imx: Select MXC_CLK for CLK_IMX8QXP | | *a52c963d8d
clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src | | *c6919a1576
clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents | | *355a12fa1c
clk: qcom: mmcc-msm8998: Fix the SMMU GDSC | | *ba7f9695d5
clk: qcom: mmcc-msm8998: Set bimc_smmu_gdsc always on | | *97a6711744
clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks | | *05eebcd4bc
clk: qcom: mmcc-msm8998: Add hardware clockgating registers to some clks | | *3181168e61
clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies | | *80836b5859
regmap: debugfs: Fix a erroneous check after snprintf() | | *9954a7f380
ipvlan: properly track tx_errors | | *e897dcbd5f
net: add DEV_STATS_READ() helper | | *98e8a5a370
ipv6: avoid atomic fragment on GSO packets | | *dea8d9e571
ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() | | *88be6453d7
tcp: fix cookie_init_timestamp() overflows | | *76894f305c
chtls: fix tp->rcv_tstamp initialization | | *d104f6cb41
r8169: fix rare issue with broken rx after link-down on RTL8125 | | *fdd4a3c20a
r8169: use tp_to_dev instead of open code | | *3f795fb35c
thermal: core: prevent potential string overflow | | *ae681e5eff
PM / devfreq: rockchip-dfi: Make pmu regmap mandatory | | *d7a220bf6b
can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on() | | *040f65c282
can: dev: can_restart(): don't crash kernel if carrier is OK | | *03d138b6b2
wifi: rtlwifi: fix EDCA limit set by BT coexistence | | *d8f2e18d1d
tcp_metrics: do not create an entry from tcp_init_metrics() | | *73999f29ab
tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() | | *37308a3926
tcp_metrics: add missing barriers on delete | | *d203f9921a
wifi: mt76: mt7603: rework/fix rx pse hang check | | *3068527d17
wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() | | *d44f88b20d
net: spider_net: Use size_add() in call to struct_size() | | *9b8486fdad
tipc: Use size_add() in calls to struct_size() | | *5f5aabbdc2
mlxsw: Use size_mul() in call to struct_size() | | *f927d44696
gve: Use size_add() in call to struct_size() | | *2b46db3bb7
overflow: Implement size_t saturating arithmetic helpers | | *2f4b4eb58f
tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed | | *0ca9fc8200
udp: add missing WRITE_ONCE() around up->encap_rcv | | *61e7961ff3
i40e: fix potential memory leaks in i40e_remove() | | *47479ed7fc
genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() | | *bb166bdae1
pstore/platform: Add check for kstrdup | | *66f9969141
x86/boot: Fix incorrect startup_gdt_descr.size | | *ffa4cc86e9
futex: Don't include process MM in futex key on no-MMU | | *f525870516
x86/srso: Fix SBPB enablement for (possible) future fixed HW | | *f49926b8d2
vfs: fix readahead(2) on block devices | | *9fe0f6b572
sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 | | *bdb7de7ed5
iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() * | |ddf606c1f5
ANDROID: GKI: db845c: Update symbols list and ABI on rpmsg_register_device_override |/ / * |0f780c28f9
ANDROID: fix up rpmsg_device ABI break * |ef7075076a
ANDROID: fix up platform_device ABI break * |bdc373d185
Revert "kasan: print the original fault addr when access invalid shadow" * |9cba6b5683
Merge 5.10.200 into android12-5.10-lts |\| | *3e55583405
Linux 5.10.200 | *a5feaf7659
ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection | *9109649559
tty: 8250: Add support for Intashield IS-100 | *73bcb4d449
tty: 8250: Add support for Brainboxes UP cards | *119f38e8ca
tty: 8250: Add support for additional Brainboxes UC cards | *a8bf6f6218
tty: 8250: Remove UC-257 and UC-431 | *e705aee2a6
usb: raw-gadget: properly handle interrupted requests | *8e0324f2cb
usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility | *747b8f8779
PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device | *deddf60c27
can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior | *8716c28f69
can: isotp: isotp_bind(): do not validate unused address information | *e4c4e0e1b2
can: isotp: add local echo tx processing and tx without FC | *569c95b7ec
can: isotp: handle wait_event_interruptible() return values | *de3c02383a
can: isotp: check CAN address family in isotp_bind() | *0386f37047
can: isotp: isotp_bind(): return -EINVAL on incorrect CAN ID formatting | *93b1e3f3a2
can: isotp: set max PDU size to 64 kByte | *7adbc048d8
can: isotp: Add error message if txqueuelen is too small | *57798a2cfe
can: isotp: add symbolic error message to isotp_module_init() | *186ab56451
can: isotp: change error format from decimal to symbolic error names | *b881ce6c7d
powerpc/mm: Fix boot crash with FLATMEM | *1b285a1bfb
net: chelsio: cxgb4: add an error code check in t4_load_phy_fw | *955a1105ee
platform/mellanox: mlxbf-tmfifo: Fix a warning message | *268ec38b79
scsi: mpt3sas: Fix in error path | *abf9c78118
fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit() | *ec45886637
ASoC: rt5650: fix the wrong result of key button | *c683d8b641
netfilter: nfnetlink_log: silence bogus compiler warning | *66cc633fc6
spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 | *6f9093b6f8
fbdev: atyfb: only use ioremap_uc() on i386 and ia64 | *ead3c123a7
Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport | *fb8f253b95
dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe | *e619b38a87
irqchip/stm32-exti: add missing DT IRQ flag translation | *d151fb8019
net: sched: cls_u32: Fix allocation size in u32_init() | *9ade01b294
x86: Fix .brk attribute in linker script | *3fdd5b2bb0
rpmsg: Fix possible refcount leak in rpmsg_register_device_override() | *41c13a571d
rpmsg: glink: Release driver_override | *5f1bb9f4d4
rpmsg: Fix calling device_lock() on non-initialized device | *5bbd3469a4
rpmsg: Fix kfree() of static memory on setting driver_override | *d0208fb38f
rpmsg: Constify local variable in field store macro | *da369d3996
driver: platform: Add helper for safer setting of driver_override | *4a20f5ea62
objtool/x86: add missing embedded_insn check | *6b977a7323
ext4: avoid overlapping preallocations due to overflow | *58fe961c60
ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow | *c0db17e55f
ext4: add two helper functions extent_logical_end() and pa_logical_end() | *c761d34a7e
x86/mm: Fix RESERVE_BRK() for older binutils | *01a5e17e3e
x86/mm: Simplify RESERVE_BRK() | *571ce7d944
f2fs: fix to do sanity check on inode type during garbage collection | *d1c37e849f
smbdirect: missing rc checks while waiting for rdma events | *b2e62728b1
kobject: Fix slab-out-of-bounds in fill_kobj_path() | *b9b197f659
x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility | *62184eb778
iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds | *e96eb8853f
iio: adc: xilinx: use more devres helpers and remove remove() | *0eb1198fe4
iio: adc: xilinx: use devm_krealloc() instead of kfree() + kcalloc() | *c4b496c9f7
iio: adc: xilinx: use helper variable for &pdev->dev | *d8928befff
clk: Sanitize possible_parent_show to Handle Return Value of of_clk_get_parent_name | *09ce0d85cc
sparc32: fix a braino in fault handling in csum_and_copy_..._user() | *0258ca32b0
perf/core: Fix potential NULL deref | *4e3c606afa
nvmem: imx: correct nregs for i.MX6UL | *37ccf15ebe
nvmem: imx: correct nregs for i.MX6SLL | *7a1c29e93c
nvmem: imx: correct nregs for i.MX6ULL | *d44166341f
misc: fastrpc: Clean buffers on remote invocation failures | *866838eb8e
tracing/kprobes: Fix the description of variable length arguments | *ca764116b5
i2c: aspeed: Fix i2c bus hang in slave read | *18c5167d04
i2c: stm32f7: Fix PEC handling in case of SMBUS transfers | *80416f6ba0
i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() | *9a9ead53e7
i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() | *3cb69f1dbc
i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() | *0c8587fec9
iio: exynos-adc: request second interupt only when touchscreen mode is used | *632c2199e5
kasan: print the original fault addr when access invalid shadow | *be9e6f51ba
i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR | *fe65fc90e9
gtp: fix fragmentation needed check with gso | *3ae8b75fce
gtp: uapi: fix GTPA_MAX | *4d0d5e54b5
tcp: fix wrong RTO timeout when received SACK reneging | *e0308c7939
r8152: Release firmware if we have an error in probe | *17b455747b
r8152: Cancel hw_phy_work if we have an error in probe | *7dc907d855
r8152: Run the unload routine if we have errors during probe | *704c25fc6a
r8152: Increase USB control msg timeout to 5000ms as per spec | *79e2610efc
net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg | *d9864e589f
net: ieee802154: adf7242: Fix some potential buffer overflow in adf7242_stats_show() | *634c72adc8
igc: Fix ambiguity in the ethtool advertising | *1e628189a2
neighbour: fix various data-races | *77c4f14f95
igb: Fix potential memory leak in igb_add_ethtool_nfc_entry | *1ac4f8e555
treewide: Spelling fix in comment | *5eab293b1c
r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1 | *13d357d9f2
r8169: fix the KCSAN reported data-race in rtl_tx while reading TxDescArray[entry].opts1 | *31c31a78dc
drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() | *957ec0823a
mmc: renesas_sdhi: use custom mask for TMIO_MASK_ALL | *3ab81820bf
mm/page_alloc: correct start page when guard page debug is enabled | *f2c0b571a5
virtio-mmio: fix memory leak of vm_dev | *8b857a93d6
virtio_balloon: Fix endless deflation and inflation on arm64 | *c88dd2aebf
mcb-lpc: Reallocate memory region to avoid memory overlapping | *6976459c64
mcb: Return actual parsed size when reading chameleon table | *09bcf92548
selftests/ftrace: Add new test case which checks non unique symbol * |04c980352b
Merge branch 'android12-5.10' into branch 'android12-5.10-lts' * |b4e242de09
Revert "usb: core: Track SuperSpeed Plus GenXxY" * |87c1e3677d
Revert "drm/connector: Add a fwnode pointer to drm_connector and register with ACPI (v2)" * |8fd816f563
Revert "drm/connector: Add drm_connector_find_by_fwnode() function (v3)" * |1a01b7e512
Revert "drm/connector: Add support for out-of-band hotplug notification (v3)" * |2f382c6d12
Revert "usb: typec: altmodes/displayport: Notify drm subsys of hotplug events" * |5653e77e8e
Revert "usb: typec: altmodes/displayport: Signal hpd low when exiting mode" * |f04244ef53
Revert "ipv4/fib: send notify when delete source address routes" * |7957cd8ab1
Revert "net: add sysctl accept_ra_min_rtr_lft" * |935ac73a69
Revert "net: change accept_ra_min_rtr_lft to affect all RA lifetimes" * |ea0ddd540d
Revert "net: release reference to inet6_dev pointer" * |8af75db0da
Revert "xfrm: fix a data-race in xfrm_gen_index()" * |b78ecc11ea
Revert "perf: Disallow mis-matched inherited group reads" * |5cc7b2b7f4
Revert "Bluetooth: hci_core: Fix build warnings" * |9cd7ac5dc5
Revert "xfrm: interface: use DEV_STATS_INC()" * |597c63c0dc
ANDROID: GKI: arm64: drop CONFIG_DEBUG_PREEMPT forced disable * |e04ba5f57f
Merge 5.10.199 into android12-5.10-lts |/ *cb49f0e441
Linux 5.10.199 *657a3ca823
xfrm6: fix inet6_dev refcount underflow problem *5d5680755b
Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name *b423509bc9
Bluetooth: hci_sock: fix slab oob read in create_monitor_event *653c808023
phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins *e9c20d3078
phy: mapphone-mdm6600: Fix runtime PM for remove *f42634685e
phy: mapphone-mdm6600: Fix runtime disable on probe *05e06fb6a6
ASoC: pxa: fix a memory leak in probe() *7e29dadf26
gpio: vf610: set value before the direction to avoid a glitch *6c3a72d4ae
platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events *8fece0081b
platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e *3be044840e
s390/pci: fix iommu bitmap allocation *487a8e2464
perf: Disallow mis-matched inherited group reads *550c70f72a
USB: serial: option: add Fibocom to DELL custom modem FM101R-GL *a39ea926ff
USB: serial: option: add entry for Sierra EM9191 with new firmware *3fb223086d
USB: serial: option: add Telit LE910C4-WWX 0x1035 composition *d78d3e0d84
nvme-rdma: do not try to stop unallocated queues *6238faecf8
nvme-pci: add BOGUS_NID for Intel 0a54 device *9efa38fdca
ACPI: irq: Fix incorrect return value in acpi_register_gsi() *9df654268a
pNFS: Fix a hang in nfs4_evict_inode() *c44e09a89a
Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()" *b26b0b8757
mmc: core: Capture correct oemid-bits for eMMC cards *f4771efb06
mmc: core: sdio: hold retuning if sdio in 1-bit mode *2312fb7f3b
mtd: physmap-core: Restore map_rom fallback *3a141424f8
mtd: spinand: micron: correct bitmask for ecc status *7682dae0a6
mtd: rawnand: arasan: Ensure program page operations are successful *875d17e452
mtd: rawnand: marvell: Ensure program page operations are successful *6224890ad0
mtd: rawnand: qcom: Unmap the right resource upon probe failure *f707bc0a55
Bluetooth: hci_event: Fix using memcmp when comparing keys *3b6aa631df
net/mlx5: Handle fw tracer change ownership event based on MTRC *ead8131372
platform/x86: touchscreen_dmi: Add info for the Positivo C4128B *fd12716327
HID: multitouch: Add required quirk for Synaptics 0xcd7e device *4e71ae53f1
btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c *661b4ce3b5
drm: panel-orientation-quirks: Add quirk for One Mix 2S *5b7cae7c35
ipv4/fib: send notify when delete source address routes *21f85b026d
sky2: Make sure there is at least one frag_addr available *f06c3a50ef
regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()" *4613414129
wifi: cfg80211: avoid leaking stack data into trace *fde6d84daa
wifi: mac80211: allow transmitting EAPOL frames with tainted key *8de7f70583
wifi: cfg80211: Fix 6GHz scan configuration *ffb060b136
Bluetooth: hci_core: Fix build warnings *65f5da6df8
Bluetooth: Avoid redundant authentication *115f2c88fd
HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event *a59636cdd8
tracing: relax trace_event_eval_update() execution with cond_resched() *fb60e9c000
ata: libata-eh: Fix compilation warning in ata_eh_link_report() *22c3641bef
gpio: timberdale: Fix potential deadlock on &tgpio->lock *b4fcf1a0bb
overlayfs: set ctime when setting mtime and atime *4b472c25a5
i2c: mux: Avoid potential false error message in i2c_mux_add_adapter *840b912df5
btrfs: initialize start_slot in btrfs_log_prealloc_extents *9801e2798b
btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1 *d69131b48f
ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone *9ed14f807f
usb: typec: altmodes/displayport: Signal hpd low when exiting mode *f25a13d318
usb: typec: altmodes/displayport: Notify drm subsys of hotplug events *2ea6a14e8a
drm/connector: Add support for out-of-band hotplug notification (v3) *6e55f6a8a4
drm/connector: Add drm_connector_find_by_fwnode() function (v3) *89b1868bab
drm/connector: Add a fwnode pointer to drm_connector and register with ACPI (v2) *86502f1b63
drm/connector: Give connector sysfs devices there own device_type *cedcbf61df
drm/amd/display: Don't set dpms_off for seamless boot *ebba01fcd5
drm/amd/display: only check available pipe to disable vbios mode. *1ac7170004
serial: 8250_omap: Fix errors with no_console_suspend *be300358b5
serial: 8250: omap: Fix imprecise external abort for omap_8250_pm() *fc778e9d79
xhci: track port suspend state correctly in unsuccessful resume cases *1c034c6e22
xhci: decouple usb2 port resume and get_port_status request handling *92088dd886
xhci: clear usb2 resume related variables in one place. *e7abc4b18d
xhci: rename resume_done to resume_timestamp *d44c9285ce
xhci: move port specific items such as state completions to port structure *e2b4de13e5
xhci: cleanup xhci_hub_control port references *95b9f1e392
usb: core: Track SuperSpeed Plus GenXxY *d6316f5929
selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error *69f40ce372
selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting *cb868d8857
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA *7d0728e7ac
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA *3a58c28bff
ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA *1b4659e283
ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks *980dd4dfb9
ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA *e0014184cd
ACPI: resource: Add ASUS model S5402ZA to quirks *7f26f0ac38
ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA *ffcb69e923
ACPI: resources: Add DMI-based legacy IRQ override quirk *8a8918b510
ACPI: Drop acpi_dev_irqresource_disabled() *196896455b
resource: Add irqresource_disabled() *faa9a9d07c
thunderbolt: Workaround an IOMMU fault on certain systems with Intel Maple Ridge *482fa2345f
net: pktgen: Fix interface flags printing *068e4ecea2
netfilter: nft_set_rbtree: .deactivate fails if element has expired *9cef803e9e
neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section *36848adbde
net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve *923e47c0b4
net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register() *a53fc06416
i40e: prevent crash on probe if hw registers have invalid values *9b5661bda3
net: usb: smsc95xx: Fix an error code in smsc95xx_reset() *250cd610f8
ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr *1cef1a2d5c
tun: prevent negative ifindex *f828e15db3
tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb *c39c31c526
tcp: fix excessive TLP and RACK timeouts from HZ rounding *805b38062e
net: rfkill: gpio: prevent value glitch during probe *8023c7e900
net: ipv6: fix return value check in esp_remove_trailer *2ca00d93f2
net: ipv4: fix return value check in esp_remove_trailer *4ba4eec4f4
xfrm: interface: use DEV_STATS_INC() *4d78b9dc79
xfrm: fix a data-race in xfrm_gen_index() *8c6c3d0b9f
qed: fix LL2 RX buffer allocation *88c493297e
drm/i915: Retry gtt fault when out of fence registers *e985d78bdc
nvmet-tcp: Fix a possible UAF in queue intialization setup *287401f92c
netfilter: nft_payload: fix wrong mac header matching *fe37e56ed4
tcp: check mptcp-level constraints for backlog coalescing *6550cbe25d
x86/sev: Check for user-space IOIO pointing to kernel space *5bb9ba7daf
x86/sev: Check IOBM for IOIO exceptions from user-space *d78c5d8c23
x86/sev: Disable MMIO emulation from user mode *459af3fb81
KVM: x86: Mask LVTPC when handling a PMI *4cbac83549
regmap: fix NULL deref on lookup *c95fa5b20f
nfc: nci: fix possible NULL pointer dereference in send_acknowledge() *2e64f4c732
ice: reset first in crash dump kernels *95d68fdc71
ice: fix over-shifted variable *a56c436b43
Bluetooth: avoid memcmp() out of bounds warning *7e83d15e0c
Bluetooth: hci_event: Fix coding style *c6878fa173
Bluetooth: vhci: Fix race when opening vhci device *40a33a129d
Bluetooth: Fix a refcnt underflow problem for hci_conn *ab950561bc
Bluetooth: Reject connection with the device which has same BD_ADDR *0e025a4528
Bluetooth: hci_event: Ignore NULL link key *241f230324
usb: hub: Guard against accesses to uninitialized BOS descriptors *aec24b0963
Documentation: sysctl: align cells in second content column *f10690787d
mm/memory_hotplug: rate limit page migration warnings *bf97ea76ea
lib/Kconfig.debug: do not enable DEBUG_PREEMPT by default *c44b14469a
dev_forward_skb: do not scrub skb mark within the same name space *db9aafa195
ravb: Fix use-after-free issue in ravb_tx_timeout_work() *db375fa550
RDMA/srp: Fix srp_abort() *f022576aa0
RDMA/srp: Set scmnd->result only when scmnd is not NULL *489818719a
arm64: armv8_deprecated: fix unused-function error *da7603cedb
arm64: armv8_deprecated: rework deprected instruction handling *45a26d2a53
arm64: armv8_deprecated: move aarch32 helper earlier *0b6a7a9f6d
arm64: armv8_deprecated move emulation functions *2202536144
arm64: armv8_deprecated: fold ops into insn_emulation *5aa232345e
arm64: rework EL0 MRS emulation *15e964971f
arm64: factor insn read out of call_undef_hook() *0edde7fd1c
arm64: factor out EL1 SSBS emulation hook *7a76df1ae1
arm64: split EL0/EL1 UNDEF handlers *8a8d4cc303
arm64: allow kprobes on EL0 handlers *793ed958b6
arm64: rework BTI exception handling *9113333d7c
arm64: rework FPAC exception handling *a8d7c8484f
arm64: consistently pass ESR_ELx to die() *004bdab6ed
arm64: die(): pass 'err' as long *835cb1f78d
arm64: report EL1 UNDEFs better *6788b10620
x86/alternatives: Disable KASAN in apply_alternatives() *ba4b377210
powerpc/64e: Fix wrong test in __ptep_test_and_clear_young() *dadb86fba6
powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE *288a0593c7
dmaengine: mediatek: Fix deadlock caused by synchronize_irq() *17c653d491
usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call *a906f2eb67
usb: gadget: udc-xilinx: replace memcpy with memcpy_toio *7decb65151
counter: microchip-tcb-capture: Fix the use of internal GCLK logic *a177771bff
pinctrl: avoid unsafe code pattern in find_pinctrl() *2a4a828040
cgroup: Remove duplicates in cgroup v1 tasks file *da7ce52a2f
tee: amdtee: fix use-after-free vulnerability in amdtee_close_session *0ea0231dd1
Input: goodix - ensure int GPIO is in input for gpio_count == 1 && gpio_int_idx == 0 case *39fb79407e
Input: i8042 - add Fujitsu Lifebook E5411 to i8042 quirk table *8d862a3dff
Input: xpad - add PXN V900 support *e8ea649fc3
Input: psmouse - fix fast_reconnect function for PS/2 mode *cd2fbfd8b9
Input: powermate - fix use-after-free in powermate_config_complete *27b6c809d3
ceph: fix type promotion bug on 32bit systems *2b2bf63671
ceph: fix incorrect revoked caps assert in ceph_fill_file_size() *62f6d24f2e
libceph: use kernel_connect() *5850eb4df4
thunderbolt: Check that lane 1 is in CL0 before enabling lane bonding *008ba1a5ad
mcb: remove is_added flag from mcb_device struct *ec93456c02
x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs *b608f4aedc
iio: pressure: ms5611: ms5611_prom_is_valid false negative bug *02388eaf3a
iio: pressure: dps310: Adjust Timeout Settings *2abd2cffa1
iio: pressure: bmp280: Fix NULL pointer exception *aadbf612f8
usb: musb: Modify the "HWVers" register address *bc929a0052
usb: musb: Get the musb_qh poniter after musb_giveback *459eb7c688
usb: dwc3: Soft reset phy on probe for host *d71d0009f9
net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read *4bf69ee6bb
usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer *2d30692c6c
dmaengine: stm32-mdma: abort resume if no ongoing transfer *d346a2ef6b
media: mtk-jpeg: Fix use after free bug due to uncanceled work *014cab5329
net: release reference to inet6_dev pointer *d491ac7aa1
net: change accept_ra_min_rtr_lft to affect all RA lifetimes *354a96770d
net: add sysctl accept_ra_min_rtr_lft *1ceaf0d3a8
Revert "spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe" *649237ccf4
Revert "spi: zynqmp-gqspi: fix clock imbalance on probe failure" *ce03f0234f
workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask() *a424807d86
nfc: nci: assert requested protocol is valid *b5b03da30b
pinctrl: renesas: rzn1: Enable missing PINMUX *6ac22ecdaa
net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn() *31ea13e3ff
ixgbe: fix crash with empty VF macvlan list *b24bd12775
net: phy: mscc: macsec: reject PN update requests *a848ae8b5a
net: macsec: indicate next pn update when offloading *a629f0575c
drm/vmwgfx: fix typo of sizeof argument *d4ba78e552
riscv, bpf: Sign-extend return values *2a8ef2234b
riscv, bpf: Factor out emit_call for kernel and bpf context *1bf4da1818
xen-netback: use default TX queue size for vifs *33548a6b3c
mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type *55e06850c7
ieee802154: ca8210: Fix a potential UAF in ca8210_probe *ef7a0d51bf
ravb: Fix up dma_free_coherent() call in ravb_remove() *1673841da0
drm/msm/dpu: change _dpu_plane_calc_bw() to use u64 to avoid overflow *6004ca7ad2
drm/msm/dsi: skip the wait for video mode done if not applicable *dbbbeaef77
drm/msm/dp: do not reinitialize phy unless retry during link training *31e7e77b24
net: prevent address rewrite in kernel_bind() *22c06bf1f9
quota: Fix slow quotaoff *093af62c02
HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect *cb4a8146e3
lib/test_meminit: fix off-by-one error in test_pages() *06068e7f3f
perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7 *0ed2ad00f3
RDMA/cxgb4: Check skb value for failure to allocate *26788a5b48
RDMA/srp: Do not call scsi_done() from srp_abort() *81982125c3
RDMA/srp: Make struct scsi_cmnd and struct srp_request adjacent Change-Id: Iba6b212fae661ad8efed86e94d12106de6d32786 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -6,3 +6,12 @@ Description:
|
||||
OP-TEE bus provides reference to registered drivers under this directory. The <uuid>
|
||||
matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers
|
||||
are free to create needed API under optee-ta-<uuid> directory.
|
||||
|
||||
What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant
|
||||
Date: November 2023
|
||||
KernelVersion: 6.7
|
||||
Contact: op-tee@lists.trustedfirmware.org
|
||||
Description:
|
||||
Allows to distinguish whether an OP-TEE based TA/device requires user-space
|
||||
tee-supplicant to function properly or not. This attribute will be present for
|
||||
devices which depend on tee-supplicant to be running.
|
||||
|
@@ -57,3 +57,12 @@ Description:
|
||||
* 0 - default,
|
||||
* 1 - overboost,
|
||||
* 2 - silent
|
||||
|
||||
What: /sys/devices/platform/<platform>/dgpu_disable
|
||||
Date: Aug 2022
|
||||
KernelVersion: 5.17
|
||||
Contact: "Luke Jones" <luke@ljones.dev>
|
||||
Description:
|
||||
Disable discrete GPU:
|
||||
* 0 - Enable dGPU,
|
||||
* 1 - Disable dGPU
|
||||
|
@@ -31,9 +31,9 @@ see only some of them, depending on your kernel's configuration.
|
||||
|
||||
Table : Subdirectories in /proc/sys/net
|
||||
|
||||
========= =================== = ========== ==================
|
||||
========= =================== = ========== ===================
|
||||
Directory Content Directory Content
|
||||
========= =================== = ========== ==================
|
||||
========= =================== = ========== ===================
|
||||
802 E802 protocol mptcp Multipath TCP
|
||||
appletalk Appletalk protocol netfilter Network Filter
|
||||
ax25 AX25 netrom NET/ROM
|
||||
@@ -42,7 +42,7 @@ Table : Subdirectories in /proc/sys/net
|
||||
ethernet Ethernet protocol unix Unix domain sockets
|
||||
ipv4 IP version 4 x25 X.25 protocol
|
||||
ipv6 IP version 6
|
||||
========= =================== = ========== ==================
|
||||
========= =================== = ========== ===================
|
||||
|
||||
1. /proc/sys/net/core - Network core options
|
||||
============================================
|
||||
|
@@ -70,6 +70,9 @@ Instead, the 2-factor form of the allocator should be used::
|
||||
|
||||
foo = kmalloc_array(count, size, GFP_KERNEL);
|
||||
|
||||
Specifically, kmalloc() can be replaced with kmalloc_array(), and
|
||||
kzalloc() can be replaced with kcalloc().
|
||||
|
||||
If no 2-factor form is available, the saturate-on-overflow helpers should
|
||||
be used::
|
||||
|
||||
@@ -90,9 +93,20 @@ Instead, use the helper::
|
||||
array usage and switch to a `flexible array member
|
||||
<#zero-length-and-one-element-arrays>`_ instead.
|
||||
|
||||
See array_size(), array3_size(), and struct_size(),
|
||||
for more details as well as the related check_add_overflow() and
|
||||
check_mul_overflow() family of functions.
|
||||
For other calculations, please compose the use of the size_mul(),
|
||||
size_add(), and size_sub() helpers. For example, in the case of::
|
||||
|
||||
foo = krealloc(current_size + chunk_size * (count - 3), GFP_KERNEL);
|
||||
|
||||
Instead, use the helpers::
|
||||
|
||||
foo = krealloc(size_add(current_size,
|
||||
size_mul(chunk_size,
|
||||
size_sub(count, 3))), GFP_KERNEL);
|
||||
|
||||
For more details, also see array3_size() and flex_array_size(),
|
||||
as well as the related check_mul_overflow(), check_add_overflow(),
|
||||
check_sub_overflow(), and check_shl_overflow() family of functions.
|
||||
|
||||
simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull()
|
||||
----------------------------------------------------------------------
|
||||
|
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL = 198
|
||||
SUBLEVEL = 205
|
||||
EXTRAVERSION =
|
||||
NAME = Dare mighty things
|
||||
|
||||
|
@@ -437,7 +437,7 @@
|
||||
};
|
||||
|
||||
gpt1: timer@302d0000 {
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
|
||||
reg = <0x302d0000 0x10000>;
|
||||
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
|
||||
@@ -446,7 +446,7 @@
|
||||
};
|
||||
|
||||
gpt2: timer@302e0000 {
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
|
||||
reg = <0x302e0000 0x10000>;
|
||||
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
|
||||
@@ -456,7 +456,7 @@
|
||||
};
|
||||
|
||||
gpt3: timer@302f0000 {
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
|
||||
reg = <0x302f0000 0x10000>;
|
||||
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
|
||||
@@ -466,7 +466,7 @@
|
||||
};
|
||||
|
||||
gpt4: timer@30300000 {
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
|
||||
compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
|
||||
reg = <0x30300000 0x10000>;
|
||||
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
|
||||
|
@@ -765,6 +765,7 @@
|
||||
&uart3 {
|
||||
interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
|
||||
&omap4_pmx_core 0x17c>;
|
||||
overrun-throttle-ms = <500>;
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
|
@@ -82,7 +82,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
vsdcc_fixed: vsdcc-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "SDCC Power";
|
||||
@@ -90,7 +89,6 @@
|
||||
regulator-max-microvolt = <2700000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
#address-cells = <1>;
|
||||
|
@@ -10,10 +10,6 @@
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
#define __exception_irq_entry __irq_entry
|
||||
#else
|
||||
#define __exception_irq_entry
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARM_EXCEPTION_H */
|
||||
|
@@ -16,6 +16,7 @@
|
||||
ENTRY(mmioset)
|
||||
ENTRY(memset)
|
||||
UNWIND( .fnstart )
|
||||
and r1, r1, #255 @ cast to unsigned char
|
||||
ands r3, r0, #3 @ 1 unaligned?
|
||||
mov ip, r0 @ preserve r0 as return value
|
||||
bne 6f @ 1
|
||||
|
@@ -502,6 +502,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
|
||||
|
||||
name = devm_kasprintf(&pdev->dev,
|
||||
GFP_KERNEL, "mmdc%d", ret);
|
||||
if (!name) {
|
||||
ret = -ENOMEM;
|
||||
goto pmu_release_id;
|
||||
}
|
||||
|
||||
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
|
||||
pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
|
||||
@@ -524,9 +528,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
|
||||
|
||||
pmu_register_err:
|
||||
pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
|
||||
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
|
||||
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
|
||||
hrtimer_cancel(&pmu_mmdc->hrtimer);
|
||||
pmu_release_id:
|
||||
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
|
||||
pmu_free:
|
||||
kfree(pmu_mmdc);
|
||||
return ret;
|
||||
|
@@ -362,7 +362,8 @@ static int __init xen_guest_init(void)
|
||||
* for secondary CPUs as they are brought up.
|
||||
* For uniformity we use VCPUOP_register_vcpu_info even on cpu0.
|
||||
*/
|
||||
xen_vcpu_info = alloc_percpu(struct vcpu_info);
|
||||
xen_vcpu_info = __alloc_percpu(sizeof(struct vcpu_info),
|
||||
1 << fls(sizeof(struct vcpu_info) - 1));
|
||||
if (xen_vcpu_info == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@@ -1065,6 +1065,8 @@ choice
|
||||
config CPU_BIG_ENDIAN
|
||||
bool "Build big-endian kernel"
|
||||
depends on !LD_IS_LLD || LLD_VERSION >= 130000
|
||||
# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
|
||||
depends on AS_IS_GNU || AS_VERSION >= 150000
|
||||
help
|
||||
Say Y if you plan on running a kernel with a big-endian userspace.
|
||||
|
||||
|
@@ -69,7 +69,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x40000000>;
|
||||
};
|
||||
|
||||
|
@@ -55,7 +55,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x20000000>;
|
||||
};
|
||||
|
||||
|
@@ -43,7 +43,7 @@
|
||||
id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
usb_p1_vbus: regulator@0 {
|
||||
usb_p1_vbus: regulator-usb-p1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
@@ -52,7 +52,7 @@
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb_p0_vbus: regulator@1 {
|
||||
usb_p0_vbus: regulator-usb-p0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
|
@@ -30,7 +30,7 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
scp_mem_reserved: scp_mem_region {
|
||||
scp_mem_reserved: memory@50000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0 0x50000000 0 0x2900000>;
|
||||
no-map;
|
||||
|
@@ -95,7 +95,7 @@
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
scp_mem_reserved: scp_mem_region {
|
||||
scp_mem_reserved: memory@50000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0 0x50000000 0 0x2900000>;
|
||||
no-map;
|
||||
|
@@ -129,12 +129,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
tcsr_mutex: hwlock {
|
||||
compatible = "qcom,tcsr-mutex";
|
||||
syscon = <&tcsr_mutex_regs 0 0x80>;
|
||||
#hwlock-cells = <1>;
|
||||
};
|
||||
|
||||
pmuv8: pmu {
|
||||
compatible = "arm,cortex-a53-pmu";
|
||||
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
|
||||
@@ -175,7 +169,7 @@
|
||||
smem {
|
||||
compatible = "qcom,smem";
|
||||
memory-region = <&smem_region>;
|
||||
hwlocks = <&tcsr_mutex 0>;
|
||||
hwlocks = <&tcsr_mutex 3>;
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
@@ -242,9 +236,10 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
tcsr_mutex_regs: syscon@1905000 {
|
||||
compatible = "syscon";
|
||||
reg = <0x0 0x01905000 0x0 0x8000>;
|
||||
tcsr_mutex: hwlock@1905000 {
|
||||
compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
|
||||
reg = <0x0 0x01905000 0x0 0x20000>;
|
||||
#hwlock-cells = <1>;
|
||||
};
|
||||
|
||||
tcsr_q6: syscon@1945000 {
|
||||
|
@@ -1175,7 +1175,7 @@
|
||||
#size-cells = <1>;
|
||||
#iommu-cells = <1>;
|
||||
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
|
||||
ranges = <0 0x01e20000 0x40000>;
|
||||
ranges = <0 0x01e20000 0x20000>;
|
||||
reg = <0x01ef0000 0x3000>;
|
||||
clocks = <&gcc GCC_SMMU_CFG_CLK>,
|
||||
<&gcc GCC_APSS_TCU_CLK>;
|
||||
|
@@ -564,6 +564,8 @@
|
||||
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
|
||||
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
|
||||
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
|
||||
|
||||
qcom,snoc-host-cap-8bit-quirk;
|
||||
};
|
||||
|
||||
/* PINCTRL - additions to nodes defined in sdm845.dtsi */
|
||||
|
@@ -1022,7 +1022,9 @@
|
||||
power-domain@RK3399_PD_VDU {
|
||||
reg = <RK3399_PD_VDU>;
|
||||
clocks = <&cru ACLK_VDU>,
|
||||
<&cru HCLK_VDU>;
|
||||
<&cru HCLK_VDU>,
|
||||
<&cru SCLK_VDU_CA>,
|
||||
<&cru SCLK_VDU_CORE>;
|
||||
pm_qos = <&qos_video_m1_r>,
|
||||
<&qos_video_m1_w>;
|
||||
};
|
||||
@@ -1276,7 +1278,7 @@
|
||||
|
||||
vdec: video-codec@ff660000 {
|
||||
compatible = "rockchip,rk3399-vdec";
|
||||
reg = <0x0 0xff660000 0x0 0x400>;
|
||||
reg = <0x0 0xff660000 0x0 0x480>;
|
||||
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
|
||||
<&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
|
||||
|
@@ -694,7 +694,6 @@ CONFIG_PANIC_TIMEOUT=-1
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_WQ_WATCHDOG=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_BUG_ON_DATA_CORRUPTION=y
|
||||
CONFIG_TRACE_MMIO_ACCESS=y
|
||||
CONFIG_TRACEFS_DISABLE_AUTOMOUNT=y
|
||||
|
@@ -761,6 +761,12 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||
if (pte_hw_dirty(pte))
|
||||
pte = pte_mkdirty(pte);
|
||||
pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
|
||||
/*
|
||||
* If we end up clearing hw dirtiness for a sw-dirty PTE, set hardware
|
||||
* dirtiness again.
|
||||
*/
|
||||
if (pte_sw_dirty(pte))
|
||||
pte = pte_mkdirty(pte);
|
||||
return pte;
|
||||
}
|
||||
|
||||
|
@@ -468,6 +468,7 @@ config MACH_LOONGSON2EF
|
||||
|
||||
config MACH_LOONGSON64
|
||||
bool "Loongson 64-bit family of machines"
|
||||
select ARCH_DMA_DEFAULT_COHERENT
|
||||
select ARCH_SPARSEMEM_ENABLE
|
||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||
select ARCH_MIGHT_HAVE_PC_SERIO
|
||||
@@ -1379,6 +1380,7 @@ config CPU_LOONGSON64
|
||||
select CPU_SUPPORTS_MSA
|
||||
select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
|
||||
select CPU_MIPSR2_IRQ_VI
|
||||
select DMA_NONCOHERENT
|
||||
select WEAK_ORDERING
|
||||
select WEAK_REORDERING_BEYOND_LLSC
|
||||
select MIPS_ASID_BITS_VARIABLE
|
||||
|
@@ -117,7 +117,8 @@ struct irq_source_routing_table {
|
||||
u64 pci_io_start_addr;
|
||||
u64 pci_io_end_addr;
|
||||
u64 pci_config_addr;
|
||||
u32 dma_mask_bits;
|
||||
u16 dma_mask_bits;
|
||||
u16 dma_noncoherent;
|
||||
} __packed;
|
||||
|
||||
struct interface_info {
|
||||
|
@@ -667,7 +667,7 @@ static int kvm_mips_map_page(struct kvm_vcpu *vcpu, unsigned long gpa,
|
||||
gfn_t gfn = gpa >> PAGE_SHIFT;
|
||||
int srcu_idx, err;
|
||||
kvm_pfn_t pfn;
|
||||
pte_t *ptep, entry, old_pte;
|
||||
pte_t *ptep, entry;
|
||||
bool writeable;
|
||||
unsigned long prot_bits;
|
||||
unsigned long mmu_seq;
|
||||
@@ -739,7 +739,6 @@ retry:
|
||||
entry = pfn_pte(pfn, __pgprot(prot_bits));
|
||||
|
||||
/* Write the PTE */
|
||||
old_pte = *ptep;
|
||||
set_pte(ptep, entry);
|
||||
|
||||
err = 0;
|
||||
|
@@ -13,6 +13,8 @@
|
||||
* Copyright (C) 2009 Lemote Inc.
|
||||
* Author: Wu Zhangjin, wuzhangjin@gmail.com
|
||||
*/
|
||||
|
||||
#include <linux/dma-map-ops.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/pci_ids.h>
|
||||
#include <asm/bootinfo.h>
|
||||
@@ -131,8 +133,14 @@ void __init prom_init_env(void)
|
||||
loongson_sysconf.pci_io_base = eirq_source->pci_io_start_addr;
|
||||
loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits;
|
||||
if (loongson_sysconf.dma_mask_bits < 32 ||
|
||||
loongson_sysconf.dma_mask_bits > 64)
|
||||
loongson_sysconf.dma_mask_bits > 64) {
|
||||
loongson_sysconf.dma_mask_bits = 32;
|
||||
dma_default_coherent = true;
|
||||
} else {
|
||||
dma_default_coherent = !eirq_source->dma_noncoherent;
|
||||
}
|
||||
|
||||
pr_info("Firmware: Coherent DMA: %s\n", dma_default_coherent ? "on" : "off");
|
||||
|
||||
loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm;
|
||||
loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown;
|
||||
|
@@ -140,6 +140,11 @@ static __init void reserve_pio_range(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Reserve vgabios if it comes from firmware */
|
||||
if (loongson_sysconf.vgabios_addr)
|
||||
memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr),
|
||||
SZ_256K);
|
||||
}
|
||||
|
||||
void __init arch_init_irq(void)
|
||||
|
@@ -75,7 +75,6 @@
|
||||
|
||||
/* We now return you to your regularly scheduled HPUX. */
|
||||
|
||||
#define ENOSYM 215 /* symbol does not exist in executable */
|
||||
#define ENOTSOCK 216 /* Socket operation on non-socket */
|
||||
#define EDESTADDRREQ 217 /* Destination address required */
|
||||
#define EMSGSIZE 218 /* Message too long */
|
||||
@@ -101,7 +100,6 @@
|
||||
#define ETIMEDOUT 238 /* Connection timed out */
|
||||
#define ECONNREFUSED 239 /* Connection refused */
|
||||
#define EREFUSED ECONNREFUSED /* for HP's NFS apparently */
|
||||
#define EREMOTERELEASE 240 /* Remote peer released connection */
|
||||
#define EHOSTDOWN 241 /* Host is down */
|
||||
#define EHOSTUNREACH 242 /* No route to host */
|
||||
|
||||
|
@@ -465,6 +465,7 @@ struct pdc_model { /* for PDC_MODEL */
|
||||
unsigned long arch_rev;
|
||||
unsigned long pot_key;
|
||||
unsigned long curr_key;
|
||||
unsigned long width; /* default of PSW_W bit (1=enabled) */
|
||||
};
|
||||
|
||||
struct pdc_cache_cf { /* for PDC_CACHE (I/D-caches) */
|
||||
|
@@ -497,13 +497,13 @@
|
||||
* to a CPU TLB 4k PFN (4k => 12 bits to shift) */
|
||||
#define PAGE_ADD_SHIFT (PAGE_SHIFT-12)
|
||||
#define PAGE_ADD_HUGE_SHIFT (REAL_HPAGE_SHIFT-12)
|
||||
#define PFN_START_BIT (63-ASM_PFN_PTE_SHIFT+(63-58)-PAGE_ADD_SHIFT)
|
||||
|
||||
/* Drop prot bits and convert to page addr for iitlbt and idtlbt */
|
||||
.macro convert_for_tlb_insert20 pte,tmp
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
copy \pte,\tmp
|
||||
extrd,u \tmp,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\
|
||||
64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte
|
||||
extrd,u \tmp,PFN_START_BIT,PFN_START_BIT+1,\pte
|
||||
|
||||
depdi _PAGE_SIZE_ENCODING_DEFAULT,63,\
|
||||
(63-58)+PAGE_ADD_SHIFT,\pte
|
||||
@@ -511,8 +511,7 @@
|
||||
depdi _HUGE_PAGE_SIZE_ENCODING_DEFAULT,63,\
|
||||
(63-58)+PAGE_ADD_HUGE_SHIFT,\pte
|
||||
#else /* Huge pages disabled */
|
||||
extrd,u \pte,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\
|
||||
64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte
|
||||
extrd,u \pte,PFN_START_BIT,PFN_START_BIT+1,\pte
|
||||
depdi _PAGE_SIZE_ENCODING_DEFAULT,63,\
|
||||
(63-58)+PAGE_ADD_SHIFT,\pte
|
||||
#endif
|
||||
|
@@ -69,9 +69,8 @@ $bss_loop:
|
||||
stw,ma %arg2,4(%r1)
|
||||
stw,ma %arg3,4(%r1)
|
||||
|
||||
#if !defined(CONFIG_64BIT) && defined(CONFIG_PA20)
|
||||
/* This 32-bit kernel was compiled for PA2.0 CPUs. Check current CPU
|
||||
* and halt kernel if we detect a PA1.x CPU. */
|
||||
#if defined(CONFIG_PA20)
|
||||
/* check for 64-bit capable CPU as required by current kernel */
|
||||
ldi 32,%r10
|
||||
mtctl %r10,%cr11
|
||||
.level 2.0
|
||||
|
@@ -69,9 +69,6 @@
|
||||
|
||||
#define _PTE_NONE_MASK 0
|
||||
|
||||
/* Until my rework is finished, 40x still needs atomic PTE updates */
|
||||
#define PTE_ATOMIC_UPDATES 1
|
||||
|
||||
#define _PAGE_BASE_NC (_PAGE_PRESENT | _PAGE_ACCESSED)
|
||||
#define _PAGE_BASE (_PAGE_BASE_NC)
|
||||
|
||||
|
@@ -94,6 +94,13 @@ static inline pte_t pte_wrprotect(pte_t pte)
|
||||
|
||||
#define pte_wrprotect pte_wrprotect
|
||||
|
||||
static inline int pte_read(pte_t pte)
|
||||
{
|
||||
return (pte_val(pte) & _PAGE_RO) != _PAGE_NA;
|
||||
}
|
||||
|
||||
#define pte_read pte_read
|
||||
|
||||
static inline int pte_write(pte_t pte)
|
||||
{
|
||||
return !(pte_val(pte) & _PAGE_RO);
|
||||
|
@@ -216,7 +216,7 @@ static inline int __ptep_test_and_clear_young(struct mm_struct *mm,
|
||||
{
|
||||
unsigned long old;
|
||||
|
||||
if (pte_young(*ptep))
|
||||
if (!pte_young(*ptep))
|
||||
return 0;
|
||||
old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0);
|
||||
return (old & _PAGE_ACCESSED) != 0;
|
||||
|
@@ -45,7 +45,9 @@ static inline int pte_write(pte_t pte)
|
||||
return pte_val(pte) & _PAGE_RW;
|
||||
}
|
||||
#endif
|
||||
#ifndef pte_read
|
||||
static inline int pte_read(pte_t pte) { return 1; }
|
||||
#endif
|
||||
static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
|
||||
static inline int pte_special(pte_t pte) { return pte_val(pte) & _PAGE_SPECIAL; }
|
||||
static inline int pte_none(pte_t pte) { return (pte_val(pte) & ~_PTE_NONE_MASK) == 0; }
|
||||
|
@@ -23,6 +23,15 @@
|
||||
#include <asm/feature-fixups.h>
|
||||
|
||||
#ifdef CONFIG_VSX
|
||||
#define __REST_1FPVSR(n,c,base) \
|
||||
BEGIN_FTR_SECTION \
|
||||
b 2f; \
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_VSX); \
|
||||
REST_FPR(n,base); \
|
||||
b 3f; \
|
||||
2: REST_VSR(n,c,base); \
|
||||
3:
|
||||
|
||||
#define __REST_32FPVSRS(n,c,base) \
|
||||
BEGIN_FTR_SECTION \
|
||||
b 2f; \
|
||||
@@ -41,9 +50,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX); \
|
||||
2: SAVE_32VSRS(n,c,base); \
|
||||
3:
|
||||
#else
|
||||
#define __REST_1FPVSR(n,b,base) REST_FPR(n, base)
|
||||
#define __REST_32FPVSRS(n,b,base) REST_32FPRS(n, base)
|
||||
#define __SAVE_32FPVSRS(n,b,base) SAVE_32FPRS(n, base)
|
||||
#endif
|
||||
#define REST_1FPVSR(n,c,base) __REST_1FPVSR(n,__REG_##c,__REG_##base)
|
||||
#define REST_32FPVSRS(n,c,base) __REST_32FPVSRS(n,__REG_##c,__REG_##base)
|
||||
#define SAVE_32FPVSRS(n,c,base) __SAVE_32FPVSRS(n,__REG_##c,__REG_##base)
|
||||
|
||||
@@ -67,6 +78,7 @@ _GLOBAL(store_fp_state)
|
||||
SAVE_32FPVSRS(0, R4, R3)
|
||||
mffs fr0
|
||||
stfd fr0,FPSTATE_FPSCR(r3)
|
||||
REST_1FPVSR(0, R4, R3)
|
||||
blr
|
||||
EXPORT_SYMBOL(store_fp_state)
|
||||
|
||||
@@ -132,4 +144,5 @@ _GLOBAL(save_fpu)
|
||||
2: SAVE_32FPVSRS(0, R4, R6)
|
||||
mffs fr0
|
||||
stfd fr0,FPSTATE_FPSCR(r6)
|
||||
REST_1FPVSR(0, R4, R6)
|
||||
blr
|
||||
|
@@ -906,6 +906,8 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
/* Parse memory topology */
|
||||
mem_topology_setup();
|
||||
/* Set max_mapnr before paging_init() */
|
||||
set_max_mapnr(max_pfn);
|
||||
|
||||
/*
|
||||
* Release secondary cpus out of their spinloops at 0x60 now that
|
||||
|
@@ -36,6 +36,9 @@ _GLOBAL(ftrace_regs_caller)
|
||||
/* Save the original return address in A's stack frame */
|
||||
std r0,LRSAVE(r1)
|
||||
|
||||
/* Create a minimal stack frame for representing B */
|
||||
stdu r1, -STACK_FRAME_MIN_SIZE(r1)
|
||||
|
||||
/* Create our stack frame + pt_regs */
|
||||
stdu r1,-SWITCH_FRAME_SIZE(r1)
|
||||
|
||||
@@ -52,7 +55,7 @@ _GLOBAL(ftrace_regs_caller)
|
||||
SAVE_10GPRS(22, r1)
|
||||
|
||||
/* Save previous stack pointer (r1) */
|
||||
addi r8, r1, SWITCH_FRAME_SIZE
|
||||
addi r8, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
std r8, GPR1(r1)
|
||||
|
||||
/* Load special regs for save below */
|
||||
@@ -65,6 +68,8 @@ _GLOBAL(ftrace_regs_caller)
|
||||
mflr r7
|
||||
/* Save it as pt_regs->nip */
|
||||
std r7, _NIP(r1)
|
||||
/* Also save it in B's stackframe header for proper unwind */
|
||||
std r7, LRSAVE+SWITCH_FRAME_SIZE(r1)
|
||||
/* Save the read LR in pt_regs->link */
|
||||
std r0, _LINK(r1)
|
||||
|
||||
@@ -121,7 +126,7 @@ ftrace_regs_call:
|
||||
ld r2, 24(r1)
|
||||
|
||||
/* Pop our stack frame */
|
||||
addi r1, r1, SWITCH_FRAME_SIZE
|
||||
addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
|
||||
#ifdef CONFIG_LIVEPATCH
|
||||
/* Based on the cmpd above, if the NIP was altered handle livepatch */
|
||||
@@ -145,7 +150,7 @@ ftrace_no_trace:
|
||||
mflr r3
|
||||
mtctr r3
|
||||
REST_GPR(3, r1)
|
||||
addi r1, r1, SWITCH_FRAME_SIZE
|
||||
addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
mtlr r0
|
||||
bctr
|
||||
|
||||
@@ -153,6 +158,9 @@ _GLOBAL(ftrace_caller)
|
||||
/* Save the original return address in A's stack frame */
|
||||
std r0, LRSAVE(r1)
|
||||
|
||||
/* Create a minimal stack frame for representing B */
|
||||
stdu r1, -STACK_FRAME_MIN_SIZE(r1)
|
||||
|
||||
/* Create our stack frame + pt_regs */
|
||||
stdu r1, -SWITCH_FRAME_SIZE(r1)
|
||||
|
||||
@@ -166,6 +174,7 @@ _GLOBAL(ftrace_caller)
|
||||
/* Get the _mcount() call site out of LR */
|
||||
mflr r7
|
||||
std r7, _NIP(r1)
|
||||
std r7, LRSAVE+SWITCH_FRAME_SIZE(r1)
|
||||
|
||||
/* Save callee's TOC in the ABI compliant location */
|
||||
std r2, 24(r1)
|
||||
@@ -200,7 +209,7 @@ ftrace_call:
|
||||
ld r2, 24(r1)
|
||||
|
||||
/* Pop our stack frame */
|
||||
addi r1, r1, SWITCH_FRAME_SIZE
|
||||
addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
|
||||
/* Reload original LR */
|
||||
ld r0, LRSAVE(r1)
|
||||
|
@@ -32,6 +32,7 @@ _GLOBAL(store_vr_state)
|
||||
mfvscr v0
|
||||
li r4, VRSTATE_VSCR
|
||||
stvx v0, r4, r3
|
||||
lvx v0, 0, r3
|
||||
blr
|
||||
EXPORT_SYMBOL(store_vr_state)
|
||||
|
||||
@@ -104,6 +105,7 @@ _GLOBAL(save_altivec)
|
||||
mfvscr v0
|
||||
li r4,VRSTATE_VSCR
|
||||
stvx v0,r4,r7
|
||||
lvx v0,0,r7
|
||||
blr
|
||||
|
||||
#ifdef CONFIG_VSX
|
||||
|
@@ -293,7 +293,6 @@ void __init mem_init(void)
|
||||
#endif
|
||||
|
||||
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
|
||||
set_max_mapnr(max_pfn);
|
||||
|
||||
kasan_late_init();
|
||||
|
||||
|
@@ -1289,7 +1289,6 @@ static void power_pmu_disable(struct pmu *pmu)
|
||||
/*
|
||||
* Disable instruction sampling if it was enabled
|
||||
*/
|
||||
if (cpuhw->mmcr.mmcra & MMCRA_SAMPLE_ENABLE)
|
||||
val &= ~MMCRA_SAMPLE_ENABLE;
|
||||
|
||||
/* Disable BHRB via mmcra (BHRBRD) for p10 */
|
||||
@@ -1301,7 +1300,7 @@ static void power_pmu_disable(struct pmu *pmu)
|
||||
* instruction sampling or BHRB.
|
||||
*/
|
||||
if (val != mmcra) {
|
||||
mtspr(SPRN_MMCRA, mmcra);
|
||||
mtspr(SPRN_MMCRA, val);
|
||||
mb();
|
||||
isync();
|
||||
}
|
||||
|
@@ -50,7 +50,7 @@ static int trace_imc_mem_size;
|
||||
* core and trace-imc
|
||||
*/
|
||||
static struct imc_pmu_ref imc_global_refc = {
|
||||
.lock = __SPIN_LOCK_INITIALIZER(imc_global_refc.lock),
|
||||
.lock = __SPIN_LOCK_UNLOCKED(imc_global_refc.lock),
|
||||
.id = 0,
|
||||
.refc = 0,
|
||||
};
|
||||
|
@@ -523,8 +523,10 @@ static ssize_t vcpudispatch_stats_write(struct file *file, const char __user *p,
|
||||
|
||||
if (cmd) {
|
||||
rc = init_cpu_associativity();
|
||||
if (rc)
|
||||
if (rc) {
|
||||
destroy_cpu_associativity();
|
||||
goto out;
|
||||
}
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
disp = per_cpu_ptr(&vcpu_disp_data, cpu);
|
||||
|
@@ -779,7 +779,7 @@ int xive_native_get_queue_info(u32 vp_id, u32 prio,
|
||||
if (out_qpage)
|
||||
*out_qpage = be64_to_cpu(qpage);
|
||||
if (out_qsize)
|
||||
*out_qsize = be32_to_cpu(qsize);
|
||||
*out_qsize = be64_to_cpu(qsize);
|
||||
if (out_qeoi_page)
|
||||
*out_qeoi_page = be64_to_cpu(qeoi_page);
|
||||
if (out_escalate_irq)
|
||||
|
@@ -344,16 +344,14 @@ int handle_misaligned_store(struct pt_regs *regs)
|
||||
} else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) {
|
||||
len = 8;
|
||||
val.data_ulong = GET_RS2S(insn, regs);
|
||||
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP &&
|
||||
((insn >> SH_RD) & 0x1f)) {
|
||||
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP) {
|
||||
len = 8;
|
||||
val.data_ulong = GET_RS2C(insn, regs);
|
||||
#endif
|
||||
} else if ((insn & INSN_MASK_C_SW) == INSN_MATCH_C_SW) {
|
||||
len = 4;
|
||||
val.data_ulong = GET_RS2S(insn, regs);
|
||||
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP &&
|
||||
((insn >> SH_RD) & 0x1f)) {
|
||||
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP) {
|
||||
len = 4;
|
||||
val.data_ulong = GET_RS2C(insn, regs);
|
||||
} else {
|
||||
|
@@ -201,7 +201,7 @@ static void __build_epilogue(bool is_tail_call, struct rv_jit_context *ctx)
|
||||
emit_addi(RV_REG_SP, RV_REG_SP, stack_adjust, ctx);
|
||||
/* Set return value. */
|
||||
if (!is_tail_call)
|
||||
emit_mv(RV_REG_A0, RV_REG_A5, ctx);
|
||||
emit_addiw(RV_REG_A0, RV_REG_A5, 0, ctx);
|
||||
emit_jalr(RV_REG_ZERO, is_tail_call ? RV_REG_T3 : RV_REG_RA,
|
||||
is_tail_call ? 4 : 0, /* skip TCC init */
|
||||
ctx);
|
||||
@@ -394,12 +394,12 @@ static void emit_sext_32_rd(u8 *rd, struct rv_jit_context *ctx)
|
||||
*rd = RV_REG_T2;
|
||||
}
|
||||
|
||||
static int emit_jump_and_link(u8 rd, s64 rvoff, bool force_jalr,
|
||||
static int emit_jump_and_link(u8 rd, s64 rvoff, bool fixed_addr,
|
||||
struct rv_jit_context *ctx)
|
||||
{
|
||||
s64 upper, lower;
|
||||
|
||||
if (rvoff && is_21b_int(rvoff) && !force_jalr) {
|
||||
if (rvoff && fixed_addr && is_21b_int(rvoff)) {
|
||||
emit(rv_jal(rd, rvoff >> 1), ctx);
|
||||
return 0;
|
||||
} else if (in_auipc_jalr_range(rvoff)) {
|
||||
@@ -420,24 +420,17 @@ static bool is_signed_bpf_cond(u8 cond)
|
||||
cond == BPF_JSGE || cond == BPF_JSLE;
|
||||
}
|
||||
|
||||
static int emit_call(bool fixed, u64 addr, struct rv_jit_context *ctx)
|
||||
static int emit_call(u64 addr, bool fixed_addr, struct rv_jit_context *ctx)
|
||||
{
|
||||
s64 off = 0;
|
||||
u64 ip;
|
||||
u8 rd;
|
||||
int ret;
|
||||
|
||||
if (addr && ctx->insns) {
|
||||
ip = (u64)(long)(ctx->insns + ctx->ninsns);
|
||||
off = addr - ip;
|
||||
}
|
||||
|
||||
ret = emit_jump_and_link(RV_REG_RA, off, !fixed, ctx);
|
||||
if (ret)
|
||||
return ret;
|
||||
rd = bpf_to_rv_reg(BPF_REG_0, ctx);
|
||||
emit_mv(rd, RV_REG_A0, ctx);
|
||||
return 0;
|
||||
return emit_jump_and_link(RV_REG_RA, off, fixed_addr, ctx);
|
||||
}
|
||||
|
||||
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx,
|
||||
@@ -731,7 +724,7 @@ out_be:
|
||||
/* JUMP off */
|
||||
case BPF_JMP | BPF_JA:
|
||||
rvoff = rv_offset(i, off, ctx);
|
||||
ret = emit_jump_and_link(RV_REG_ZERO, rvoff, false, ctx);
|
||||
ret = emit_jump_and_link(RV_REG_ZERO, rvoff, true, ctx);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
@@ -850,17 +843,21 @@ out_be:
|
||||
/* function call */
|
||||
case BPF_JMP | BPF_CALL:
|
||||
{
|
||||
bool fixed;
|
||||
bool fixed_addr;
|
||||
u64 addr;
|
||||
|
||||
mark_call(ctx);
|
||||
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass, &addr,
|
||||
&fixed);
|
||||
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass,
|
||||
&addr, &fixed_addr);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = emit_call(fixed, addr, ctx);
|
||||
|
||||
ret = emit_call(addr, fixed_addr, ctx);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (insn->src_reg != BPF_PSEUDO_CALL)
|
||||
emit_mv(bpf_to_rv_reg(BPF_REG_0, ctx), RV_REG_A0, ctx);
|
||||
break;
|
||||
}
|
||||
/* tail call */
|
||||
@@ -875,7 +872,7 @@ out_be:
|
||||
break;
|
||||
|
||||
rvoff = epilogue_offset(ctx);
|
||||
ret = emit_jump_and_link(RV_REG_ZERO, rvoff, false, ctx);
|
||||
ret = emit_jump_and_link(RV_REG_ZERO, rvoff, true, ctx);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
|
@@ -112,7 +112,7 @@ static void mark_kernel_pmd(pud_t *pud, unsigned long addr, unsigned long end)
|
||||
next = pmd_addr_end(addr, end);
|
||||
if (pmd_none(*pmd) || pmd_large(*pmd))
|
||||
continue;
|
||||
page = virt_to_page(pmd_val(*pmd));
|
||||
page = phys_to_page(pmd_val(*pmd));
|
||||
set_bit(PG_arch_1, &page->flags);
|
||||
} while (pmd++, addr = next, addr != end);
|
||||
}
|
||||
@@ -130,8 +130,8 @@ static void mark_kernel_pud(p4d_t *p4d, unsigned long addr, unsigned long end)
|
||||
if (pud_none(*pud) || pud_large(*pud))
|
||||
continue;
|
||||
if (!pud_folded(*pud)) {
|
||||
page = virt_to_page(pud_val(*pud));
|
||||
for (i = 0; i < 3; i++)
|
||||
page = phys_to_page(pud_val(*pud));
|
||||
for (i = 0; i < 4; i++)
|
||||
set_bit(PG_arch_1, &page[i].flags);
|
||||
}
|
||||
mark_kernel_pmd(pud, addr, next);
|
||||
@@ -151,8 +151,8 @@ static void mark_kernel_p4d(pgd_t *pgd, unsigned long addr, unsigned long end)
|
||||
if (p4d_none(*p4d))
|
||||
continue;
|
||||
if (!p4d_folded(*p4d)) {
|
||||
page = virt_to_page(p4d_val(*p4d));
|
||||
for (i = 0; i < 3; i++)
|
||||
page = phys_to_page(p4d_val(*p4d));
|
||||
for (i = 0; i < 4; i++)
|
||||
set_bit(PG_arch_1, &page[i].flags);
|
||||
}
|
||||
mark_kernel_pud(p4d, addr, next);
|
||||
@@ -173,8 +173,8 @@ static void mark_kernel_pgd(void)
|
||||
if (pgd_none(*pgd))
|
||||
continue;
|
||||
if (!pgd_folded(*pgd)) {
|
||||
page = virt_to_page(pgd_val(*pgd));
|
||||
for (i = 0; i < 3; i++)
|
||||
page = phys_to_page(pgd_val(*pgd));
|
||||
for (i = 0; i < 4; i++)
|
||||
set_bit(PG_arch_1, &page[i].flags);
|
||||
}
|
||||
mark_kernel_p4d(pgd, addr, next);
|
||||
|
@@ -717,7 +717,7 @@ void ptep_zap_unused(struct mm_struct *mm, unsigned long addr,
|
||||
pte_clear(mm, addr, ptep);
|
||||
}
|
||||
if (reset)
|
||||
pgste_val(pgste) &= ~_PGSTE_GPS_USAGE_MASK;
|
||||
pgste_val(pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT);
|
||||
pgste_set_unlock(ptep, pgste);
|
||||
preempt_enable();
|
||||
}
|
||||
|
@@ -542,6 +542,17 @@ static void s390_dma_unmap_sg(struct device *dev, struct scatterlist *sg,
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned long *bitmap_vzalloc(size_t bits, gfp_t flags)
|
||||
{
|
||||
size_t n = BITS_TO_LONGS(bits);
|
||||
size_t bytes;
|
||||
|
||||
if (unlikely(check_mul_overflow(n, sizeof(unsigned long), &bytes)))
|
||||
return NULL;
|
||||
|
||||
return vzalloc(bytes);
|
||||
}
|
||||
|
||||
int zpci_dma_init_device(struct zpci_dev *zdev)
|
||||
{
|
||||
int rc;
|
||||
@@ -577,13 +588,13 @@ int zpci_dma_init_device(struct zpci_dev *zdev)
|
||||
zdev->end_dma - zdev->start_dma + 1);
|
||||
zdev->end_dma = zdev->start_dma + zdev->iommu_size - 1;
|
||||
zdev->iommu_pages = zdev->iommu_size >> PAGE_SHIFT;
|
||||
zdev->iommu_bitmap = vzalloc(zdev->iommu_pages / 8);
|
||||
zdev->iommu_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
|
||||
if (!zdev->iommu_bitmap) {
|
||||
rc = -ENOMEM;
|
||||
goto free_dma_table;
|
||||
}
|
||||
if (!s390_iommu_strict) {
|
||||
zdev->lazy_bitmap = vzalloc(zdev->iommu_pages / 8);
|
||||
zdev->lazy_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL);
|
||||
if (!zdev->lazy_bitmap) {
|
||||
rc = -ENOMEM;
|
||||
goto free_bitmap;
|
||||
|
@@ -25,6 +25,17 @@ config STACK_DEBUG
|
||||
every function call and will therefore incur a major
|
||||
performance hit. Most users should say N.
|
||||
|
||||
config EARLY_PRINTK
|
||||
bool "Early printk"
|
||||
depends on SH_STANDARD_BIOS
|
||||
help
|
||||
Say Y here to redirect kernel printk messages to the serial port
|
||||
used by the SH-IPL bootloader, starting very early in the boot
|
||||
process and ending when the kernel's serial console is initialised.
|
||||
This option is only useful while porting the kernel to a new machine,
|
||||
when the kernel may crash or hang before the serial console is
|
||||
initialised. If unsure, say N.
|
||||
|
||||
config 4KSTACKS
|
||||
bool "Use 4Kb for kernel stacks instead of 8Kb"
|
||||
depends on DEBUG_KERNEL && (MMU || BROKEN) && !PAGE_SIZE_64KB
|
||||
|
@@ -463,5 +463,5 @@ ccslow: cmp %g1, 0
|
||||
* we only bother with faults on loads... */
|
||||
|
||||
cc_fault:
|
||||
ret
|
||||
retl
|
||||
clr %o0
|
||||
|
@@ -1360,20 +1360,10 @@ static void pt_addr_filters_fini(struct perf_event *event)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
static u64 canonical_address(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return ((s64)vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits);
|
||||
}
|
||||
|
||||
static u64 is_canonical_address(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return canonical_address(vaddr, vaddr_bits) == vaddr;
|
||||
}
|
||||
|
||||
/* Clamp to a canonical address greater-than-or-equal-to the address given */
|
||||
static u64 clamp_to_ge_canonical_addr(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return is_canonical_address(vaddr, vaddr_bits) ?
|
||||
return __is_canonical_address(vaddr, vaddr_bits) ?
|
||||
vaddr :
|
||||
-BIT_ULL(vaddr_bits - 1);
|
||||
}
|
||||
@@ -1381,7 +1371,7 @@ static u64 clamp_to_ge_canonical_addr(u64 vaddr, u8 vaddr_bits)
|
||||
/* Clamp to a canonical address less-than-or-equal-to the address given */
|
||||
static u64 clamp_to_le_canonical_addr(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return is_canonical_address(vaddr, vaddr_bits) ?
|
||||
return __is_canonical_address(vaddr, vaddr_bits) ?
|
||||
vaddr :
|
||||
BIT_ULL(vaddr_bits - 1) - 1;
|
||||
}
|
||||
|
@@ -67,6 +67,8 @@ struct legacy_pic {
|
||||
void (*make_irq)(unsigned int irq);
|
||||
};
|
||||
|
||||
void legacy_pic_pcat_compat(void);
|
||||
|
||||
extern struct legacy_pic *legacy_pic;
|
||||
extern struct legacy_pic null_legacy_pic;
|
||||
|
||||
|
@@ -505,6 +505,7 @@
|
||||
#define MSR_AMD64_CPUID_FN_1 0xc0011004
|
||||
#define MSR_AMD64_LS_CFG 0xc0011020
|
||||
#define MSR_AMD64_DC_CFG 0xc0011022
|
||||
#define MSR_AMD64_TW_CFG 0xc0011023
|
||||
|
||||
#define MSR_AMD64_DE_CFG 0xc0011029
|
||||
#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1
|
||||
@@ -541,12 +542,17 @@
|
||||
|
||||
#define MSR_AMD64_VIRT_SPEC_CTRL 0xc001011f
|
||||
|
||||
/* Fam 17h MSRs */
|
||||
#define MSR_F17H_IRPERF 0xc00000e9
|
||||
/* Zen4 */
|
||||
#define MSR_ZEN4_BP_CFG 0xc001102e
|
||||
#define MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT 5
|
||||
|
||||
/* Zen 2 */
|
||||
#define MSR_ZEN2_SPECTRAL_CHICKEN 0xc00110e3
|
||||
#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT BIT_ULL(1)
|
||||
|
||||
/* Fam 17h MSRs */
|
||||
#define MSR_F17H_IRPERF 0xc00000e9
|
||||
|
||||
/* Fam 16h MSRs */
|
||||
#define MSR_F16H_L2I_PERF_CTL 0xc0010230
|
||||
#define MSR_F16H_L2I_PERF_CTR 0xc0010231
|
||||
|
@@ -12,13 +12,6 @@
|
||||
|
||||
#define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
|
||||
|
||||
/*
|
||||
* Too small node sizes may confuse the VM badly. Usually they
|
||||
* result from BIOS bugs. So dont recognize nodes as standalone
|
||||
* NUMA entities that have less than this amount of RAM listed:
|
||||
*/
|
||||
#define NODE_MIN_SIZE (4*1024*1024)
|
||||
|
||||
extern int numa_off;
|
||||
|
||||
/*
|
||||
|
@@ -71,6 +71,16 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
|
||||
extern bool __virt_addr_valid(unsigned long kaddr);
|
||||
#define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr))
|
||||
|
||||
static __always_inline u64 __canonical_address(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return ((s64)vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits);
|
||||
}
|
||||
|
||||
static __always_inline u64 __is_canonical_address(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return __canonical_address(vaddr, vaddr_bits) == vaddr;
|
||||
}
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#include <asm-generic/memory_model.h>
|
||||
|
@@ -108,27 +108,16 @@ extern unsigned long _brk_end;
|
||||
void *extend_brk(size_t size, size_t align);
|
||||
|
||||
/*
|
||||
* Reserve space in the brk section. The name must be unique within
|
||||
* the file, and somewhat descriptive. The size is in bytes. Must be
|
||||
* used at file scope.
|
||||
* Reserve space in the .brk section, which is a block of memory from which the
|
||||
* caller is allowed to allocate very early (before even memblock is available)
|
||||
* by calling extend_brk(). All allocated memory will be eventually converted
|
||||
* to memblock. Any leftover unallocated memory will be freed.
|
||||
*
|
||||
* (This uses a temp function to wrap the asm so we can pass it the
|
||||
* size parameter; otherwise we wouldn't be able to. We can't use a
|
||||
* "section" attribute on a normal variable because it always ends up
|
||||
* being @progbits, which ends up allocating space in the vmlinux
|
||||
* executable.)
|
||||
* The size is in bytes.
|
||||
*/
|
||||
#define RESERVE_BRK(name,sz) \
|
||||
static void __section(".discard.text") __used notrace \
|
||||
__brk_reservation_fn_##name##__(void) { \
|
||||
asm volatile ( \
|
||||
".pushsection .brk_reservation,\"aw\",@nobits;" \
|
||||
".brk." #name ":" \
|
||||
" 1:.skip %c0;" \
|
||||
" .size .brk." #name ", . - 1b;" \
|
||||
" .popsection" \
|
||||
: : "i" (sz)); \
|
||||
}
|
||||
#define RESERVE_BRK(name, size) \
|
||||
__section(".bss..brk") __aligned(1) __used \
|
||||
static char __brk_##name[size]
|
||||
|
||||
/* Helper for reserving space for arrays of things */
|
||||
#define RESERVE_BRK_ARRAY(type, name, entries) \
|
||||
@@ -146,12 +135,19 @@ asmlinkage void __init x86_64_start_reservations(char *real_mode_data);
|
||||
|
||||
#endif /* __i386__ */
|
||||
#endif /* _SETUP */
|
||||
#else
|
||||
#define RESERVE_BRK(name,sz) \
|
||||
.pushsection .brk_reservation,"aw",@nobits; \
|
||||
.brk.name: \
|
||||
1: .skip sz; \
|
||||
.size .brk.name,.-1b; \
|
||||
|
||||
#else /* __ASSEMBLY */
|
||||
|
||||
.macro __RESERVE_BRK name, size
|
||||
.pushsection .bss..brk, "aw"
|
||||
SYM_DATA_START(__brk_\name)
|
||||
.skip \size
|
||||
SYM_DATA_END(__brk_\name)
|
||||
.popsection
|
||||
.endm
|
||||
|
||||
#define RESERVE_BRK(name, size) __RESERVE_BRK name, size
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _ASM_X86_SETUP_H */
|
||||
|
@@ -446,7 +446,7 @@ copy_mc_to_kernel(void *to, const void *from, unsigned len);
|
||||
#define copy_mc_to_kernel copy_mc_to_kernel
|
||||
|
||||
unsigned long __must_check
|
||||
copy_mc_to_user(void *to, const void *from, unsigned len);
|
||||
copy_mc_to_user(void __user *to, const void *from, unsigned len);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@@ -141,6 +141,9 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
|
||||
madt->address);
|
||||
}
|
||||
|
||||
if (madt->flags & ACPI_MADT_PCAT_COMPAT)
|
||||
legacy_pic_pcat_compat();
|
||||
|
||||
default_acpi_madt_oem_check(madt->header.oem_id,
|
||||
madt->header.oem_table_id);
|
||||
|
||||
|
@@ -424,6 +424,17 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
|
||||
u8 insn_buff[MAX_PATCH_LEN];
|
||||
|
||||
DPRINTK("alt table %px, -> %px", start, end);
|
||||
|
||||
/*
|
||||
* In the case CONFIG_X86_5LEVEL=y, KASAN_SHADOW_START is defined using
|
||||
* cpu_feature_enabled(X86_FEATURE_LA57) and is therefore patched here.
|
||||
* During the process, KASAN becomes confused seeing partial LA57
|
||||
* conversion and triggers a false-positive out-of-bound report.
|
||||
*
|
||||
* Disable KASAN until the patching is complete.
|
||||
*/
|
||||
kasan_disable_current();
|
||||
|
||||
/*
|
||||
* The scan order should be from start to end. A later scanned
|
||||
* alternative code can overwrite previously scanned alternative code.
|
||||
@@ -491,6 +502,8 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
|
||||
next:
|
||||
optimize_nops(instr, a->instrlen);
|
||||
}
|
||||
|
||||
kasan_enable_current();
|
||||
}
|
||||
|
||||
#if defined(CONFIG_RETPOLINE) && defined(CONFIG_STACK_VALIDATION)
|
||||
|
@@ -81,6 +81,10 @@ static const int amd_div0[] =
|
||||
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x17, 0x00, 0x0, 0x2f, 0xf),
|
||||
AMD_MODEL_RANGE(0x17, 0x50, 0x0, 0x5f, 0xf));
|
||||
|
||||
static const int amd_erratum_1485[] =
|
||||
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x19, 0x10, 0x0, 0x1f, 0xf),
|
||||
AMD_MODEL_RANGE(0x19, 0x60, 0x0, 0xaf, 0xf));
|
||||
|
||||
static bool cpu_has_amd_erratum(struct cpuinfo_x86 *cpu, const int *erratum)
|
||||
{
|
||||
int osvw_id = *erratum++;
|
||||
@@ -1178,6 +1182,10 @@ static void init_amd(struct cpuinfo_x86 *c)
|
||||
pr_notice_once("AMD Zen1 DIV0 bug detected. Disable SMT for full protection.\n");
|
||||
setup_force_cpu_bug(X86_BUG_DIV0);
|
||||
}
|
||||
|
||||
if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
|
||||
cpu_has_amd_erratum(c, amd_erratum_1485))
|
||||
msr_set_bit(MSR_ZEN4_BP_CFG, MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
@@ -1320,6 +1328,9 @@ static void zenbleed_check_cpu(void *unused)
|
||||
|
||||
void amd_check_microcode(void)
|
||||
{
|
||||
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
|
||||
return;
|
||||
|
||||
on_each_cpu(zenbleed_check_cpu, NULL, 1);
|
||||
}
|
||||
|
||||
|
@@ -2407,7 +2407,7 @@ static void __init srso_select_mitigation(void)
|
||||
pr_info("%s%s\n", srso_strings[srso_mitigation], (has_microcode ? "" : ", no microcode"));
|
||||
|
||||
pred_cmd:
|
||||
if ((boot_cpu_has(X86_FEATURE_SRSO_NO) || srso_cmd == SRSO_CMD_OFF) &&
|
||||
if ((!boot_cpu_has_bug(X86_BUG_SRSO) || srso_cmd == SRSO_CMD_OFF) &&
|
||||
boot_cpu_has(X86_FEATURE_SBPB))
|
||||
x86_pred_cmd = PRED_CMD_SBPB;
|
||||
}
|
||||
|
@@ -89,7 +89,11 @@ static void hygon_get_topology(struct cpuinfo_x86 *c)
|
||||
if (!err)
|
||||
c->x86_coreid_bits = get_count_order(c->x86_max_cores);
|
||||
|
||||
/* Socket ID is ApicId[6] for these processors. */
|
||||
/*
|
||||
* Socket ID is ApicId[6] for the processors with model <= 0x3
|
||||
* when running on host.
|
||||
*/
|
||||
if (!boot_cpu_has(X86_FEATURE_HYPERVISOR) && c->x86_model <= 0x3)
|
||||
c->phys_proc_id = c->apicid >> APICID_SOCKET_ID_BIT;
|
||||
|
||||
cacheinfo_hygon_init_llc_id(c, cpu);
|
||||
|
@@ -80,7 +80,7 @@ static struct desc_struct startup_gdt[GDT_ENTRIES] = {
|
||||
* while the kernel still uses a direct mapping.
|
||||
*/
|
||||
static struct desc_ptr startup_gdt_descr = {
|
||||
.size = sizeof(startup_gdt),
|
||||
.size = sizeof(startup_gdt)-1,
|
||||
.address = 0,
|
||||
};
|
||||
|
||||
|
@@ -32,6 +32,7 @@
|
||||
*/
|
||||
static void init_8259A(int auto_eoi);
|
||||
|
||||
static bool pcat_compat __ro_after_init;
|
||||
static int i8259A_auto_eoi;
|
||||
DEFINE_RAW_SPINLOCK(i8259A_lock);
|
||||
|
||||
@@ -301,15 +302,32 @@ static void unmask_8259A(void)
|
||||
|
||||
static int probe_8259A(void)
|
||||
{
|
||||
unsigned char new_val, probe_val = ~(1 << PIC_CASCADE_IR);
|
||||
unsigned long flags;
|
||||
unsigned char probe_val = ~(1 << PIC_CASCADE_IR);
|
||||
unsigned char new_val;
|
||||
|
||||
/*
|
||||
* Check to see if we have a PIC.
|
||||
* Mask all except the cascade and read
|
||||
* back the value we just wrote. If we don't
|
||||
* have a PIC, we will read 0xff as opposed to the
|
||||
* value we wrote.
|
||||
* If MADT has the PCAT_COMPAT flag set, then do not bother probing
|
||||
* for the PIC. Some BIOSes leave the PIC uninitialized and probing
|
||||
* fails.
|
||||
*
|
||||
* Right now this causes problems as quite some code depends on
|
||||
* nr_legacy_irqs() > 0 or has_legacy_pic() == true. This is silly
|
||||
* when the system has an IO/APIC because then PIC is not required
|
||||
* at all, except for really old machines where the timer interrupt
|
||||
* must be routed through the PIC. So just pretend that the PIC is
|
||||
* there and let legacy_pic->init() initialize it for nothing.
|
||||
*
|
||||
* Alternatively this could just try to initialize the PIC and
|
||||
* repeat the probe, but for cases where there is no PIC that's
|
||||
* just pointless.
|
||||
*/
|
||||
if (pcat_compat)
|
||||
return nr_legacy_irqs();
|
||||
|
||||
/*
|
||||
* Check to see if we have a PIC. Mask all except the cascade and
|
||||
* read back the value we just wrote. If we don't have a PIC, we
|
||||
* will read 0xff as opposed to the value we wrote.
|
||||
*/
|
||||
raw_spin_lock_irqsave(&i8259A_lock, flags);
|
||||
|
||||
@@ -431,5 +449,9 @@ static int __init i8259A_init_ops(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
device_initcall(i8259A_init_ops);
|
||||
|
||||
void __init legacy_pic_pcat_compat(void)
|
||||
{
|
||||
pcat_compat = true;
|
||||
}
|
||||
|
@@ -64,11 +64,6 @@ RESERVE_BRK(dmi_alloc, 65536);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Range of the BSS area. The size of the BSS area is determined
|
||||
* at link time, with RESERVE_BRK*() facility reserving additional
|
||||
* chunks.
|
||||
*/
|
||||
unsigned long _brk_start = (unsigned long)__brk_base;
|
||||
unsigned long _brk_end = (unsigned long)__brk_base;
|
||||
|
||||
|
@@ -997,6 +997,9 @@ static enum es_result vc_handle_mmio(struct ghcb *ghcb,
|
||||
enum es_result ret;
|
||||
long *reg_data;
|
||||
|
||||
if (user_mode(ctxt->regs))
|
||||
return ES_UNSUPPORTED;
|
||||
|
||||
switch (insn->opcode.bytes[0]) {
|
||||
/* MMIO Write */
|
||||
case 0x88:
|
||||
|
@@ -414,7 +414,7 @@ SECTIONS
|
||||
.brk : AT(ADDR(.brk) - LOAD_OFFSET) {
|
||||
__brk_base = .;
|
||||
. += 64 * 1024; /* 64k alignment slop space */
|
||||
*(.brk_reservation) /* areas brk users have reserved */
|
||||
*(.bss..brk) /* areas brk users have reserved */
|
||||
__brk_limit = .;
|
||||
}
|
||||
|
||||
|
@@ -688,7 +688,7 @@ static inline u8 ctxt_virt_addr_bits(struct x86_emulate_ctxt *ctxt)
|
||||
static inline bool emul_is_noncanonical_address(u64 la,
|
||||
struct x86_emulate_ctxt *ctxt)
|
||||
{
|
||||
return get_canonical(la, ctxt_virt_addr_bits(ctxt)) != la;
|
||||
return !__is_canonical_address(la, ctxt_virt_addr_bits(ctxt));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -738,7 +738,7 @@ static __always_inline int __linearize(struct x86_emulate_ctxt *ctxt,
|
||||
case X86EMUL_MODE_PROT64:
|
||||
*linear = la;
|
||||
va_bits = ctxt_virt_addr_bits(ctxt);
|
||||
if (get_canonical(la, va_bits) != la)
|
||||
if (!__is_canonical_address(la, va_bits))
|
||||
goto bad;
|
||||
|
||||
*max_size = min_t(u64, ~0u, (1ull << va_bits) - la);
|
||||
|
@@ -674,10 +674,12 @@ static int stimer_set_count(struct kvm_vcpu_hv_stimer *stimer, u64 count,
|
||||
|
||||
stimer_cleanup(stimer);
|
||||
stimer->count = count;
|
||||
if (!host) {
|
||||
if (stimer->count == 0)
|
||||
stimer->config.enable = 0;
|
||||
else if (stimer->config.auto_enable)
|
||||
stimer->config.enable = 1;
|
||||
}
|
||||
|
||||
if (stimer->config.enable)
|
||||
stimer_mark_pending(stimer, false);
|
||||
|
@@ -2397,13 +2397,17 @@ int kvm_apic_local_deliver(struct kvm_lapic *apic, int lvt_type)
|
||||
{
|
||||
u32 reg = kvm_lapic_get_reg(apic, lvt_type);
|
||||
int vector, mode, trig_mode;
|
||||
int r;
|
||||
|
||||
if (kvm_apic_hw_enabled(apic) && !(reg & APIC_LVT_MASKED)) {
|
||||
vector = reg & APIC_VECTOR_MASK;
|
||||
mode = reg & APIC_MODE_MASK;
|
||||
trig_mode = reg & APIC_LVT_LEVEL_TRIGGER;
|
||||
return __apic_accept_irq(apic, mode, vector, 1, trig_mode,
|
||||
NULL);
|
||||
|
||||
r = __apic_accept_irq(apic, mode, vector, 1, trig_mode, NULL);
|
||||
if (r && lvt_type == APIC_LVTPC)
|
||||
kvm_lapic_set_reg(apic, APIC_LVTPC, reg | APIC_LVT_MASKED);
|
||||
return r;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1640,7 +1640,7 @@ static int __kvm_set_msr(struct kvm_vcpu *vcpu, u32 index, u64 data,
|
||||
* value, and that something deterministic happens if the guest
|
||||
* invokes 64-bit SYSENTER.
|
||||
*/
|
||||
data = get_canonical(data, vcpu_virt_addr_bits(vcpu));
|
||||
data = __canonical_address(data, vcpu_virt_addr_bits(vcpu));
|
||||
}
|
||||
|
||||
msr.data = data;
|
||||
@@ -3132,6 +3132,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_PATCH_LOADER:
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
case MSR_AMD64_TW_CFG:
|
||||
case MSR_F15H_EX_CFG:
|
||||
break;
|
||||
|
||||
@@ -3485,6 +3486,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
|
||||
case MSR_AMD64_BU_CFG2:
|
||||
case MSR_IA32_PERF_CTL:
|
||||
case MSR_AMD64_DC_CFG:
|
||||
case MSR_AMD64_TW_CFG:
|
||||
case MSR_F15H_EX_CFG:
|
||||
/*
|
||||
* Intel Sandy Bridge CPUs must support the RAPL (running average power
|
||||
|
@@ -156,14 +156,9 @@ static inline u8 vcpu_virt_addr_bits(struct kvm_vcpu *vcpu)
|
||||
return kvm_read_cr4_bits(vcpu, X86_CR4_LA57) ? 57 : 48;
|
||||
}
|
||||
|
||||
static inline u64 get_canonical(u64 la, u8 vaddr_bits)
|
||||
{
|
||||
return ((int64_t)la << (64 - vaddr_bits)) >> (64 - vaddr_bits);
|
||||
}
|
||||
|
||||
static inline bool is_noncanonical_address(u64 la, struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return get_canonical(la, vcpu_virt_addr_bits(vcpu)) != la;
|
||||
return !__is_canonical_address(la, vcpu_virt_addr_bits(vcpu));
|
||||
}
|
||||
|
||||
static inline void vcpu_cache_mmio_info(struct kvm_vcpu *vcpu,
|
||||
|
@@ -74,23 +74,23 @@ unsigned long __must_check copy_mc_to_kernel(void *dst, const void *src, unsigne
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(copy_mc_to_kernel);
|
||||
|
||||
unsigned long __must_check copy_mc_to_user(void *dst, const void *src, unsigned len)
|
||||
unsigned long __must_check copy_mc_to_user(void __user *dst, const void *src, unsigned len)
|
||||
{
|
||||
unsigned long ret;
|
||||
|
||||
if (copy_mc_fragile_enabled) {
|
||||
__uaccess_begin();
|
||||
ret = copy_mc_fragile(dst, src, len);
|
||||
ret = copy_mc_fragile((__force void *)dst, src, len);
|
||||
__uaccess_end();
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (static_cpu_has(X86_FEATURE_ERMS)) {
|
||||
__uaccess_begin();
|
||||
ret = copy_mc_enhanced_fast_string(dst, src, len);
|
||||
ret = copy_mc_enhanced_fast_string((__force void *)dst, src, len);
|
||||
__uaccess_end();
|
||||
return ret;
|
||||
}
|
||||
|
||||
return copy_user_generic(dst, src, len);
|
||||
return copy_user_generic((__force void *)dst, src, len);
|
||||
}
|
||||
|
@@ -4,22 +4,26 @@
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
static __always_inline u64 canonical_address(u64 vaddr, u8 vaddr_bits)
|
||||
{
|
||||
return ((s64)vaddr << (64 - vaddr_bits)) >> (64 - vaddr_bits);
|
||||
}
|
||||
|
||||
bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)
|
||||
{
|
||||
unsigned long vaddr = (unsigned long)unsafe_src;
|
||||
|
||||
/*
|
||||
* Range covering the highest possible canonical userspace address
|
||||
* as well as non-canonical address range. For the canonical range
|
||||
* we also need to include the userspace guard page.
|
||||
* Do not allow userspace addresses. This disallows
|
||||
* normal userspace and the userspace guard page:
|
||||
*/
|
||||
return vaddr >= TASK_SIZE_MAX + PAGE_SIZE &&
|
||||
canonical_address(vaddr, boot_cpu_data.x86_virt_bits) == vaddr;
|
||||
if (vaddr < TASK_SIZE_MAX + PAGE_SIZE)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* Allow everything during early boot before 'x86_virt_bits'
|
||||
* is initialized. Needed for instruction decoding in early
|
||||
* exception handlers.
|
||||
*/
|
||||
if (!boot_cpu_data.x86_virt_bits)
|
||||
return true;
|
||||
|
||||
return __is_canonical_address(vaddr, boot_cpu_data.x86_virt_bits);
|
||||
}
|
||||
#else
|
||||
bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)
|
||||
|
@@ -602,13 +602,6 @@ static int __init numa_register_memblks(struct numa_meminfo *mi)
|
||||
if (start >= end)
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Don't confuse VM with a node that doesn't have the
|
||||
* minimum amount of memory:
|
||||
*/
|
||||
if (end && (end - start) < NODE_MIN_SIZE)
|
||||
continue;
|
||||
|
||||
alloc_node_data(nid);
|
||||
}
|
||||
|
||||
|
@@ -1409,6 +1409,7 @@ static void tg_conf_updated(struct throtl_grp *tg, bool global)
|
||||
tg_bps_limit(tg, READ), tg_bps_limit(tg, WRITE),
|
||||
tg_iops_limit(tg, READ), tg_iops_limit(tg, WRITE));
|
||||
|
||||
rcu_read_lock();
|
||||
/*
|
||||
* Update has_rules[] flags for the updated tg's subtree. A tg is
|
||||
* considered to have rules if either the tg itself or any of its
|
||||
@@ -1436,6 +1437,7 @@ static void tg_conf_updated(struct throtl_grp *tg, bool global)
|
||||
this_tg->latency_target = max(this_tg->latency_target,
|
||||
parent_tg->latency_target);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
/*
|
||||
* We're already holding queue_lock and know @tg is valid. Let's
|
||||
|
@@ -117,6 +117,8 @@ static int pcrypt_aead_encrypt(struct aead_request *req)
|
||||
err = padata_do_parallel(ictx->psenc, padata, &ctx->cb_cpu);
|
||||
if (!err)
|
||||
return -EINPROGRESS;
|
||||
if (err == -EBUSY)
|
||||
return -EAGAIN;
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -164,6 +166,8 @@ static int pcrypt_aead_decrypt(struct aead_request *req)
|
||||
err = padata_do_parallel(ictx->psdec, padata, &ctx->cb_cpu);
|
||||
if (!err)
|
||||
return -EINPROGRESS;
|
||||
if (err == -EBUSY)
|
||||
return -EAGAIN;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@@ -156,8 +156,8 @@ static int create_pnp_modalias(struct acpi_device *acpi_dev, char *modalias,
|
||||
return 0;
|
||||
|
||||
len = snprintf(modalias, size, "acpi:");
|
||||
if (len <= 0)
|
||||
return len;
|
||||
if (len >= size)
|
||||
return -ENOMEM;
|
||||
|
||||
size -= len;
|
||||
|
||||
@@ -210,8 +210,10 @@ static int create_of_modalias(struct acpi_device *acpi_dev, char *modalias,
|
||||
len = snprintf(modalias, size, "of:N%sT", (char *)buf.pointer);
|
||||
ACPI_FREE(buf.pointer);
|
||||
|
||||
if (len <= 0)
|
||||
return len;
|
||||
if (len >= size)
|
||||
return -ENOMEM;
|
||||
|
||||
size -= len;
|
||||
|
||||
of_compatible = acpi_dev->data.of_compatible;
|
||||
if (of_compatible->type == ACPI_TYPE_PACKAGE) {
|
||||
|
@@ -52,6 +52,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
|
||||
int polarity)
|
||||
{
|
||||
struct irq_fwspec fwspec;
|
||||
unsigned int irq;
|
||||
|
||||
if (WARN_ON(!acpi_gsi_domain_id)) {
|
||||
pr_warn("GSI: No registered irqchip, giving up\n");
|
||||
@@ -63,7 +64,11 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger,
|
||||
fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity);
|
||||
fwspec.param_count = 2;
|
||||
|
||||
return irq_create_fwspec_mapping(&fwspec);
|
||||
irq = irq_create_fwspec_mapping(&fwspec);
|
||||
if (!irq)
|
||||
return -EINVAL;
|
||||
|
||||
return irq;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_register_gsi);
|
||||
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/dmi.h>
|
||||
|
||||
#ifdef CONFIG_X86
|
||||
#define valid_IRQ(i) (((i) != 0) && ((i) != 2))
|
||||
@@ -380,21 +381,136 @@ unsigned int acpi_dev_get_irq_type(int triggering, int polarity)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(acpi_dev_get_irq_type);
|
||||
|
||||
static void acpi_dev_irqresource_disabled(struct resource *res, u32 gsi)
|
||||
static const struct dmi_system_id medion_laptop[] = {
|
||||
{
|
||||
res->start = gsi;
|
||||
res->end = gsi;
|
||||
res->flags = IORESOURCE_IRQ | IORESOURCE_DISABLED | IORESOURCE_UNSET;
|
||||
.ident = "MEDION P15651",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "M15T"),
|
||||
},
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
static const struct dmi_system_id asus_laptop[] = {
|
||||
{
|
||||
.ident = "Asus Vivobook K3402ZA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "K3402ZA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus Vivobook K3502ZA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "K3502ZA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus Vivobook S5402ZA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "S5402ZA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus Vivobook S5602ZA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "S5602ZA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus ExpertBook B1402CBA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "B1402CBA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus ExpertBook B1502CBA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "B1502CBA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus ExpertBook B2402CBA",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "B2402CBA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
/* TongFang GMxXGxx/TUXEDO Polaris 15 Gen5 AMD */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"),
|
||||
},
|
||||
},
|
||||
{
|
||||
/* Asus ExpertBook B1402CVA */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "B1402CVA"),
|
||||
},
|
||||
},
|
||||
{
|
||||
/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GM6XGxX"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.ident = "Asus ExpertBook B2502",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "B2502CBA"),
|
||||
},
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
struct irq_override_cmp {
|
||||
const struct dmi_system_id *system;
|
||||
unsigned char irq;
|
||||
unsigned char triggering;
|
||||
unsigned char polarity;
|
||||
unsigned char shareable;
|
||||
};
|
||||
|
||||
static const struct irq_override_cmp skip_override_table[] = {
|
||||
{ medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 },
|
||||
{ asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 },
|
||||
};
|
||||
|
||||
static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
|
||||
u8 shareable)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) {
|
||||
const struct irq_override_cmp *entry = &skip_override_table[i];
|
||||
|
||||
if (dmi_check_system(entry->system) &&
|
||||
entry->irq == gsi &&
|
||||
entry->triggering == triggering &&
|
||||
entry->polarity == polarity &&
|
||||
entry->shareable == shareable)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
|
||||
u8 triggering, u8 polarity, u8 shareable,
|
||||
bool legacy)
|
||||
bool check_override)
|
||||
{
|
||||
int irq, p, t;
|
||||
|
||||
if (!valid_IRQ(gsi)) {
|
||||
acpi_dev_irqresource_disabled(res, gsi);
|
||||
irqresource_disabled(res, gsi);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -408,7 +524,9 @@ static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
|
||||
* using extended IRQ descriptors we take the IRQ configuration
|
||||
* from _CRS directly.
|
||||
*/
|
||||
if (legacy && !acpi_get_override_irq(gsi, &t, &p)) {
|
||||
if (check_override &&
|
||||
acpi_dev_irq_override(gsi, triggering, polarity, shareable) &&
|
||||
!acpi_get_override_irq(gsi, &t, &p)) {
|
||||
u8 trig = t ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
|
||||
u8 pol = p ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
|
||||
|
||||
@@ -426,7 +544,7 @@ static void acpi_dev_get_irqresource(struct resource *res, u32 gsi,
|
||||
res->start = irq;
|
||||
res->end = irq;
|
||||
} else {
|
||||
acpi_dev_irqresource_disabled(res, gsi);
|
||||
irqresource_disabled(res, gsi);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,7 +581,7 @@ bool acpi_dev_resource_interrupt(struct acpi_resource *ares, int index,
|
||||
*/
|
||||
irq = &ares->data.irq;
|
||||
if (index >= irq->interrupt_count) {
|
||||
acpi_dev_irqresource_disabled(res, 0);
|
||||
irqresource_disabled(res, 0);
|
||||
return false;
|
||||
}
|
||||
acpi_dev_get_irqresource(res, irq->interrupts[index],
|
||||
@@ -473,7 +591,7 @@ bool acpi_dev_resource_interrupt(struct acpi_resource *ares, int index,
|
||||
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
|
||||
ext_irq = &ares->data.extended_irq;
|
||||
if (index >= ext_irq->interrupt_count) {
|
||||
acpi_dev_irqresource_disabled(res, 0);
|
||||
irqresource_disabled(res, 0);
|
||||
return false;
|
||||
}
|
||||
if (is_gsi(ext_irq))
|
||||
@@ -481,7 +599,7 @@ bool acpi_dev_resource_interrupt(struct acpi_resource *ares, int index,
|
||||
ext_irq->triggering, ext_irq->polarity,
|
||||
ext_irq->shareable, false);
|
||||
else
|
||||
acpi_dev_irqresource_disabled(res, 0);
|
||||
irqresource_disabled(res, 0);
|
||||
break;
|
||||
default:
|
||||
res->flags = 0;
|
||||
|
@@ -2224,7 +2224,7 @@ static void ata_eh_link_report(struct ata_link *link)
|
||||
struct ata_eh_context *ehc = &link->eh_context;
|
||||
struct ata_queued_cmd *qc;
|
||||
const char *frozen, *desc;
|
||||
char tries_buf[6] = "";
|
||||
char tries_buf[16] = "";
|
||||
int tag, nr_failed = 0;
|
||||
|
||||
if (ehc->i.flags & ATA_EHI_QUIET)
|
||||
|
@@ -82,6 +82,9 @@ static int isapnp_init_one(struct pnp_dev *idev, const struct pnp_device_id *dev
|
||||
if (pnp_port_valid(idev, 1)) {
|
||||
ctl_addr = devm_ioport_map(&idev->dev,
|
||||
pnp_port_start(idev, 1), 1);
|
||||
if (!ctl_addr)
|
||||
return -ENOMEM;
|
||||
|
||||
ap->ioaddr.altstatus_addr = ctl_addr;
|
||||
ap->ioaddr.ctl_addr = ctl_addr;
|
||||
ap->ops = &isapnp_port_ops;
|
||||
|
@@ -2290,19 +2290,21 @@ static int get_esi(struct atm_dev *dev)
|
||||
static int reset_sar(struct atm_dev *dev)
|
||||
{
|
||||
IADEV *iadev;
|
||||
int i, error = 1;
|
||||
int i, error;
|
||||
unsigned int pci[64];
|
||||
|
||||
iadev = INPH_IA_DEV(dev);
|
||||
for(i=0; i<64; i++)
|
||||
if ((error = pci_read_config_dword(iadev->pci,
|
||||
i*4, &pci[i])) != PCIBIOS_SUCCESSFUL)
|
||||
for (i = 0; i < 64; i++) {
|
||||
error = pci_read_config_dword(iadev->pci, i * 4, &pci[i]);
|
||||
if (error != PCIBIOS_SUCCESSFUL)
|
||||
return error;
|
||||
}
|
||||
writel(0, iadev->reg+IPHASE5575_EXT_RESET);
|
||||
for(i=0; i<64; i++)
|
||||
if ((error = pci_write_config_dword(iadev->pci,
|
||||
i*4, pci[i])) != PCIBIOS_SUCCESSFUL)
|
||||
for (i = 0; i < 64; i++) {
|
||||
error = pci_write_config_dword(iadev->pci, i * 4, pci[i]);
|
||||
if (error != PCIBIOS_SUCCESSFUL)
|
||||
return error;
|
||||
}
|
||||
udelay(5);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -449,9 +449,9 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr,
|
||||
struct sk_buff *skb;
|
||||
unsigned int len;
|
||||
|
||||
spin_lock(&card->cli_queue_lock);
|
||||
spin_lock_bh(&card->cli_queue_lock);
|
||||
skb = skb_dequeue(&card->cli_queue[SOLOS_CHAN(atmdev)]);
|
||||
spin_unlock(&card->cli_queue_lock);
|
||||
spin_unlock_bh(&card->cli_queue_lock);
|
||||
if(skb == NULL)
|
||||
return sprintf(buf, "No data.\n");
|
||||
|
||||
@@ -956,14 +956,14 @@ static void pclose(struct atm_vcc *vcc)
|
||||
struct pkt_hdr *header;
|
||||
|
||||
/* Remove any yet-to-be-transmitted packets from the pending queue */
|
||||
spin_lock(&card->tx_queue_lock);
|
||||
spin_lock_bh(&card->tx_queue_lock);
|
||||
skb_queue_walk_safe(&card->tx_queue[port], skb, tmpskb) {
|
||||
if (SKB_CB(skb)->vcc == vcc) {
|
||||
skb_unlink(skb, &card->tx_queue[port]);
|
||||
solos_pop(vcc, skb);
|
||||
}
|
||||
}
|
||||
spin_unlock(&card->tx_queue_lock);
|
||||
spin_unlock_bh(&card->tx_queue_lock);
|
||||
|
||||
skb = alloc_skb(sizeof(*header), GFP_KERNEL);
|
||||
if (!skb) {
|
||||
|
@@ -1187,8 +1187,6 @@ static void __device_release_driver(struct device *dev, struct device *parent)
|
||||
else if (drv->remove)
|
||||
drv->remove(dev);
|
||||
|
||||
device_links_driver_cleanup(dev);
|
||||
|
||||
devres_release_all(dev);
|
||||
arch_teardown_dma_ops(dev);
|
||||
kfree(dev->dma_range_map);
|
||||
@@ -1200,6 +1198,8 @@ static void __device_release_driver(struct device *dev, struct device *parent)
|
||||
pm_runtime_reinit(dev);
|
||||
dev_pm_set_driver_flags(dev, 0);
|
||||
|
||||
device_links_driver_cleanup(dev);
|
||||
|
||||
klist_remove(&dev->p->knode_driver);
|
||||
device_pm_check_callbacks(dev);
|
||||
if (dev->bus)
|
||||
|
@@ -367,6 +367,7 @@ void dev_coredumpm(struct device *dev, struct module *owner,
|
||||
devcd->devcd_dev.class = &devcd_class;
|
||||
|
||||
mutex_lock(&devcd->mutex);
|
||||
dev_set_uevent_suppress(&devcd->devcd_dev, true);
|
||||
if (device_add(&devcd->devcd_dev))
|
||||
goto put_device;
|
||||
|
||||
@@ -378,6 +379,8 @@ void dev_coredumpm(struct device *dev, struct module *owner,
|
||||
"devcoredump"))
|
||||
/* nothing - symlink will be missing */;
|
||||
|
||||
dev_set_uevent_suppress(&devcd->devcd_dev, false);
|
||||
kobject_uevent(&devcd->devcd_dev.kobj, KOBJ_ADD);
|
||||
INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
|
||||
schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);
|
||||
mutex_unlock(&devcd->mutex);
|
||||
|
@@ -48,7 +48,7 @@ static ssize_t regmap_name_read_file(struct file *file,
|
||||
name = map->dev->driver->name;
|
||||
|
||||
ret = snprintf(buf, PAGE_SIZE, "%s\n", name);
|
||||
if (ret < 0) {
|
||||
if (ret >= PAGE_SIZE) {
|
||||
kfree(buf);
|
||||
return ret;
|
||||
}
|
||||
|
@@ -1511,7 +1511,7 @@ static int dev_get_regmap_match(struct device *dev, void *res, void *data)
|
||||
|
||||
/* If the user didn't specify a name match any */
|
||||
if (data)
|
||||
return !strcmp((*r)->name, data);
|
||||
return (*r)->name && !strcmp((*r)->name, data);
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
@@ -1643,17 +1643,19 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
|
||||
}
|
||||
|
||||
if (!map->cache_bypass && map->format.parse_val) {
|
||||
unsigned int ival;
|
||||
unsigned int ival, offset;
|
||||
int val_bytes = map->format.val_bytes;
|
||||
for (i = 0; i < val_len / val_bytes; i++) {
|
||||
ival = map->format.parse_val(val + (i * val_bytes));
|
||||
ret = regcache_write(map,
|
||||
reg + regmap_get_offset(map, i),
|
||||
ival);
|
||||
|
||||
/* Cache the last written value for noinc writes */
|
||||
i = noinc ? val_len - val_bytes : 0;
|
||||
for (; i < val_len; i += val_bytes) {
|
||||
ival = map->format.parse_val(val + i);
|
||||
offset = noinc ? 0 : regmap_get_offset(map, i / val_bytes);
|
||||
ret = regcache_write(map, reg + offset, ival);
|
||||
if (ret) {
|
||||
dev_err(map->dev,
|
||||
"Error in caching of register: %x ret: %d\n",
|
||||
reg + regmap_get_offset(map, i), ret);
|
||||
reg + offset, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
@@ -415,6 +415,18 @@ static const struct usb_device_id blacklist_table[] = {
|
||||
{ USB_DEVICE(0x13d3, 0x3586), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
|
||||
/* Realtek 8852BE Bluetooth devices */
|
||||
{ USB_DEVICE(0x0cb8, 0xc559), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
{ USB_DEVICE(0x0bda, 0x887b), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
{ USB_DEVICE(0x0bda, 0xb85b), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
{ USB_DEVICE(0x13d3, 0x3570), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
{ USB_DEVICE(0x13d3, 0x3571), .driver_info = BTUSB_REALTEK |
|
||||
BTUSB_WIDEBAND_SPEECH },
|
||||
|
||||
/* Realtek Bluetooth devices */
|
||||
{ USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
|
||||
.driver_info = BTUSB_REALTEK },
|
||||
@@ -3095,6 +3107,9 @@ static int btusb_mtk_hci_wmt_sync(struct hci_dev *hdev,
|
||||
goto err_free_wc;
|
||||
}
|
||||
|
||||
if (data->evt_skb == NULL)
|
||||
goto err_free_wc;
|
||||
|
||||
/* Parse and handle the return WMT event */
|
||||
wmt_evt = (struct btmtk_hci_wmt_evt *)data->evt_skb->data;
|
||||
if (wmt_evt->whdr.op != hdr->op) {
|
||||
|
@@ -67,7 +67,10 @@ static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
struct vhci_data *data = hci_get_drvdata(hdev);
|
||||
|
||||
memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1);
|
||||
|
||||
mutex_lock(&data->open_mutex);
|
||||
skb_queue_tail(&data->readq, skb);
|
||||
mutex_unlock(&data->open_mutex);
|
||||
|
||||
wake_up_interruptible(&data->read_wait);
|
||||
return 0;
|
||||
|
@@ -58,7 +58,8 @@ struct amd_geode_priv {
|
||||
|
||||
static int geode_rng_data_read(struct hwrng *rng, u32 *data)
|
||||
{
|
||||
void __iomem *mem = (void __iomem *)rng->priv;
|
||||
struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv;
|
||||
void __iomem *mem = priv->membase;
|
||||
|
||||
*data = readl(mem + GEODE_RNG_DATA_REG);
|
||||
|
||||
@@ -67,7 +68,8 @@ static int geode_rng_data_read(struct hwrng *rng, u32 *data)
|
||||
|
||||
static int geode_rng_data_present(struct hwrng *rng, int wait)
|
||||
{
|
||||
void __iomem *mem = (void __iomem *)rng->priv;
|
||||
struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv;
|
||||
void __iomem *mem = priv->membase;
|
||||
int data, i;
|
||||
|
||||
for (i = 0; i < 20; i++) {
|
||||
|
@@ -80,7 +80,7 @@ struct asm9260_mux_clock {
|
||||
u8 mask;
|
||||
u32 *table;
|
||||
const char *name;
|
||||
const char **parent_names;
|
||||
const struct clk_parent_data *parent_data;
|
||||
u8 num_parents;
|
||||
unsigned long offset;
|
||||
unsigned long flags;
|
||||
@@ -232,10 +232,10 @@ static const struct asm9260_gate_data asm9260_ahb_gates[] __initconst = {
|
||||
HW_AHBCLKCTRL1, 16 },
|
||||
};
|
||||
|
||||
static const char __initdata *main_mux_p[] = { NULL, NULL };
|
||||
static const char __initdata *i2s0_mux_p[] = { NULL, NULL, "i2s0m_div"};
|
||||
static const char __initdata *i2s1_mux_p[] = { NULL, NULL, "i2s1m_div"};
|
||||
static const char __initdata *clkout_mux_p[] = { NULL, NULL, "rtc"};
|
||||
static struct clk_parent_data __initdata main_mux_p[] = { { .index = 0, }, { .name = "pll" } };
|
||||
static struct clk_parent_data __initdata i2s0_mux_p[] = { { .index = 0, }, { .name = "pll" }, { .name = "i2s0m_div"} };
|
||||
static struct clk_parent_data __initdata i2s1_mux_p[] = { { .index = 0, }, { .name = "pll" }, { .name = "i2s1m_div"} };
|
||||
static struct clk_parent_data __initdata clkout_mux_p[] = { { .index = 0, }, { .name = "pll" }, { .name = "rtc"} };
|
||||
static u32 three_mux_table[] = {0, 1, 3};
|
||||
|
||||
static struct asm9260_mux_clock asm9260_mux_clks[] __initdata = {
|
||||
@@ -255,9 +255,10 @@ static struct asm9260_mux_clock asm9260_mux_clks[] __initdata = {
|
||||
|
||||
static void __init asm9260_acc_init(struct device_node *np)
|
||||
{
|
||||
struct clk_hw *hw;
|
||||
struct clk_hw *hw, *pll_hw;
|
||||
struct clk_hw **hws;
|
||||
const char *ref_clk, *pll_clk = "pll";
|
||||
const char *pll_clk = "pll";
|
||||
struct clk_parent_data pll_parent_data = { .index = 0 };
|
||||
u32 rate;
|
||||
int n;
|
||||
|
||||
@@ -274,21 +275,15 @@ static void __init asm9260_acc_init(struct device_node *np)
|
||||
/* register pll */
|
||||
rate = (ioread32(base + HW_SYSPLLCTRL) & 0xffff) * 1000000;
|
||||
|
||||
/* TODO: Convert to DT parent scheme */
|
||||
ref_clk = of_clk_get_parent_name(np, 0);
|
||||
hw = __clk_hw_register_fixed_rate(NULL, NULL, pll_clk,
|
||||
ref_clk, NULL, NULL, 0, rate, 0,
|
||||
CLK_FIXED_RATE_PARENT_ACCURACY);
|
||||
|
||||
if (IS_ERR(hw))
|
||||
pll_hw = clk_hw_register_fixed_rate_parent_accuracy(NULL, pll_clk, &pll_parent_data,
|
||||
0, rate);
|
||||
if (IS_ERR(pll_hw))
|
||||
panic("%pOFn: can't register REFCLK. Check DT!", np);
|
||||
|
||||
for (n = 0; n < ARRAY_SIZE(asm9260_mux_clks); n++) {
|
||||
const struct asm9260_mux_clock *mc = &asm9260_mux_clks[n];
|
||||
|
||||
mc->parent_names[0] = ref_clk;
|
||||
mc->parent_names[1] = pll_clk;
|
||||
hw = clk_hw_register_mux_table(NULL, mc->name, mc->parent_names,
|
||||
hw = clk_hw_register_mux_table_parent_data(NULL, mc->name, mc->parent_data,
|
||||
mc->num_parents, mc->flags, base + mc->offset,
|
||||
0, mc->mask, 0, mc->table, &asm9260_clk_lock);
|
||||
}
|
||||
|
@@ -647,7 +647,7 @@ static void __init npcm7xx_clk_init(struct device_node *clk_np)
|
||||
return;
|
||||
|
||||
npcm7xx_init_fail:
|
||||
kfree(npcm7xx_clk_data->hws);
|
||||
kfree(npcm7xx_clk_data);
|
||||
npcm7xx_init_np_err:
|
||||
iounmap(clk_base);
|
||||
npcm7xx_init_error:
|
||||
|
@@ -177,6 +177,7 @@ static int scmi_clocks_probe(struct scmi_device *sdev)
|
||||
sclk->info = clk_ops->info_get(ph, idx);
|
||||
if (!sclk->info) {
|
||||
dev_dbg(dev, "invalid clock info for idx %d\n", idx);
|
||||
devm_kfree(dev, sclk);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@@ -3246,6 +3246,7 @@ static void possible_parent_show(struct seq_file *s, struct clk_core *core,
|
||||
unsigned int i, char terminator)
|
||||
{
|
||||
struct clk_core *parent;
|
||||
const char *name = NULL;
|
||||
|
||||
/*
|
||||
* Go through the following options to fetch a parent's name.
|
||||
@@ -3260,18 +3261,20 @@ static void possible_parent_show(struct seq_file *s, struct clk_core *core,
|
||||
* registered (yet).
|
||||
*/
|
||||
parent = clk_core_get_parent_by_index(core, i);
|
||||
if (parent)
|
||||
if (parent) {
|
||||
seq_puts(s, parent->name);
|
||||
else if (core->parents[i].name)
|
||||
} else if (core->parents[i].name) {
|
||||
seq_puts(s, core->parents[i].name);
|
||||
else if (core->parents[i].fw_name)
|
||||
} else if (core->parents[i].fw_name) {
|
||||
seq_printf(s, "<%s>(fw)", core->parents[i].fw_name);
|
||||
else if (core->parents[i].index >= 0)
|
||||
seq_puts(s,
|
||||
of_clk_get_parent_name(core->of_node,
|
||||
core->parents[i].index));
|
||||
else
|
||||
seq_puts(s, "(missing)");
|
||||
} else {
|
||||
if (core->parents[i].index >= 0)
|
||||
name = of_clk_get_parent_name(core->of_node, core->parents[i].index);
|
||||
if (!name)
|
||||
name = "(missing)";
|
||||
|
||||
seq_puts(s, name);
|
||||
}
|
||||
|
||||
seq_putc(s, terminator);
|
||||
}
|
||||
|
@@ -96,5 +96,6 @@ config CLK_IMX8QXP
|
||||
depends on (ARCH_MXC && ARM64) || COMPILE_TEST
|
||||
depends on IMX_SCU && HAVE_ARM_SMCCC
|
||||
select MXC_CLK_SCU
|
||||
select MXC_CLK
|
||||
help
|
||||
Build the driver for IMX8QXP SCU based clocks.
|
||||
|
@@ -280,8 +280,7 @@ static int imx8mq_clocks_probe(struct platform_device *pdev)
|
||||
void __iomem *base;
|
||||
int err;
|
||||
|
||||
clk_hw_data = kzalloc(struct_size(clk_hw_data, hws,
|
||||
IMX8MQ_CLK_END), GFP_KERNEL);
|
||||
clk_hw_data = devm_kzalloc(dev, struct_size(clk_hw_data, hws, IMX8MQ_CLK_END), GFP_KERNEL);
|
||||
if (WARN_ON(!clk_hw_data))
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -298,10 +297,12 @@ static int imx8mq_clocks_probe(struct platform_device *pdev)
|
||||
hws[IMX8MQ_CLK_EXT4] = imx_obtain_fixed_clk_hw(np, "clk_ext4");
|
||||
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-anatop");
|
||||
base = of_iomap(np, 0);
|
||||
base = devm_of_iomap(dev, np, 0, NULL);
|
||||
of_node_put(np);
|
||||
if (WARN_ON(!base))
|
||||
return -ENOMEM;
|
||||
if (WARN_ON(IS_ERR(base))) {
|
||||
err = PTR_ERR(base);
|
||||
goto unregister_hws;
|
||||
}
|
||||
|
||||
hws[IMX8MQ_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x28, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
|
||||
hws[IMX8MQ_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x18, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels));
|
||||
@@ -373,8 +374,10 @@ static int imx8mq_clocks_probe(struct platform_device *pdev)
|
||||
|
||||
np = dev->of_node;
|
||||
base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (WARN_ON(IS_ERR(base)))
|
||||
return PTR_ERR(base);
|
||||
if (WARN_ON(IS_ERR(base))) {
|
||||
err = PTR_ERR(base);
|
||||
goto unregister_hws;
|
||||
}
|
||||
|
||||
/* CORE */
|
||||
hws[IMX8MQ_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mq_a53_sels, base + 0x8000);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user