This is the merge of the upstream LTS release of 5.10.81 into the android12-5.10 branch. New symbols were added to be tracked, which are the only ABI changes: Leaf changes summary: 209 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 192 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 17 Added variables 192 Added functions: [A] 'function void __bforget(buffer_head*)' [A] 'function ssize_t __blockdev_direct_IO(kiocb*, inode*, block_device*, iov_iter*, get_block_t*, dio_iodone_t*, dio_submit_t*, int)' [A] 'function buffer_head* __bread_gfp(block_device*, sector_t, unsigned int, gfp_t)' [A] 'function void __breadahead(block_device*, sector_t, unsigned int)' [A] 'function void __brelse(buffer_head*)' [A] 'function void __cancel_dirty_page(page*)' [A] 'function void __cleancache_invalidate_inode(address_space*)' [A] 'function void __filemap_set_wb_err(address_space*, int)' [A] 'function void __insert_inode_hash(inode*, unsigned long int)' [A] 'function void __mark_inode_dirty(inode*, int)' [A] 'function void __pagevec_release(pagevec*)' [A] 'function void __remove_inode_hash(inode*)' [A] 'function int __set_page_dirty_buffers(page*)' [A] 'function int __set_page_dirty_nobuffers(page*)' [A] 'function int __test_set_page_writeback(page*, bool)' [A] 'function int __traceiter_android_rvh_binder_transaction(void*, binder_proc*, binder_proc*, binder_thread*, binder_transaction_data*)' [A] 'function int __traceiter_android_rvh_do_sched_yield(void*, rq*)' [A] 'function int __traceiter_android_vh_binder_del_ref(void*, task_struct*, uint32_t)' [A] 'function int __traceiter_android_vh_binder_free_proc(void*, binder_proc*)' [A] 'function int __traceiter_android_vh_binder_has_work_ilocked(void*, binder_thread*, bool, int*)' [A] 'function int __traceiter_android_vh_binder_looper_state_registered(void*, binder_thread*, binder_proc*)' [A] 'function int __traceiter_android_vh_binder_new_ref(void*, task_struct*, uint32_t, int)' [A] 'function int __traceiter_android_vh_binder_proc_transaction(void*, task_struct*, task_struct*, task_struct*, int, unsigned int, bool)' [A] 'function int __traceiter_android_vh_binder_proc_transaction_end(void*, task_struct*, task_struct*, task_struct*, unsigned int, bool, bool)' [A] 'function int __traceiter_android_vh_binder_read_done(void*, binder_proc*, binder_thread*)' [A] 'function int __traceiter_android_vh_binder_thread_read(void*, list_head**, binder_proc*, binder_thread*)' [A] 'function int __traceiter_android_vh_binder_thread_release(void*, binder_proc*, binder_thread*)' [A] 'function int __traceiter_android_vh_futex_sleep_start(void*, task_struct*)' [A] 'function int __traceiter_block_bio_remap(void*, request_queue*, bio*, dev_t, sector_t)' [A] 'function int add_to_page_cache_locked(page*, address_space*, unsigned long int, gfp_t)' [A] 'function bio* bio_split(bio*, int, gfp_t, bio_set*)' [A] 'function wait_queue_head* bit_waitqueue(void*, int)' [A] 'function blk_plug_cb* blk_check_plugged(blk_plug_cb_fn, void*, int)' [A] 'function void blk_queue_max_write_same_sectors(request_queue*, unsigned int)' [A] 'function int blkdev_issue_discard(block_device*, sector_t, sector_t, gfp_t, unsigned long int)' [A] 'function void block_invalidatepage(page*, unsigned int, unsigned int)' [A] 'function int block_is_partially_uptodate(page*, unsigned long int, unsigned long int)' [A] 'function int buffer_migrate_page(address_space*, page*, page*, migrate_mode)' [A] 'function bool capable_wrt_inode_uidgid(const inode*, int)' [A] 'function void clean_bdev_aliases(block_device*, sector_t, sector_t)' [A] 'function void clear_inode(inode*)' [A] 'function int clear_page_dirty_for_io(page*)' [A] 'function int clk_set_duty_cycle(clk*, unsigned int, unsigned int)' [A] 'function int clocksource_mmio_init(void*, const char*, unsigned long int, int, unsigned int, typedef u64 (clocksource*)*)' [A] 'function u64 clocksource_mmio_readl_up(clocksource*)' [A] 'function void create_empty_buffers(page*, unsigned long int, unsigned long int)' [A] 'function int current_umask()' [A] 'function dentry* d_add_ci(dentry*, inode*, qstr*)' [A] 'function void d_instantiate(dentry*, inode*)' [A] 'function dentry* d_obtain_alias(inode*)' [A] 'function dentry* d_splice_alias(inode*, dentry*)' [A] 'function void delete_from_page_cache(page*)' [A] 'function i3c_device* dev_to_i3cdev(device*)' [A] 'function spi_mem_dirmap_desc* devm_spi_mem_dirmap_create(device*, spi_mem*, const spi_mem_dirmap_info*)' [A] 'function void disk_stack_limits(gendisk*, block_device*, sector_t)' [A] 'function void drop_nlink(inode*)' [A] 'function void end_buffer_write_sync(buffer_head*, int)' [A] 'function void end_page_writeback(page*)' [A] 'function errseq_t errseq_set(errseq_t*, int)' [A] 'function int fb_get_options(const char*, char**)' [A] 'function int fiemap_fill_next_extent(fiemap_extent_info*, u64, u64, u64, u32)' [A] 'function int fiemap_prep(inode*, fiemap_extent_info*, u64, u64*, u32)' [A] 'function int file_remove_privs(file*)' [A] 'function int file_update_time(file*)' [A] 'function int file_write_and_wait_range(file*, loff_t, loff_t)' [A] 'function vm_fault_t filemap_fault(vm_fault*)' [A] 'function int filemap_fdatawait_range(address_space*, loff_t, loff_t)' [A] 'function int filemap_fdatawrite(address_space*)' [A] 'function int filemap_flush(address_space*)' [A] 'function int filemap_write_and_wait_range(address_space*, loff_t, loff_t)' [A] 'function file* filp_open(const char*, int, umode_t)' [A] 'function void flush_delayed_fput()' [A] 'function int freq_qos_remove_notifier(freq_constraints*, freq_qos_req_type, notifier_block*)' [A] 'function int generic_error_remove_page(address_space*, page*)' [A] 'function ssize_t generic_file_direct_write(kiocb*, iov_iter*)' [A] 'function int generic_file_mmap(file*, vm_area_struct*)' [A] 'function int generic_file_open(inode*, file*)' [A] 'function ssize_t generic_file_splice_read(file*, loff_t*, pipe_inode_info*, size_t, unsigned int)' [A] 'function void generic_fillattr(inode*, kstat*)' [A] 'function ssize_t generic_read_dir(file*, char*, size_t, loff_t*)' [A] 'function int genphy_restart_aneg(phy_device*)' [A] 'function page* grab_cache_page_write_begin(address_space*, unsigned long int, unsigned int)' [A] 'function const i3c_device_id* i3c_device_match_id(i3c_device*, const i3c_device_id*)' [A] 'function inode* iget5_locked(super_block*, unsigned long int, int (inode*, void*)*, int (inode*, void*)*, void*)' [A] 'function inode* igrab(inode*)' [A] 'function void ihold(inode*)' [A] 'function int iio_device_claim_direct_mode(iio_dev*)' [A] 'function void iio_device_release_direct_mode(iio_dev*)' [A] 'function int iio_push_event(iio_dev*, u64, s64)' [A] 'function int iio_read_mount_matrix(device*, const char*, iio_mount_matrix*)' [A] 'function ssize_t iio_show_mount_matrix(iio_dev*, uintptr_t, const iio_chan_spec*, char*)' [A] 'function int iio_write_channel_raw(iio_channel*, int)' [A] 'function inode* ilookup5(super_block*, unsigned long int, int (inode*, void*)*, void*)' [A] 'function int in_group_p(kgid_t)' [A] 'function void inc_nlink(inode*)' [A] 'function void init_special_inode(inode*, umode_t, dev_t)' [A] 'function void inode_dio_wait(inode*)' [A] 'function void inode_init_once(inode*)' [A] 'function void inode_init_owner(inode*, const inode*, umode_t)' [A] 'function int inode_newsize_ok(const inode*, loff_t)' [A] 'function void inode_set_flags(inode*, unsigned int, unsigned int)' [A] 'function void io_schedule()' [A] 'function void iov_iter_advance(iov_iter*, size_t)' [A] 'function unsigned long int iov_iter_alignment(const iov_iter*)' [A] 'function size_t iov_iter_copy_from_user_atomic(page*, iov_iter*, unsigned long int, size_t)' [A] 'function int iov_iter_fault_in_readable(iov_iter*, size_t)' [A] 'function ssize_t iov_iter_get_pages(iov_iter*, page**, size_t, unsigned int, size_t*)' [A] 'function size_t iov_iter_single_seg_count(const iov_iter*)' [A] 'function bool is_bad_inode(inode*)' [A] 'function ssize_t iter_file_splice_write(pipe_inode_info*, file*, loff_t*, size_t, unsigned int)' [A] 'function ino_t iunique(super_block*, ino_t)' [A] 'function int kernel_sock_shutdown(socket*, sock_shutdown_cmd)' [A] 'function void kill_block_super(super_block*)' [A] 'function int kill_pid(pid*, int, int)' [A] 'function bool kthread_freezable_should_stop(bool*)' [A] 'function void ll_rw_block(int, int, int, buffer_head**)' [A] 'function nls_table* load_nls(char*)' [A] 'function nls_table* load_nls_default()' [A] 'function void lru_cache_add(page*)' [A] 'function void make_bad_inode(inode*)' [A] 'function void mark_buffer_async_write(buffer_head*)' [A] 'function void mark_buffer_dirty(buffer_head*)' [A] 'function void mark_buffer_write_io_error(buffer_head*)' [A] 'function void mark_page_accessed(page*)' [A] 'function void mnt_drop_write_file(file*)' [A] 'function int mnt_want_write_file(file*)' [A] 'function dentry* mount_bdev(file_system_type*, int, const char*, void*, int (super_block*, void*, int)*)' [A] 'function void mpage_readahead(readahead_control*, get_block_t*)' [A] 'function int mpage_readpage(page*, get_block_t*)' [A] 'function int notify_change(dentry*, iattr*, inode**)' [A] 'function unsigned long int page_cache_next_miss(address_space*, unsigned long int, unsigned long int)' [A] 'function unsigned long int page_cache_prev_miss(address_space*, unsigned long int, unsigned long int)' [A] 'function bool page_mapped(page*)' [A] 'function int page_mkclean(page*)' [A] 'function void page_zero_new_buffers(page*, unsigned int, unsigned int)' [A] 'function page* pagecache_get_page(address_space*, unsigned long int, int, gfp_t)' [A] 'function unsigned int pagevec_lookup_range(pagevec*, address_space*, unsigned long int*, unsigned long int)' [A] 'function unsigned int pagevec_lookup_range_tag(pagevec*, address_space*, unsigned long int*, unsigned long int, xa_mark_t)' [A] 'function int phy_modify_mmd(phy_device*, int, u32, u16, u16)' [A] 'function void put_pages_list(list_head*)' [A] 'function gfp_t readahead_gfp_mask(address_space*)' [A] 'function int redirty_page_for_writepage(writeback_control*, page*)' [A] 'function int rproc_set_firmware(rproc*, const char*)' [A] 'function int sb_min_blocksize(super_block*, int)' [A] 'function int sb_set_blocksize(super_block*, int)' [A] 'function void sched_clock_register(typedef u64 ()*, int, unsigned long int)' [A] 'function int security_inode_init_security(inode*, inode*, const qstr*, const initxattrs, void*)' [A] 'function void set_nlink(inode*, unsigned int)' [A] 'function int setattr_prepare(dentry*, iattr*)' [A] 'function int snd_interval_ranges(snd_interval*, unsigned int, const snd_interval*, unsigned int)' [A] 'function int snd_pcm_hw_constraint_ratnums(snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t, const snd_pcm_hw_constraint_ratnums*)' [A] 'function int snd_soc_limit_volume(snd_soc_card*, const char*, int)' [A] 'function int sock_recvmsg(socket*, msghdr*, int)' [A] 'function socket* sockfd_lookup(int, int*)' [A] 'function const spi_device_id* spi_get_device_id(const spi_device*)' [A] 'function int spi_mem_adjust_op_size(spi_mem*, spi_mem_op*)' [A] 'function bool spi_mem_default_supports_op(spi_mem*, const spi_mem_op*)' [A] 'function ssize_t spi_mem_dirmap_read(spi_mem_dirmap_desc*, u64, size_t, void*)' [A] 'function ssize_t spi_mem_dirmap_write(spi_mem_dirmap_desc*, u64, size_t, void*)' [A] 'function int spi_mem_driver_register_with_owner(spi_mem_driver*, module*)' [A] 'function void spi_mem_driver_unregister(spi_mem_driver*)' [A] 'function bool spi_mem_dtr_supports_op(spi_mem*, const spi_mem_op*)' [A] 'function int spi_mem_exec_op(spi_mem*, const spi_mem_op*)' [A] 'function const char* spi_mem_get_name(spi_mem*)' [A] 'function bool spi_mem_supports_op(spi_mem*, const spi_mem_op*)' [A] 'function blk_qc_t submit_bio_noacct(bio*)' [A] 'function int sync_dirty_buffer(buffer_head*)' [A] 'function int sync_filesystem(super_block*)' [A] 'function int sync_inode_metadata(inode*, int)' [A] 'function void tag_pages_for_writeback(address_space*, unsigned long int, unsigned long int)' [A] 'function timespec64 timestamp_truncate(timespec64, inode*)' [A] 'function void touch_atime(const path*)' [A] 'function void touchscreen_parse_properties(input_dev*, bool, touchscreen_properties*)' [A] 'function void touchscreen_report_pos(input_dev*, const touchscreen_properties*, unsigned int, unsigned int, bool)' [A] 'function int trace_set_clr_event(const char*, const char*, int)' [A] 'function void truncate_inode_pages(address_space*, loff_t)' [A] 'function void truncate_inode_pages_final(address_space*)' [A] 'function void truncate_pagecache(inode*, loff_t)' [A] 'function void truncate_setsize(inode*, loff_t)' [A] 'function int try_to_release_page(page*, gfp_t)' [A] 'function void try_to_writeback_inodes_sb(super_block*, wb_reason)' [A] 'function void unload_nls(nls_table*)' [A] 'function void unlock_buffer(buffer_head*)' [A] 'function void unlock_new_inode(inode*)' [A] 'function void usbnet_cdc_unbind(usbnet*, usb_interface*)' [A] 'function int usbnet_generic_cdc_bind(usbnet*, usb_interface*)' [A] 'function int vsscanf(const char*, const char*, va_list)' [A] 'function void wait_on_page_bit(page*, int)' [A] 'function int wake_bit_function(wait_queue_entry*, unsigned int, int, void*)' [A] 'function void wq_worker_comm(char*, size_t, task_struct*)' [A] 'function int write_inode_now(inode*, int)' [A] 'function int write_one_page(page*)' 17 Added variables: [A] 'tracepoint __tracepoint_android_rvh_binder_transaction' [A] 'tracepoint __tracepoint_android_rvh_do_ptrauth_fault' [A] 'tracepoint __tracepoint_android_rvh_do_sched_yield' [A] 'tracepoint __tracepoint_android_vh_binder_del_ref' [A] 'tracepoint __tracepoint_android_vh_binder_free_proc' [A] 'tracepoint __tracepoint_android_vh_binder_has_work_ilocked' [A] 'tracepoint __tracepoint_android_vh_binder_looper_state_registered' [A] 'tracepoint __tracepoint_android_vh_binder_new_ref' [A] 'tracepoint __tracepoint_android_vh_binder_proc_transaction' [A] 'tracepoint __tracepoint_android_vh_binder_proc_transaction_end' [A] 'tracepoint __tracepoint_android_vh_binder_read_done' [A] 'tracepoint __tracepoint_android_vh_binder_thread_read' [A] 'tracepoint __tracepoint_android_vh_binder_thread_release' [A] 'tracepoint __tracepoint_android_vh_futex_sleep_start' [A] 'tracepoint __tracepoint_android_vh_subpage_dma_contig_alloc' [A] 'tracepoint __tracepoint_block_bio_remap' [A] 'device platform_bus' This merge contains the following new commits: 4b644356291a ANDROID: GKI: disable CONFIG_FORTIFY_SOURCE 94097f943459 Merge 5.10.81 into android12-5.10-lts 99957dcea4e9 Linux 5.10.81 0685efd9840f selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage 6a315471cb6a thermal: Fix NULL pointer dereferences in of_thermal_ functions bd40513d0bee perf/core: Avoid put_page() when GUP fails df58fb431aa3 scripts/lld-version.sh: Rewrite based on upstream ld-version.sh be3f6035831a erofs: fix unsafe pagevec reuse of hooked pclusters 6c1ad56b2d78 erofs: remove the occupied parameter from z_erofs_pagevec_enqueue() 5bf5f464831c PCI: Add MSI masking quirk for Nvidia ION AHCI f28c620e1ac1 PCI/MSI: Deal with devices lying about their MSI mask capability 9b61500ee536 PCI/MSI: Destroy sysfs before freeing entries c49bfdfe535c parisc/entry: fix trace test in syscall exit path b31bac061918 x86/iopl: Fake iopl(3) CLI/STI usage a0958a5354f7 net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings 80407c6ad9da net: stmmac: fix issue where clk is being unprepared twice ac4bb9951c2c net: stmmac: fix system hang if change mac address after interface ifdown bcf37522432d net: stmmac: fix missing unlock on error in stmmac_suspend() 483ed89522b0 net: stmmac: platform: fix build error with !CONFIG_PM_SLEEP 3afe11be6435 net: stmmac: add clocks management for gmac driver f27060e28efc bootconfig: init: Fix memblock leak in xbc_make_cmdline() 04e46514fef6 loop: Use blk_validate_block_size() to validate block size 79ff56c613c1 block: Add a helper to validate the block size eaafc590053b fortify: Explicitly disable Clang support 971945b72224 Revert "tcp: switch orphan_count to bare per-cpu counters" e101be336e04 Revert "net: sched: update default qdisc visibility after Tx queue cnt changes" 2d94ebb76000 Revert "serial: core: Fix initializing and restoring termios speed" c553d9a24667 Merge 5.10.80 into android12-5.10-lts 706ebf15a1f9 Merge branch 'android12-5.10' into `android12-5.10-lts` f884bb85b8d8 Linux 5.10.80 1e49a79bc312 soc/tegra: pmc: Fix imbalanced clock disabling in error code path 45490bfa1ebb x86/sev: Make the #VC exception stacks part of the default stacks storage fc25889a6617 x86/sev: Add an x86 version of cc_platform_has() 74ba917cfddd arch/cc: Introduce a function to check for confidential computing features 5be42b203f2c selftests/bpf: Fix also no-alu32 strobemeta selftest 1e7340950dc2 mmc: moxart: Fix null pointer dereference on pointer host 188bf40391a5 ath10k: fix invalid dma_addr_t token assignment d41f4d4dd7c8 SUNRPC: Partial revert of commit 6f9f17287e78 c7a440cd3079 PCI: aardvark: Fix PCIe Max Payload Size setting f967d120a5b5 PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros f3396f6d8345 drm/sun4i: Fix macros in sun8i_csc.h 1023355234ca powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n 77d543e68795 powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload 9dcdadd6cc73 mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines 51e34fcf72a3 mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines e1de04df8eb1 mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines b4e2e9fbd194 mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines 963db3ccc15b mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines 13566bc111ee mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines 9b366f5221d8 mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines cbc55cf4a358 mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines 1f420818dfca s390/cio: make ccw_device_dma_* more robust c9ca9669dec3 s390/ap: Fix hanging ioctl caused by orphaned replies 57de1fbecff0 s390/tape: fix timer initialization in tape_std_assign() 1174298a5b31 s390/cio: check the subchannel validity for dev_busid 7d0341b37d97 video: backlight: Drop maximum brightness override for brightness zero 332306b1e731 mfd: dln2: Add cell for initializing DLN2 ADC 1d457987366f mm, oom: do not trigger out_of_memory from the #PF ac7f6befc3d1 mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks 1ada86999dc8 powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC 7fcf86565bb6 powerpc/security: Add a helper to query stf_barrier type 951fb7bf387f powerpc/bpf: Validate branch ranges 51cf71d5cb03 powerpc/lib: Add helper to check if offset is within conditional branch range 74293225f503 memcg: prohibit unconditional exceeding the limit of dying tasks 32246cefb992 9p/net: fix missing error check in p9_check_errors a8cdf34ff8b7 net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE 0bf5c6a1e43f f2fs: should use GFP_NOFS for directory inodes 7930892cbd40 irqchip/sifive-plic: Fixup EOI failed when masked f67f6eb717ae posix-cpu-timers: Clear task::posix_cputimers_work in copy_process() 1372eb187108 x86/mce: Add errata workaround for Skylake SKX37 1ee5bc2ba83f MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL fc42bbb7827b parisc: Fix backtrace to always include init funtion names 241c74cc6555 ARM: 9156/1: drop cc-option fallbacks for architecture selection 03f2578153eb ARM: 9155/1: fix early early_iounmap() ee79560cb768 selftests/net: udpgso_bench_rx: fix port argument 8b215edb7a38 cxgb4: fix eeprom len when diagnostics not implemented 93bc3ef60758 net/smc: fix sk_refcnt underflow on linkdown and fallback 7e03b797bee0 vsock: prevent unnecessary refcnt inc for nonblocking connect ad3d219e843d net: stmmac: allow a tc-taprio base-time of zero b30459c0ca0d net: hns3: allow configure ETS bandwidth of all TCs ee11f16fee95 net: hns3: fix kernel crash when unload VF while it is being reset 79aa8706b45c net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any b5703462a428 seq_file: fix passing wrong private data 4af0cd17e724 gve: Fix off by one in gve_tx_timeout() c842a4c4ae7f bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding 8b5c98a67c1b bpf, sockmap: Remove unhash handler for BPF sockmap usage 0fe81d7a202d arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions 727c812433b6 nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails 9f0e683e1bd4 llc: fix out-of-bound array index in llc_sk_dev_hash() b833274ae6d9 perf bpf: Add missing free to bpf_event__print_bpf_prog_info() 7091fcc75ff6 zram: off by one in read_block_state() 64bde0c2db50 mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration() a3c205c017f8 can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable() 300d87474816 mfd: core: Add missing of_node_put for loop iteration 6439b91fef2c bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed acb01e962af7 net: phy: fix duplex out of sync problem while changing settings 090e17075f67 drm/nouveau/svm: Fix refcount leak bug and missing check against null bug ee8a3ae48a94 ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses d83832d4a838 ice: Fix not stopping Tx queues for VFs 354ae5ca6ce1 ice: Fix replacing VF hardware MAC to existing MAC filter e04a7a84bb77 net: vlan: fix a UAF in vlan_dev_real_dev() 3fe164e7197b openrisc: fix SMP tlb flush NULL pointer dereference 628773a759d5 ethtool: fix ethtool msg len calculation for pause stats e78c267eb74e net: davinci_emac: Fix interrupt pacing disable 111f77594ddf xen-pciback: Fix return in pm_ctrl_init() de9721ee8ad3 i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()' 8c3e204fb6bc NFSv4: Fix a regression in nfs_set_open_stateid_locked() 0afb3bc53435 scsi: qla2xxx: Turn off target reset during issue_lip 09595fd2cef5 scsi: qla2xxx: Fix gnl list corruption cbe31149e5a7 scsi: qla2xxx: Relogin during fabric disturbance bc3f207ed99a scsi: qla2xxx: Changes to support FCP2 Target ba5eb0e44346 ar7: fix kernel builds for compiler test ef9f7ab9ba20 watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT aaa64ee14ac9 m68k: set a default value for MEMORY_RESERVE a4cbf00e5ab8 signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL) b04c17acf42a dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` bba31f3b1f43 netfilter: nfnetlink_queue: fix OOB when mac header was cleared 41968262bb24 soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read 6caab6c96b67 auxdisplay: ht16k33: Fix frame buffer device blanking 178522aa755f auxdisplay: ht16k33: Connect backlight to fbdev a1d6a60ee00c auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string 0e1709b2a07a Fix user namespace leak 90e7415221e1 NFS: Fix an Oops in pnfs_mark_request_commit() 10f210871736 NFS: Fix up commit deadlocks 91e43a8500f4 dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro 038dfd67d375 rtc: rv3032: fix error handling in rv3032_clkout_set_rate() 5061e102346e remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()' 36104e1f71dd mtd: core: don't remove debugfs directory if device is in use 0b73c025bfcf PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation d2ff7a8b079d mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare() c4eb6849909a fs: orangefs: fix error return code of orangefs_revalidate_lookup() 3e7b08ebf40f NFS: Fix deadlocks in nfs_scan_commit_list() 14943891857d opp: Fix return in _opp_add_static_v2() bea3213f191a PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge ec6dba3ffe3f PCI: aardvark: Don't spam about PIO Response Status 2e548581fe5b drm/plane-helper: fix uninitialized variable reference e94c59b64e6c pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds 8ac076ce7193 NFS: Fix dentry verifier races 9d438dbf7342 i2c: mediatek: fixing the incorrect register offset f3492c4a9264 nfsd: don't alloc under spinlock in rpc_parse_scope_id 602ab1fd40e2 rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined 851b622e7b4f apparmor: fix error check 9c9c33ea4cab power: supply: bq27xxx: Fix kernel crash on IRQ handler register error dbdf0f220759 mips: cm: Convert to bitfield API to fix out-of-bounds access c8447cb14a12 virtio_ring: check desc == NULL when using indirect with packed 80e6643393b7 ASoC: cs42l42: Correct configuring of switch inversion from ts-inv cb0fdd9aae01 ASoC: cs42l42: Use device_property API instead of of_property ef9d007a91f5 ASoC: cs42l42: Disable regulators if probe fails c0faad6e9d56 powerpc/44x/fsp2: add missing of_node_put 4310970d0b4d HID: u2fzero: properly handle timeouts in usb_submit_urb e2f0bff411f5 HID: u2fzero: clarify error check and length calculations 26be378079fc clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL f2886010a8d1 serial: xilinx_uartps: Fix race condition causing stuck TX 515778f9d841 phy: qcom-snps: Correct the FSEL_MASK fd056574a7e8 phy: ti: gmii-sel: check of_get_address() for failure 0a46740a0af0 phy: qcom-qusb2: Fix a memory leak on probe ec40a28495a8 pinctrl: equilibrium: Fix function addition in multiple groups a0467ca4d25f soc: qcom: apr: Add of_node_put() before return b41c528b14fe firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available() 31e7a836e2a2 usb: dwc2: drd: reset current session before setting the new one fc86da757db7 usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled 6774a429327d usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init 068dfa570d8c serial: imx: fix detach/attach of serial console d293bd40fbad scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer 75df59394126 scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk 948d8f2f2fd5 iio: adis: do not disabe IRQs in 'adis_init()' c8e5edca68a3 usb: typec: STUSB160X should select REGMAP_I2C 503d6e5fb878 soc: qcom: rpmhpd: Make power_on actually enable the domain 81e37cf40dbb soc: qcom: rpmhpd: Provide some missing struct member descriptions b288b841c1d8 ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER 1812deb08f86 ASoC: cs42l42: Correct some register default values d34982c08714 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 602fefd4561e ARM: dts: stm32: fix SAI sub nodes register range 3fb75227bdce ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz 78238479b93b pinctrl: renesas: checker: Fix off-by-one bug in drive register check 51bcffb3951c staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC 0bb8359f9c0d staging: most: dim2: do not double-register the same device 8e1feecc04fc usb: musb: select GENERIC_PHY instead of depending on it 0058f7fbea13 RDMA/mlx4: Return missed an error if device doesn't support steering bce61de56480 scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn() 12c46732042c power: supply: max17040: fix null-ptr-deref in max17040_probe() c553d673018d power: supply: rt5033_battery: Change voltage values to µV d8da6328ecae usb: gadget: hid: fix error code in do_config() 92a80e1ca20e serial: 8250_dw: Drop wrong use of ACPI_PTR() cfbf58ac8ec2 powerpc: fix unbalanced node refcount in check_kvm_guest() 54965d92a464 powerpc: Fix is_kvm_guest() / kvm_para_available() e01a4d7560b6 powerpc: Reintroduce is_kvm_guest() as a fast-path check 113207234aac powerpc: Rename is_kvm_guest() to check_kvm_guest() 61c5d9fa5671 powerpc: Refactor is_kvm_guest() declaration to new header 67074c63cd67 video: fbdev: chipsfb: use memset_io() instead of memset() fb24243e6d7f clk: at91: check pmc node status before registering syscore ops 20cc0fa1d030 memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe d3833d3c569a soc/tegra: Fix an error handling path in tegra_powergate_power_up() 9a2244200908 ASoC: SOF: topology: do not power down primary core during topology removal 8b6124d9245c arm: dts: omap3-gta04a4: accelerometer irq fix e1959450b77a driver core: Fix possible memory leak in device_link_add() ddb13ddacc60 scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp() 4438a7457063 soundwire: debugfs: use controller id and link_id for debugfs 3fe8d239e35b ALSA: hda: Use position buffer for SKL+ again c550c7c9ae91 ALSA: hda: Fix hang during shutdown due to link reset 23e8f775d962 ALSA: hda: Release controller display power during shutdown/reboot 5972e974ebbb ALSA: hda: Reduce udelay() at SKL+ position reporting 1db71de28bfc arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000 d833ddddec5b arm64: dts: renesas: beacon: Fix Ethernet PHY mode d70247b752f7 arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock 980c7bdd20fc JFS: fix memleak in jfs_mount c4edd206d52e MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT 24149c954f32 scsi: dc395: Fix error case unwinding 6348983be709 ARM: dts: at91: tse850: the emac<->phy interface is rmii b6493c2b7ddb bus: ti-sysc: Fix timekeeping_suspended warning on resume 85085c343705 arm64: dts: meson-g12b: Fix the pwm regulator supply properties 4ccb7e4a972c arm64: dts: meson-g12a: Fix the pwm regulator supply properties 20baf0163805 arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe 7a1617a9919b arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes 64a43b771258 RDMA/bnxt_re: Fix query SRQ failure fe3c11fc627b ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY 2887df89e7f6 arm64: dts: rockchip: Fix GPU register width for RK3328 3f33f09d9f6a ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc() cdd3dd905cea clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths 2fde76df1885 ARM: dts: BCM5301X: Fix memory nodes names 5282385ee655 RDMA/rxe: Fix wrong port_cap_flags a2c17c93b771 iio: st_sensors: disable regulators after device unregistration bfedc817769d iio: st_sensors: Call st_sensors_power_enable() from bus drivers f84c7a03d1ea of: unittest: fix EXPECT text for gpio hog errors 4a50bc008476 bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit. 84dde8c8c933 bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. 9308f9c9c7a5 cgroup: Fix rootcg cpu.stat guest double counting a3fdcd16b138 ibmvnic: Process crqs after enabling interrupts 5b3f7204197a ibmvnic: don't stop queue in xmit 366235d4bebc udp6: allow SO_MARK ctrl msg to affect routing 8f3d88139df8 selftests/bpf: Fix fclose/pclose mismatch in test_progs 71ec65c70004 crypto: pcrypt - Delay write to padata->info fb41b8f5e855 net: phylink: avoid mvneta warning when setting pause parameters 08449a5c0e56 net: amd-xgbe: Toggle PLL settings during rate change b17f424f88ba selftests/bpf: Fix fd cleanup in sk_lookup test 2989a396b891 selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN ae1f588ca1b0 drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits a586453da90c wcn36xx: Fix discarded frames due to wrong sequence number 3965cc2e9fdd wcn36xx: add proper DMA memory barriers in rx path 62d12650b845 libertas: Fix possible memory leak in probe and disconnect 975c15a19bbc libertas_tf: Fix possible memory leak in probe and disconnect 3aa98ef8f7ad KVM: s390: Fix handle_sske page fault handling 5109802499fb samples/kretprobes: Fix return value if register_kretprobe() failed c3ac751944ab spi: spi-rpc-if: Check return value of rpcif_sw_init() 5b7b4afead62 tcp: don't free a FIN sk_buff in tcp_remove_empty_skb() 3925134eff29 libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() 227efdda51b4 tpm_tis_spi: Add missing SPI ID ff1a0f71cc77 tpm: fix Atmel TPM crash caused by too frequent queries 43b4860b58f3 irq: mips: avoid nested irq_enter() 29a1cc3b5011 KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm 759f27cfa344 KVM: s390: pv: avoid double free of sida page a729eb55b3c7 s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap() 50fcaa715521 libbpf: Fix BTF header parsing checks 12872fd7e40b libbpf: Fix overflow in BTF sanity checks 255eb8f8affd libbpf: Allow loading empty BTFs 4d4d6aa2ef80 libbpf: Fix BTF data layout checks and allow empty BTF 0b95aaa493c6 bpftool: Avoid leaking the JSON writer prepared for program metadata 7cd4af996cd2 KVM: selftests: Fix nested SVM tests when built with clang 293fa72d62e4 KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c d33753718156 smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi 807f01f60cd0 drm/msm: Fix potential NULL dereference in DPU SSPP 6d1f3157aa9b x86/sev: Fix stack type check in vc_switch_off_ist() 8e2f97df6a0b clocksource/drivers/timer-ti-dm: Select TIMER_OF b9f142d748b6 PM: hibernate: fix sparse warnings e8c0b748456a nvme-rdma: fix error code in nvme_rdma_setup_ctrl 7668cbe0cb77 phy: micrel: ksz8041nl: do not use power down mode d405eb1150ce net: enetc: unmap DMA in enetc_send_cmd() 14e12b7a763e mwifiex: Send DELBA requests according to spec 4ed5bb3df6c7 rsi: stop thread firstly in rsi_91x_init() error handling e27022647529 mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req() 1a270dada035 mt76: mt7915: fix sta_rec_wtbl tag len 116652a3d5dd mt76: mt7915: fix possible infinite loop release semaphore 7a8e4effbbbc mt76: mt76x02: fix endianness warnings in mt76x02_mac.c 4d5c7f07c725 mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi 4187bf331010 platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning 25c032c585a2 mmc: mxs-mmc: disable regulator on error and in the remove function 7c1c7ac9d13a media: ir_toy: assignment to be16 should be of correct type daf15fa1fd99 net: stream: don't purge sk_error_queue in sk_stream_kill_queues() 14d241577227 drm/msm: uninitialized variable in msm_gem_import() 3424931fa39e drm/msm: potential error pointer dereference in init() a342cb4772f4 tcp: switch orphan_count to bare per-cpu counters c85c6fadbef0 kernel/sched: Fix sched_fork() access an invalid sched_task_group e1ee11473a88 ath10k: fix max antenna gain unit 786976b25ae0 hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff fbc80c83f118 hwmon: Fix possible memleak in __hwmon_device_register() e29352f162db net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE 41fe79cf1156 memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() 4756d7fbaf8c memstick: avoid out-of-range warning 72de92d33f83 mmc: sdhci-omap: Fix context restore 2fd26ec36ef0 mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured a9fbeb5bbc46 gve: Recover from queue stall due to missed IRQ 9e4f708df65e b43: fix a lower bounds test 508faf8721ae b43legacy: fix a lower bounds test 6a1610014181 hwrng: mtk - Force runtime pm ops for sleep ops 8d98683fa6df crypto: qat - disregard spurious PFVF interrupts d99fdd13a75a crypto: qat - detect PFVF collision after ACK 1fe4b2441982 media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable() 740a794e01c5 netfilter: nft_dynset: relax superfluous check on set updates af756be29c82 rcu: Always inline rcu_dynticks_task*_{enter,exit}() 68803253822c EDAC/amd64: Handle three rank interleaving mode 1b2d422a261b PM: EM: Fix inefficient states detection d01e847d84bf ath9k: Fix potential interrupt storm on queue reset 52e3545eefb6 media: em28xx: Don't use ops->suspend if it is NULL f03e0624e927 cpuidle: Fix kobject memory leaks in error paths 66f7de13d156 crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency 848f1f00c637 kprobes: Do not use local variable when creating debugfs file c34bfe4204cd media: cx23885: Fix snd_card_free call on null card pointer 388cebfa7342 media: tm6000: Avoid card name truncation 86626be4b629 media: si470x: Avoid card name truncation 88315edafe39 media: radio-wl1273: Avoid card name truncation 4280b30ea9b5 media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()' e43b301cb1ba media: TDA1997x: handle short reads of hdmi info frame. c85e591b77ca media: v4l2-ioctl: S_CTRL output the right value e2f3608a0b50 media: dvb-usb: fix ununit-value in az6027_rc_query 0a85325fc565 media: cxd2880-spi: Fix a null pointer dereference on error handling path 4303b39b5075 media: em28xx: add missing em28xx_close_extension 375150b3aaf8 drm/amdgpu: fix warning for overflow check 8980f9d14481 arm64: mm: update max_pfn after memory hotplug cbbf816cb7f9 drm/ttm: stop calling tt_swapin in vm_access c39154d3d623 ath10k: sdio: Add missing BH locking around napi_schdule() ffed64553817 ath10k: Fix missing frame timestamp for beacon/probe-resp 08fb0008d90b ath11k: Fix memory leak in ath11k_qmi_driver_event_work 4519fb910555 ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status b6a46ec871ea ath11k: Avoid race during regd updates ac49af173c64 ath11k: fix some sleeping in atomic bugs 9833cb32066a net: dsa: rtl8366rb: Fix off-by-one bug 78fb8c999242 rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 03725f7125db crypto: caam - disable pkc for non-E SoCs f0b40bf3e48a Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync 310f581f54cb wilc1000: fix possible memory leak in cfg_scan_result() 3a95dbc8b7f2 wcn36xx: Fix Antenna Diversity Switching ba8ba7688594 cgroup: Make rebind_subsystems() disable v2 controllers all at once a585e04e3472 net: net_namespace: Fix undefined member in key_remove_domain() fb4a58f5194e lockdep: Let lock_is_held_type() detect recursive read as read 38098444b787 virtio-gpu: fix possible memory allocation failure 582de9e38584 drm/v3d: fix wait for TMU write combiner flush f0bc12b84826 objtool: Fix static_call list generation b36ab509e181 x86/xen: Mark cpu_bringup_and_idle() as dead_end_function abf37e855e53 objtool: Add xen_start_kernel() to noreturn list 6b72caabc470 MIPS: lantiq: dma: fix burst length for DEU 226d68fb6c0a rcu: Fix existing exp request check in sync_sched_exp_online_cleanup() c20d8c197454 Bluetooth: fix init and cleanup of sco_conn.timeout_work 19337ed10e7e selftests/bpf: Fix strobemeta selftest regression bc9199271c32 netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state 0c5e94679480 parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling a1ec31a0befa parisc/unwind: fix unwinder when CONFIG_64BIT is enabled ee75174f6ab9 erofs: don't trigger WARN() when decompression fails 50a2d1229b51 task_stack: Fix end_of_stack() for architectures with upwards-growing stack 44d4c43babb0 parisc: fix warning in flush_tlb_all d8166a27c648 selftests/core: fix conflicting types compile error for close_range() 6f038b1a941e drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled ddfcae905238 x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted c4cfdf5fa8fc wcn36xx: Correct band/freq reporting on RX a27095cda17d spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe() b917f9b94633 btrfs: do not take the uuid_mutex in btrfs_rm_device 428bb3d71e35 btrfs: reflink: initialize return value to 0 in btrfs_extent_same() eeb96ebdc686 ACPI: AC: Quirk GK45 to skip reading _PSR 42d8c280dd65 net: annotate data-race in neigh_output() c2e5f43db0c1 vrf: run conntrack only in context of lower/physdev for locally generated packets b3ae170b8e3f ARM: 9136/1: ARMv7-M uses BE-8, not BE-32 b870d8a76c04 gfs2: Fix glock_hash_walk bugs 16a7981188a3 gfs2: Cancel remote delete work asynchronously 9ceac307b58e gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE 25a45d399996 ARM: clang: Do not rely on lr register for stacktrace c11aecbe0542 smackfs: use __GFP_NOFAIL for smk_cipso_doi() 32a9a8fdbab7 iwlwifi: mvm: disable RX-diversity in powersave e658d59f0ee4 selftests/bpf: Fix perf_buffer test on system with offline cpus d6dca066fc4f selftests: kvm: fix mismatched fclose() after popen() 9f4bd00a6ec6 PM: hibernate: Get block device exclusively in swsusp_check() 7a0b68eecb5b nvme: drop scan_lock and always kick requeue list when removing namespaces 82327823f34e nvmet-tcp: fix use-after-free when a port is removed 2659d8213d88 nvmet-rdma: fix use-after-free when a port is removed e73574f7bc9b nvmet: fix use-after-free when a port is removed 1a10bf4c9dd3 media: allegro: ignore interrupt if mailbox is not initialized 49cc377654d9 block: remove inaccurate requeue check 451cef276fe4 mwl8k: Fix use-after-free in mwl8k_fw_state_machine() 16c2dd0ab5c2 mt76: mt7915: fix an off-by-one bound check ea7f8803a314 tracing/cfi: Fix cmp_entries_* functions signature mismatch 5736f1dead84 workqueue: make sysfs of unbound kworker cpumask more clever ab5c46f258c9 lib/xz: Validate the value before assigning it to an enum variable aa5d35e350f6 lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression cad55afe37c9 memstick: r592: Fix a UAF bug when removing the driver 2338c3501726 md: update superblock after changing rdev flags in state_store b34ea3c91eac block: bump max plugged deferred size from 16 to 32 517feec952ae drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture() e1d7f0202a9f leaking_addresses: Always print a trailing newline 9101e2574b81 net: phy: micrel: make *-skew-ps check more lenient 832fad367cac drm/amdkfd: fix resume error when iommu disabled in Picasso 65c84e09e8d4 ACPI: battery: Accept charges over the design capacity as full b60086601832 iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value 219df0f6bad4 mmc: moxart: Fix reference count leaks in moxart_probe 38608d32adf0 ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create() 3c2434d9a6c6 tracefs: Have tracefs directories not set OTH permission bits by default 8524501a0e7a net-sysfs: try not to restart the syscall if it will fail eventually b94e5bd540f4 media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte() e3bc3e114135 media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info b499d4057160 media: ipu3-imgu: imgu_fmt: Handle properly try 272e54604cf7 ACPICA: Avoid evaluating methods too early during system resume f09e1a2d2c74 fs/proc/uptime.c: Fix idle time reporting in /proc/uptime 6e242c557ad5 ipmi: Disable some operations during a panic 1f38e5e803df media: rcar-csi2: Add checking to rcsi2_start_receiver() 3d5575b3f536 brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet 7d54f52d8fdb rtw88: fix RX clock gate setting while fifo dump d506a3d60df9 ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK 2709971f9f60 media: mceusb: return without resubmitting URB in case of -EPROTO error. 40b8e7dee544 media: imx: set a media_device bus_info string a62edd8390ec media: s5p-mfc: Add checking to s5p_mfc_probe(). b570e36a779c media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe() f4037b9b1062 media: uvcvideo: Set unique vdev name based in type d9349416402d media: uvcvideo: Return -EIO for control errors 2052c4cebce9 media: uvcvideo: Set capability in s_param 0c91bb4fbde4 media: stm32: Potential NULL pointer dereference in dcmi_irq_thread() 309ea2248d0a media: atomisp: Fix error handling in probe f4c652bd3506 media: netup_unidvb: handle interrupt properly according to the firmware 09ee09359af9 media: mt9p031: Fix corrupted frame after restarting stream aded39ff1f7a ath10k: high latency fixes for beacon buffer 461a71a1a62a ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets 43ab64578836 ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED 97890f36333d ath11k: Avoid reg rules update during firmware recovery 2114f80889d8 drm/amdgpu: Fix MMIO access page fault 68ac723fb17e fscrypt: allow 256-bit master keys with AES-256-XTS f526d948c38d mwifiex: Properly initialize private structure on interface type changes bab15174ec2f mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type 7ca1711d59f1 x86: Increase exception stack sizes 1c04dabbd1aa ath11k: Align bss_chan_info structure with firmware 3fac6feca95f smackfs: Fix use-after-free in netlbl_catmap_walk() 02ddf26d849d rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop 8d433ab5c8c2 net: sched: update default qdisc visibility after Tx queue cnt changes 28118dcc871e locking/lockdep: Avoid RCU-induced noinstr fail b92a5df2c7ad MIPS: lantiq: dma: reset correct number of channel 5af57ce8a615 MIPS: lantiq: dma: add small delay after reset 396e302cc835 platform/x86: wmi: do not fail if disabling fails 7f43cda650d5 rcutorture: Avoid problematic critical section nesting on PREEMPT_RT 7987f31e54a2 drm/panel-orientation-quirks: add Valve Steam Deck c10465f6d620 Bluetooth: fix use-after-free error in lock_sock_nested() 4dfba42604f0 Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg() 509ae4a4f074 drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6 62b90d7eeb6d drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1 780fff2c75f0 drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2) 6758d6651627 dma-buf: WARN on dmabuf release with pending attachments 890e4edcecfa power: supply: max17042_battery: Clear status bits in interrupt handler 898622adb7e9 USB: chipidea: fix interrupt deadlock 6edf4cffe1b4 USB: iowarrior: fix control-message timeouts 0e71591e916b most: fix control-message timeouts edc546625456 serial: 8250: fix racy uartclk update 5f31af4e78b4 USB: serial: keyspan: fix memleak on probe errors ab4755ea9114 iio: ad5770r: make devicetree property reading consistent 638462060859 iio: dac: ad5446: Fix ad5622_write() return value a4e7a8c4321f coresight: cti: Correct the parameter for pm_runtime_put 46709163a54a pinctrl: core: fix possible memory leak in pinctrl_enable() 6bc8317b8cd5 quota: correct error number in free_dqentry() ceeb0a8a8716 quota: check block number when reading the block in quota file bc1274df3ff4 PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge e2e8961fbc3a PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge bd5d982822cf PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge 2b99c6fb65b4 PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge 4bb5399c1c73 PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG 2ad10bbf8477 PCI: aardvark: Fix return value of MSI domain .alloc() method 6a0da19be5eb PCI: aardvark: Fix configuring Reference clock 5fb031fcd423 PCI: aardvark: Fix reporting Data Link Layer Link Active 2b861523d7ce PCI: aardvark: Do not unmask unused interrupts 1085ee5236ef PCI: aardvark: Fix checking for link up via LTSSM state 3bcbace714bb PCI: aardvark: Do not clear status bits of masked interrupts c1a8fb237470 PCI: cadence: Add cdns_plat_pcie_probe() missing return adcfc317d3f5 PCI: pci-bridge-emul: Fix emulation of W1C bits 4fd9f0509a14 ovl: fix use after free in struct ovl_aio_req af7d25d7853c xen/balloon: add late_initcall_sync() for initial ballooning done 96e7880a432a ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume 694c0c84a6ec ALSA: mixer: oss: Fix racy access to slots cd0b29a89bc2 ifb: fix building without CONFIG_NET_CLS_ACT 47462c5e600f serial: core: Fix initializing and restoring termios speed c1e6e42740cb ring-buffer: Protect ring_buffer_reset() from reentrancy 93fccb1f8939 powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found 875609ad8020 can: j1939: j1939_can_recv(): ignore messages with invalid source address c3cb7b5c9d14 can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport 9f9d6d391ff5 KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use bd37419f4fde KVM: arm64: Extract ESR_ELx.EC only 924955df37f2 power: supply: max17042_battery: use VFSOC for capacity when no rsns f2feac81edcd power: supply: max17042_battery: Prevent int underflow in set_soc_threshold 5720436bc7ba mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines 7e867f8bb3fe soc: fsl: dpio: use the combined functions to protect critical zone 55c97165adf6 soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id 62bd9eac5fa2 signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT 5e63b85a489d memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode 4fbecebb31c7 signal: Remove the bogus sigkill_pending in ptrace_stop 5c6fedce4a6a RDMA/qedr: Fix NULL deref for query_qp on the GSI QP 30cdf5035769 perf/x86/intel/uncore: Fix Intel ICX IIO event constraints aef1a67fbf49 perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server da8b3b95c57f rsi: Fix module dev_oper_mode parameter description d69ffec3aa22 rsi: fix rate mask set leading to P2P failure 41d97e0360e9 rsi: fix key enabled check causing unwanted encryption for vap_id > 0 46752a7aed91 rsi: fix occasional initialisation failure with BT coex a194e9c721d9 wcn36xx: handle connection loss indication 701cf28e019d libata: fix checking of DMA state 890e416c026e mwifiex: Try waking the firmware until we get an interrupt d59d2f7af7e0 mwifiex: Read a PCI register after writing the TX ring write pointer daccf40320d4 PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions 1c422d63010a wcn36xx: Fix (QoS) null data frame bitrate/modulation c1b8ad661ff1 wcn36xx: Fix tx_status mechanism 3d62e1c9bc55 wcn36xx: Fix HT40 capability for 2Ghz band c044f34ca22f ifb: Depend on netfilter alternatively to tc c7400e2ec8de evm: mark evm_fixmode as __ro_after_init eab090dfcb1d rtl8187: fix control-message timeouts 73b79ada4c1c PCI: Mark Atheros QCA6174 to avoid bus reset 30182b8c1388 ath10k: fix division by zero in send path ce560076091a ath10k: fix control-message timeout 1336b2af8adc ath6kl: fix control-message timeout f34487c7f223 ath6kl: fix division by zero in send path fd1e4d8c61ef mwifiex: fix division by zero in fw download path a5d8d76710e8 EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell 31f5c925464a regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property 02ecf56faa56 regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled 5b7e3bb16310 hwmon: (pmbus/lm25066) Add offset coefficients db04fb4111e6 selinux: fix race condition when computing ocontext SIDs a09a5f4c075d ia64: kprobes: Fix to pass correct trampoline address to the handler 2f65b76c4445 KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup b4a4c9dc4407 btrfs: call btrfs_check_rw_degradable only if there is a missing device b406439afe73 btrfs: fix lost error handling when replaying directory deletes 8992aab294cb btrfs: clear MISSING device status bit in btrfs_close_one_device a99da5b68080 rds: stop using dmapool 0bfb1c1a16ff net/smc: Correct spelling mistake to TCPF_SYN_RECV 9b86eb2f34d1 net/smc: Fix smc_link->llc_testlink_time overflow 2167a9a12cc9 nfp: bpf: relax prog rejection for mtu check through max_pkt_offset c9a7d5fe1552 vmxnet3: do not stop tx queues after netif_device_detach() 9813218e96db r8169: Add device 10ec:8162 to driver r8169 ad6a2a1e566f nvmet-tcp: fix header digest verification c8270435cfb4 block: schedule queue restart after BLK_STS_ZONE_RESOURCE 7d1fb5c12cc0 drm: panel-orientation-quirks: Add quirk for GPD Win3 4d41059b9e23 watchdog: Fix OMAP watchdog early handling b8cb3f4ffa3a net: multicast: calculate csum of looped-back and forwarded packets 07f7a1864929 spi: spl022: fix Microwire full duplex mode db1d9d102ee4 nvmet-tcp: fix a memory leak when releasing a queue 0e86b727a94f xen/netfront: stop tx queues during live migration 69b14e23dfc3 gpio: mlxbf2.c: Add check for bgpio_init failure b92ac0a9ca8f bpf: Prevent increasing bpf_jit_limit above max a3564fb7b0bf bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT 0ad7f317b933 fcnal-test: kill hanging ping/nettest binaries on cleanup bc3e73ebb79b drm: panel-orientation-quirks: Add quirk for Aya Neo 2021 4002f3944d41 mmc: winbond: don't build on M68K a1ea41f91dcb reset: socfpga: add empty driver allowing consumers to probe a90398438517 ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode f03e04bb9d11 hyperv/vmbus: include linux/bitops.h 6491ccdde2c5 sfc: Don't use netif_info before net_device setup e519acba2fae sfc: Export fibre-specific supported link modes 7986fdbbe009 cavium: Fix return values of the probe function ad01685177ce mISDN: Fix return values of the probe function a6cb5e09e16a scsi: qla2xxx: Fix unmap of already freed sgl 77fee241e6eb scsi: qla2xxx: Return -ENOMEM if kzalloc() fails 940783d08d15 cavium: Return negative value when pci_alloc_irq_vectors() fails 75710d583cc4 ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers 92556e3c2b2e ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked() 73199aadcd5c x86/irq: Ensure PI wakeup handler is unregistered before module unload df8a74fc15ea x86/cpu: Fix migration safety with X86_BUG_NULL_SEL 115810a26527 x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c b05eea1bcb36 fuse: fix page stealing d81e341fb13a ext4: refresh the ext4_ext_path struct after dropping i_data_sem. 4089432dc030 ext4: ensure enough credits in ext4_ext_shift_path_extents aa21b7e3d320 ext4: fix lazy initialization next schedule time computation in more granular unit 782025948bc6 ALSA: timer: Unconditionally unlink slave instances, too b980ce4ebb8b ALSA: timer: Fix use-after-free problem 7c6fd525044c ALSA: synth: missing check for possible NULL after the call to kstrdup ecd536c57ab7 ALSA: hda: Free card instance properly at probe errors f503a25a3de3 ALSA: usb-audio: Add registration quirk for JBL Quantum 400 9259518fab5b ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk 3c7a3f2d79f7 ALSA: line6: fix control and interrupt message timeouts 21f9c02a4ded ALSA: 6fire: fix control and bulk message timeouts 0e4c288a74a3 ALSA: ua101: fix division by zero at probe 4f9e9c389e10 ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED 62b189f9f3c5 ALSA: hda/realtek: Add quirk for ASUS UX550VE a770cb746bdd ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N 88bcfcc50d0e ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ 0288f838a2e3 ALSA: hda/realtek: Add quirk for Clevo PC70HS 3d0e5d2eaff1 ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED f0750e98010a ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14 a2b3dbc9fd24 media: v4l2-ioctl: Fix check_ext_ctrls 151eff588043 media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers 71a137376b64 media: rkvdec: Support dynamic resolution changes b2b5126a777b media: ite-cir: IR receiver stop working after receive overflow 39275d2ec6ff media: rkvdec: Do not override sizeimage for output format 949c5b6daa75 crypto: s5p-sss - Add error handling in s5p_aes_probe() 9ac25cd2f4ec firmware/psci: fix application of sizeof to pointer dd189feebaf8 tpm: Check for integer overflow in tpm2_map_response_body() 32498b8889c8 parisc: Fix ptrace check on syscall return 15b4142aea0a parisc: Fix set_fixmap() on PA1.x CPUs 284ad310542f exfat: fix incorrect loading of i_blocks for large files 823b487cfbfc mmc: dw_mmc: Dont wait for DRTO on Write RSP error 7b24b669d3f9 mmc: mtk-sd: Add wait dma stop done flow c1d31266de3d scsi: qla2xxx: Fix use after free in eh_abort path 37b15db1d87c scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file 06cc8187dbb6 scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd() 9d623bf1736b ocfs2: fix data corruption on truncate 39264eaa6d44 libata: fix read log timeout value ab0a06769e69 Input: i8042 - Add quirk for Fujitsu Lifebook T725 8c341d11c8bd Input: elantench - fix misreporting trackpoint coordinates d1eb42de7cf9 Input: iforce - fix control-message timeout afbec52fbce0 binder: use cred instead of task for getsecid 0d9f4ae7cd6f binder: use cred instead of task for selinux checks bd9cea41ac6e binder: use euid from cred instead of using task 7f1d5a1a7d80 usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform ff32302687fd xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay 87acf4924e1b ANDROID: GKI: fix up abi break in ehci code 525e61a87183 Merge 5.10.79 into android12-5.10-lts bd816c278316 Linux 5.10.79 62424fe4c2cf rsi: fix control-message timeout 8971158af1e0 media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init 1cf43e928954 staging: rtl8192u: fix control-message timeouts 9963ba5b9d49 staging: r8712u: fix control-message timeout 844b02496eac comedi: vmk80xx: fix bulk and interrupt message timeouts b7fd7f3387f0 comedi: vmk80xx: fix bulk-buffer overflow 33d7a470730d comedi: vmk80xx: fix transfer-buffer overflows ef143dc0c3de comedi: ni_usb6501: fix NULL-deref in command paths 786f5b034504 comedi: dt9812: fix DMA buffers on stack 86d4aedcbc69 isofs: Fix out of bound access for corrupted isofs image c430094541a8 staging: rtl8712: fix use-after-free in rtl8712_dl_fw ab4af56ae250 printk/console: Allow to disable console output by using console="" or console=null 07d1db141e47 binder: don't detect sender/target during buffer cleanup 42681b90c4db usb-storage: Add compatibility quirk flags for iODD 2531/2541 1309753b7841 usb: musb: Balance list entry in musb_gadget_queue 27409143122f usb: gadget: Mark USB_FSL_QE broken on 64-bit 94e5305a3816 usb: ehci: handshake CMD_RUN instead of STS_HALT a8db6fd04d58 Revert "x86/kvm: fix vcpu-id indexed array sizes" ecf58653f1e4 KVM: x86: avoid warning with -Wbitwise-instead-of-logical be686d451ef9 Merge branch 'android12-5.10' into `android12-5.10-lts` bb235e8cc2b6 Merge 5.10.78 into android12-5.10-lts 5040520482a5 Linux 5.10.78 4c7c0243275b ALSA: usb-audio: Add Audient iD14 to mixer map quirk table f3eb44f496ef ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table 68765fc97762 Revert "wcn36xx: Disable bmps when encryption is disabled" f84b791d4c3b ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" bbc920fb320f Revert "drm/ttm: fix memleak in ttm_transfered_destroy" 6d67b2a73b8e mm: khugepaged: skip huge page collapse for special files 5a7957491e31 Revert "usb: core: hcd: Add support for deferring roothub registration" 50f46bd30949 Revert "xhci: Set HCD flag to defer primary roothub registration" d7fc85f61042 media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt() b93a70bf2b57 net: ethernet: microchip: lan743x: Fix skb allocation failure b9c85a71e1b4 vrf: Revert "Reset skb conntrack connection..." 0382fdf9ae78 sfc: Fix reading non-legacy supported link modes 748786564a35 Revert "io_uring: reinforce cancel on flush during exit" 7b57c38d12ae scsi: core: Put LLD module refcnt after SCSI device is released a7c8ce846007 Merge branch 'android12-5.10' into `android12-5.10-lts` 76698ea35fd3 ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking" a739489620d5 Merge 5.10.77 into android12-5.10-lts 09df347cfd18 Linux 5.10.77 fbb91dadb512 perf script: Check session->header.env.arch before using it 6f416815c505 riscv: Fix asan-stack clang build 7a4cf25d8329 riscv: fix misalgned trap vector base address acb8832f6a1c scsi: ufs: ufs-exynos: Correct timeout value setting registers 8ecddaca7942 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu e11a7355fb98 KVM: s390: clear kicked_mask before sleeping again 727e5deca802 lan743x: fix endianness when accessing descriptors a7112b8eeb14 sctp: add vtag check in sctp_sf_ootb c2442f721972 sctp: add vtag check in sctp_sf_do_8_5_1_E_sa 14c1e02b11c2 sctp: add vtag check in sctp_sf_violation dad2486414b5 sctp: fix the processing for COOKIE_ECHO chunk 8c50693d25e4 sctp: fix the processing for INIT_ACK chunk ad111d4435d8 sctp: use init_tag from inithdr for ABORT chunk 4509000a2515 phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings 5b88bb9377ee phy: phy_start_aneg: Add an unlocked version 81780b624d1c phy: phy_ethtool_ksettings_set: Move after phy_start_aneg 258c5fea44cf phy: phy_ethtool_ksettings_get: Lock the phy for consistency 58722323d4bc net/tls: Fix flipped sign in async_wait.err assignment 44e8c93e1e49 net: nxp: lpc_eth.c: avoid hang when bringing interface down c2af2092c9bb net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent bfa6fbdb4e39 net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails e81bed557fe7 mlxsw: pci: Recycle received packet upon allocation failure be98be1a17e9 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST aead02927af3 gpio: xgs-iproc: fix parsing of ngpios property 863a423ee07b RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string 2b7c5eed19d3 net: Prevent infinite while loop in skb_tx_hash() 04121b10cdf0 cfg80211: correct bridge/4addr mode check aed897e96b19 net-sysfs: initialize uid and gid before calling net_ns_get_ownership b0a2cd38553c net: batman-adv: fix error handling 36e911a16b37 regmap: Fix possible double-free in regcache_rbtree_exit() e51371bd687e reset: brcmstb-rescal: fix incorrect polarity of status bit 2cf7d935d6ba arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node 10e40fb2f508 RDMA/mlx5: Set user priority for DCT 24fd8e2f027d octeontx2-af: Display all enabled PF VF rsrc_alloc entries. c63d7f2ca99a nvme-tcp: fix possible req->offset corruption 32f3db20f126 nvme-tcp: fix data digest pointer calculation 4286c72c5321 nvmet-tcp: fix data digest pointer calculation d98883f6c33e IB/hfi1: Fix abba locking issue with sc_disable() c3e17e58f571 IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields ee4908f909b3 bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch() dd2260ec643d bpf: Fix potential race in tail call compatibility check 15dec6d8f864 tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function cac6b043cea3 riscv, bpf: Fix potential NULL dereference 01599bf7cc2b cgroup: Fix memory leak caused by missing cgroup_bpf_offline eb3b6805e3e9 drm/amdgpu: fix out of bounds write c21b4002214c drm/ttm: fix memleak in ttm_transfered_destroy 69a7fa5cb0de mm, thp: bail out early in collapse_file for writeback page 8fb858b74ac5 net: lan78xx: fix division by zero in send path 4c22227e39c7 cfg80211: fix management registrations locking fa29cec42c2d cfg80211: scan: fix RCU in cfg80211_add_nontrans_list() db1191a529e4 nvme-tcp: fix H2CData PDU send accounting (again) 5043fbd294f5 ocfs2: fix race between searching chunks and release journal_head from buffer_head 01169a43353d mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit ee3213b117ce mmc: sdhci: Map more voltage level to SDHCI_POWER_330 a95a76fc01a0 mmc: dw_mmc: exynos: fix the finding clock sample value 12a46f72f499 mmc: mediatek: Move cqhci init behind ungate clock 44c2bc2a6bbe mmc: cqhci: clear HALT state after CQE enable efe934629fff mmc: vub300: fix control-message timeouts f3dec7e7ace3 net/tls: Fix flipped sign in tls_err_abort() calls c828115a14ea Revert "net: mdiobus: Fix memory leak in __mdiobus_register" 11c0406b4c33 nfc: port100: fix using -ERRNO as command type mask 0b1b3e086b0a tipc: fix size validations for the MSG_CRYPTO type 5aa5bab57957 ata: sata_mv: Fix the error handling of mv_chip_id() 9a52798dce73 pinctrl: amd: disable and mask interrupts on probe 01c2881bb0e0 Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode" 017718dfbb6f usbnet: fix error return code in usbnet_probe() 693ecbe8f799 usbnet: sanity check for maxpacket b663890d8544 ext4: fix possible UAF when remounting r/o a mmp-protected file system d4d9c065988c arm64: Avoid premature usercopy failure e184a21b5ccc powerpc/bpf: Fix BPF_MOD when imm == 1 3f2c12ec8a3f io_uring: don't take uring_lock during iowq cancel 5a768b4d3e1a ARM: 9141/1: only warn about XIP address when not compile testing 15b278f94bbb ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype c06d7d9bfcf6 ARM: 9138/1: fix link warning with XIP + frame-pointer 8a6af97c31be ARM: 9134/1: remove duplicate memcpy() definition 6ad8bbc9d301 ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned 3ceaa85c331d ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images 4944ec82ebb9 Merge 5.10.76 into android12-5.10-lts 378e85d1aeb5 Linux 5.10.76 cfa79faf7e1f pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume() c56c801391c3 ARM: 9122/1: select HAVE_FUTEX_CMPXCHG d088db8637bb selftests: bpf: fix backported ASSERT_FALSE 3a845fa00fd7 e1000e: Separate TGP board type from SPT 021b6d11e590 tracing: Have all levels of checks prevent recursion 3a0dc2e35a5d net: mdiobus: Fix memory leak in __mdiobus_register cfe9266213c4 bpf, test, cgroup: Use sk_{alloc,free} for test cases 188907c25218 s390/pci: fix zpci_zdev_put() on reserve f18b90e9366f can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg() 2304dfb548a4 scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma() c58654f344dd net: hns3: fix for miscalculation of rx unused desc 96fe5061291d sched/scs: Reset the shadow stack when idle_task_exit 96f0aebf29be scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() 90c8e8c0829b scsi: iscsi: Fix set_param() handling 0eb254479685 Input: snvs_pwrkey - add clk handling ea9c1f5d8a3a perf/x86/msr: Add Sapphire Rapids CPU support 7a5a1f09c8b4 libperf tests: Fix test_stat_cpu e56a3e7ae353 ALSA: hda: avoid write to STATESTS if controller is in reset 85c8d8c1609d platform/x86: intel_scu_ipc: Update timeout value in comment 9f591cbdbed3 isdn: mISDN: Fix sleeping function called from invalid context ab4f542b515b ARM: dts: spear3xx: Fix gmac node 15d3ad79885b net: stmmac: add support for dwmac 3.40a f9d16a428489 btrfs: deal with errors when checking if a dir entry exists during log replay 369db2a91d5c ALSA: hda: intel: Allow repeatedly probing on codec configuration errors 81d8e70cdce4 gcc-plugins/structleak: add makefile var for disabling structleak 69078a94365a net: hns3: fix the max tx size according to user manual f40c2281d2c0 drm: mxsfb: Fix NULL pointer dereference crash on unload 96835b68d7b3 net: bridge: mcast: use multicast_membership_interval for IGMPv3 0e033cb40761 selftests: netfilter: remove stray bash debug line f8a6541345c2 netfilter: Kconfig: use 'default y' instead of 'm' for bool config option 7f221ccbee4e isdn: cpai: check ctr->cnr to avoid array index out of bound 77c0ef979e32 nfc: nci: fix the UAF of rf_conn_info object 8f042315fcc4 KVM: nVMX: promptly process interrupts delivered while in guest mode b41fd8f5d2ad mm, slub: fix incorrect memcg slab count for bulk free 568f906340b4 mm, slub: fix potential memoryleak in kmem_cache_open() 48843dd23c7b mm, slub: fix mismatch between reconstructed freelist depth and cnt c5c2a80368e9 powerpc/idle: Don't corrupt back chain when going idle 197ec50b2df1 KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest fbd724c49bea KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest() 9258f58432c5 powerpc64/idle: Fix SP offsets when saving GPRs 3e16d9d525a7 net: dsa: mt7530: correct ds->num_ports 16802fa4c33e audit: fix possible null-pointer dereference in audit_filter_rules 0d867a359979 ASoC: DAPM: Fix missing kctl change notifications a2606acf418e ALSA: hda/realtek: Add quirk for Clevo PC50HS 6411397b6d7a ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset b721500c979b vfs: check fd has read access in kernel_read_file_from_fd() 895ceeff31b1 elfcore: correct reference to CONFIG_UML 3cda4bfffd4f userfaultfd: fix a race between writeprotect and exit_mmap() 93be0eeea14c ocfs2: mount fails with buffer overflow in strlen f1b98569e81c ocfs2: fix data corruption after conversion from inline format 1727e8688d2e ceph: fix handling of "meta" errors 603d4bcc0fcd ceph: skip existing superblocks that are blocklisted or shut down when mounting d48db508f911 can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes 5abc9b9d3ca5 can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length 864e77771a24 can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv ecfccb1c58c9 can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer 053bc12df0d6 can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible() 0917fb04069a can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path 28f28e4bc3a5 can: peak_pci: peak_pci_remove(): fix UAF 9697ad6395f9 can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification 4758e92e75ca can: rcar_can: fix suspend/resume 4a0928c3ebca net: enetc: fix ethtool counter name for PM0_TERR 00ad7a015409 drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel eccd00728b1a ice: Add missing E810 device ids 6418508a3ac2 e1000e: Fix packet loss on Tiger Lake and later 29f1bdcaa3dd net: stmmac: Fix E2E delay mechanism d36b15e3e7b5 net: hns3: disable sriov before unload hclge layer 6a72e1d78a2f net: hns3: fix vf reset workqueue cannot exit 32b860d364d2 net: hns3: schedule the polling again when allocation fails 96c013f40c9b net: hns3: add limit ets dwrr bandwidth cannot be 0 21f61d10435c net: hns3: reset DWRR of unused tc to zero 53770a411559 powerpc/smp: do not decrement idle task preempt count in CPU offline 81dbd898fb7b NIOS2: irqflags: rename a redefined register name 6edf99b000d6 net: dsa: lantiq_gswip: fix register definition ef97219d5fec ipv6: When forwarding count rx stats on the orig netdev 38d984e5e845 tcp: md5: Fix overlap between vrf and non-vrf keys c28bea6b876f lan78xx: select CRC32 9c8943812dac netfilter: ipvs: make global sysctl readonly in non-init netns 911e01990c70 netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6 69ea08c1b539 ice: fix getting UDP tunnel entry 842fce43190c ASoC: wm8960: Fix clock configuration on slave mode 39afed394cc6 dma-debug: fix sg checks in debug_dma_map_sg() 2a670c323055 netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value 0f4308a164a9 NFSD: Keep existing listeners on portlist error 546c04c85791 xtensa: xtfpga: Try software restart before simulating CPU reset bfef5d826276 xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF d8284c981c1c drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI 101e1bcb1147 xen/x86: prevent PVH type from getting clobbered a6285b1b2212 block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output 85c1827eeee7 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default 5489c1bed5b8 arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address f59da9f7efa7 io_uring: fix splice_fd_in checks backport typo b6f32897af19 xhci: add quirk for host controllers that don't update endpoint DCS b3b7f831a49b parisc: math-emu: Fix fall-through warnings 234d53d2bb60 Merge branch 'android12-5.10' into `android12-5.10-lts` 221975092ae5 Merge 5.10.75 into android12-5.10-lts 3a9842b42e42 Linux 5.10.75 3e2873652163 net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's 3593fa147c86 ionic: don't remove netdev->dev_addr when syncing uc list f33890d9bb59 net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb 9c546af181bc nfp: flow_offload: move flow_indr_dev_register from app init to app start 6da9af2d2531 r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256 ecfd4fa15b06 qed: Fix missing error code in qed_slowpath_start() 51f6e72ca656 mqprio: Correct stats in mqprio_dump_class_stats(). fdaff7f9e806 platform/x86: intel_scu_ipc: Fix busy loop expiry time 057ee6843bbb acpi/arm64: fix next_platform_timer() section mismatch error c6b2400095ba drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling 2c5658717428 drm/msm/dsi: Fix an error code in msm_dsi_modeset_init() b28586fb04f3 drm/msm/a6xx: Track current ctx by seqno abd11864159b drm/msm/mdp5: fix cursor-related warnings 91a340768b01 drm/msm: Fix null pointer dereference on pointer edp a7b45024f66f drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read d0f0e1710397 drm/panel: olimex-lcd-olinuxino: select CRC32 a4a37e6516f8 spi: bcm-qspi: clear MSPI spifie interrupt during probe d9428f08e1c3 platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes c216cebdd245 platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call e59d839743b5 mlxsw: thermal: Fix out-of-bounds memory accesses 7eef482db728 ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators() 116932c0e45e pata_legacy: fix a couple uninitialized variable bugs 50cb95487c26 NFC: digital: fix possible memory leak in digital_in_send_sdd_req() 3f2960b39f22 NFC: digital: fix possible memory leak in digital_tg_listen_mdaa() 2f21f06a5e7a nfc: fix error handling of nfc_proto_register() ba39f55952a2 vhost-vdpa: Fix the wrong input in config_cb 84e0f2fc662e ethernet: s2io: fix setting mac address during resume e19c10d6e07c net: encx24j600: check error in devm_regmap_init_encx24j600 f2e1de075018 net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work 9053c5b4594c net: stmmac: fix get_hw_feature() on old hardware 12da46cb6a90 net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp 4f7bddf8c5c0 net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path afb0c67dfdb5 net: korina: select CRC32 33ca85010511 net: arc: select CRC32 17a027aafd52 gpio: pca953x: Improve bias setting d84a69ac410f sctp: account stream padding length for reconf chunk 6fecdb5b54a5 nvme-pci: Fix abort command id 2d937cc12c14 ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting 6e6082250b53 ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states 48613e687e28 ARM: dts: bcm2711: fix MDIO #address- and #size-cells 6e6e3018d3ce ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address 76644f94595b tee: optee: Fix missing devices unregister during optee_remove 07f885682486 iio: dac: ti-dac5571: fix an error code in probe() 6c0024bcaadc iio: ssp_sensors: fix error code in ssp_print_mcu_debug() 0fbc3cf7dd9a iio: ssp_sensors: add more range checking in ssp_parse_dataframe() abe5b13dd959 iio: adc: max1027: Fix the number of max1X31 channels 41e84a4f25b6 iio: light: opt3001: Fixed timeout error when 0 lux e811506f609a iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED 1671cfd31b66 iio: adc: max1027: Fix wrong shift with 12-bit devices f931076d32b6 iio: adc128s052: Fix the error handling path of 'adc128_probe()' 4425d059aa2e iio: adc: ad7793: Fix IRQ flag d078043a1775 iio: adc: ad7780: Fix IRQ flag a8177f0576fa iio: adc: ad7192: Add IRQ flag be8ef91d6166 driver core: Reject pointless SYNC_STATE_ONLY device links d5f13bbb5104 drivers: bus: simple-pm-bus: Add support for probing simple bus only devices b45923f66eb6 iio: adc: aspeed: set driver data when adc probe. ea947267eb6f powerpc/xive: Discard disabled interrupts in get_irqchip_state() 9e46bdfb55a3 x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically 57e48886401b nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells a7bd0dd3f2ed EDAC/armada-xp: Fix output of uncorrectable error counter 92e6e08ca2b0 virtio: write back F_VERSION_1 before validate 86e3ad8b759d misc: fastrpc: Add missing lock before accessing find_vma() 3f0ca245a834 USB: serial: option: add prod. id for Quectel EG91 ecad614b0c68 USB: serial: option: add Telit LE910Cx composition 0x1204 bf26bc72dc59 USB: serial: option: add Quectel EC200S-CN module support d4b77900cffe USB: serial: qcserial: add EM9191 QDL support 3147f5721588 Input: xpad - add support for another USB ID of Nacon GC-100 9d89e2871167 usb: musb: dsps: Fix the probe error path 3b4275140142 efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock() 5100dc4489ab efi/cper: use stack buffer for error record decoding 2c5dd2a8af77 cb710: avoid NULL pointer subtraction d40e193abd07 xhci: Enable trust tx length quirk for Fresco FL11 USB controller dec944bb7079 xhci: Fix command ring pointer corruption while aborting a command dc3e0a20dbb9 xhci: guard accesses to ep_state in xhci_endpoint_reset() 0ee66290f006 USB: xhci: dbc: fix tty registration race 9f0d6c781cb5 mei: me: add Ice Lake-N device id. e4f7171c2395 x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails 0e32a2b85c7d btrfs: fix abort logic in btrfs_replace_file_extents 52924879ed45 btrfs: update refs for any root except tree log roots 352349aa4948 btrfs: check for error when looking up inode during dir entry replay 4ed68471bc37 btrfs: deal with errors when adding inode reference during log replay 95d3aba5febe btrfs: deal with errors when replaying dir entry during log replay 206868a5b6c1 btrfs: unlock newly allocated extent buffer after error e7e3ed5c92b6 drm/msm: Avoid potential overflow in timeout_to_jiffies() a31c33aa80a5 arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE 0c97008859ca csky: Fixup regs.sr broken in ptrace 5dab6e8f141a csky: don't let sigreturn play with priveleged bits of status register e3c37135c9ca clk: socfpga: agilex: fix duplicate s2f_user0_clk faba7916cdc0 s390: fix strrchr() implementation 7ef43c0f68fb nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^' c3bf276fd7c8 ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW 1099953b32c6 ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2 554a5027f536 ALSA: hda/realtek: Add quirk for TongFang PHxTxX1 0fa256509b9f ALSA: hda/realtek - ALC236 headset MIC recording issue 1e10c6bf15d2 ALSA: hda/realtek: Add quirk for Clevo X170KM-G 8a5f01f4b01c ALSA: hda/realtek: Complete partial device name to avoid ambiguity c6e5290e6cc1 ALSA: hda - Enable headphone mic on Dell Latitude laptops with ALC3254 9bb1659ac594 ALSA: hda/realtek: Enable 4-speaker output for Dell Precision 5560 laptop 7680631ac7ab ALSA: seq: Fix a potential UAF by wrong private_free call order 4aab156d302c ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl f077d699c1d2 ALSA: usb-audio: Add quirk for VF0770 a336e746e30e Merge 5.10.74 into android12-5.10-lts 77434fe5a077 Linux 5.10.74 42b49f012b6a hwmon: (pmbus/ibm-cffps) max_power_out swap changes bb893f075431 sched: Always inline is_percpu_thread() bdae2a083436 perf/core: fix userpage->time_enabled of inactive events 57c7ca3d5592 scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" d993d1e1c411 scsi: ses: Fix unsigned comparison with less than zero 621ddffb70db drm/amdgpu: fix gart.bo pin_count leak a5ba615fbeb3 net: sun: SUNVNET_COMMON should depend on INET db868b45324d vboxfs: fix broken legacy mount signature checking 42c871d38e3d mac80211: check return value of rhashtable_init bda06aff03a1 net: prevent user from passing illegal stab size 3d68c7b0ab5b hwmon: (ltc2947) Properly handle errors when looking for the external clock 194e8a4f0acd m68k: Handle arrivals of multiple signals correctly 977aee58142a mac80211: Drop frames from invalid MAC address in ad-hoc mode 9ec9a975ea37 netfilter: nf_nat_masquerade: defer conntrack walk to work queue 5182d6db80bb netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic bcb647c1e15d ASoC: SOF: loader: release_firmware() on load failure to avoid batching f6952b1e22c2 HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs ddc4ba737bcb netfilter: ip6_tables: zero-initialize fragment offset ddf026d6ae9a HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS 0bcfa99e8fae ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic 14cbfeeee41b ext4: correct the error path of ext4_write_inline_data_end() d7a15e1e4fd7 ext4: check and update i_disksize properly 87b4a703032f Merge branch 'android12-5.10' into `android12-5.10-lts` 4b3fd2a81e17 Merge 5.10.73 into android12-5.10-lts 0268aa579b1f Linux 5.10.73 825c00c2ee14 x86/hpet: Use another crystalball to evaluate HPET usability f2447f6587b8 x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n 6bfe1f6fc876 x86/entry: Correct reference to intended CONFIG_64_BIT 5d637bc6f98a x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0] df121cf55003 x86/Kconfig: Correct reference to MWINCHIP3D d7c36115fb81 x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI f73ca4961d51 pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init 411b38fe68ba powerpc/64s: fix program check interrupt emergency stack path 18a2a2cafcf9 powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 a4037dded56b RISC-V: Include clone3() on rv32 29fdb11ca88d bpf, s390: Fix potential memory leak about jit_data 2c152d9da8fe riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable de834e12b96d i2c: mediatek: Add OFFSET_EXT_CONF setting back f86de018fd7a i2c: acpi: fix resource leak in reconfiguration device addition 87990a60b45f powerpc/iommu: Report the correct most efficient DMA mask for PCI devices 985cca1ad11e net: prefer socket bound to interface when not in VRF 97aeed72af4f i40e: Fix freeing of uninitialized misc IRQ vector 2dc768a98c9b i40e: fix endless loop under rtnl d3a07ca78ace gve: report 64bit tx_bytes counter from gve_handle_report_stats() 35f6ddd934e6 gve: fix gve_get_stats() 9a043022522e rtnetlink: fix if_nlmsg_stats_size() under estimation 72c2a68f1d83 gve: Avoid freeing NULL pointer 5d903a694b08 gve: Correct available tx qpl check f69556a42043 drm/nouveau/debugfs: fix file release memory leak 65fff0a8efcd drm/nouveau/kms/nv50-: fix file release memory leak f86e19d918a8 drm/nouveau: avoid a use-after-free when BO init fails 008224cdc126 video: fbdev: gbefb: Only instantiate device when built for IP32 d2ccbaaa6615 drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup 18d2568cc7ff bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893 40a84fcae2bf perf jevents: Tidy error handling 628b31d96711 netlink: annotate data races around nlk->bound 144715fbab1b net: sfp: Fix typo in state machine debug string 3ec73ffeef54 net/sched: sch_taprio: properly cancel timer from taprio_destroy() 60955b65bd6a net: bridge: fix under estimation in br_get_linkxstats_size() c480d15190eb net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size() cb8880680bdf ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence 2b0035d1058a dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value 10afd1597263 arm64: dts: ls1028a: add missing CAN nodes 95ba03fb4cb1 ptp_pch: Load module automatically if ID matches 442ea65d0ccb powerpc/fsl/dts: Fix phy-connection-type for fm1mac3 acff2d182c07 net_sched: fix NULL deref in fifo_set_limit() 0d2dd40a7be6 phy: mdio: fix memory leak 6e6f79e39830 net/mlx5: E-Switch, Fix double allocation of acl flow counter d70cb6c77ad9 net/mlx5e: IPSEC RX, enable checksum complete 064faa8e8a9b bpf: Fix integer overflow in prealloc_elems_and_freelist() d5f4b27c3cfc soc: ti: omap-prm: Fix external abort for am335x pruss 1d8f4447e8c4 bpf, arm: Fix register clobbering in div/mod implementation 29a19eaeb29d iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15 6b0132f73094 xtensa: call irqchip_init only when CONFIG_USE_OF is selected 3d288ed98314 xtensa: use CONFIG_USE_OF instead of CONFIG_OF 997bec509a83 arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding fbca14abc111 ath5k: fix building with LEDS=m 8aef3824e946 PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus d9b838ae390e ARM: dts: imx6qdl-pico: Fix Ethernet support 9e99ad4194a5 ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo 2ba34cf0c16c ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo 8f977e97b2b9 soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment 14f52004bda5 ARM: at91: pm: do not panic if ram controllers are not enabled d89a313a5739 ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference 25ac88e601eb soc: qcom: socinfo: Fixed argument passed to platform_set_data() ab8073794be3 bus: ti-sysc: Add break in switch statement in sysc_init_soc() 427faa29e06f riscv: Flush current cpu icache before other cpus 05287407dedf ARM: dts: qcom: apq8064: use compatible which contains chipid ac06fe40e889 ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe 71d3ce62ac88 ARM: dts: omap3430-sdp: Fix NAND device node f9a855d1bcb2 xen/balloon: fix cancelled balloon action 9aac782ab0ab SUNRPC: fix sign error causing rpcsec_gss drops 8f174a208c4c nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero 12d4b179022a nfsd: fix error handling of register_pernet_subsys() in init_nfsd() 1bc2f315a215 ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO 9763ffd4da21 ovl: fix missing negative dentry check in ovl_rename() 1500f0c83670 mmc: sdhci-of-at91: replace while loop with read_poll_timeout 3a0feae5f642 mmc: sdhci-of-at91: wait for calibration done before proceed e5cb3680b958 mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk 13d17cc717d5 xen/privcmd: fix error handling in mmap-resource processing de1e8bd36ab4 drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows 1d4e9f27d20d usb: typec: tcpm: handle SRC_STARTUP state if cc changes feb3fe702a58 USB: cdc-acm: fix break reporting fc8b3e838bdf USB: cdc-acm: fix racy tty buffer accesses b3265b88e83b usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle 16d728110bd7 Partially revert "usb: Kconfig: using select for USB_COMMON dependency" 56596148ae72 ANDROID: Different fix for KABI breakage in 5.10.71 in struct sock 79f3d20a4562 ANDROID: ABI: update .xml file with new symbols to track 3cce4e4a1b01 Merge branch 'android12-5.10' into `android12-5.10-lts` d306ef529c55 Merge 5.10.72 into android12-5.10-lts 5aa003b38148 Linux 5.10.72 387aecdab7fa libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD. 02bf504bc32b perf/x86: Reset destroy callback on event init failure b56475c29bd8 KVM: x86: nSVM: restore int_vector in svm_clear_vintr ae34f26d4a84 kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[] 6d0ff9205999 KVM: do not shrink halt_poll_ns below grow_start b8add3f47ae7 selftests: KVM: Align SMCCC call with the spec in steal_time 352b02562a3e tools/vm/page-types: remove dependency on opt_file for idle page tracking 84778fd66d3d smb3: correct smb3 ACL security descriptor a7be240d1703 irqchip/gic: Work around broken Renesas integration 8724a2a0e6d9 scsi: ses: Retry failed Send/Receive Diagnostic commands 2e28f7dd3743 thermal/drivers/tsens: Fix wrong check for tzd in irq handlers 7a670cfb0f4c nvme-fc: avoid race between time out and tear down c251d023ed22 nvme-fc: update hardware queues before using them c4506403e1f3 selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn bcc4b4de63a4 selftests: be sure to make khdr before other targets 6a4aaf1d84f7 habanalabs/gaudi: fix LBW RR configuration 2754fa3b73df usb: dwc2: check return value after calling platform_get_resource() ed6574d48469 usb: testusb: Fix for showing the connection speed 60df9f55562a scsi: sd: Free scsi_disk device via put_device() 76c7063c7405 ext2: fix sleeping in atomic bugs on error b114f2d18e0f sparc64: fix pci_iounmap() when CONFIG_PCI is not set fdfb3bc87381 xen-netback: correct success/error reporting for the SKB-with-fraglist case a41938d07201 net: mdio: introduce a shutdown method to mdio device drivers 63c89930d4b5 btrfs: fix mount failure due to past and transient device flush error 50628b06e604 btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling 83050cc23909 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN f986cf270284 platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet e5611503249f platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet 2ababcd8c2ab spi: rockchip: handle zero length transfers without timing out 627dc3c79c3b ANDROID: Fix up KABI breakage in 5.10.71 in struct sock c23269dad56a Merge 5.10.71 into android12-5.10-lts 5cd40b137cba Linux 5.10.71 96f439a7eda6 netfilter: nf_tables: Fix oversized kvmalloc() calls e2d192301a0d netfilter: conntrack: serialize hash resizes and cleanups deb294941767 KVM: x86: Handle SRCU initialization failure during page track init f7ac4d24e161 HID: usbhid: free raw_report buffers in usbhid_stop 57a269a1b12a mm: don't allow oversized kvmalloc() calls da5b8b9319f0 netfilter: ipset: Fix oversized kvmalloc() calls dedfc35a2de2 HID: betop: fix slab-out-of-bounds Write in betop_probe 17ccc64e4fa5 crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd() 28f0fdbac0f5 usb: hso: remove the bailout parameter 4ad4852b9adf ASoC: dapm: use component prefix when checking widget names 5c3a90b6ff75 net: udp: annotate data race around udp_sk(sk)->corkflag a7f4c633ae12 HID: u2fzero: ignore incomplete packets without data 3770e21f60fc ext4: fix potential infinite loop in ext4_dx_readdir() a63474dbf692 ext4: add error checking to ext4_ext_replay_set_iblocks() 9ccf35492b08 ext4: fix reserved space counter leakage dc0942168ab3 ext4: limit the number of blocks in one ADD_RANGE TLV d11502fa2691 ext4: fix loff_t overflow in ext4_max_bitmap_size() 7cea84867847 ipack: ipoctal: fix module reference leak 843efca98e6a ipack: ipoctal: fix missing allocation-failure check 67d1df661088 ipack: ipoctal: fix tty-registration error handling f46e5db92fa2 ipack: ipoctal: fix tty registration race 5f6a309a6996 ipack: ipoctal: fix stack information leak 3bef1b7242e0 debugfs: debugfs_create_file_size(): use IS_ERR to check for error 15fd3954bca7 elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings 011b4de950d8 nvme: add command id quirk for apple controllers 44c600a57d57 hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller 7fc5f60a01bb perf/x86/intel: Update event constraints for ICX 3db53827a0e9 af_unix: fix races in sk_peer_pid and sk_peer_cred accesses d0d520c19e7e net: sched: flower: protect fl_walk() with rcu e63f6d8fe74a net: phy: bcm7xxx: Fixed indirect MMD operations 071febc37e06 net: hns3: fix always enable rx vlan filter problem after selftest 85e4f5d28d25 net: hns3: reconstruct function hns3_self_test 8e89876c84b2 net: hns3: fix prototype warning d4a14faf7919 net: hns3: fix show wrong state when add existing uc mac address 64dae9551f8a net: hns3: fix mixed flag HCLGE_FLAG_MQPRIO_ENABLE and HCLGE_FLAG_DCB_ENABLE 8d3d27664ef4 net: hns3: keep MAC pause mode when multiple TCs are enabled f8ba689cb695 net: hns3: do not allow call hns3_nic_net_open repeatedly 20f6c4a31a52 ixgbe: Fix NULL pointer dereference in ixgbe_xdp_setup 16138cf938dc scsi: csiostor: Add module softdep on cxgb4 0306a2c7df7e Revert "block, bfq: honor already-setup queue merges" 1f2ca30fbde6 net: ks8851: fix link error f1dd6e10f077 selftests, bpf: test_lwt_ip_encap: Really disable rp_filter 4967ae9ab44b selftests, bpf: Fix makefile dependencies on libbpf 59efda5073ab bpf: Exempt CAP_BPF from checks against bpf_jit_limit f908072391a6 RDMA/hns: Fix inaccurate prints 7e3eda32b881 e100: fix buffer overrun in e100_get_regs f2edf80cdd03 e100: fix length calculation in e100_get_regs_len c20a0ad7b6a0 dsa: mv88e6xxx: Include tagger overhead when setting MTU for DSA and CPU ports 7b771b12229e dsa: mv88e6xxx: Fix MTU definition ee4d0495a65e dsa: mv88e6xxx: 6161: Use chip wide MAX MTU d35d95e8b9da drm/i915/request: fix early tracepoints 8321738c6e5a smsc95xx: fix stalled rx after link change 8de12ad9162c net: ipv4: Fix rtnexthop len when RTA_FLOW is present b22c5e2c8e03 net: enetc: fix the incorrect clearing of IF_MODE bits 5ee40530b0a6 hwmon: (tmp421) fix rounding for negative values 89d96f147d82 hwmon: (tmp421) report /PVLD condition as fault 560271d09f78 mptcp: don't return sockets in foreign netns 9c6591ae8e63 sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb 2c204cf594df mac80211-hwsim: fix late beacon hrtimer handling 8576e72ac5d6 mac80211: mesh: fix potentially unaligned access 1282bb00835f mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap 3748871e1215 mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug 76bbb482d33b hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs c61736a994fe bpf, mips: Validate conditional branch offsets 3f4e68902d2e RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure 62ba3c50104b IB/cma: Do not send IGMP leaves for sendonly Multicast groups d93f65586c59 bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog 12cbdaeeb5d4 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20 9f382e1edf90 drm/amdgpu: correct initial cp_hqd_quantum for gfx9 c331fad63b6d drm/amd/display: Pass PCI deviceid into DC 0a16c9751e0f RDMA/cma: Do not change route.addr.src_addr.ss_family 31a13f039e15 media: ir_toy: prevent device from hanging during transmit 249e5e5a501e KVM: rseq: Update rseq when processing NOTIFY_RESUME on xfer to KVM guest 3778511dfc59 KVM: nVMX: Filter out all unsupported controls when eVMCS was activated 4ed671e6bc62 KVM: x86: nSVM: don't copy virt_ext from vmcb12 bebabb76ad9a KVM: x86: Fix stack-out-of-bounds memory access from ioapic_write_indirect() 782122ae7db0 x86/kvmclock: Move this_cpu_pvti into kvmclock.h 57de2dcb1874 mac80211: fix use-after-free in CCMP/GCMP RX 201ba843fef5 scsi: ufs: Fix illegal offset in UPIU event trace bd4e446a6947 gpio: pca953x: do not ignore i2c errors 516d90550390 hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field 1499bb2c3a87 hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field 7c4fd5de39f2 hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field 196dabd96bbf hwmon: (tmp421) handle I2C errors 23a6dfa10f03 fs-verity: fix signed integer overflow with i_size near S64_MAX d1d0016e4a7d ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect e9edc7bc611a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops. 23115ca7d227 usb: cdns3: fix race condition before setting doorbell 3945c481360c cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory 2193cf76f43a scsi: qla2xxx: Changes to support kdump kernel for NVMe BFS a7d4fc84404d cpufreq: schedutil: Use kobject release() method to free sugov_tunables d570c48dd37d tty: Fix out-of-bound vmalloc access in imageblit 87b6b38b53ea ANDROID: GKI: update .xml file with new symbols to track 7d8687d4ef89 Merge branch 'android12-5.10' into `android12-5.10-lts` dcf0824c26f7 Revert "treewide: Change list_sort to use const pointers" d69751309bfe Merge 5.10.70 into android12-5.10-lts 33740c922786 Merge 5.10.69 into android12-5.10-lts beafee90ecf9 Merge 5.10.68 into android12-5.10-lts 91607afb55a1 Revert "crypto: public_key: fix overflow during implicit conversion" 0dae5f42c0e0 Revert "drm/vmwgfx: fix potential UAF in vmwgfx_surface.c" 5b4909f961b9 Revert "drm: serialize drm_file.master with a new spinlock" 49faae851078 Revert "drm: protect drm_master pointers in drm_lease.c" 08ed4cb0903b Merge 5.10.67 into android12-5.10-lts f93026b28e2a Linux 5.10.70 59094296058d qnx4: work around gcc false positive warning bug 35c0dfbbd344 xen/balloon: fix balloon kthread freezing 8373d58c89be USB: serial: cp210x: fix dropped characters with CP2102 67cdb51ab5e2 thermal/drivers/int340x: Do not set a wrong tcc offset on resume cc71740ee4d4 EDAC/dmc520: Assign the proper type to dimm->edac_mode 9afad85a43f5 EDAC/synopsys: Fix wrong value type assignment for edac_mode db76cb05c046 spi: Fix tegra20 build with CONFIG_PM=n 890e25c424ea net: 6pack: Fix tx timeout and slot time 044513c1fada alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile 0a511ba6d2a7 arm64: Mark __stack_chk_guard as __ro_after_init fec3bd622db0 parisc: Use absolute_pointer() to define PAGE0 61454e7fd624 qnx4: avoid stringop-overread errors 5520d27f02a1 sparc: avoid stringop-overread errors 8d768beaf0ef net: i825xx: Use absolute_pointer for memcpy from fixed memory location e99f9032715e compiler.h: Introduce absolute_pointer macro f58d305887ad blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd 1ef68b84bc11 block: flush the integrity workqueue in blk_integrity_unregister 1963bdb7489c block: check if a profile is actually registered in blk_integrity_unregister 526261c1b706 amd/display: downgrade validation failure log level 54a4860c6257 sparc32: page align size in arch_dma_alloc ecf0dc5a9048 nvme-rdma: destroy cm id before destroy qp to avoid use after free 2a08960577af nvme-multipath: fix ANA state updates when a namespace is not present 372d3e6ea1e1 xen/balloon: use a kernel thread instead a workqueue 6345a0bee801 bpf: Add oversize check before call kvcalloc() e567d33508a9 cpufreq: intel_pstate: Override parameters if HWP forced by BIOS 9561bb98879e ipv6: delay fib6_sernum increase in fib6_add 31df1d037cfd m68k: Double cast io functions to unsigned long cc3dd119d3cf blk-mq: avoid to iterate over stale request de7e03003367 net: stmmac: allow CSR clock of 300MHz 7721221e87d2 net: macb: fix use after free on rmmod a632288053b7 net: phylink: Update SFP selected interface on advertising changes 3815fe7371d2 blktrace: Fix uaf in blk_trace access after removing by sysfs ce092350b452 io_uring: put provided buffer meta data under memcg accounting 7040b37a9630 x86/asm: Fix SETZ size enqcmds() build failure 54e85b6c287c x86/asm: Add a missing __iomem annotation in enqcmds() b18ba3f477a2 md: fix a lock order reversal in md_alloc 568662e37f92 irqchip/gic-v3-its: Fix potential VPE leak on error af7c9ffe2bee irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build 0595fc4794c3 scsi: lpfc: Use correct scnprintf() limit cb948b158a86 scsi: qla2xxx: Restore initiator in dual mode 3d42ed6b7905 cifs: fix a sign extension bug 8cba4c2698e2 thermal/core: Potential buffer overflow in thermal_build_list_of_policies() 215df4349916 nvme: keep ctrl->namespaces ordered 55e6f8b3c0f5 treewide: Change list_sort to use const pointers 419fab1cb086 nvme-tcp: fix incorrect h2cdata pdu offset accounting c6ecdcba9da3 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete() 5c6bfde245d8 fpga: machxo2-spi: Return an error on failure 4ea4925c70fd tty: synclink_gt: rename a conflicting function name 56a8f0b18f46 tty: synclink_gt, drop unneeded forward declarations c64e6c307a76 scsi: target: Fix the pgr/alua_support_store functions 2d0305425179 scsi: iscsi: Adjust iface sysfs attr detection 0032f8b3cf2a atlantic: Fix issue in the pm resume flow. c2598bce4152 net/mlx4_en: Don't allow aRFS for encapsulated packets b4e54f5f4288 qed: rdma - don't wait for resources under hw error recovery flow 1bba406c07b3 gpio: uniphier: Fix void functions to remove return value db94f89e1dad s390/qeth: fix NULL deref in qeth_clear_working_pool_list() 3aa50241e1ed kselftest/arm64: signal: Skip tests if required features are missing 91d4da33c367 kselftest/arm64: signal: Add SVE to the set of features we can check for 2eaa39d83e30 net: dsa: realtek: register the MDIO bus under devres 43c880b860c7 net: dsa: don't allocate the slave_mii_bus using devres b4561bd29e62 net/smc: fix 'workqueue leaked lock' in smc_conn_abort_work 8a00c832ef88 net/smc: add missing error check in smc_clc_prfx_set() 4e0fd1d79534 net: hns3: check queue id range before using ca435999bcaf net: hns3: fix change RSS 'hfunc' ineffective issue 1365a0dc5596 bnxt_en: Fix TX timeout when TX ring size is set to the smallest d5afe3cf52e5 enetc: Fix uninitialized struct dim_sample field usage 6c3f1b741c6c enetc: Fix illegal access when reading affinity_hint 117661cb9d3a platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR() 22538c1bde27 afs: Fix updating of i_blocks on file/dir extension 55352944b497 afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation 8d6a21e4cd6a comedi: Fix memory leak in compat_insnlist() 43241a6c6e6c net: hso: fix muxed tty registration 68d4fbe6220c drm/amd/pm: Update intermediate power state for SI 7dc9225fcde0 scsi: sd_zbc: Ensure buffer size is aligned to SECTOR_SIZE 3dfffcd26029 serial: mvebu-uart: fix driver's tx_empty callback 640946fc56b8 serial: 8250: 8250_omap: Fix RX_LVL register offset 0ea9ac731a31 xhci: Set HCD flag to defer primary roothub registration 80af86c12290 btrfs: prevent __btrfs_dump_space_info() to underflow its free space 8326be9e5121 erofs: fix up erofs_lookup tracepoint 91e4ad05bf18 mcb: fix error handling in mcb_alloc_bus() 2c28bb016bed USB: serial: option: add device id for Foxconn T99W265 600b19610ad4 USB: serial: option: remove duplicate USB device ID 0daf57973ff0 USB: serial: option: add Telit LN920 compositions dc131d3f1335 USB: serial: mos7840: remove duplicated 0xac24 device ID d58fc9e9c158 usb: core: hcd: Add support for deferring roothub registration 996f7c4a1fcf usb: dwc3: core: balance phy init and exit a05ff800013e Re-enable UAS for LaCie Rugged USB3-FW with fk quirk b9e697e60ce9 staging: greybus: uart: fix tty use after free d5b0473707fa binder: make sure fd closes complete 302e60e26ad5 Revert "USB: bcma: Add a check for devm_gpiod_get" b33b3db476e6 USB: cdc-acm: fix minor-number release 0809b8576fa8 USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter a34d6ef0c71a usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c f79282849187 xen/x86: fix PV trap handling on secondary processors 93028da5e92d cifs: fix incorrect check for null pointer in header_assemble 5940e22528df usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned() d071c7fd45dc usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA 5f4bfac26173 usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave 1fbd7eb385c3 usb: gadget: r8a66597: fix a loop in set_feature() 838297222b2b mm: fix uninitialized use in overcommit_policy_handler 437be4d6faed ocfs2: drop acl cache for directories too 31bd6cd06a18 PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response 0f8a659a2453 ANDROID: GKI: update the .xml file after modifying the ANDROID_KABI_USE() macro 119f5131234f ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE() f04036b092ee ANDROID: GKI: update .xml file to handle previous issues 5f4196eaa90c Linux 5.10.69 7c09505e9e6b drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV 83a3cb200eff sched/idle: Make the idle timer expire in hard interrupt context 647c19bc6102 rtc: rx8010: select REGMAP_I2C 9a14014df72d blk-mq: allow 4x BLK_MAX_REQUEST_COUNT at blk_plug for multiple_queues 23dfb959c6cb blk-throttle: fix UAF by deleteing timer in blk_throtl_exit() a2551d0a29e9 pwm: stm32-lp: Don't modify HW state in .remove() callback a6a2b36a8cc4 pwm: rockchip: Don't modify HW state in .remove() callback 0a2ea5c0e5d1 pwm: img: Don't modify HW state in .remove() callback db8838e48a0a habanalabs: add validity check for event ID received from F/W d7736e2faa13 nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group 0f36028d0133 nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group 5770b54b112e nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group 5acb21e30d85 nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group 0480f7a480bc nilfs2: fix NULL pointer in nilfs_##name##_attr_release d95b50ff07b8 nilfs2: fix memory leak in nilfs_sysfs_create_device_group aa1af89a6697 btrfs: fix lockdep warning while mounting sprout fs c43803c1aa76 btrfs: update the bdev time directly when closing 921ef7cfef15 ceph: lockdep annotations for try_nonblocking_invalidate 487ead34a208 ceph: remove the capsnaps when removing caps 386fd6fd01bd ceph: request Fw caps before updating the mtime in ceph_write_iter b26ced26251c dmaengine: xilinx_dma: Set DMA mask for coherent APIs 9c1ea8537730 dmaengine: ioat: depends on !UML 35492619e010 dmaengine: sprd: Add missing MODULE_DEVICE_TABLE c12cf7f9afe2 dmaengine: idxd: depends on !UML b4bb0b171b6e iommu/amd: Relocate GAMSup check to early_enable_iommus 2a07348e9821 parisc: Move pci_dev_is_behind_card_dino to where it is used ca907291e116 dma-buf: DMABUF_MOVE_NOTIFY should depend on DMA_SHARED_BUFFER b9a1526d5174 drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION() 45bd9dd1bee8 drm/amdgpu: Disable PCIE_DPM on Intel RKL Platform c9538018cb2d thermal/core: Fix thermal_cooling_device_register() prototype d1f9ecc00da1 tools/bootconfig: Fix tracing_on option checking in ftrace2bconf.sh 912afe602eac Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH e418ce8b8dfd ceph: cancel delayed work instead of flushing on mdsc teardown 8193ad306ea0 ceph: allow ceph_put_mds_session to take NULL or ERR_PTR 41aa21573486 platform/chrome: cros_ec_trace: Fix format warnings 113a69460de5 platform/chrome: sensorhub: Add trace events for sample 48271d10bf4c dmaengine: idxd: fix wq slot allocation index check 777344da345a pwm: mxs: Don't modify HW state in .probe() after the PWM chip was registered 322b70b522ab pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered c63df77c40ca PM: sleep: core: Avoid setting power.must_resume to false 74190973ab01 profiling: fix shift-out-of-bounds bugs 0796d99c1b16 nilfs2: use refcount_dec_and_lock() to fix potential UAF 30417cbeccff prctl: allow to setup brk for et_dyn executables e464b3876b02 9p/trans_virtio: Remove sysfs file on probe failure 375e779ec32a thermal/drivers/exynos: Fix an error code in exynos_tmu_probe() 38ab04186fb3 perf tools: Allow build-id with trailing zeros 87c4144450e6 tools lib: Adopt memchr_inv() from kernel ebcd3fd9207c perf test: Fix bpf test sample mismatch reporting fa64b08931ee dmaengine: acpi: Avoid comparison GSI with Linux vIRQ 9d49973b0848 um: virtio_uml: fix memory leak on init failures 5d0e6a5e4441 coredump: fix memleak in dump_vma_snapshot() 6b24588708fe staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb() ccb79116c372 sctp: add param size validation for SCTP_PARAM_SET_PRIMARY ffca46766850 sctp: validate chunk size in __rcv_asconf_lookup 473cea4983b5 Revert "net/mlx5: Register to devlink ingress VLAN filter trap" 5ce134e65f3b ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE f91d25a7c89e ARM: 9079/1: ftrace: Add MODULE_PLTS support ad00533858f7 ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link() ce90c6706d5a ARM: 9077/1: PLT: Move struct plt_entries definition to header eb46d7c8ae83 ARM: Qualify enabling of swiotlb_init() 79286ea830b3 s390/pci_mmio: fully validate the VMA before calling follow_pte() 74d54e5ceba3 console: consume APC, DM, DCS 9493e92a3953 PCI: aardvark: Fix reporting CRS value 9e766b86a9ef PCI: pci-bridge-emul: Add PCIe Root Capabilities Register 1b6d7b3a2162 ANDROID: GKI: Update symbol list for new modules 4d8524048a35 Linux 5.10.68 a23d3576215f net: dsa: bcm_sf2: Fix array overrun in bcm_sf2_num_active_ports() 9f2972e151dd bnxt_en: Fix error recovery regression 619d747c1850 x86/mce: Avoid infinite loop for copy from user recovery 47bc9c3929eb net: renesas: sh_eth: Fix freeing wrong tx descriptor b2f9b7455baf mfd: lpc_sch: Rename GPIOBASE to prevent build error 027c44b8c8e4 mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000" 52a7e6667133 bnxt_en: Fix possible unintended driver initiated error recovery 9a3f52f73c04 bnxt_en: Improve logging of error recovery settings information. 639a2eddb731 bnxt_en: Convert to use netif_level() helpers. 01cad477a968 bnxt_en: Consolidate firmware reset event logging. fad75e046363 bnxt_en: log firmware debug notifications f90a34fabaa5 bnxt_en: Fix asic.rev in devlink dev info command 724502318455 bnxt_en: fix stored FW_PSID version masks eb635e008cb1 net: dsa: b53: Fix IMP port setup on BCM5301x 87b34cd64851 ip_gre: validate csum_start only on pull 9c98d2bd1434 qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom 8c01c620ae61 fq_codel: reject silly quantum parameters 6e2d36f2b1d1 netfilter: socket: icmp6: fix use-after-scope c361c955609a net: dsa: b53: Set correct number of ports in the DSA struct 0db7e0d9f67d net: dsa: b53: Fix calculating number of switch ports f89b0d032f86 net: hso: add failure handler for add_net_device f450958f7ff8 selftests: mptcp: clean tmp files in simult_flows 5711ced58eb4 net: dsa: tag_rtl4_a: Fix egress tags b167a0cec187 gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak f86956143da9 gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()' c2b52963fd0c perf bench inject-buildid: Handle writen() errors 5a20adc38811 perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64} f5176a0798bd ARC: export clear_user_page() for modules 9da1fb128c54 mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()' 5402b31c0c46 PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n a957d82b2316 KVM: arm64: Handle PSCI resets before userspace touches vCPU state 53921242cf99 KVM: arm64: Fix read-side race on updates to vcpu reset state b9b89da56af7 mtd: mtdconcat: Check _read, _write callbacks existence before assignment 812cbb143c12 mtd: mtdconcat: Judge callback existence based on the master e8dfc446a16a tracing/boot: Fix a hist trigger dependency for boot time tracing 87479b10eb72 mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set f10f727cf9f4 PCI: Fix pci_dev_str_match_path() alloc while atomic bug ed44be1cbe5e KVM: arm64: Restrict IPA size to maximum 48 bits on 4K and 16K page size 62f813769f50 netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex 1cf43a1e5782 netfilter: Fix fall-through warnings for Clang 9e89c22d1c94 PCI: iproc: Fix BCMA probe resource handling b1f3be0c302a PCI: of: Don't fail devm_pci_alloc_host_bridge() on missing 'ranges' 063c3d980d78 backlight: ktd253: Stabilize backlight 00303e459251 mfd: axp20x: Update AXP288 volatile ranges ab7cf2250161 s390/bpf: Fix branch shortening during codegen pass 4320c222c2ff s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant d92d3a9c2b65 s390/bpf: Fix optimizing out zero-extensions 4a9339320338 NTB: perf: Fix an error code in perf_setup_inbuf() ce660d6dfcdd NTB: Fix an error code in ntb_msit_probe() e76ccbdedbdd ethtool: Fix an error code in cxgb2.c 70ac967a7b88 PCI: ibmphp: Fix double unmap of io_mem 9ae759a36b61 block, bfq: honor already-setup queue merges 7f2b3242f0d4 net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920 ca8ecd7444a9 Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6 c422c555053e octeontx2-af: Add additional register check to rvu_poll_reg() 1cac475eeb9f watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate e5609d3fd57d PCI: Add ACS quirks for Cavium multi-function devices 365cdfcc6eba PCI: j721e: Add PCIe support for AM64 81381b72f40c PCI: j721e: Add PCIe support for J7200 4892b1515b40 PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state a83e032cc489 PCI: cadence: Use bitfield for *quirk_retrain_flag* instead of bool 3aedfe4b0800 tracing/probes: Reject events which have the same name of existing one 75420f9400a6 PCI: rcar: Fix runtime PM imbalance in rcar_pcie_ep_probe() b6352e2e2764 mfd: Don't use irq_create_mapping() to resolve a mapping aa638669c8a4 PCI: tegra: Fix OF node reference leak d5c5d1b141fa PCI: tegra194: Fix MSI-X programming 13f366bab077 PCI: tegra194: Fix handling BME_CHGED event b7d4f310bb8f fuse: fix use after free in fuse_read_interrupt() 03cc3a2923d6 PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms 7a44361a1f6a mfd: db8500-prcmu: Adjust map to reality 619f137ffd69 dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation 49cf30ebb35c mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range() aa39eb744a82 net: hns3: fix the timing issue of VF clearing interrupt sources ad47e0922108 net: hns3: disable mac in flr process b76522c7c349 net: hns3: change affinity_mask to numa node range 34fc06d0477e net: hns3: pad the short tunnel frame before sending to hardware 0511d099db6f bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem() 49eff4ab7d43 KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers e68795c1101e ibmvnic: check failover_pending in login response aeb67214ce94 dt-bindings: arm: Fix Toradex compatible typo 0ab9981fa0c5 udp_tunnel: Fix udp_tunnel_nic work-queue type 5221e6632991 qed: Handle management FW error e00eae1d6b1f selftest: net: fix typo in altname test 53947b68c56b tcp: fix tp->undo_retrans accounting in tcp_sacktag_one() 35d3ab2ea2ed x86/uaccess: Fix 32-bit __get_user_asm_u64() when CC_HAS_ASM_GOTO_OUTPUT=y cf6f29bb2c18 net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup df38f941a7e4 net/af_unix: fix a data-race in unix_dgram_poll cad96d0e50e4 vhost_net: fix OoB on sendmsg() failure. 7843861e2140 gen_compile_commands: fix missing 'sys' package 983ef866291c net: ipa: initialize all filter table slots c5102ced8ac0 events: Reuse value read using READ_ONCE instead of re-reading it 8f8ad122ffe0 nvme-tcp: fix io_work priority inversion c586bc31d5b9 net/mlx5: Fix potential sleeping in atomic context 29a5af9112a2 net/mlx5: FWTrace, cancel work on alloc pd error flow 229e9293b2ba perf machine: Initialize srcline string member in add_location struct 33c983f7a182 drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused fd9ed47fe6be tipc: increase timeout in tipc_sk_enqueue() abe460eb6fbb r6040: Restore MDIO clock frequency after MAC reset edfab735d518 net/l2tp: Fix reference count leak in l2tp_udp_recv_core 6c3cb65d561e dccp: don't duplicate ccid when cloning dccp sock f6f80766558b ptp: dp83640: don't define PAGE0 bd6d9a0dd411 net-caif: avoid user-triggerable WARN_ON(1) 855c17ffa65f net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert c5c9ee2d367b ethtool: Fix rxnfc copy to user buffer overflow ee3ffd56b40e tipc: fix an use-after-free issue in tipc_recvmsg 12551b75b00b x86/mm: Fix kern_addr_valid() to cope with existing but not present entries 6672dc68e28e x86/pat: Pass valid address to sanitize_phys() 0346f8a2c5ec s390/sclp: fix Secure-IPL facility detection cc9d96c9f9e0 drm/etnaviv: add missing MMU context put when reaping MMU mapping ea995e8a6294 drm/etnaviv: reference MMU context when setting up hardware state 660dfbf208a4 drm/etnaviv: fix MMU context leak on GPU reset 22163efedcf3 drm/etnaviv: exec and MMU state is lost when resetting the GPU 6b1c223d8a53 drm/etnaviv: keep MMU context across runtime suspend/resume c63e6e0951ff drm/etnaviv: stop abusing mmu_context as FE running marker cf24bd826e4b drm/etnaviv: put submit prev MMU context when it exists 0759f648470b drm/etnaviv: return context from etnaviv_iommu_context_get 8f95553f0016 drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10 87f7032dc227 PCI: Add AMD GPU multi-function power dependencies cd64b416aed2 PM: base: power: don't try to use non-existing RTC for storing data a67e7cdbc633 arm64/sve: Use correct size when reinitialising SVE state 84da60070c36 bnx2x: Fix enabling network interfaces without VFs 1a5a3ba21aee xen: reset legacy rtc flag for PV domU ce8f81b76d3b io_uring: ensure symmetry in handling iter types in loop_rw_iter() 88f3d951e2db btrfs: fix upper limit for max_inline for page size 64K 575279059e26 drm/bridge: lt9611: Fix handling of 4k panels faf816b0f8d0 Linux 5.10.67 ad3ea16746cc fanotify: limit number of event merge attempts 412974e75fdd drm/panfrost: Clamp lock region to Bifrost minimum 8976e09443cb drm/panfrost: Use u64 for size in lock_region 95251e6833fa drm/panfrost: Simplify lock_region calculation b80a99e04827 drm/amd/display: Update bounding box states (v2) 583c4f3d09c3 drm/amd/display: Update number of DCN3 clock states 7b1abace16a9 drm/amdgpu: Fix BUG_ON assert c29485e34e63 drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv bb693c114e8b drm/dp_mst: Fix return code on sideband message failure 84cac4f80605 drm/msi/mdp4: populate priv->kms in mdp4_kms_init be1fcecfc145 drm/mgag200: Select clock in PLL update functions d0aaea1f117d net: dsa: lantiq_gswip: fix maximum frame length 5944d0e2b0ab lib/test_stackinit: Fix static initializer test 00cdb2fb4df1 platform/chrome: cros_ec_proto: Send command again when timeout occurs b2e72e53cd26 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind 6d86634d7bd1 memcg: enable accounting for pids in nested pid namespaces 388f12dabbe0 mm,vmscan: fix divide by zero in get_scan_count 2d2d8b0eca64 mm/hugetlb: initialize hugetlb_usage in mm_init ce75a6b399e0 mm/hmm: bypass devmap pte when all pfn requested flags are fulfilled e1fa3b2b60ab hugetlb: fix hugetlb cgroup refcounting during vma split 27dd91221b3f s390/pv: fix the forcing of the swiotlb 086faa4a2e86 cpufreq: powernv: Fix init_chip_info initialization in numa=off 55be9eb1936a scsi: qla2xxx: Sync queue idx with queue_pair_map idx 9c8414325eee scsi: qla2xxx: Changes to support kdump kernel 137dafa72230 scsi: BusLogic: Fix missing pr_cont() use 69775e4e17f2 ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup() 7a5756e90563 parisc: fix crash with signals and alloca 9a4e7f903866 io_uring: remove duplicated io_size from rw 6930a2a5be5c fs/io_uring Don't use the return value from import_iovec(). 2c304c65defd net: hns3: clean up a type mismatch warning fb1ee027878b net: w5100: check return value after calling platform_get_resource() c49a52046da7 fix array-index-out-of-bounds in taprio_change a4301d06a0b8 net: fix NULL pointer reference in cipso_v4_doi_free 5ed5d594d9a7 ath9k: fix sleeping in atomic context aa3708236ea0 ath9k: fix OOB read ar9300_eeprom_restore_internal be457b27dd0a wcn36xx: Fix missing frame timestamp for beacon/probe-resp b1d547f2f51a selftests/bpf: Fix potential unreleased lock 3ad66d67822d parport: remove non-zero check on count 1e9302537804 net/mlx5: DR, Enable QP retransmission 9c5c65ecbd87 net/mlx5: DR, fix a potential use-after-free bug 4bbf0a9d90e8 iwlwifi: mvm: Fix scan channel flags settings a693aff5e8d7 iwlwifi: fw: correctly limit to monitor dump 4ed6510e0559 iwlwifi: mvm: fix access to BSS elements 9e80a3d88f4d iwlwifi: mvm: avoid static queue number aliasing 3ed8982df50e iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed 608c8359c567 iwlwifi: pcie: free RBs during configure eb04c51a439e nfsd: fix crash on LOCKT on reexported NFSv3 0e9f4492219f drm/amdkfd: Account for SH/SE count when setting up cu masks. 27d4a96addef ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B 969eddc3b4dc ASoC: rockchip: i2s: Fix regmap_ops hang 7344a8a80190 usbip:vhci_hcd USB port can get stuck in the disabled state 29c8f13a345d usbip: give back URBs for unsent unlink requests during cleanup 8de01a896c1b usb: musb: musb_dsps: request_irq() after initializing musb c0751eeb938c Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set" ba2faddf1f14 cifs: fix wrong release in sess_alloc_buffer() failed path 7c7d6c9cd879 mmc: core: Return correct emmc response in case of ioctl error d1e382a04ada selftests/bpf: Enlarge select() timeout for test_maps 3aab5bffdde0 mmc: rtsx_pci: Fix long reads when clock is prescaled 7f43da79ebc5 mmc: sdhci-of-arasan: Check return value of non-void funtions 834ecf61cebd mmc: sdhci-of-arasan: Modified SD default speed to 19MHz for ZynqMP 1a40e60e2af4 of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS be69ed7bb9d3 ASoC: Intel: Skylake: Fix passing loadable flag for module 4a48ed479467 ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER d72afec087f7 soundwire: intel: fix potential race condition during power down b225eeaf3a02 btrfs: tree-log: check btrfs_lookup_data_extent return value 87ae522e467e m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch c10b1afc2f43 octeontx2-pf: Fix NIX1_RX interface backpressure 6d657f1fa121 rtw88: wow: fix size access error of probe request aa82a11176bd rtw88: wow: build wow function only if CONFIG_PM is on 2fd1964f7501 rtw88: use read_poll_timeout instead of fixed sleep 9baf6f8ca285 rtl8xxxu: Fix the handling of TX A-MPDU aggregation 756924bc1804 drm/exynos: Always initialize mapping in exynos_drm_register_dma() 9ce6e29375ba lockd: lockd server-side shouldn't set fl_ops 2d3fab9ceafa usb: chipidea: host: fix port index underflow and UBSAN complains 2225a5cd2fbc gfs2: Don't call dlm after protocol is unmounted 0df5eba67bf0 kselftest/arm64: pac: Fix skipping of tests on systems without PAC 9486d7ac9f30 kselftest/arm64: mte: Fix misleading output when skipping tests 1f5db5b8a3d6 net: Fix offloading indirect devices dependency on qdisc order creation 2a69325ee510 staging: rts5208: Fix get_ms_information() heap buffer size 868831492dd6 hwmon: (pmbus/ibm-cffps) Fix write bits for LED control 39738ebfad39 selftests/bpf: Fix flaky send_signal test c53c68c9bf2a rpc: fix gss_svc_init cleanup on failure 4b1b4d3f45df tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD fca514f25c4d iomap: pass writeback errors to the mapping 49e2bcb7cf58 serial: sh-sci: fix break handling for sysrq a99eec36ed39 opp: Don't print an error if required-opps is missing 6698029de35b Bluetooth: Fix handling of LE Enhanced Connection Complete 240a7025a6f8 nvme: code command_id with a genctr for use-after-free validation 24618e92d50f nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data 27e8bc1f5b32 arm64: dts: ls1046a: fix eeprom entries aa06cfc5291c arm64: tegra: Fix compatible string for Tegra132 CPUs 9c2b89f64f2e ARM: tegra: tamonten: Fix UART pad setting 035e8d5a6dd8 ARM: tegra: acer-a500: Remove bogus USB VBUS regulators 9713dfa5185a mac80211: Fix monitor MTU limit so that A-MSDUs get through 83449db3aac0 drm/display: fix possible null-pointer dereference in dcn10_set_clock() 2254383788ff gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port() 155e7047909d net/mlx5: Fix variable type to match 64bit f86bc4a1a401 drm/msm/dp: return correct edid checksum after corrupted edid checksum read 98d44b7be6f1 Bluetooth: avoid circular locks in sco_sock_connect a1073aad497d Bluetooth: schedule SCO timeouts with delayed_work d6c91423993e drm/vmwgfx: fix potential UAF in vmwgfx_surface.c 3841dfa7eb5c selftests/bpf: Fix xdp_tx.c prog section name 63ebc1f1df81 drm/amd/display: fix incorrect CM/TF programming sequence in dwb d763afc4ea2b drm/amd/display: fix missing writeback disablement if plane is removed 491c8be21993 thunderbolt: Fix port linking by checking all adapters 0f0f1de02b9b drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers f76f78f9f479 drm: xlnx: zynqmp_dpsub: Call pm_runtime_get_sync before setting pixel clock 127f3610a0e3 drm/msm/dsi: Fix DSI and DSI PHY regulator config from SDM660 0bbbe3ec67f0 drm/msm: mdp4: drop vblank get/put from prepare/complete_commit ac21cd44c954 net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe() 2b0fa8d53041 nvmem: qfprom: Fix up qfprom_disable_fuse_blowing() ordering 35e5c99b152d arm64: dts: qcom: sm8250: Fix epss_l3 unit address 43ccafc91f63 arm64: dts: qcom: msm8996: don't use underscore in node name f868c2d62a27 arm64: dts: qcom: msm8994: don't use underscore in node name bda9c84edbb3 arm64: dts: qcom: sdm630: don't use underscore in node name aa16e76c80af arm64: dts: qcom: ipq6018: drop '0x' from unit address da714a198342 arm64: dts: qcom: sdm660: use reg value for memory node 34e9c56675a8 arm64: dts: qcom: ipq8074: fix pci node reg property 74287874c91d ARM: dts: imx53-ppd: Fix ACHC entry 6a00decce3a6 serial: 8250_omap: Handle optional overrun-throttle-ms property 699c91475847 arm64: dts: qcom: sdm630: Fix TLMM node and pinctrl configuration 310a127178b0 arm64: dts: qcom: sdm630: Rewrite memory map 783be2a94299 gfs2: Fix glock recursion in freeze_go_xmote_bh 4e014ff22e4b media: tegra-cec: Handle errors of clk_prepare_enable() c159db240cf2 media: TDA1997x: fix tda1997x_query_dv_timings() return value e3a2e20ed503 media: v4l2-dv-timings.c: fix wrong condition in two for-loops ac1bcf53e32f media: imx258: Limit the max analogue gain to 480 4cb4967472c8 media: imx258: Rectify mismatch of VTS value a64e3f1d8a27 ASoC: Intel: update sof_pcm512x quirks 9cf827242033 ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output f1fb1f6fa172 arm64: tegra: Fix Tegra194 PCIe EP compatible string 8fb3d8c151a7 ARM: dts: at91: use the right property for shutdown controller f710323dcd24 bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler() 5d008cb7636d ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check 3142476fa002 ARM: dts: stm32: Set {bitclock,frame}-master phandles on ST DKx 37437a60a93b ARM: dts: stm32: Set {bitclock,frame}-master phandles on DHCOM SoM f4c7c95e3ee5 workqueue: Fix possible memory leaks in wq_numa_init() 6528cc687c88 Bluetooth: skip invalid hci_sync_conn_complete_evt 3b82e4799f53 ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init() 4af60a543ba6 libbpf: Fix race when pinning maps in parallel 874d5aa06ce2 samples: bpf: Fix tracex7 error raised on the missing argument 035f83b5abd3 staging: ks7010: Fix the initialization of the 'sleep_status' structure d0a8ef04c220 serial: 8250_pci: make setup_port() parameters explicitly unsigned 2603740df8b2 hvsi: don't panic on tty_register_driver failure dd3307a8b383 xtensa: ISS: don't panic in rs_init b763d2e7d45c serial: 8250: Define RX trigger levels for OxSemi 950 devices 973c57c5e649 s390: make PCI mio support a machine flag 77d62f2bcc7f s390/jump_label: print real address in a case of a jump label bug 863d2eb2f726 flow_dissector: Fix out-of-bounds warnings 64583448c231 ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs() bcc61adefd78 video: fbdev: riva: Error out if 'pixclock' equals zero 63abc0eb8af5 video: fbdev: kyro: Error out if 'pixclock' equals zero 6a8dcd2ffb41 video: fbdev: asiliantfb: Error out if 'pixclock' equals zero 3740418ccde8 arm64: dts: allwinner: h6: tanix-tx6: Fix regulator node names be2e11b9f8fa drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit 6a3564739b9f bpf/tests: Do not PASS tests without actually testing the result 99121dec14b0 bpf/tests: Fix copy-and-paste error in double word test 6f51f4241253 drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex a5999d18a8d8 drm/amdgpu: Fix a printing message 5b3a45eedd27 ethtool: improve compat ioctl handling 52bb703f71d3 nfp: fix return statement in nfp_net_parse_meta() 23e5fb647589 media: atomisp: pci: fix error return code in atomisp_pci_probe() e5cecb9105d4 media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe 9a85b9e37601 media: platform: stm32: unprepare clocks at handling errors in probe c6e5eebd9540 media: hantro: vp8: Move noisy WARN_ON to vpu_debug f462a39eb833 drm/amd/display: Fix timer_per_pixel unit error b4f5c9454dfc selftests: firmware: Fix ignored return val of asprintf() warn e944a221262e bus: fsl-mc: fix mmio base address for child DPRCs 165c55af5f5f tty: serial: jsm: hold port lock when reporting modem line changes 642639bb8d42 staging: board: Fix uninitialized spinlock when attaching genpd 03f4492dbff3 usb: gadget: composite: Allow bMaxPower=0 if self-powered 5534de13b6dc USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable() b2b8137ec920 usb: gadget: u_ether: fix a potential null pointer dereference 566ddd2d94b0 usb: host: fotg210: fix the actual_length of an iso packet 224cf5e8c853 usb: host: fotg210: fix the endpoint's transactional opportunities calculation 463b3edfba90 igc: Check if num of q_vectors is smaller than max before array access d3ca78775db4 rcu: Fix macro name CONFIG_TASKS_RCU_TRACE 34609faad0c9 drm: protect drm_master pointers in drm_lease.c 06a553a99bac drm: serialize drm_file.master with a new spinlock 54e51d288b38 drm: avoid blocking in drm_clients_info's rcu section df19d95141d1 Smack: Fix wrong semantics in smk_access_entry() 3533aa65e6a9 netlink: Deal with ESRCH error in nlmsg_notify() 9de06dcd4710 video: fbdev: kyro: fix a DoS bug by restricting user input 29ab7f6d505f ARM: dts: qcom: apq8064: correct clock names e0c17c11b15d iavf: fix locking of critical sections 67c9262e3f31 iavf: do not override the adapter state in the watchdog task 9f11de56012c iio: dac: ad5624r: Fix incorrect handling of an optional regulator. e78a0b4a339e net: phy: Fix data type in DP83822 dp8382x_disable_wol() cca61275874a tipc: keep the skb in rcv queue until the whole data is read cc12ab5951aa PCI: Use pci_update_current_state() in pci_enable_device_flags() aad29a00a598 crypto: mxs-dcp - Use sg_mapping_iter to copy data 871abd1e6185 x86/hyperv: fix for unwanted manipulation of sched_clock when TSC marked unstable c327b69e96b0 libbpf: Fix reuse of pinned map on older kernel 6a985c579499 media: dib8000: rewrite the init prbs logic 2048907d8cb7 ASoC: atmel: ATMEL drivers don't need HAS_DMA 10a135969fd7 drm/amdgpu: Fix amdgpu_ras_eeprom_init() b32d3ded9dc2 drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET 6afd1e053d9b userfaultfd: prevent concurrent API initialization 1e4cfe954bd9 kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y 981bf9b0aa1b MIPS: Malta: fix alignment of the devicetree buffer bb8108546da9 f2fs: should put a page beyond EOF when preparing a write d04925fb8d70 f2fs: deallocate compressed pages when error happens 4b71928e5c54 f2fs: fix to unmap pages from userspace process in punch_hole() 1c934aba9fd5 f2fs: fix unexpected ENOENT comes from f2fs_map_blocks() 45cb5f86c1c6 f2fs: fix to account missing .skipped_gc_rwsem fd69f613af53 soc: mediatek: cmdq: add address shift in jump d320c1b2e728 KVM: PPC: Fix clearing never mapped TCEs in realmode 6bf98b94ffeb clk: at91: clk-generated: Limit the requested rate to our range 9bab2bc4c238 fscache: Fix cookie key hashing b4849e2ac706 RDMA/hns: Fix QP's resp incomplete assignment e91077cf1780 powerpc/smp: Update cpu_core_map on all PowerPc systems 903ca538f588 platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call add8e8c3402f KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live 4c0c4f702196 scsi: ufs: ufs-exynos: Fix static checker warning bda5602c1c35 KVM: PPC: Book3S HV: Fix copy_tofrom_guest routines 926bf91248dd clk: imx8m: fix clock tree update of TF-A managed clocks e84a72f69621 HID: i2c-hid: Fix Elan touchpad regression 253bac6c60ad iommu/vt-d: Update the virtual command related registers 947579a6967a powerpc/config: Renable MTD_PHYSMAP_OF 1bc19e4062e9 scsi: qedf: Fix error codes in qedf_alloc_global_queues() dc4577749987 scsi: qedi: Fix error codes in qedi_alloc_global_queues() 782c4017845d scsi: smartpqi: Fix an error code in pqi_get_raid_map() 41066433be42 powerpc/numa: Consider the max NUMA node for migratable LPAR d3612083ecc1 pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry() 6291fd0eeafc scsi: fdomain: Fix error return code in fdomain_probe() f02ab9d1d3a6 sunrpc: Fix return value of get_srcport() 21a2be1a5145 SUNRPC query transport's source port f19abe046354 SUNRPC/xprtrdma: Fix reconnection locking f3d301612787 SUNRPC: Fix potential memory corruption 9aa7a3ffb11c NFSv4/pnfs: The layout barrier indicate a minimal value for the seqid 2a542421eb7f NFSv4/pNFS: Always allow update of a zero valued layout barrier 4b96edea5cd1 NFSv4/pNFS: Fix a layoutget livelock loop fa55e76641d8 dma-debug: fix debugfs initialization order ca7f7e37bae4 openrisc: don't printk() unconditionally 31fd3211ef8b f2fs: reduce the scope of setting fsck tag when de->name_len is zero 49e4c83db885 cpuidle: pseries: Mark pseries_idle_proble() as __init 876e45c95eb6 RDMA/mlx5: Delete not-available udata check a77da9de0d7d RDMA/efa: Remove double QP type assignment 1988836e30c5 powerpc/stacktrace: Include linux/delay.h c5a5528da722 cpuidle: pseries: Fixup CEDE0 latency only for POWER10 onwards 3b2bbcccd6e9 scsi: ufs: Fix memory corruption by ufshcd_read_desc_param() d353e093c0d5 vfio: Use config not menuconfig for VFIO_NOIOMMU 0f711378f0b1 pinctrl: samsung: Fix pinctrl bank pin count 59137b7dfff1 scsi: BusLogic: Use %X for u32 sized integer rather than %lX 8ea3e622af56 docs: Fix infiniband uverbs minor number fe2a1cd62267 RDMA/iwcm: Release resources if iw_cm module initialization fails b824bae96f73 IB/hfi1: Adjust pkey entry in index 0 273ed4f47e6f clk: rockchip: drop GRF dependency for rk3328/rk3036 pll types f1eccc408168 scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND ef5395fbadac pinctrl: armada-37xx: Correct PWM pins definitions 782ceaba977c pinctrl: remove empty lines in pinctrl subsystem 2d586a3f5b7e f2fs: quota: fix potential deadlock 70fd9363673b HID: input: do not report stylus battery state as "full" 4e89aea738b5 PCI: aardvark: Fix masking and unmasking legacy INTx interrupts b50db4c02f45 PCI: aardvark: Fix checking for PIO status 9d6090575406 PCI: Export pci_pio_to_address() for module use fa3c15ccf2ea PCI: aardvark: Configure PCIe resources from 'ranges' DT property df23bd40ed88 PCI: xilinx-nwl: Enable the clock through CCF 72f2be343272 PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure 088a1052f7b0 PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported 9302a3c00cc6 PCI/portdrv: Enable Bandwidth Notification only if port supports it 74d6dfcb0f9d f2fs: fix to do sanity check for sb/cp fields correctly ce7e64e63acf ARM: 9105/1: atags_to_fdt: don't warn about stack size ba73bc166615 libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs bcbc44e42dc6 dmaengine: imx-sdma: remove duplicated sdma_load_context 300ccb129252 Revert "dmaengine: imx-sdma: refine to load context only once" 76668bdee0b0 s390/qdio: cancel the ESTABLISH ccw after timeout bcc0c767f9b3 s390/qdio: fix roll-back after timeout on ESTABLISH ccw 2d2aaa200ced media: rc-loopback: return number of emitters rather than error c0eaaa686864 media: uvc: don't do DMA on stack 516dbe27f447 VMCI: fix NULL pointer dereference when unmapping queue pair 6cae39f45754 crypto: ccp - shutdown SEV firmware on kexec 7509c4cb7c80 dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc() 4f920fefd857 power: supply: max17042: handle fails of reading status register 0d54bbad80f7 block: bfq: fix bfq_set_next_ioprio_data() 5df14bba0056 crypto: public_key: fix overflow during implicit conversion 646870ad8e56 wcn36xx: Ensure finish scan is not requested before start scan 4753723f8b48 iio: ltc2983: fix device probe de32e151800d arm64: head: avoid over-mapping in map_memory 2d3a9dff763f arm64: mm: Fix TLBI vs ASID rollover 01e6c64bbc5d soc: aspeed: p2a-ctrl: Fix boundary check for mmap 3fdf2feb6cbe soc: aspeed: lpc-ctrl: Fix boundary check for mmap e80c45dbe263 soc: qcom: aoss: Fix the out of bound usage of cooling_devs 610e8b2621d6 pinctrl: ingenic: Fix incorrect pull up/down info 1e1136fbe89f pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast 7524fcd09c3e clk: socfpga: agilex: add the bypass register for s2f_usr0 clock 96bf326fb93c clk: socfpga: agilex: fix up s2f_user0_clk representation 7eb16be25f0f clk: socfpga: agilex: fix the parents of the psi_ref_clk ac99b3aa8375 tools/thermal/tmon: Add cross compiling support 2daa118a3f7b selftests/ftrace: Fix requirement check of README file 8248b61b86fb ceph: fix dereference of null pointer cf c37085d60634 9p/xen: Fix end of loop tests for list_for_each_entry 907944851aa0 xen: fix setting of max_pfn in shared_info 37566a343fe9 powerpc/perf/hv-gpci: Fix counter value parsing 5f13c8bae824 PCI/MSI: Skip masking MSI-X on Xen PV d15554f98597 blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN a58f08255490 blk-zoned: allow zone management send operations without CAP_SYS_ADMIN c1b249e02a80 btrfs: reset replace target device to allocation state on close 0901af53da8f btrfs: wake up async_delalloc_pages waiters after submit 9ac218642dfc io-wq: fix wakeup race when adding new work 548ee201fb4a io_uring: fail links of cancelled timeouts 54eb6211b979 io_uring: add ->splice_fd_in checks a3ed34bcada5 io_uring: place fixed tables under memcg limits 5103b733348e io_uring: limit fixed table size by RLIMIT_NOFILE ebedb252a47f rtc: tps65910: Correct driver module alias Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Icc858b61fec7d76c8b144958c0d5c1859508ecb2
1616 lines
40 KiB
C
1616 lines
40 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* linux/fs/isofs/inode.c
|
|
*
|
|
* (C) 1991 Linus Torvalds - minix filesystem
|
|
* 1992, 1993, 1994 Eric Youngdale Modified for ISO 9660 filesystem.
|
|
* 1994 Eberhard Mönkeberg - multi session handling.
|
|
* 1995 Mark Dobie - allow mounting of some weird VideoCDs and PhotoCDs.
|
|
* 1997 Gordon Chaffee - Joliet CDs
|
|
* 1998 Eric Lammerts - ISO 9660 Level 3
|
|
* 2004 Paul Serice - Inode Support pushed out from 4GB to 128GB
|
|
* 2004 Paul Serice - NFS Export Operations
|
|
*/
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/slab.h>
|
|
#include <linux/cred.h>
|
|
#include <linux/nls.h>
|
|
#include <linux/ctype.h>
|
|
#include <linux/statfs.h>
|
|
#include <linux/cdrom.h>
|
|
#include <linux/parser.h>
|
|
#include <linux/mpage.h>
|
|
#include <linux/user_namespace.h>
|
|
#include <linux/seq_file.h>
|
|
#include <linux/blkdev.h>
|
|
|
|
#include "isofs.h"
|
|
#include "zisofs.h"
|
|
|
|
/* max tz offset is 13 hours */
|
|
#define MAX_TZ_OFFSET (52*15*60)
|
|
|
|
#define BEQUIET
|
|
|
|
static int isofs_hashi(const struct dentry *parent, struct qstr *qstr);
|
|
static int isofs_dentry_cmpi(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name);
|
|
|
|
#ifdef CONFIG_JOLIET
|
|
static int isofs_hashi_ms(const struct dentry *parent, struct qstr *qstr);
|
|
static int isofs_hash_ms(const struct dentry *parent, struct qstr *qstr);
|
|
static int isofs_dentry_cmpi_ms(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name);
|
|
static int isofs_dentry_cmp_ms(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name);
|
|
#endif
|
|
|
|
static void isofs_put_super(struct super_block *sb)
|
|
{
|
|
struct isofs_sb_info *sbi = ISOFS_SB(sb);
|
|
|
|
#ifdef CONFIG_JOLIET
|
|
unload_nls(sbi->s_nls_iocharset);
|
|
#endif
|
|
|
|
kfree(sbi);
|
|
sb->s_fs_info = NULL;
|
|
return;
|
|
}
|
|
|
|
static int isofs_read_inode(struct inode *, int relocated);
|
|
static int isofs_statfs (struct dentry *, struct kstatfs *);
|
|
static int isofs_show_options(struct seq_file *, struct dentry *);
|
|
|
|
static struct kmem_cache *isofs_inode_cachep;
|
|
|
|
static struct inode *isofs_alloc_inode(struct super_block *sb)
|
|
{
|
|
struct iso_inode_info *ei;
|
|
ei = kmem_cache_alloc(isofs_inode_cachep, GFP_KERNEL);
|
|
if (!ei)
|
|
return NULL;
|
|
return &ei->vfs_inode;
|
|
}
|
|
|
|
static void isofs_free_inode(struct inode *inode)
|
|
{
|
|
kmem_cache_free(isofs_inode_cachep, ISOFS_I(inode));
|
|
}
|
|
|
|
static void init_once(void *foo)
|
|
{
|
|
struct iso_inode_info *ei = foo;
|
|
|
|
inode_init_once(&ei->vfs_inode);
|
|
}
|
|
|
|
static int __init init_inodecache(void)
|
|
{
|
|
isofs_inode_cachep = kmem_cache_create("isofs_inode_cache",
|
|
sizeof(struct iso_inode_info),
|
|
0, (SLAB_RECLAIM_ACCOUNT|
|
|
SLAB_MEM_SPREAD|SLAB_ACCOUNT),
|
|
init_once);
|
|
if (!isofs_inode_cachep)
|
|
return -ENOMEM;
|
|
return 0;
|
|
}
|
|
|
|
static void destroy_inodecache(void)
|
|
{
|
|
/*
|
|
* Make sure all delayed rcu free inodes are flushed before we
|
|
* destroy cache.
|
|
*/
|
|
rcu_barrier();
|
|
kmem_cache_destroy(isofs_inode_cachep);
|
|
}
|
|
|
|
static int isofs_remount(struct super_block *sb, int *flags, char *data)
|
|
{
|
|
sync_filesystem(sb);
|
|
if (!(*flags & SB_RDONLY))
|
|
return -EROFS;
|
|
return 0;
|
|
}
|
|
|
|
static const struct super_operations isofs_sops = {
|
|
.alloc_inode = isofs_alloc_inode,
|
|
.free_inode = isofs_free_inode,
|
|
.put_super = isofs_put_super,
|
|
.statfs = isofs_statfs,
|
|
.remount_fs = isofs_remount,
|
|
.show_options = isofs_show_options,
|
|
};
|
|
|
|
|
|
static const struct dentry_operations isofs_dentry_ops[] = {
|
|
{
|
|
.d_hash = isofs_hashi,
|
|
.d_compare = isofs_dentry_cmpi,
|
|
},
|
|
#ifdef CONFIG_JOLIET
|
|
{
|
|
.d_hash = isofs_hash_ms,
|
|
.d_compare = isofs_dentry_cmp_ms,
|
|
},
|
|
{
|
|
.d_hash = isofs_hashi_ms,
|
|
.d_compare = isofs_dentry_cmpi_ms,
|
|
},
|
|
#endif
|
|
};
|
|
|
|
struct iso9660_options{
|
|
unsigned int rock:1;
|
|
unsigned int joliet:1;
|
|
unsigned int cruft:1;
|
|
unsigned int hide:1;
|
|
unsigned int showassoc:1;
|
|
unsigned int nocompress:1;
|
|
unsigned int overriderockperm:1;
|
|
unsigned int uid_set:1;
|
|
unsigned int gid_set:1;
|
|
unsigned char map;
|
|
unsigned char check;
|
|
unsigned int blocksize;
|
|
umode_t fmode;
|
|
umode_t dmode;
|
|
kgid_t gid;
|
|
kuid_t uid;
|
|
char *iocharset;
|
|
/* LVE */
|
|
s32 session;
|
|
s32 sbsector;
|
|
};
|
|
|
|
/*
|
|
* Compute the hash for the isofs name corresponding to the dentry.
|
|
*/
|
|
static int
|
|
isofs_hashi_common(const struct dentry *dentry, struct qstr *qstr, int ms)
|
|
{
|
|
const char *name;
|
|
int len;
|
|
char c;
|
|
unsigned long hash;
|
|
|
|
len = qstr->len;
|
|
name = qstr->name;
|
|
if (ms) {
|
|
while (len && name[len-1] == '.')
|
|
len--;
|
|
}
|
|
|
|
hash = init_name_hash(dentry);
|
|
while (len--) {
|
|
c = tolower(*name++);
|
|
hash = partial_name_hash(c, hash);
|
|
}
|
|
qstr->hash = end_name_hash(hash);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Compare of two isofs names.
|
|
*/
|
|
static int isofs_dentry_cmp_common(
|
|
unsigned int len, const char *str,
|
|
const struct qstr *name, int ms, int ci)
|
|
{
|
|
int alen, blen;
|
|
|
|
/* A filename cannot end in '.' or we treat it like it has none */
|
|
alen = name->len;
|
|
blen = len;
|
|
if (ms) {
|
|
while (alen && name->name[alen-1] == '.')
|
|
alen--;
|
|
while (blen && str[blen-1] == '.')
|
|
blen--;
|
|
}
|
|
if (alen == blen) {
|
|
if (ci) {
|
|
if (strncasecmp(name->name, str, alen) == 0)
|
|
return 0;
|
|
} else {
|
|
if (strncmp(name->name, str, alen) == 0)
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int
|
|
isofs_hashi(const struct dentry *dentry, struct qstr *qstr)
|
|
{
|
|
return isofs_hashi_common(dentry, qstr, 0);
|
|
}
|
|
|
|
static int
|
|
isofs_dentry_cmpi(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name)
|
|
{
|
|
return isofs_dentry_cmp_common(len, str, name, 0, 1);
|
|
}
|
|
|
|
#ifdef CONFIG_JOLIET
|
|
/*
|
|
* Compute the hash for the isofs name corresponding to the dentry.
|
|
*/
|
|
static int
|
|
isofs_hash_common(const struct dentry *dentry, struct qstr *qstr, int ms)
|
|
{
|
|
const char *name;
|
|
int len;
|
|
|
|
len = qstr->len;
|
|
name = qstr->name;
|
|
if (ms) {
|
|
while (len && name[len-1] == '.')
|
|
len--;
|
|
}
|
|
|
|
qstr->hash = full_name_hash(dentry, name, len);
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
isofs_hash_ms(const struct dentry *dentry, struct qstr *qstr)
|
|
{
|
|
return isofs_hash_common(dentry, qstr, 1);
|
|
}
|
|
|
|
static int
|
|
isofs_hashi_ms(const struct dentry *dentry, struct qstr *qstr)
|
|
{
|
|
return isofs_hashi_common(dentry, qstr, 1);
|
|
}
|
|
|
|
static int
|
|
isofs_dentry_cmp_ms(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name)
|
|
{
|
|
return isofs_dentry_cmp_common(len, str, name, 1, 0);
|
|
}
|
|
|
|
static int
|
|
isofs_dentry_cmpi_ms(const struct dentry *dentry,
|
|
unsigned int len, const char *str, const struct qstr *name)
|
|
{
|
|
return isofs_dentry_cmp_common(len, str, name, 1, 1);
|
|
}
|
|
#endif
|
|
|
|
enum {
|
|
Opt_block, Opt_check_r, Opt_check_s, Opt_cruft, Opt_gid, Opt_ignore,
|
|
Opt_iocharset, Opt_map_a, Opt_map_n, Opt_map_o, Opt_mode, Opt_nojoliet,
|
|
Opt_norock, Opt_sb, Opt_session, Opt_uid, Opt_unhide, Opt_utf8, Opt_err,
|
|
Opt_nocompress, Opt_hide, Opt_showassoc, Opt_dmode, Opt_overriderockperm,
|
|
};
|
|
|
|
static const match_table_t tokens = {
|
|
{Opt_norock, "norock"},
|
|
{Opt_nojoliet, "nojoliet"},
|
|
{Opt_unhide, "unhide"},
|
|
{Opt_hide, "hide"},
|
|
{Opt_showassoc, "showassoc"},
|
|
{Opt_cruft, "cruft"},
|
|
{Opt_utf8, "utf8"},
|
|
{Opt_iocharset, "iocharset=%s"},
|
|
{Opt_map_a, "map=acorn"},
|
|
{Opt_map_a, "map=a"},
|
|
{Opt_map_n, "map=normal"},
|
|
{Opt_map_n, "map=n"},
|
|
{Opt_map_o, "map=off"},
|
|
{Opt_map_o, "map=o"},
|
|
{Opt_session, "session=%u"},
|
|
{Opt_sb, "sbsector=%u"},
|
|
{Opt_check_r, "check=relaxed"},
|
|
{Opt_check_r, "check=r"},
|
|
{Opt_check_s, "check=strict"},
|
|
{Opt_check_s, "check=s"},
|
|
{Opt_uid, "uid=%u"},
|
|
{Opt_gid, "gid=%u"},
|
|
{Opt_mode, "mode=%u"},
|
|
{Opt_dmode, "dmode=%u"},
|
|
{Opt_overriderockperm, "overriderockperm"},
|
|
{Opt_block, "block=%u"},
|
|
{Opt_ignore, "conv=binary"},
|
|
{Opt_ignore, "conv=b"},
|
|
{Opt_ignore, "conv=text"},
|
|
{Opt_ignore, "conv=t"},
|
|
{Opt_ignore, "conv=mtext"},
|
|
{Opt_ignore, "conv=m"},
|
|
{Opt_ignore, "conv=auto"},
|
|
{Opt_ignore, "conv=a"},
|
|
{Opt_nocompress, "nocompress"},
|
|
{Opt_err, NULL}
|
|
};
|
|
|
|
static int parse_options(char *options, struct iso9660_options *popt)
|
|
{
|
|
char *p;
|
|
int option;
|
|
|
|
popt->map = 'n';
|
|
popt->rock = 1;
|
|
popt->joliet = 1;
|
|
popt->cruft = 0;
|
|
popt->hide = 0;
|
|
popt->showassoc = 0;
|
|
popt->check = 'u'; /* unset */
|
|
popt->nocompress = 0;
|
|
popt->blocksize = 1024;
|
|
popt->fmode = popt->dmode = ISOFS_INVALID_MODE;
|
|
popt->uid_set = 0;
|
|
popt->gid_set = 0;
|
|
popt->gid = GLOBAL_ROOT_GID;
|
|
popt->uid = GLOBAL_ROOT_UID;
|
|
popt->iocharset = NULL;
|
|
popt->overriderockperm = 0;
|
|
popt->session=-1;
|
|
popt->sbsector=-1;
|
|
if (!options)
|
|
return 1;
|
|
|
|
while ((p = strsep(&options, ",")) != NULL) {
|
|
int token;
|
|
substring_t args[MAX_OPT_ARGS];
|
|
unsigned n;
|
|
|
|
if (!*p)
|
|
continue;
|
|
|
|
token = match_token(p, tokens, args);
|
|
switch (token) {
|
|
case Opt_norock:
|
|
popt->rock = 0;
|
|
break;
|
|
case Opt_nojoliet:
|
|
popt->joliet = 0;
|
|
break;
|
|
case Opt_hide:
|
|
popt->hide = 1;
|
|
break;
|
|
case Opt_unhide:
|
|
case Opt_showassoc:
|
|
popt->showassoc = 1;
|
|
break;
|
|
case Opt_cruft:
|
|
popt->cruft = 1;
|
|
break;
|
|
#ifdef CONFIG_JOLIET
|
|
case Opt_utf8:
|
|
kfree(popt->iocharset);
|
|
popt->iocharset = kstrdup("utf8", GFP_KERNEL);
|
|
if (!popt->iocharset)
|
|
return 0;
|
|
break;
|
|
case Opt_iocharset:
|
|
kfree(popt->iocharset);
|
|
popt->iocharset = match_strdup(&args[0]);
|
|
if (!popt->iocharset)
|
|
return 0;
|
|
break;
|
|
#endif
|
|
case Opt_map_a:
|
|
popt->map = 'a';
|
|
break;
|
|
case Opt_map_o:
|
|
popt->map = 'o';
|
|
break;
|
|
case Opt_map_n:
|
|
popt->map = 'n';
|
|
break;
|
|
case Opt_session:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
n = option;
|
|
/*
|
|
* Track numbers are supposed to be in range 1-99, the
|
|
* mount option starts indexing at 0.
|
|
*/
|
|
if (n >= 99)
|
|
return 0;
|
|
popt->session = n + 1;
|
|
break;
|
|
case Opt_sb:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
popt->sbsector = option;
|
|
break;
|
|
case Opt_check_r:
|
|
popt->check = 'r';
|
|
break;
|
|
case Opt_check_s:
|
|
popt->check = 's';
|
|
break;
|
|
case Opt_ignore:
|
|
break;
|
|
case Opt_uid:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
popt->uid = make_kuid(current_user_ns(), option);
|
|
if (!uid_valid(popt->uid))
|
|
return 0;
|
|
popt->uid_set = 1;
|
|
break;
|
|
case Opt_gid:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
popt->gid = make_kgid(current_user_ns(), option);
|
|
if (!gid_valid(popt->gid))
|
|
return 0;
|
|
popt->gid_set = 1;
|
|
break;
|
|
case Opt_mode:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
popt->fmode = option;
|
|
break;
|
|
case Opt_dmode:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
popt->dmode = option;
|
|
break;
|
|
case Opt_overriderockperm:
|
|
popt->overriderockperm = 1;
|
|
break;
|
|
case Opt_block:
|
|
if (match_int(&args[0], &option))
|
|
return 0;
|
|
n = option;
|
|
if (n != 512 && n != 1024 && n != 2048)
|
|
return 0;
|
|
popt->blocksize = n;
|
|
break;
|
|
case Opt_nocompress:
|
|
popt->nocompress = 1;
|
|
break;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
/*
|
|
* Display the mount options in /proc/mounts.
|
|
*/
|
|
static int isofs_show_options(struct seq_file *m, struct dentry *root)
|
|
{
|
|
struct isofs_sb_info *sbi = ISOFS_SB(root->d_sb);
|
|
|
|
if (!sbi->s_rock) seq_puts(m, ",norock");
|
|
else if (!sbi->s_joliet_level) seq_puts(m, ",nojoliet");
|
|
if (sbi->s_cruft) seq_puts(m, ",cruft");
|
|
if (sbi->s_hide) seq_puts(m, ",hide");
|
|
if (sbi->s_nocompress) seq_puts(m, ",nocompress");
|
|
if (sbi->s_overriderockperm) seq_puts(m, ",overriderockperm");
|
|
if (sbi->s_showassoc) seq_puts(m, ",showassoc");
|
|
|
|
if (sbi->s_check) seq_printf(m, ",check=%c", sbi->s_check);
|
|
if (sbi->s_mapping) seq_printf(m, ",map=%c", sbi->s_mapping);
|
|
if (sbi->s_session != 255) seq_printf(m, ",session=%u", sbi->s_session - 1);
|
|
if (sbi->s_sbsector != -1) seq_printf(m, ",sbsector=%u", sbi->s_sbsector);
|
|
|
|
if (root->d_sb->s_blocksize != 1024)
|
|
seq_printf(m, ",blocksize=%lu", root->d_sb->s_blocksize);
|
|
|
|
if (sbi->s_uid_set)
|
|
seq_printf(m, ",uid=%u",
|
|
from_kuid_munged(&init_user_ns, sbi->s_uid));
|
|
if (sbi->s_gid_set)
|
|
seq_printf(m, ",gid=%u",
|
|
from_kgid_munged(&init_user_ns, sbi->s_gid));
|
|
|
|
if (sbi->s_dmode != ISOFS_INVALID_MODE)
|
|
seq_printf(m, ",dmode=%o", sbi->s_dmode);
|
|
if (sbi->s_fmode != ISOFS_INVALID_MODE)
|
|
seq_printf(m, ",fmode=%o", sbi->s_fmode);
|
|
|
|
#ifdef CONFIG_JOLIET
|
|
if (sbi->s_nls_iocharset)
|
|
seq_printf(m, ",iocharset=%s", sbi->s_nls_iocharset->charset);
|
|
else
|
|
seq_puts(m, ",iocharset=utf8");
|
|
#endif
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* look if the driver can tell the multi session redirection value
|
|
*
|
|
* don't change this if you don't know what you do, please!
|
|
* Multisession is legal only with XA disks.
|
|
* A non-XA disk with more than one volume descriptor may do it right, but
|
|
* usually is written in a nowhere standardized "multi-partition" manner.
|
|
* Multisession uses absolute addressing (solely the first frame of the whole
|
|
* track is #0), multi-partition uses relative addressing (each first frame of
|
|
* each track is #0), and a track is not a session.
|
|
*
|
|
* A broken CDwriter software or drive firmware does not set new standards,
|
|
* at least not if conflicting with the existing ones.
|
|
*
|
|
* emoenke@gwdg.de
|
|
*/
|
|
#define WE_OBEY_THE_WRITTEN_STANDARDS 1
|
|
|
|
static unsigned int isofs_get_last_session(struct super_block *sb, s32 session)
|
|
{
|
|
struct cdrom_device_info *cdi = disk_to_cdi(sb->s_bdev->bd_disk);
|
|
unsigned int vol_desc_start = 0;
|
|
|
|
if (session > 0) {
|
|
struct cdrom_tocentry te;
|
|
|
|
if (!cdi)
|
|
return 0;
|
|
|
|
te.cdte_track = session;
|
|
te.cdte_format = CDROM_LBA;
|
|
if (cdrom_read_tocentry(cdi, &te) == 0) {
|
|
printk(KERN_DEBUG "ISOFS: Session %d start %d type %d\n",
|
|
session, te.cdte_addr.lba,
|
|
te.cdte_ctrl & CDROM_DATA_TRACK);
|
|
if ((te.cdte_ctrl & CDROM_DATA_TRACK) == 4)
|
|
return te.cdte_addr.lba;
|
|
}
|
|
|
|
printk(KERN_ERR "ISOFS: Invalid session number or type of track\n");
|
|
}
|
|
|
|
if (cdi) {
|
|
struct cdrom_multisession ms_info;
|
|
|
|
ms_info.addr_format = CDROM_LBA;
|
|
if (cdrom_multisession(cdi, &ms_info) == 0) {
|
|
#if WE_OBEY_THE_WRITTEN_STANDARDS
|
|
/* necessary for a valid ms_info.addr */
|
|
if (ms_info.xa_flag)
|
|
#endif
|
|
vol_desc_start = ms_info.addr.lba;
|
|
}
|
|
}
|
|
|
|
return vol_desc_start;
|
|
}
|
|
|
|
/*
|
|
* Check if root directory is empty (has less than 3 files).
|
|
*
|
|
* Used to detect broken CDs where ISO root directory is empty but Joliet root
|
|
* directory is OK. If such CD has Rock Ridge extensions, they will be disabled
|
|
* (and Joliet used instead) or else no files would be visible.
|
|
*/
|
|
static bool rootdir_empty(struct super_block *sb, unsigned long block)
|
|
{
|
|
int offset = 0, files = 0, de_len;
|
|
struct iso_directory_record *de;
|
|
struct buffer_head *bh;
|
|
|
|
bh = sb_bread(sb, block);
|
|
if (!bh)
|
|
return true;
|
|
while (files < 3) {
|
|
de = (struct iso_directory_record *) (bh->b_data + offset);
|
|
de_len = *(unsigned char *) de;
|
|
if (de_len == 0)
|
|
break;
|
|
files++;
|
|
offset += de_len;
|
|
}
|
|
brelse(bh);
|
|
return files < 3;
|
|
}
|
|
|
|
/*
|
|
* Initialize the superblock and read the root inode.
|
|
*/
|
|
static int isofs_fill_super(struct super_block *s, void *data, int silent)
|
|
{
|
|
struct buffer_head *bh = NULL, *pri_bh = NULL;
|
|
struct hs_primary_descriptor *h_pri = NULL;
|
|
struct iso_primary_descriptor *pri = NULL;
|
|
struct iso_supplementary_descriptor *sec = NULL;
|
|
struct iso_directory_record *rootp;
|
|
struct inode *inode;
|
|
struct iso9660_options opt;
|
|
struct isofs_sb_info *sbi;
|
|
unsigned long first_data_zone;
|
|
int joliet_level = 0;
|
|
int iso_blknum, block;
|
|
int orig_zonesize;
|
|
int table, error = -EINVAL;
|
|
unsigned int vol_desc_start;
|
|
|
|
sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
|
|
if (!sbi)
|
|
return -ENOMEM;
|
|
s->s_fs_info = sbi;
|
|
|
|
if (!parse_options((char *)data, &opt))
|
|
goto out_freesbi;
|
|
|
|
/*
|
|
* First of all, get the hardware blocksize for this device.
|
|
* If we don't know what it is, or the hardware blocksize is
|
|
* larger than the blocksize the user specified, then use
|
|
* that value.
|
|
*/
|
|
/*
|
|
* What if bugger tells us to go beyond page size?
|
|
*/
|
|
if (bdev_logical_block_size(s->s_bdev) > 2048) {
|
|
printk(KERN_WARNING
|
|
"ISOFS: unsupported/invalid hardware sector size %d\n",
|
|
bdev_logical_block_size(s->s_bdev));
|
|
goto out_freesbi;
|
|
}
|
|
opt.blocksize = sb_min_blocksize(s, opt.blocksize);
|
|
|
|
sbi->s_high_sierra = 0; /* default is iso9660 */
|
|
sbi->s_session = opt.session;
|
|
sbi->s_sbsector = opt.sbsector;
|
|
|
|
vol_desc_start = (opt.sbsector != -1) ?
|
|
opt.sbsector : isofs_get_last_session(s,opt.session);
|
|
|
|
for (iso_blknum = vol_desc_start+16;
|
|
iso_blknum < vol_desc_start+100; iso_blknum++) {
|
|
struct hs_volume_descriptor *hdp;
|
|
struct iso_volume_descriptor *vdp;
|
|
|
|
block = iso_blknum << (ISOFS_BLOCK_BITS - s->s_blocksize_bits);
|
|
if (!(bh = sb_bread(s, block)))
|
|
goto out_no_read;
|
|
|
|
vdp = (struct iso_volume_descriptor *)bh->b_data;
|
|
hdp = (struct hs_volume_descriptor *)bh->b_data;
|
|
|
|
/*
|
|
* Due to the overlapping physical location of the descriptors,
|
|
* ISO CDs can match hdp->id==HS_STANDARD_ID as well. To ensure
|
|
* proper identification in this case, we first check for ISO.
|
|
*/
|
|
if (strncmp (vdp->id, ISO_STANDARD_ID, sizeof vdp->id) == 0) {
|
|
if (isonum_711(vdp->type) == ISO_VD_END)
|
|
break;
|
|
if (isonum_711(vdp->type) == ISO_VD_PRIMARY) {
|
|
if (!pri) {
|
|
pri = (struct iso_primary_descriptor *)vdp;
|
|
/* Save the buffer in case we need it ... */
|
|
pri_bh = bh;
|
|
bh = NULL;
|
|
}
|
|
}
|
|
#ifdef CONFIG_JOLIET
|
|
else if (isonum_711(vdp->type) == ISO_VD_SUPPLEMENTARY) {
|
|
sec = (struct iso_supplementary_descriptor *)vdp;
|
|
if (sec->escape[0] == 0x25 && sec->escape[1] == 0x2f) {
|
|
if (opt.joliet) {
|
|
if (sec->escape[2] == 0x40)
|
|
joliet_level = 1;
|
|
else if (sec->escape[2] == 0x43)
|
|
joliet_level = 2;
|
|
else if (sec->escape[2] == 0x45)
|
|
joliet_level = 3;
|
|
|
|
printk(KERN_DEBUG "ISO 9660 Extensions: "
|
|
"Microsoft Joliet Level %d\n",
|
|
joliet_level);
|
|
}
|
|
goto root_found;
|
|
} else {
|
|
/* Unknown supplementary volume descriptor */
|
|
sec = NULL;
|
|
}
|
|
}
|
|
#endif
|
|
} else {
|
|
if (strncmp (hdp->id, HS_STANDARD_ID, sizeof hdp->id) == 0) {
|
|
if (isonum_711(hdp->type) != ISO_VD_PRIMARY)
|
|
goto out_freebh;
|
|
|
|
sbi->s_high_sierra = 1;
|
|
opt.rock = 0;
|
|
h_pri = (struct hs_primary_descriptor *)vdp;
|
|
goto root_found;
|
|
}
|
|
}
|
|
|
|
/* Just skip any volume descriptors we don't recognize */
|
|
|
|
brelse(bh);
|
|
bh = NULL;
|
|
}
|
|
/*
|
|
* If we fall through, either no volume descriptor was found,
|
|
* or else we passed a primary descriptor looking for others.
|
|
*/
|
|
if (!pri)
|
|
goto out_unknown_format;
|
|
brelse(bh);
|
|
bh = pri_bh;
|
|
pri_bh = NULL;
|
|
|
|
root_found:
|
|
/* We don't support read-write mounts */
|
|
if (!sb_rdonly(s)) {
|
|
error = -EACCES;
|
|
goto out_freebh;
|
|
}
|
|
|
|
if (joliet_level && (!pri || !opt.rock)) {
|
|
/* This is the case of Joliet with the norock mount flag.
|
|
* A disc with both Joliet and Rock Ridge is handled later
|
|
*/
|
|
pri = (struct iso_primary_descriptor *) sec;
|
|
}
|
|
|
|
if(sbi->s_high_sierra){
|
|
rootp = (struct iso_directory_record *) h_pri->root_directory_record;
|
|
sbi->s_nzones = isonum_733(h_pri->volume_space_size);
|
|
sbi->s_log_zone_size = isonum_723(h_pri->logical_block_size);
|
|
sbi->s_max_size = isonum_733(h_pri->volume_space_size);
|
|
} else {
|
|
if (!pri)
|
|
goto out_freebh;
|
|
rootp = (struct iso_directory_record *) pri->root_directory_record;
|
|
sbi->s_nzones = isonum_733(pri->volume_space_size);
|
|
sbi->s_log_zone_size = isonum_723(pri->logical_block_size);
|
|
sbi->s_max_size = isonum_733(pri->volume_space_size);
|
|
}
|
|
|
|
sbi->s_ninodes = 0; /* No way to figure this out easily */
|
|
|
|
orig_zonesize = sbi->s_log_zone_size;
|
|
/*
|
|
* If the zone size is smaller than the hardware sector size,
|
|
* this is a fatal error. This would occur if the disc drive
|
|
* had sectors that were 2048 bytes, but the filesystem had
|
|
* blocks that were 512 bytes (which should only very rarely
|
|
* happen.)
|
|
*/
|
|
if (orig_zonesize < opt.blocksize)
|
|
goto out_bad_size;
|
|
|
|
/* RDE: convert log zone size to bit shift */
|
|
switch (sbi->s_log_zone_size) {
|
|
case 512: sbi->s_log_zone_size = 9; break;
|
|
case 1024: sbi->s_log_zone_size = 10; break;
|
|
case 2048: sbi->s_log_zone_size = 11; break;
|
|
|
|
default:
|
|
goto out_bad_zone_size;
|
|
}
|
|
|
|
s->s_magic = ISOFS_SUPER_MAGIC;
|
|
|
|
/*
|
|
* With multi-extent files, file size is only limited by the maximum
|
|
* size of a file system, which is 8 TB.
|
|
*/
|
|
s->s_maxbytes = 0x80000000000LL;
|
|
|
|
/* ECMA-119 timestamp from 1900/1/1 with tz offset */
|
|
s->s_time_min = mktime64(1900, 1, 1, 0, 0, 0) - MAX_TZ_OFFSET;
|
|
s->s_time_max = mktime64(U8_MAX+1900, 12, 31, 23, 59, 59) + MAX_TZ_OFFSET;
|
|
|
|
/* Set this for reference. Its not currently used except on write
|
|
which we don't have .. */
|
|
|
|
first_data_zone = isonum_733(rootp->extent) +
|
|
isonum_711(rootp->ext_attr_length);
|
|
sbi->s_firstdatazone = first_data_zone;
|
|
#ifndef BEQUIET
|
|
printk(KERN_DEBUG "ISOFS: Max size:%ld Log zone size:%ld\n",
|
|
sbi->s_max_size, 1UL << sbi->s_log_zone_size);
|
|
printk(KERN_DEBUG "ISOFS: First datazone:%ld\n", sbi->s_firstdatazone);
|
|
if(sbi->s_high_sierra)
|
|
printk(KERN_DEBUG "ISOFS: Disc in High Sierra format.\n");
|
|
#endif
|
|
|
|
/*
|
|
* If the Joliet level is set, we _may_ decide to use the
|
|
* secondary descriptor, but can't be sure until after we
|
|
* read the root inode. But before reading the root inode
|
|
* we may need to change the device blocksize, and would
|
|
* rather release the old buffer first. So, we cache the
|
|
* first_data_zone value from the secondary descriptor.
|
|
*/
|
|
if (joliet_level) {
|
|
pri = (struct iso_primary_descriptor *) sec;
|
|
rootp = (struct iso_directory_record *)
|
|
pri->root_directory_record;
|
|
first_data_zone = isonum_733(rootp->extent) +
|
|
isonum_711(rootp->ext_attr_length);
|
|
}
|
|
|
|
/*
|
|
* We're all done using the volume descriptor, and may need
|
|
* to change the device blocksize, so release the buffer now.
|
|
*/
|
|
brelse(pri_bh);
|
|
brelse(bh);
|
|
|
|
/*
|
|
* Force the blocksize to 512 for 512 byte sectors. The file
|
|
* read primitives really get it wrong in a bad way if we don't
|
|
* do this.
|
|
*
|
|
* Note - we should never be setting the blocksize to something
|
|
* less than the hardware sector size for the device. If we
|
|
* do, we would end up having to read larger buffers and split
|
|
* out portions to satisfy requests.
|
|
*
|
|
* Note2- the idea here is that we want to deal with the optimal
|
|
* zonesize in the filesystem. If we have it set to something less,
|
|
* then we have horrible problems with trying to piece together
|
|
* bits of adjacent blocks in order to properly read directory
|
|
* entries. By forcing the blocksize in this way, we ensure
|
|
* that we will never be required to do this.
|
|
*/
|
|
sb_set_blocksize(s, orig_zonesize);
|
|
|
|
sbi->s_nls_iocharset = NULL;
|
|
|
|
#ifdef CONFIG_JOLIET
|
|
if (joliet_level) {
|
|
char *p = opt.iocharset ? opt.iocharset : CONFIG_NLS_DEFAULT;
|
|
if (strcmp(p, "utf8") != 0) {
|
|
sbi->s_nls_iocharset = opt.iocharset ?
|
|
load_nls(opt.iocharset) : load_nls_default();
|
|
if (!sbi->s_nls_iocharset)
|
|
goto out_freesbi;
|
|
}
|
|
}
|
|
#endif
|
|
s->s_op = &isofs_sops;
|
|
s->s_export_op = &isofs_export_ops;
|
|
sbi->s_mapping = opt.map;
|
|
sbi->s_rock = (opt.rock ? 2 : 0);
|
|
sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/
|
|
sbi->s_cruft = opt.cruft;
|
|
sbi->s_hide = opt.hide;
|
|
sbi->s_showassoc = opt.showassoc;
|
|
sbi->s_uid = opt.uid;
|
|
sbi->s_gid = opt.gid;
|
|
sbi->s_uid_set = opt.uid_set;
|
|
sbi->s_gid_set = opt.gid_set;
|
|
sbi->s_nocompress = opt.nocompress;
|
|
sbi->s_overriderockperm = opt.overriderockperm;
|
|
/*
|
|
* It would be incredibly stupid to allow people to mark every file
|
|
* on the disk as suid, so we merely allow them to set the default
|
|
* permissions.
|
|
*/
|
|
if (opt.fmode != ISOFS_INVALID_MODE)
|
|
sbi->s_fmode = opt.fmode & 0777;
|
|
else
|
|
sbi->s_fmode = ISOFS_INVALID_MODE;
|
|
if (opt.dmode != ISOFS_INVALID_MODE)
|
|
sbi->s_dmode = opt.dmode & 0777;
|
|
else
|
|
sbi->s_dmode = ISOFS_INVALID_MODE;
|
|
|
|
/*
|
|
* Read the root inode, which _may_ result in changing
|
|
* the s_rock flag. Once we have the final s_rock value,
|
|
* we then decide whether to use the Joliet descriptor.
|
|
*/
|
|
inode = isofs_iget(s, sbi->s_firstdatazone, 0);
|
|
if (IS_ERR(inode))
|
|
goto out_no_root;
|
|
|
|
/*
|
|
* Fix for broken CDs with Rock Ridge and empty ISO root directory but
|
|
* correct Joliet root directory.
|
|
*/
|
|
if (sbi->s_rock == 1 && joliet_level &&
|
|
rootdir_empty(s, sbi->s_firstdatazone)) {
|
|
printk(KERN_NOTICE
|
|
"ISOFS: primary root directory is empty. "
|
|
"Disabling Rock Ridge and switching to Joliet.");
|
|
sbi->s_rock = 0;
|
|
}
|
|
|
|
/*
|
|
* If this disk has both Rock Ridge and Joliet on it, then we
|
|
* want to use Rock Ridge by default. This can be overridden
|
|
* by using the norock mount option. There is still one other
|
|
* possibility that is not taken into account: a Rock Ridge
|
|
* CD with Unicode names. Until someone sees such a beast, it
|
|
* will not be supported.
|
|
*/
|
|
if (sbi->s_rock == 1) {
|
|
joliet_level = 0;
|
|
} else if (joliet_level) {
|
|
sbi->s_rock = 0;
|
|
if (sbi->s_firstdatazone != first_data_zone) {
|
|
sbi->s_firstdatazone = first_data_zone;
|
|
printk(KERN_DEBUG
|
|
"ISOFS: changing to secondary root\n");
|
|
iput(inode);
|
|
inode = isofs_iget(s, sbi->s_firstdatazone, 0);
|
|
if (IS_ERR(inode))
|
|
goto out_no_root;
|
|
}
|
|
}
|
|
|
|
if (opt.check == 'u') {
|
|
/* Only Joliet is case insensitive by default */
|
|
if (joliet_level)
|
|
opt.check = 'r';
|
|
else
|
|
opt.check = 's';
|
|
}
|
|
sbi->s_joliet_level = joliet_level;
|
|
|
|
/* Make sure the root inode is a directory */
|
|
if (!S_ISDIR(inode->i_mode)) {
|
|
printk(KERN_WARNING
|
|
"isofs_fill_super: root inode is not a directory. "
|
|
"Corrupted media?\n");
|
|
goto out_iput;
|
|
}
|
|
|
|
table = 0;
|
|
if (joliet_level)
|
|
table += 2;
|
|
if (opt.check == 'r')
|
|
table++;
|
|
sbi->s_check = opt.check;
|
|
|
|
if (table)
|
|
s->s_d_op = &isofs_dentry_ops[table - 1];
|
|
|
|
/* get the root dentry */
|
|
s->s_root = d_make_root(inode);
|
|
if (!(s->s_root)) {
|
|
error = -ENOMEM;
|
|
goto out_no_inode;
|
|
}
|
|
|
|
kfree(opt.iocharset);
|
|
|
|
return 0;
|
|
|
|
/*
|
|
* Display error messages and free resources.
|
|
*/
|
|
out_iput:
|
|
iput(inode);
|
|
goto out_no_inode;
|
|
out_no_root:
|
|
error = PTR_ERR(inode);
|
|
if (error != -ENOMEM)
|
|
printk(KERN_WARNING "%s: get root inode failed\n", __func__);
|
|
out_no_inode:
|
|
#ifdef CONFIG_JOLIET
|
|
unload_nls(sbi->s_nls_iocharset);
|
|
#endif
|
|
goto out_freesbi;
|
|
out_no_read:
|
|
printk(KERN_WARNING "%s: bread failed, dev=%s, iso_blknum=%d, block=%d\n",
|
|
__func__, s->s_id, iso_blknum, block);
|
|
goto out_freebh;
|
|
out_bad_zone_size:
|
|
printk(KERN_WARNING "ISOFS: Bad logical zone size %ld\n",
|
|
sbi->s_log_zone_size);
|
|
goto out_freebh;
|
|
out_bad_size:
|
|
printk(KERN_WARNING "ISOFS: Logical zone size(%d) < hardware blocksize(%u)\n",
|
|
orig_zonesize, opt.blocksize);
|
|
goto out_freebh;
|
|
out_unknown_format:
|
|
if (!silent)
|
|
printk(KERN_WARNING "ISOFS: Unable to identify CD-ROM format.\n");
|
|
|
|
out_freebh:
|
|
brelse(bh);
|
|
brelse(pri_bh);
|
|
out_freesbi:
|
|
kfree(opt.iocharset);
|
|
kfree(sbi);
|
|
s->s_fs_info = NULL;
|
|
return error;
|
|
}
|
|
|
|
static int isofs_statfs (struct dentry *dentry, struct kstatfs *buf)
|
|
{
|
|
struct super_block *sb = dentry->d_sb;
|
|
u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
|
|
|
|
buf->f_type = ISOFS_SUPER_MAGIC;
|
|
buf->f_bsize = sb->s_blocksize;
|
|
buf->f_blocks = (ISOFS_SB(sb)->s_nzones
|
|
<< (ISOFS_SB(sb)->s_log_zone_size - sb->s_blocksize_bits));
|
|
buf->f_bfree = 0;
|
|
buf->f_bavail = 0;
|
|
buf->f_files = ISOFS_SB(sb)->s_ninodes;
|
|
buf->f_ffree = 0;
|
|
buf->f_fsid = u64_to_fsid(id);
|
|
buf->f_namelen = NAME_MAX;
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Get a set of blocks; filling in buffer_heads if already allocated
|
|
* or getblk() if they are not. Returns the number of blocks inserted
|
|
* (-ve == error.)
|
|
*/
|
|
int isofs_get_blocks(struct inode *inode, sector_t iblock,
|
|
struct buffer_head **bh, unsigned long nblocks)
|
|
{
|
|
unsigned long b_off = iblock;
|
|
unsigned offset, sect_size;
|
|
unsigned int firstext;
|
|
unsigned long nextblk, nextoff;
|
|
int section, rv, error;
|
|
struct iso_inode_info *ei = ISOFS_I(inode);
|
|
|
|
error = -EIO;
|
|
rv = 0;
|
|
if (iblock != b_off) {
|
|
printk(KERN_DEBUG "%s: block number too large\n", __func__);
|
|
goto abort;
|
|
}
|
|
|
|
|
|
offset = 0;
|
|
firstext = ei->i_first_extent;
|
|
sect_size = ei->i_section_size >> ISOFS_BUFFER_BITS(inode);
|
|
nextblk = ei->i_next_section_block;
|
|
nextoff = ei->i_next_section_offset;
|
|
section = 0;
|
|
|
|
while (nblocks) {
|
|
/* If we are *way* beyond the end of the file, print a message.
|
|
* Access beyond the end of the file up to the next page boundary
|
|
* is normal, however because of the way the page cache works.
|
|
* In this case, we just return 0 so that we can properly fill
|
|
* the page with useless information without generating any
|
|
* I/O errors.
|
|
*/
|
|
if (b_off > ((inode->i_size + PAGE_SIZE - 1) >> ISOFS_BUFFER_BITS(inode))) {
|
|
printk(KERN_DEBUG "%s: block >= EOF (%lu, %llu)\n",
|
|
__func__, b_off,
|
|
(unsigned long long)inode->i_size);
|
|
goto abort;
|
|
}
|
|
|
|
/* On the last section, nextblk == 0, section size is likely to
|
|
* exceed sect_size by a partial block, and access beyond the
|
|
* end of the file will reach beyond the section size, too.
|
|
*/
|
|
while (nextblk && (b_off >= (offset + sect_size))) {
|
|
struct inode *ninode;
|
|
|
|
offset += sect_size;
|
|
ninode = isofs_iget(inode->i_sb, nextblk, nextoff);
|
|
if (IS_ERR(ninode)) {
|
|
error = PTR_ERR(ninode);
|
|
goto abort;
|
|
}
|
|
firstext = ISOFS_I(ninode)->i_first_extent;
|
|
sect_size = ISOFS_I(ninode)->i_section_size >> ISOFS_BUFFER_BITS(ninode);
|
|
nextblk = ISOFS_I(ninode)->i_next_section_block;
|
|
nextoff = ISOFS_I(ninode)->i_next_section_offset;
|
|
iput(ninode);
|
|
|
|
if (++section > 100) {
|
|
printk(KERN_DEBUG "%s: More than 100 file sections ?!?"
|
|
" aborting...\n", __func__);
|
|
printk(KERN_DEBUG "%s: block=%lu firstext=%u sect_size=%u "
|
|
"nextblk=%lu nextoff=%lu\n", __func__,
|
|
b_off, firstext, (unsigned) sect_size,
|
|
nextblk, nextoff);
|
|
goto abort;
|
|
}
|
|
}
|
|
|
|
if (*bh) {
|
|
map_bh(*bh, inode->i_sb, firstext + b_off - offset);
|
|
} else {
|
|
*bh = sb_getblk(inode->i_sb, firstext+b_off-offset);
|
|
if (!*bh)
|
|
goto abort;
|
|
}
|
|
bh++; /* Next buffer head */
|
|
b_off++; /* Next buffer offset */
|
|
nblocks--;
|
|
rv++;
|
|
}
|
|
|
|
error = 0;
|
|
abort:
|
|
return rv != 0 ? rv : error;
|
|
}
|
|
|
|
/*
|
|
* Used by the standard interfaces.
|
|
*/
|
|
static int isofs_get_block(struct inode *inode, sector_t iblock,
|
|
struct buffer_head *bh_result, int create)
|
|
{
|
|
int ret;
|
|
|
|
if (create) {
|
|
printk(KERN_DEBUG "%s: Kernel tries to allocate a block\n", __func__);
|
|
return -EROFS;
|
|
}
|
|
|
|
ret = isofs_get_blocks(inode, iblock, &bh_result, 1);
|
|
return ret < 0 ? ret : 0;
|
|
}
|
|
|
|
static int isofs_bmap(struct inode *inode, sector_t block)
|
|
{
|
|
struct buffer_head dummy;
|
|
int error;
|
|
|
|
dummy.b_state = 0;
|
|
dummy.b_blocknr = -1000;
|
|
error = isofs_get_block(inode, block, &dummy, 0);
|
|
if (!error)
|
|
return dummy.b_blocknr;
|
|
return 0;
|
|
}
|
|
|
|
struct buffer_head *isofs_bread(struct inode *inode, sector_t block)
|
|
{
|
|
sector_t blknr = isofs_bmap(inode, block);
|
|
if (!blknr)
|
|
return NULL;
|
|
return sb_bread(inode->i_sb, blknr);
|
|
}
|
|
|
|
static int isofs_readpage(struct file *file, struct page *page)
|
|
{
|
|
return mpage_readpage(page, isofs_get_block);
|
|
}
|
|
|
|
static void isofs_readahead(struct readahead_control *rac)
|
|
{
|
|
mpage_readahead(rac, isofs_get_block);
|
|
}
|
|
|
|
static sector_t _isofs_bmap(struct address_space *mapping, sector_t block)
|
|
{
|
|
return generic_block_bmap(mapping,block,isofs_get_block);
|
|
}
|
|
|
|
static const struct address_space_operations isofs_aops = {
|
|
.readpage = isofs_readpage,
|
|
.readahead = isofs_readahead,
|
|
.bmap = _isofs_bmap
|
|
};
|
|
|
|
static int isofs_read_level3_size(struct inode *inode)
|
|
{
|
|
unsigned long bufsize = ISOFS_BUFFER_SIZE(inode);
|
|
int high_sierra = ISOFS_SB(inode->i_sb)->s_high_sierra;
|
|
struct buffer_head *bh = NULL;
|
|
unsigned long block, offset, block_saved, offset_saved;
|
|
int i = 0;
|
|
int more_entries = 0;
|
|
struct iso_directory_record *tmpde = NULL;
|
|
struct iso_inode_info *ei = ISOFS_I(inode);
|
|
|
|
inode->i_size = 0;
|
|
|
|
/* The first 16 blocks are reserved as the System Area. Thus,
|
|
* no inodes can appear in block 0. We use this to flag that
|
|
* this is the last section. */
|
|
ei->i_next_section_block = 0;
|
|
ei->i_next_section_offset = 0;
|
|
|
|
block = ei->i_iget5_block;
|
|
offset = ei->i_iget5_offset;
|
|
|
|
do {
|
|
struct iso_directory_record *de;
|
|
unsigned int de_len;
|
|
|
|
if (!bh) {
|
|
bh = sb_bread(inode->i_sb, block);
|
|
if (!bh)
|
|
goto out_noread;
|
|
}
|
|
de = (struct iso_directory_record *) (bh->b_data + offset);
|
|
de_len = *(unsigned char *) de;
|
|
|
|
if (de_len == 0) {
|
|
brelse(bh);
|
|
bh = NULL;
|
|
++block;
|
|
offset = 0;
|
|
continue;
|
|
}
|
|
|
|
block_saved = block;
|
|
offset_saved = offset;
|
|
offset += de_len;
|
|
|
|
/* Make sure we have a full directory entry */
|
|
if (offset >= bufsize) {
|
|
int slop = bufsize - offset + de_len;
|
|
if (!tmpde) {
|
|
tmpde = kmalloc(256, GFP_KERNEL);
|
|
if (!tmpde)
|
|
goto out_nomem;
|
|
}
|
|
memcpy(tmpde, de, slop);
|
|
offset &= bufsize - 1;
|
|
block++;
|
|
brelse(bh);
|
|
bh = NULL;
|
|
if (offset) {
|
|
bh = sb_bread(inode->i_sb, block);
|
|
if (!bh)
|
|
goto out_noread;
|
|
memcpy((void *)tmpde+slop, bh->b_data, offset);
|
|
}
|
|
de = tmpde;
|
|
}
|
|
|
|
inode->i_size += isonum_733(de->size);
|
|
if (i == 1) {
|
|
ei->i_next_section_block = block_saved;
|
|
ei->i_next_section_offset = offset_saved;
|
|
}
|
|
|
|
more_entries = de->flags[-high_sierra] & 0x80;
|
|
|
|
i++;
|
|
if (i > 100)
|
|
goto out_toomany;
|
|
} while (more_entries);
|
|
out:
|
|
kfree(tmpde);
|
|
if (bh)
|
|
brelse(bh);
|
|
return 0;
|
|
|
|
out_nomem:
|
|
if (bh)
|
|
brelse(bh);
|
|
return -ENOMEM;
|
|
|
|
out_noread:
|
|
printk(KERN_INFO "ISOFS: unable to read i-node block %lu\n", block);
|
|
kfree(tmpde);
|
|
return -EIO;
|
|
|
|
out_toomany:
|
|
printk(KERN_INFO "%s: More than 100 file sections ?!?, aborting...\n"
|
|
"isofs_read_level3_size: inode=%lu\n",
|
|
__func__, inode->i_ino);
|
|
goto out;
|
|
}
|
|
|
|
static int isofs_read_inode(struct inode *inode, int relocated)
|
|
{
|
|
struct super_block *sb = inode->i_sb;
|
|
struct isofs_sb_info *sbi = ISOFS_SB(sb);
|
|
unsigned long bufsize = ISOFS_BUFFER_SIZE(inode);
|
|
unsigned long block;
|
|
int high_sierra = sbi->s_high_sierra;
|
|
struct buffer_head *bh;
|
|
struct iso_directory_record *de;
|
|
struct iso_directory_record *tmpde = NULL;
|
|
unsigned int de_len;
|
|
unsigned long offset;
|
|
struct iso_inode_info *ei = ISOFS_I(inode);
|
|
int ret = -EIO;
|
|
|
|
block = ei->i_iget5_block;
|
|
bh = sb_bread(inode->i_sb, block);
|
|
if (!bh)
|
|
goto out_badread;
|
|
|
|
offset = ei->i_iget5_offset;
|
|
|
|
de = (struct iso_directory_record *) (bh->b_data + offset);
|
|
de_len = *(unsigned char *) de;
|
|
if (de_len < sizeof(struct iso_directory_record))
|
|
goto fail;
|
|
|
|
if (offset + de_len > bufsize) {
|
|
int frag1 = bufsize - offset;
|
|
|
|
tmpde = kmalloc(de_len, GFP_KERNEL);
|
|
if (!tmpde) {
|
|
ret = -ENOMEM;
|
|
goto fail;
|
|
}
|
|
memcpy(tmpde, bh->b_data + offset, frag1);
|
|
brelse(bh);
|
|
bh = sb_bread(inode->i_sb, ++block);
|
|
if (!bh)
|
|
goto out_badread;
|
|
memcpy((char *)tmpde+frag1, bh->b_data, de_len - frag1);
|
|
de = tmpde;
|
|
}
|
|
|
|
inode->i_ino = isofs_get_ino(ei->i_iget5_block,
|
|
ei->i_iget5_offset,
|
|
ISOFS_BUFFER_BITS(inode));
|
|
|
|
/* Assume it is a normal-format file unless told otherwise */
|
|
ei->i_file_format = isofs_file_normal;
|
|
|
|
if (de->flags[-high_sierra] & 2) {
|
|
if (sbi->s_dmode != ISOFS_INVALID_MODE)
|
|
inode->i_mode = S_IFDIR | sbi->s_dmode;
|
|
else
|
|
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO;
|
|
set_nlink(inode, 1); /*
|
|
* Set to 1. We know there are 2, but
|
|
* the find utility tries to optimize
|
|
* if it is 2, and it screws up. It is
|
|
* easier to give 1 which tells find to
|
|
* do it the hard way.
|
|
*/
|
|
} else {
|
|
if (sbi->s_fmode != ISOFS_INVALID_MODE) {
|
|
inode->i_mode = S_IFREG | sbi->s_fmode;
|
|
} else {
|
|
/*
|
|
* Set default permissions: r-x for all. The disc
|
|
* could be shared with DOS machines so virtually
|
|
* anything could be a valid executable.
|
|
*/
|
|
inode->i_mode = S_IFREG | S_IRUGO | S_IXUGO;
|
|
}
|
|
set_nlink(inode, 1);
|
|
}
|
|
inode->i_uid = sbi->s_uid;
|
|
inode->i_gid = sbi->s_gid;
|
|
inode->i_blocks = 0;
|
|
|
|
ei->i_format_parm[0] = 0;
|
|
ei->i_format_parm[1] = 0;
|
|
ei->i_format_parm[2] = 0;
|
|
|
|
ei->i_section_size = isonum_733(de->size);
|
|
if (de->flags[-high_sierra] & 0x80) {
|
|
ret = isofs_read_level3_size(inode);
|
|
if (ret < 0)
|
|
goto fail;
|
|
ret = -EIO;
|
|
} else {
|
|
ei->i_next_section_block = 0;
|
|
ei->i_next_section_offset = 0;
|
|
inode->i_size = isonum_733(de->size);
|
|
}
|
|
|
|
/*
|
|
* Some dipshit decided to store some other bit of information
|
|
* in the high byte of the file length. Truncate size in case
|
|
* this CDROM was mounted with the cruft option.
|
|
*/
|
|
|
|
if (sbi->s_cruft)
|
|
inode->i_size &= 0x00ffffff;
|
|
|
|
if (de->interleave[0]) {
|
|
printk(KERN_DEBUG "ISOFS: Interleaved files not (yet) supported.\n");
|
|
inode->i_size = 0;
|
|
}
|
|
|
|
/* I have no idea what file_unit_size is used for, so
|
|
we will flag it for now */
|
|
if (de->file_unit_size[0] != 0) {
|
|
printk(KERN_DEBUG "ISOFS: File unit size != 0 for ISO file (%ld).\n",
|
|
inode->i_ino);
|
|
}
|
|
|
|
/* I have no idea what other flag bits are used for, so
|
|
we will flag it for now */
|
|
#ifdef DEBUG
|
|
if((de->flags[-high_sierra] & ~2)!= 0){
|
|
printk(KERN_DEBUG "ISOFS: Unusual flag settings for ISO file "
|
|
"(%ld %x).\n",
|
|
inode->i_ino, de->flags[-high_sierra]);
|
|
}
|
|
#endif
|
|
|
|
inode->i_mtime.tv_sec =
|
|
inode->i_atime.tv_sec =
|
|
inode->i_ctime.tv_sec = iso_date(de->date, high_sierra);
|
|
inode->i_mtime.tv_nsec =
|
|
inode->i_atime.tv_nsec =
|
|
inode->i_ctime.tv_nsec = 0;
|
|
|
|
ei->i_first_extent = (isonum_733(de->extent) +
|
|
isonum_711(de->ext_attr_length));
|
|
|
|
/* Set the number of blocks for stat() - should be done before RR */
|
|
inode->i_blocks = (inode->i_size + 511) >> 9;
|
|
|
|
/*
|
|
* Now test for possible Rock Ridge extensions which will override
|
|
* some of these numbers in the inode structure.
|
|
*/
|
|
|
|
if (!high_sierra) {
|
|
parse_rock_ridge_inode(de, inode, relocated);
|
|
/* if we want uid/gid set, override the rock ridge setting */
|
|
if (sbi->s_uid_set)
|
|
inode->i_uid = sbi->s_uid;
|
|
if (sbi->s_gid_set)
|
|
inode->i_gid = sbi->s_gid;
|
|
}
|
|
/* Now set final access rights if overriding rock ridge setting */
|
|
if (S_ISDIR(inode->i_mode) && sbi->s_overriderockperm &&
|
|
sbi->s_dmode != ISOFS_INVALID_MODE)
|
|
inode->i_mode = S_IFDIR | sbi->s_dmode;
|
|
if (S_ISREG(inode->i_mode) && sbi->s_overriderockperm &&
|
|
sbi->s_fmode != ISOFS_INVALID_MODE)
|
|
inode->i_mode = S_IFREG | sbi->s_fmode;
|
|
|
|
/* Install the inode operations vector */
|
|
if (S_ISREG(inode->i_mode)) {
|
|
inode->i_fop = &generic_ro_fops;
|
|
switch (ei->i_file_format) {
|
|
#ifdef CONFIG_ZISOFS
|
|
case isofs_file_compressed:
|
|
inode->i_data.a_ops = &zisofs_aops;
|
|
break;
|
|
#endif
|
|
default:
|
|
inode->i_data.a_ops = &isofs_aops;
|
|
break;
|
|
}
|
|
} else if (S_ISDIR(inode->i_mode)) {
|
|
inode->i_op = &isofs_dir_inode_operations;
|
|
inode->i_fop = &isofs_dir_operations;
|
|
} else if (S_ISLNK(inode->i_mode)) {
|
|
inode->i_op = &page_symlink_inode_operations;
|
|
inode_nohighmem(inode);
|
|
inode->i_data.a_ops = &isofs_symlink_aops;
|
|
} else
|
|
/* XXX - parse_rock_ridge_inode() had already set i_rdev. */
|
|
init_special_inode(inode, inode->i_mode, inode->i_rdev);
|
|
|
|
ret = 0;
|
|
out:
|
|
kfree(tmpde);
|
|
if (bh)
|
|
brelse(bh);
|
|
return ret;
|
|
|
|
out_badread:
|
|
printk(KERN_WARNING "ISOFS: unable to read i-node block\n");
|
|
fail:
|
|
goto out;
|
|
}
|
|
|
|
struct isofs_iget5_callback_data {
|
|
unsigned long block;
|
|
unsigned long offset;
|
|
};
|
|
|
|
static int isofs_iget5_test(struct inode *ino, void *data)
|
|
{
|
|
struct iso_inode_info *i = ISOFS_I(ino);
|
|
struct isofs_iget5_callback_data *d =
|
|
(struct isofs_iget5_callback_data*)data;
|
|
return (i->i_iget5_block == d->block)
|
|
&& (i->i_iget5_offset == d->offset);
|
|
}
|
|
|
|
static int isofs_iget5_set(struct inode *ino, void *data)
|
|
{
|
|
struct iso_inode_info *i = ISOFS_I(ino);
|
|
struct isofs_iget5_callback_data *d =
|
|
(struct isofs_iget5_callback_data*)data;
|
|
i->i_iget5_block = d->block;
|
|
i->i_iget5_offset = d->offset;
|
|
return 0;
|
|
}
|
|
|
|
/* Store, in the inode's containing structure, the block and block
|
|
* offset that point to the underlying meta-data for the inode. The
|
|
* code below is otherwise similar to the iget() code in
|
|
* include/linux/fs.h */
|
|
struct inode *__isofs_iget(struct super_block *sb,
|
|
unsigned long block,
|
|
unsigned long offset,
|
|
int relocated)
|
|
{
|
|
unsigned long hashval;
|
|
struct inode *inode;
|
|
struct isofs_iget5_callback_data data;
|
|
long ret;
|
|
|
|
if (offset >= 1ul << sb->s_blocksize_bits)
|
|
return ERR_PTR(-EINVAL);
|
|
|
|
data.block = block;
|
|
data.offset = offset;
|
|
|
|
hashval = (block << sb->s_blocksize_bits) | offset;
|
|
|
|
inode = iget5_locked(sb, hashval, &isofs_iget5_test,
|
|
&isofs_iget5_set, &data);
|
|
|
|
if (!inode)
|
|
return ERR_PTR(-ENOMEM);
|
|
|
|
if (inode->i_state & I_NEW) {
|
|
ret = isofs_read_inode(inode, relocated);
|
|
if (ret < 0) {
|
|
iget_failed(inode);
|
|
inode = ERR_PTR(ret);
|
|
} else {
|
|
unlock_new_inode(inode);
|
|
}
|
|
}
|
|
|
|
return inode;
|
|
}
|
|
|
|
static struct dentry *isofs_mount(struct file_system_type *fs_type,
|
|
int flags, const char *dev_name, void *data)
|
|
{
|
|
return mount_bdev(fs_type, flags, dev_name, data, isofs_fill_super);
|
|
}
|
|
|
|
static struct file_system_type iso9660_fs_type = {
|
|
.owner = THIS_MODULE,
|
|
.name = "iso9660",
|
|
.mount = isofs_mount,
|
|
.kill_sb = kill_block_super,
|
|
.fs_flags = FS_REQUIRES_DEV,
|
|
};
|
|
MODULE_ALIAS_FS("iso9660");
|
|
MODULE_ALIAS("iso9660");
|
|
|
|
static int __init init_iso9660_fs(void)
|
|
{
|
|
int err = init_inodecache();
|
|
if (err)
|
|
goto out;
|
|
#ifdef CONFIG_ZISOFS
|
|
err = zisofs_init();
|
|
if (err)
|
|
goto out1;
|
|
#endif
|
|
err = register_filesystem(&iso9660_fs_type);
|
|
if (err)
|
|
goto out2;
|
|
return 0;
|
|
out2:
|
|
#ifdef CONFIG_ZISOFS
|
|
zisofs_cleanup();
|
|
out1:
|
|
#endif
|
|
destroy_inodecache();
|
|
out:
|
|
return err;
|
|
}
|
|
|
|
static void __exit exit_iso9660_fs(void)
|
|
{
|
|
unregister_filesystem(&iso9660_fs_type);
|
|
#ifdef CONFIG_ZISOFS
|
|
zisofs_cleanup();
|
|
#endif
|
|
destroy_inodecache();
|
|
}
|
|
|
|
module_init(init_iso9660_fs)
|
|
module_exit(exit_iso9660_fs)
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
|