Merge branch 'android12-5.10' into android12-5.10-lts

Sync up with android12-5.10 for the following commits:

2c152aa329 UPSTREAM: f2fs: reduce the scope of setting fsck tag when de->name_len is zero
c29dd368ef ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
428d0bb762 ANDROID: Add initial ASUS symbol list
87a74496ed ANDROID: configfs: add proper module namespace marking
b7a6c15a6f ANDROID: Configure out the macros in android_kabi and android_vendor
bdc772adbd ANDROID: kernel: fix debug_kinfo set twice crash issue
d483eed85f ANDROID: GKI: set vfs-only exports into their own namespace
27fc5a7c69 UPSTREAM: net/packet: rx_owner_map depends on pg_vec
f70ea63f3b ANDROID: GKI: Update symbols to symbol list
a593acdae8 FROMLIST: module.h: allow #define strings to work with MODULE_IMPORT_NS
eb171b4cbe FROMLIST: export: fix string handling of namespace in EXPORT_SYMBOL_NS
05c23b7a50 ANDROID: vendor_hooks: Add hooks for binder
e99926fdfa ANDROID: mm/oom_kill: allow process_mrelease reclaim memory in parallel with exit_mmap
f4f2c619d5 FROMLIST: mm/oom_kill: allow process_mrelease to run under mmap_lock protection
2452622293 FROMLIST: mm: protect free_pgtables with mmap_lock write lock in exit_mmap
fd7af95538 UPSTREAM: mm/oom_kill.c: prevent a race between process_mrelease and exit_mmap
fe50dcab7a UPSTREAM: mm: wire up syscall process_mrelease
7fc3ac4968 UPSTREAM: mm: introduce process_mrelease system call
ac44888155 Revert "FROMGIT: mm: improve mprotect(R|W) efficiency on pages referenced once"
3a624c9ccd ANDROID: fips140: add show_invalid_inputs command to fips140_lab_util
a481d43521 ANDROID: fips140: refactor and rename fips140_lab_test
d4b5ca56b5 ANDROID: GKI: add lenovo symbol list
47874cc690 ANDROID: abi_gki_aarch64_qcom: Add rproc_set_firmware
c41767a8ec UPSTREAM: remoteproc: Add a rproc_set_firmware() API
28d62c68d1 FROMGIT: iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
99ad261273 UPSTREAM: sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
282a4de8f0 UPSTREAM: sctp: validate chunk size in __rcv_asconf_lookup
fef7dba3a7 UPSTREAM: bpf: Fix integer overflow in prealloc_elems_and_freelist()
893425f545 ANDROID: GKI: Update symbol list
cef0df2218 ANDROID: ABI: update allowed list for galaxy
a7ab784f60 ANDROID: vendor_hooks: Add hooks for futex
84fc3abca0 ANDROID: dma-contiguous: Add tracehook to allow subpage allocations in dma_alloc_contiguous
d94655c43e ANDROID: Update the ABI xml and symbol list
414c32d38e UPSTREAM: ALSA: memalloc: Align buffer allocations in page size
75617df5b3 ANDROID: Fix mmu_notifier_trylock definition for !CONFIG_MMU_NOTIFIER config
7531e63661 FROMGIT: USB: gadget: bRequestType is a bitfield, not a enum
70c9301d9c ANDROID: qcom: Add flush_delayed_fput to ABI
5d8520b557 ANDROID: fix ABI breakage caused by mm_struct->mmu_notifier_lock addition
a4d26b9a4b ANDROID: fix ABI breakage caused by percpu_rw_semaphore changes
6971350406 ANDROID: fix mmu_notifier race caused by not taking mmap_lock during SPF
2fc2c66b9c ANDROID: percpu-rwsem: enable percpu_sem destruction in atomic context
f3f87608d8 FROMLIST: virtio_mmio: pm: Add notification handlers for restore and freeze
9180348b91 FROMLIST: virtio: do not reset stateful devices on resume
392cb940f6 FROMGIT: f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
ddd9e01504 UPSTREAM: mm, slub: fix incorrect memcg slab count for bulk free
82ac5b0b1d UPSTREAM: mm, slub: fix potential use-after-free in slab_debugfs_fops
e07a663f5d UPSTREAM: mm, slub: fix potential memoryleak in kmem_cache_open()
cd02f347ab UPSTREAM: mm, slub: fix mismatch between reconstructed freelist depth and cnt
6b6725f77d UPSTREAM: mm, slub: fix two bugs in slab_debug_trace_open()
791f85d16d UPSTREAM: mm, slub: allocate private object map for debugfs listings
1260b47d4f FROMGIT: dma-buf: remove restriction of IOCTL:DMA_BUF_SET_NAME
e80be54e4b UPSTREAM: usb: dwc3: core: balance phy init and exit
89137e0047 UPSTREAM: xhci: Fix failure to give back some cached cancelled URBs.
f37b6d79f8 ANDROID: mm/memory_hotplug: Don't special case memory_block_size_bytes
8b7ffd60a5 UPSTREAM: usb: gadget: uvc: fix multiple opens
ae22ebebbb UPSTREAM: aio: fix use-after-free due to missing POLLFREE handling
b9c8788830 UPSTREAM: aio: keep poll requests on waitqueue until completed
f965176884 UPSTREAM: signalfd: use wake_up_pollfree()
49744a390d UPSTREAM: binder: use wake_up_pollfree()
e50fe1de2f UPSTREAM: wait: add wake_up_pollfree()
53afb231f5 UPSTREAM: USB: gadget: zero allocate endpoint 0 buffers
593309a377 BACKPORT: scsi: ufs: Improve SCSI abort handling further
21949c429a FROMGIT: scsi: ufs: Introduce ufshcd_release_scsi_cmd()
d600bdedac FROMGIT: scsi: ufs: Remove the 'update_scaling' local variable
5f9614157c UPSTREAM: scsi: ufs: core: Fix another task management completion race
76760a995c BACKPORT: scsi: ufs: core: Fix task management completion timeout race
dab2a8a288 ANDROID: qcom: Add android_rvh_do_ptrauth_fault to ABI
b4604acd52 UPSTREAM: USB: gadget: detect too-big endpoint 0 requests
2d6a43c036 ANDROID: ABI: Add symbols used by frame buffer driver
183905923f UPSTREAM: xhci: Add bus number to some debug messages
5b15c955a6 UPSTREAM: xhci: Add additional dynamic debug to follow URBs in cancel and error cases.
f4cbe34956 UPSTREAM: Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"
c23b0e7c47 UPSTREAM: xhci: Fix failure to give back some cached cancelled URBs.
7320fb1abd UPSTREAM: HID: check for valid USB device for many HID drivers
e98c96b8b8 UPSTREAM: HID: wacom: fix problems when device is not a valid USB device
5a72ef56c8 UPSTREAM: HID: bigbenff: prevent null pointer dereference
7b8a19b917 UPSTREAM: HID: add USB_HID dependancy on some USB HID drivers
8219b106a3 UPSTREAM: HID: add USB_HID dependancy to hid-chicony
a4909c90b7 UPSTREAM: HID: add USB_HID dependancy to hid-prodikeys
ddea17081f UPSTREAM: HID: add hid_is_usb() function to make it simpler for USB detection
81b6ea435e FROMGIT: clk: Don't parent clks until the parent is fully registered
78ea29e570 UPSTREAM: mm/gup: remove the vma allocation from gup_longterm_locked()
709fde7c61 BACKPORT: usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
ea4a92c6af ANDROID: ABI: Add iio_write_channel_raw symbol
f803f248dd ANDROID: GKI: Update symbols to symbol list
672d51b2a7 UPSTREAM: ASoC: dapm: use component prefix when checking widget names
686cd3b2d8 ANDROID: ABI: Add symbols used by clocksource driver
80c1cef2d1 ANDROID: GKI: Export clocksource_mmio_init
84881c68b1 ANDROID: GKI: Export sched_clock_register
9e5446d7de FROMGIT: f2fs: show number of pending discard commands
28de741861 ANDROID: workqueue: export symbol of the function wq_worker_comm()
71f00d64c1 ANDROID: GKI: Update symbols to symbol list
05aa93d251 ANDROID: vendor_hooks: Add hooks for binder proc transaction

Also update the .xml file for the following new symbols that are now
being tracked:

Leaf changes summary: 165 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 154 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 11 Added variables

154 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_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_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 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 page* grab_cache_page_write_begin(address_space*, unsigned long int, unsigned int)'
  [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_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 void kill_block_super(super_block*)'
  [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 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 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 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 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*)'

11 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_do_ptrauth_fault'
  [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_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'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I064b6ff0420cee2d64e17814f43fbff8e2d9b019

Change-Id: Ia880c70c912f2b801a770feb1fdc4f4eb390d34d
This commit is contained in:
Greg Kroah-Hartman 2022-01-17 17:31:44 +01:00
commit f45f895af5
175 changed files with 4023 additions and 1520 deletions

View File

@ -113,6 +113,11 @@ Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
Description: Set timeout to issue discard commands during umount.
Default: 5 secs
What: /sys/fs/f2fs/<disk>/pending_discard
Date: November 2021
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
Description: Shows the number of pending discard commands in the queue.
What: /sys/fs/f2fs/<disk>/max_victim_search
Date: January 2014
Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>

File diff suppressed because it is too large Load Diff

280
android/abi_gki_aarch64_asus Executable file
View File

@ -0,0 +1,280 @@
[abi_symbol_list]
add_to_page_cache_locked
__alloc_pages_nodemask
__arch_copy_from_user
__arch_copy_to_user
arm64_const_caps_ready
autoremove_wake_function
balance_dirty_pages_ratelimited
bcmp
bdev_read_only
__bforget
bio_add_page
bio_alloc_bioset
bio_associate_blkg
bio_put
__bitmap_weight
bit_waitqueue
blkdev_issue_discard
blkdev_issue_flush
blk_finish_plug
blk_start_plug
__blockdev_direct_IO
block_invalidatepage
block_is_partially_uptodate
__breadahead
__bread_gfp
__brelse
buffer_migrate_page
__cancel_dirty_page
capable
capable_wrt_inode_uidgid
__cfi_slowpath
__check_object_size
clean_bdev_aliases
__cleancache_invalidate_inode
clear_inode
clear_page
clear_page_dirty_for_io
complete_and_exit
cpu_hwcap_keys
cpu_hwcaps
create_empty_buffers
current_umask
d_add
d_add_ci
delete_from_page_cache
d_instantiate
d_make_root
d_obtain_alias
down_read
down_write
down_write_trylock
dput
drop_nlink
d_splice_alias
dump_stack
end_buffer_read_sync
end_buffer_write_sync
end_page_writeback
errseq_set
failure_tracking
fget
fiemap_fill_next_extent
fiemap_prep
filemap_fault
filemap_fdatawait_range
filemap_fdatawrite
filemap_flush
__filemap_set_wb_err
filemap_write_and_wait_range
file_remove_privs
file_update_time
file_write_and_wait_range
filp_close
filp_open
finish_wait
flush_dcache_page
fput
freezing_slow_path
fs_bio_set
generic_error_remove_page
generic_file_direct_write
generic_file_llseek
generic_file_mmap
generic_file_open
generic_file_read_iter
generic_file_splice_read
generic_fillattr
generic_perform_write
generic_read_dir
generic_write_checks
__getblk_gfp
gic_nonsecure_priorities
grab_cache_page_write_begin
iget5_locked
igrab
ihold
ilookup5
inc_nlink
in_group_p
__init_rwsem
init_special_inode
init_wait_entry
__init_waitqueue_head
inode_dio_wait
inode_init_once
inode_init_owner
inode_newsize_ok
inode_set_flags
__insert_inode_hash
invalidate_bdev
invalidate_mapping_pages
io_schedule
iov_iter_advance
iov_iter_alignment
iov_iter_copy_from_user_atomic
iov_iter_fault_in_readable
iov_iter_get_pages
iov_iter_single_seg_count
iput
is_bad_inode
iter_file_splice_write
iunique
jiffies
kasan_flag_enabled
kfree
kill_block_super
__kmalloc
kmalloc_caches
kmem_cache_alloc
kmem_cache_alloc_trace
kmem_cache_create
kmem_cache_create_usercopy
kmem_cache_destroy
kmem_cache_free
kthread_create_on_node
kthread_should_stop
kthread_stop
ktime_get_coarse_real_ts64
kvfree
__list_add_valid
__list_del_entry_valid
ll_rw_block
load_nls
load_nls_default
__lock_buffer
__lock_page
lru_cache_add
make_bad_inode
mark_buffer_async_write
mark_buffer_dirty
mark_buffer_write_io_error
__mark_inode_dirty
mark_page_accessed
memcmp
memcpy
memmove
memset
mktime64
mnt_drop_write_file
mnt_want_write_file
module_layout
mount_bdev
mpage_readahead
mpage_readpage
__mutex_init
mutex_lock
mutex_trylock
mutex_unlock
new_inode
notify_change
pagecache_get_page
page_cache_next_miss
page_cache_prev_miss
page_mapped
__page_pinner_migration_failed
pagevec_lookup_range
pagevec_lookup_range_tag
__pagevec_release
page_zero_new_buffers
__percpu_down_read
preempt_schedule
preempt_schedule_notrace
prepare_to_wait
prepare_to_wait_event
printk
__printk_ratelimit
__put_page
put_pages_list
___ratelimit
_raw_read_lock
_raw_read_lock_irqsave
_raw_read_unlock
_raw_read_unlock_irqrestore
_raw_spin_lock
_raw_spin_lock_irqsave
_raw_spin_unlock
_raw_spin_unlock_irqrestore
_raw_write_lock
_raw_write_lock_irqsave
_raw_write_unlock
_raw_write_unlock_irqrestore
rcuwait_wake_up
readahead_gfp_mask
read_cache_page
redirty_page_for_writepage
__refrigerator
register_filesystem
__remove_inode_hash
sb_min_blocksize
sb_set_blocksize
schedule
schedule_timeout_interruptible
security_inode_init_security
seq_printf
setattr_prepare
set_freezable
set_nlink
set_page_dirty
__set_page_dirty_buffers
__set_page_dirty_nobuffers
set_user_nice
simple_strtol
simple_strtoul
simple_strtoull
snprintf
sprintf
sscanf
__stack_chk_fail
__stack_chk_guard
strchr
strcmp
strlen
strncasecmp
strncmp
strsep
strstr
submit_bh
submit_bio
sync_blockdev
__sync_dirty_buffer
sync_dirty_buffer
sync_filesystem
sync_inode_metadata
system_freezing_cnt
sys_tz
tag_pages_for_writeback
__test_set_page_writeback
time64_to_tm
timestamp_truncate
touch_atime
truncate_inode_pages
truncate_inode_pages_final
truncate_pagecache
truncate_setsize
try_to_release_page
try_to_writeback_inodes_sb
unload_nls
unlock_buffer
unlock_new_inode
unlock_page
unmap_mapping_range
unregister_filesystem
up_read
up_write
vfree
vfs_fsync_range
vmalloc
__vmalloc
vsnprintf
vzalloc
__wait_on_buffer
wait_on_page_bit
wake_bit_function
__wake_up
wake_up_process
__warn_printk
write_inode_now
write_one_page
xa_load

View File

@ -4317,9 +4317,11 @@
usb_unpoison_urb
usb_unregister_notify
usb_wakeup_notification
usbnet_cdc_unbind
usbnet_change_mtu
usbnet_defer_kevent
usbnet_disconnect
usbnet_generic_cdc_bind
usbnet_get_drvinfo
usbnet_get_endpoints
usbnet_get_link

View File

@ -63,6 +63,7 @@
bitmap_to_arr32
__bitmap_weight
blk_alloc_queue
blk_check_plugged
blk_cleanup_queue
blkdev_get_by_dev
blkdev_put
@ -686,6 +687,7 @@
drm_property_create_range
drm_property_lookup_blob
drm_property_replace_blob
drm_puts
__drm_puts_seq_file
drm_read
drm_rect_clip_scaled
@ -1012,6 +1014,7 @@
__kfifo_in
__kfifo_init
__kfifo_out
__kfifo_out_peek
kfree
kfree_sensitive
kfree_skb
@ -1032,6 +1035,7 @@
kobject_add
kobject_create_and_add
kobject_del
kobject_get
kobject_init
kobject_init_and_add
kobject_put
@ -1079,6 +1083,7 @@
ktime_get_real_seconds
ktime_get_real_ts64
ktime_get_seconds
ktime_get_snapshot
ktime_get_ts64
ktime_get_with_offset
kvfree
@ -1590,6 +1595,7 @@
rtc_valid_tm
__rt_mutex_init
rt_mutex_lock
rt_mutex_trylock
rt_mutex_unlock
rtnl_is_locked
rtnl_lock

View File

@ -20,6 +20,9 @@
bcmp
bdput
__bitmap_and
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
bpf_trace_run1
bpf_trace_run2
bpf_trace_run3
@ -67,6 +70,7 @@
clk_set_parent
clk_set_rate
clk_unprepare
clockevents_config_and_register
complete
complete_all
completion_done
@ -102,6 +106,7 @@
debugfs_create_dir
debugfs_create_file
debugfs_remove
default_llseek
deferred_free
delayed_work_timer_fn
del_timer
@ -160,6 +165,7 @@
devm_phy_create
devm_phy_get
devm_pinctrl_get
devm_pinctrl_put
devm_platform_ioremap_resource
__devm_regmap_init
__devm_regmap_init_i2c
@ -201,6 +207,12 @@
dma_buf_map_attachment
dma_buf_put
dma_buf_unmap_attachment
dma_fence_context_alloc
dma_fence_default_wait
dma_fence_init
dma_fence_release
dma_fence_signal_locked
dma_fence_wait_timeout
dma_free_attrs
dma_heap_add
dma_heap_get_dev
@ -368,6 +380,7 @@
event_triggers_call
extcon_set_state_sync
failure_tracking
fd_install
find_next_bit
finish_wait
flush_work
@ -398,6 +411,7 @@
get_cpu_device
get_device
get_random_bytes
get_unused_fd_flags
gic_nonsecure_priorities
gpiochip_generic_free
gpiochip_generic_request
@ -430,6 +444,7 @@
i2c_recover_bus
i2c_register_driver
i2c_smbus_read_byte_data
i2c_smbus_write_byte_data
i2c_transfer
i2c_transfer_buffer_flags
i2c_unregister_device
@ -510,6 +525,7 @@
__list_add_valid
__list_del_entry_valid
__local_bh_enable_ip
__lock_page
__log_post_read_mmio
__log_read_mmio
__log_write_mmio
@ -531,6 +547,7 @@
__memcpy_fromio
memdup_user
memmove
memparse
memset
__memset_io
memstart_addr
@ -590,6 +607,7 @@
of_alias_get_id
of_clk_add_hw_provider
of_clk_get
of_clk_get_by_name
of_clk_hw_onecell_get
of_count_phandle_with_args
of_device_get_match_data
@ -614,6 +632,7 @@
of_get_next_child
of_get_parent
of_get_property
of_get_regulator_init_data
of_graph_get_next_endpoint
of_graph_get_port_by_id
of_graph_get_remote_node
@ -881,6 +900,7 @@
__stack_chk_fail
__stack_chk_guard
strcasecmp
strcat
strcmp
strcpy
strlcpy
@ -889,11 +909,14 @@
strncpy
strrchr
strscpy
strsep
strstr
__sw_hweight16
__sw_hweight32
__sw_hweight64
__sw_hweight8
sync_file_create
sync_file_get_fence
synchronize_irq
synchronize_net
synchronize_rcu
@ -911,6 +934,7 @@
tasklet_init
tasklet_kill
__tasklet_schedule
timer_of_init
trace_event_buffer_commit
trace_event_buffer_reserve
trace_event_ignore_this_pid
@ -945,6 +969,7 @@
uart_update_timeout
uart_write_wakeup
__udelay
unlock_page
__unregister_chrdev
unregister_chrdev_region
unregister_inet6addr_notifier
@ -1058,6 +1083,7 @@
vmap
vsnprintf
vunmap
wait_for_completion
wait_for_completion_interruptible
wait_for_completion_interruptible_timeout
wait_for_completion_timeout
@ -1249,9 +1275,6 @@
mmc_cqe_request_done
# required by device_cooling.ko
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
thermal_cooling_device_unregister
thermal_of_cooling_device_register
@ -1283,6 +1306,29 @@
devm_phy_optional_get
drm_of_encoder_active_endpoint
# required by fb.ko
__arch_copy_in_user
compat_alloc_user_space
console_lock
console_unlock
fb_mode_option
file_update_time
file_write_and_wait_range
ignore_console_lock_warning
int_sqrt
is_console_locked
__memcpy_toio
of_get_videomode
page_mkclean
proc_create_seq_private
simple_strtol
vm_get_page_prot
vm_iomap_memory
# required by fb_fence.ko
put_unused_fd
system_unbound_wq
# required by fec.ko
ethtool_op_get_ts_info
mdiobus_alloc_size
@ -1329,6 +1375,12 @@
tso_count_descs
tso_start
# required by fp9931-core.ko
devm_mfd_add_devices
# required by fp9931-regulator.ko
gpiod_get_raw_value
# required by fsl-edma-v3.ko
dma_get_slave_channel
of_dma_controller_free
@ -1355,13 +1407,7 @@
dev_pm_opp_add
dev_pm_opp_remove
dma_fence_array_ops
dma_fence_context_alloc
dma_fence_default_wait
dma_fence_init
dma_fence_release
dma_fence_signal
dma_fence_signal_locked
dma_fence_wait_timeout
down
driver_create_file
driver_remove_file
@ -1369,10 +1415,8 @@
drm_gem_object_lookup
drm_gem_object_release
drm_gem_private_object_init
fd_install
find_vma
find_vpid
get_unused_fd_flags
get_user_pages
hrtimer_resolution
iommu_attach_device
@ -1389,24 +1433,18 @@
platform_bus_type
reset_control_reset
schedule_hrtimeout
sync_file_create
sync_file_get_fence
__task_pid_nr_ns
_totalram_pages
vm_mmap
vm_munmap
vm_zone_stat
# required by gmsl-max9286.ko
i2c_smbus_write_byte_data
# required by goodix.ko
gpiod_direction_input
input_alloc_absinfo
input_mt_sync_frame
touchscreen_parse_properties
touchscreen_report_pos
wait_for_completion
# required by gpio-imx-rpmsg.ko
__irq_alloc_descs
@ -1441,7 +1479,6 @@
# required by gpio-regulator.ko
devm_kstrdup
gpiod_count
of_get_regulator_init_data
# required by gpio-reset.ko
reset_controller_register
@ -1759,11 +1796,9 @@
sdio_writeb
sdio_writesb
skb_realloc_headroom
strcat
strchr
strim
strncasecmp
strsep
vprintk
wakeup_source_add
wakeup_source_remove
@ -1822,13 +1857,15 @@
clk_unregister
divider_get_val
divider_recalc_rate
of_clk_get_by_name
of_clk_get_from_provider
# required by mxc-jpeg-encdec.ko
v4l2_m2m_dqbuf
v4l2_m2m_qbuf
# required by mxc_epdc_v2_fb.ko
fb_get_options
# required by mxs-dma.ko
dmaenginem_async_device_register
tasklet_setup
@ -1866,9 +1903,6 @@
v4l2_event_subdev_unsubscribe
__v4l2_find_nearest_size
# required by ov5640_camera_mipi_v2.ko
devm_pinctrl_put
# required by panel-raydium-rm67191.ko
devm_backlight_device_register
mipi_dsi_dcs_get_display_brightness
@ -2123,7 +2157,6 @@
snd_interval_refine
# required by snd-soc-imx-audmux.ko
default_llseek
simple_open
simple_read_from_buffer
@ -2236,9 +2269,10 @@
dmabuf_page_pool_destroy
dmabuf_page_pool_free
# required by timer-imx-sysctr.ko
clockevents_config_and_register
timer_of_init
# required by timer-imx-tpm.ko
clocksource_mmio_init
clocksource_mmio_readl_up
sched_clock_register
# required by trusty-ipc.ko
_copy_from_iter
@ -2336,7 +2370,6 @@
fsync_bdev
__get_free_pages
__init_rwsem
memparse
memset64
__num_online_cpus
page_endio
@ -2359,7 +2392,6 @@
kern_mount
kern_unmount
kill_anon_super
__lock_page
page_mapping
_raw_read_lock
_raw_read_unlock
@ -2367,5 +2399,4 @@
_raw_write_unlock
register_shrinker
__SetPageMovable
unlock_page
unregister_shrinker

View File

@ -0,0 +1,10 @@
[abi_symbol_list]
# required by raid0.ko
__tracepoint_block_bio_remap
disk_stack_limits
blk_queue_max_write_same_sectors
__traceiter_block_bio_remap
submit_bio_noacct
bio_split
# required by lenovo-fan.ko
clk_set_duty_cycle

View File

@ -893,6 +893,7 @@
freezing_slow_path
freq_qos_add_notifier
freq_qos_add_request
freq_qos_remove_notifier
freq_qos_remove_request
freq_qos_update_request
freq_scale
@ -2585,16 +2586,23 @@
__traceiter_android_vh_alter_rwsem_list_add
__traceiter_android_vh_arch_set_freq_scale
__traceiter_android_vh_binder_alloc_new_buf_locked
__traceiter_android_vh_binder_new_ref
__traceiter_android_vh_binder_del_ref
__traceiter_android_vh_binder_proc_transaction
__traceiter_android_vh_binder_free_proc
__traceiter_android_vh_binder_has_work_ilocked
__traceiter_android_vh_binder_looper_state_registered
__traceiter_android_vh_binder_new_ref
__traceiter_android_vh_binder_preset
__traceiter_android_vh_binder_priority_skip
__traceiter_android_vh_binder_proc_transaction
__traceiter_android_vh_binder_proc_transaction_end
__traceiter_android_vh_binder_read_done
__traceiter_android_vh_binder_reply
__traceiter_android_vh_binder_restore_priority
__traceiter_android_vh_binder_set_priority
__traceiter_android_vh_binder_trans
__traceiter_android_vh_binder_transaction_init
__traceiter_android_vh_binder_thread_read
__traceiter_android_vh_binder_thread_release
__traceiter_android_vh_binder_wait_for_work
__traceiter_android_vh_binder_wakeup_ilocked
__traceiter_android_vh_build_sched_domains
@ -2626,6 +2634,7 @@
__traceiter_android_vh_ftrace_oops_enter
__traceiter_android_vh_ftrace_oops_exit
__traceiter_android_vh_ftrace_size_check
__traceiter_android_vh_futex_sleep_start
__traceiter_android_vh_get_from_fragment_pool
__traceiter_android_vh_gpio_block_read
__traceiter_android_vh_include_reserved_zone
@ -2779,14 +2788,21 @@
__tracepoint_android_vh_alter_rwsem_list_add
__tracepoint_android_vh_arch_set_freq_scale
__tracepoint_android_vh_binder_alloc_new_buf_locked
__tracepoint_android_vh_binder_new_ref
__tracepoint_android_vh_binder_del_ref
__tracepoint_android_vh_binder_proc_transaction
__tracepoint_android_vh_binder_free_proc
__tracepoint_android_vh_binder_has_work_ilocked
__tracepoint_android_vh_binder_looper_state_registered
__tracepoint_android_vh_binder_new_ref
__tracepoint_android_vh_binder_preset
__tracepoint_android_vh_binder_priority_skip
__tracepoint_android_vh_binder_proc_transaction
__tracepoint_android_vh_binder_proc_transaction_end
__tracepoint_android_vh_binder_read_done
__tracepoint_android_vh_binder_reply
__tracepoint_android_vh_binder_restore_priority
__tracepoint_android_vh_binder_set_priority
__tracepoint_android_vh_binder_thread_read
__tracepoint_android_vh_binder_thread_release
__tracepoint_android_vh_binder_trans
__tracepoint_android_vh_binder_transaction_init
__tracepoint_android_vh_binder_wait_for_work
@ -2820,6 +2836,7 @@
__tracepoint_android_vh_ftrace_oops_enter
__tracepoint_android_vh_ftrace_oops_exit
__tracepoint_android_vh_ftrace_size_check
__tracepoint_android_vh_futex_sleep_start
__tracepoint_android_vh_get_from_fragment_pool
__tracepoint_android_vh_gpio_block_read
__tracepoint_android_vh_include_reserved_zone
@ -3325,6 +3342,7 @@
woken_wake_function
work_busy
work_on_cpu
wq_worker_comm
ww_mutex_lock
ww_mutex_unlock
__xa_alloc

View File

@ -899,6 +899,7 @@
finish_wait
firmware_request_nowarn
flush_dcache_page
flush_delayed_fput
flush_delayed_work
__flush_icache_range
flush_work
@ -1104,6 +1105,7 @@
idr_replace
iio_channel_get_all
iio_read_channel_processed
iio_write_channel_raw
import_iovec
in4_pton
in6_pton
@ -2089,6 +2091,7 @@
rproc_put
rproc_remove_subdev
rproc_report_crash
rproc_set_firmware
rproc_shutdown
rtc_ktime_to_tm
__rtc_register_device
@ -2613,6 +2616,7 @@
__tracepoint_android_rvh_cpu_cgroup_online
__tracepoint_android_rvh_cpufreq_transition
__tracepoint_android_rvh_dequeue_task
__tracepoint_android_rvh_do_ptrauth_fault
__tracepoint_android_rvh_do_sched_yield
__tracepoint_android_rvh_enqueue_task
__tracepoint_android_rvh_find_busiest_queue
@ -2696,6 +2700,7 @@
__tracepoint_android_vh_show_max_freq
__tracepoint_android_vh_show_resume_epoch_val
__tracepoint_android_vh_show_suspend_epoch_val
__tracepoint_android_vh_subpage_dma_contig_alloc
__tracepoint_android_vh_timer_calc_index
__tracepoint_android_vh_ufs_check_int_errors
__tracepoint_android_vh_ufs_clock_scaling

View File

@ -480,3 +480,5 @@
548 common pidfd_getfd sys_pidfd_getfd
549 common faccessat2 sys_faccessat2
550 common process_madvise sys_process_madvise
# 557 reserved for memfd_secret
558 common process_mrelease sys_process_mrelease

View File

@ -454,3 +454,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -38,7 +38,7 @@
#define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5)
#define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800)
#define __NR_compat_syscalls 441
#define __NR_compat_syscalls 449
#endif
#define __ARCH_WANT_SYS_CLONE

View File

@ -889,6 +889,8 @@ __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
__SYSCALL(__NR_faccessat2, sys_faccessat2)
#define __NR_process_madvise 440
__SYSCALL(__NR_process_madvise, sys_process_madvise)
#define __NR_process_mrelease 448
__SYSCALL(__NR_process_mrelease, sys_process_mrelease)
/*
* Please add new compat syscalls above this comment and update

View File

@ -361,3 +361,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -440,3 +440,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -446,3 +446,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -379,3 +379,5 @@
438 n32 pidfd_getfd sys_pidfd_getfd
439 n32 faccessat2 sys_faccessat2
440 n32 process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 n32 process_mrelease sys_process_mrelease

View File

@ -355,3 +355,5 @@
438 n64 pidfd_getfd sys_pidfd_getfd
439 n64 faccessat2 sys_faccessat2
440 n64 process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 n64 process_mrelease sys_process_mrelease

View File

@ -428,3 +428,5 @@
438 o32 pidfd_getfd sys_pidfd_getfd
439 o32 faccessat2 sys_faccessat2
440 o32 process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 o32 process_mrelease sys_process_mrelease

View File

@ -438,3 +438,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -530,3 +530,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -443,3 +443,5 @@
438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease sys_process_mrelease

View File

@ -443,3 +443,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -486,3 +486,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -445,3 +445,4 @@
438 i386 pidfd_getfd sys_pidfd_getfd
439 i386 faccessat2 sys_faccessat2
440 i386 process_madvise sys_process_madvise
448 i386 process_mrelease sys_process_mrelease

View File

@ -362,6 +362,7 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
448 common process_mrelease sys_process_mrelease
#
# Due to a historical design error, certain syscalls are numbered differently

View File

@ -411,3 +411,5 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
440 common process_madvise sys_process_madvise
# 447 reserved for memfd_secret
448 common process_mrelease sys_process_mrelease

View File

@ -19,6 +19,7 @@ android/abi_gki_aarch64_galaxy
android/abi_gki_aarch64_generic
android/abi_gki_aarch64_hikey960
android/abi_gki_aarch64_imx
android/abi_gki_aarch64_lenovo
android/abi_gki_aarch64_mtk
android/abi_gki_aarch64_oplus
android/abi_gki_aarch64_qcom
@ -27,6 +28,7 @@ android/abi_gki_aarch64_unisoc
android/abi_gki_aarch64_virtual_device
android/abi_gki_aarch64_vivo
android/abi_gki_aarch64_xiaomi
android/abi_gki_aarch64_asus
"
FILES="${FILES}

View File

@ -74,6 +74,23 @@ config ANDROID_VENDOR_HOOKS
Allow vendor modules to attach to tracepoint "hooks" defined via
DECLARE_HOOK or DECLARE_RESTRICTED_HOOK.
config ANDROID_STRUCT_PADDING
bool "Android Struct Padding"
default y
help
This option enables the padding that the Android GKI kernel adds
to many different kernel structures to support an in-kernel stable ABI
over the lifespan of support for the kernel as well as OEM additional
fields that are needed by some of the Android kernel tracepoints.
Only disable this option if you have a system that needs the Android
kernel drivers, but is NOT an Android GKI kernel image and you do NOT
use the Android kernel tracepoints. If disabled it has the possibility
to make the kernel static and runtime image slightly smaller but will
NOT be supported by the Google Android kernel team.
If even slightly unsure, say Y.
endif # if ANDROID
endmenu

View File

@ -491,6 +491,11 @@ static void binder_inc_node_tmpref_ilocked(struct binder_node *node);
static bool binder_has_work_ilocked(struct binder_thread *thread,
bool do_proc_work)
{
int ret = 0;
trace_android_vh_binder_has_work_ilocked(thread, do_proc_work, &ret);
if (ret)
return true;
return thread->process_todo ||
thread->looper_need_return ||
(do_proc_work &&
@ -2528,6 +2533,9 @@ static int binder_proc_transaction(struct binder_transaction *t,
binder_enqueue_work_ilocked(&t->work, &node->async_todo);
}
trace_android_vh_binder_proc_transaction_end(current, proc->tsk,
thread ? thread->task : NULL, t->code, pending_async, !oneway);
if (!pending_async)
binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */);
@ -3617,6 +3625,7 @@ static int binder_thread_write(struct binder_proc *proc,
}
thread->looper |= BINDER_LOOPER_STATE_REGISTERED;
binder_inner_proc_unlock(proc);
trace_android_vh_binder_looper_state_registered(thread, proc);
break;
case BC_ENTER_LOOPER:
binder_debug(BINDER_DEBUG_THREADS,
@ -4041,6 +4050,7 @@ static int binder_thread_read(struct binder_proc *proc,
binder_inner_proc_unlock(proc);
break;
}
trace_android_vh_binder_thread_read(&list, proc, thread);
w = binder_dequeue_work_head_ilocked(list);
if (binder_worklist_empty_ilocked(&thread->todo))
thread->process_todo = false;
@ -4507,6 +4517,7 @@ static void binder_free_proc(struct binder_proc *proc)
put_task_struct(proc->tsk);
put_cred(eproc->cred);
binder_stats_deleted(BINDER_STAT_PROC);
trace_android_vh_binder_free_proc(proc);
kfree(eproc);
}
@ -4605,6 +4616,7 @@ static int binder_thread_release(struct binder_proc *proc,
if (send_reply)
binder_send_failed_reply(send_reply, BR_DEAD_REPLY);
binder_release_work(proc, &thread->todo);
trace_android_vh_binder_thread_release(proc, thread);
binder_thread_dec_tmpref(thread);
return active_transactions;
}
@ -4681,6 +4693,7 @@ static int binder_ioctl_write_read(struct file *filp,
if (!binder_worklist_empty_ilocked(&proc->todo))
binder_wakeup_proc_ilocked(proc);
binder_inner_proc_unlock(proc);
trace_android_vh_binder_read_done(proc, thread);
if (ret < 0) {
if (copy_to_user(ubuf, &bwr, sizeof(bwr)))
ret = -EFAULT;

View File

@ -110,6 +110,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_rwsem_list_add);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_futex_sleep_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
@ -293,6 +294,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_trans);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_preset);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_end);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg);
@ -399,3 +401,10 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_offline);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_online);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_free);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_alloc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_subpage_dma_contig_alloc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_looper_state_registered);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_read);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_free_proc);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_thread_release);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_has_work_ilocked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_read_done);

View File

@ -21,6 +21,7 @@ u64 clocksource_mmio_readl_up(struct clocksource *c)
{
return (u64)readl_relaxed(to_mmio_clksrc(c)->reg);
}
EXPORT_SYMBOL_GPL(clocksource_mmio_readl_up);
u64 clocksource_mmio_readl_down(struct clocksource *c)
{
@ -46,7 +47,7 @@ u64 clocksource_mmio_readw_down(struct clocksource *c)
* @bits: Number of valid bits
* @read: One of clocksource_mmio_read*() above
*/
int __init clocksource_mmio_init(void __iomem *base, const char *name,
int clocksource_mmio_init(void __iomem *base, const char *name,
unsigned long hz, int rating, unsigned bits,
u64 (*read)(struct clocksource *))
{
@ -68,3 +69,4 @@ int __init clocksource_mmio_init(void __iomem *base, const char *name,
return clocksource_register_hz(&cs->clksrc, hz);
}
EXPORT_SYMBOL_GPL(clocksource_mmio_init);

View File

@ -351,29 +351,18 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
static long _dma_buf_set_name(struct dma_buf *dmabuf, const char *name)
{
long ret = 0;
dma_resv_lock(dmabuf->resv, NULL);
if (!list_empty(&dmabuf->attachments)) {
ret = -EBUSY;
goto out_unlock;
}
spin_lock(&dmabuf->name_lock);
kfree(dmabuf->name);
dmabuf->name = name;
spin_unlock(&dmabuf->name_lock);
out_unlock:
dma_resv_unlock(dmabuf->resv);
return ret;
return 0;
}
/**
* dma_buf_set_name - Set a name to a specific dma_buf to track the usage.
* The name of the dma-buf buffer can only be set when the dma-buf is not
* attached to any devices. It could theoritically support changing the
* name of the dma-buf if the same piece of memory is used for multiple
* purpose between different devices.
* It could support changing the name of the dma-buf if the same piece of
* memory is used for multiple purpose between different devices.
*
* @dmabuf: [in] dmabuf buffer that will be renamed.
* @buf: [in] A piece of userspace memory that contains the name of

View File

@ -246,13 +246,17 @@ static void *__arm_v7s_alloc_table(int lvl, gfp_t gfp,
__GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size));
else if (lvl == 2)
table = kmem_cache_zalloc(data->l2_tables, gfp);
if (!table)
return NULL;
phys = virt_to_phys(table);
if (phys != (arm_v7s_iopte)phys) {
/* Doesn't fit in PTE */
dev_err(dev, "Page table does not fit in PTE: %pa", &phys);
goto out_free;
}
if (table && !cfg->coherent_walk) {
if (!cfg->coherent_walk) {
dma = dma_map_single(dev, table, size, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma))
goto out_free;

View File

@ -2453,5 +2453,6 @@ static void __exit ns_cleanup_module(void)
module_exit(ns_cleanup_module);
MODULE_LICENSE ("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
MODULE_AUTHOR ("Artem B. Bityuckiy");
MODULE_DESCRIPTION ("The NAND flash simulator");

View File

@ -1476,3 +1476,4 @@ MODULE_VERSION(__stringify(UBI_VERSION));
MODULE_DESCRIPTION("UBI - Unsorted Block Images");
MODULE_AUTHOR("Artem Bityutskiy");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

View File

@ -1602,3 +1602,4 @@ module_init(nvmet_init);
module_exit(nvmet_exit);
MODULE_LICENSE("GPL v2");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

View File

@ -1944,6 +1944,69 @@ struct rproc *rproc_get_by_phandle(phandle phandle)
#endif
EXPORT_SYMBOL(rproc_get_by_phandle);
/**
* rproc_set_firmware() - assign a new firmware
* @rproc: rproc handle to which the new firmware is being assigned
* @fw_name: new firmware name to be assigned
*
* This function allows remoteproc drivers or clients to configure a custom
* firmware name that is different from the default name used during remoteproc
* registration. The function does not trigger a remote processor boot,
* only sets the firmware name used for a subsequent boot. This function
* should also be called only when the remote processor is offline.
*
* This allows either the userspace to configure a different name through
* sysfs or a kernel-level remoteproc or a remoteproc client driver to set
* a specific firmware when it is controlling the boot and shutdown of the
* remote processor.
*
* Return: 0 on success or a negative value upon failure
*/
int rproc_set_firmware(struct rproc *rproc, const char *fw_name)
{
struct device *dev;
int ret, len;
char *p;
if (!rproc || !fw_name)
return -EINVAL;
dev = rproc->dev.parent;
ret = mutex_lock_interruptible(&rproc->lock);
if (ret) {
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, ret);
return -EINVAL;
}
if (rproc->state != RPROC_OFFLINE) {
dev_err(dev, "can't change firmware while running\n");
ret = -EBUSY;
goto out;
}
len = strcspn(fw_name, "\n");
if (!len) {
dev_err(dev, "can't provide empty string for firmware name\n");
ret = -EINVAL;
goto out;
}
p = kstrndup(fw_name, len, GFP_KERNEL);
if (!p) {
ret = -ENOMEM;
goto out;
}
kfree(rproc->firmware);
rproc->firmware = p;
out:
mutex_unlock(&rproc->lock);
return ret;
}
EXPORT_SYMBOL(rproc_set_firmware);
static int rproc_validate(struct rproc *rproc)
{
switch (rproc->state) {

View File

@ -157,38 +157,9 @@ static ssize_t firmware_store(struct device *dev,
const char *buf, size_t count)
{
struct rproc *rproc = to_rproc(dev);
char *p;
int err, len = count;
int err;
err = mutex_lock_interruptible(&rproc->lock);
if (err) {
dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, err);
return -EINVAL;
}
if (rproc->state != RPROC_OFFLINE) {
dev_err(dev, "can't change firmware while running\n");
err = -EBUSY;
goto out;
}
len = strcspn(buf, "\n");
if (!len) {
dev_err(dev, "can't provide a NULL firmware\n");
err = -EINVAL;
goto out;
}
p = kstrndup(buf, len, GFP_KERNEL);
if (!p) {
err = -ENOMEM;
goto out;
}
kfree(rproc->firmware);
rproc->firmware = p;
out:
mutex_unlock(&rproc->lock);
err = rproc_set_firmware(rproc, buf);
return err ? err : count;
}

View File

@ -5180,6 +5180,19 @@ static irqreturn_t ufshcd_uic_cmd_compl(struct ufs_hba *hba, u32 intr_status)
return retval;
}
/* Release the resources allocated for processing a SCSI command. */
static void ufshcd_release_scsi_cmd(struct ufs_hba *hba,
struct ufshcd_lrb *lrbp)
{
struct scsi_cmnd *cmd = lrbp->cmd;
scsi_dma_unmap(cmd);
ufshcd_crypto_clear_prdt(hba, lrbp);
lrbp->cmd = NULL; /* Mark the command as completed. */
ufshcd_release(hba);
ufshcd_clk_scaling_update_busy(hba);
}
/**
* __ufshcd_transfer_req_compl - handle SCSI and query command completion
* @hba: per adapter instance
@ -5190,9 +5203,7 @@ static void __ufshcd_transfer_req_compl(struct ufs_hba *hba,
{
struct ufshcd_lrb *lrbp;
struct scsi_cmnd *cmd;
int result;
int index;
bool update_scaling = false;
for_each_set_bit(index, &completed_reqs, hba->nutrs) {
if (!test_and_clear_bit(index, &hba->outstanding_reqs))
@ -5205,16 +5216,10 @@ static void __ufshcd_transfer_req_compl(struct ufs_hba *hba,
ufshcd_update_monitor(hba, lrbp);
trace_android_vh_ufs_compl_command(hba, lrbp);
ufshcd_add_command_trace(hba, index, "complete");
result = ufshcd_transfer_rsp_status(hba, lrbp);
scsi_dma_unmap(cmd);
cmd->result = result;
ufshcd_crypto_clear_prdt(hba, lrbp);
/* Mark completed command as NULL in LRB */
lrbp->cmd = NULL;
cmd->result = ufshcd_transfer_rsp_status(hba, lrbp);
ufshcd_release_scsi_cmd(hba, lrbp);
/* Do not touch lrbp after scsi done */
cmd->scsi_done(cmd);
ufshcd_release(hba);
update_scaling = true;
} else if (lrbp->command_type == UTP_CMD_TYPE_DEV_MANAGE ||
lrbp->command_type == UTP_CMD_TYPE_UFS_STORAGE) {
if (hba->dev_cmd.complete) {
@ -5222,11 +5227,9 @@ static void __ufshcd_transfer_req_compl(struct ufs_hba *hba,
ufshcd_add_command_trace(hba, index,
"dev_complete");
complete(hba->dev_cmd.complete);
update_scaling = true;
ufshcd_clk_scaling_update_busy(hba);
}
}
if (update_scaling)
ufshcd_clk_scaling_update_busy(hba);
}
}
@ -6366,9 +6369,8 @@ static irqreturn_t ufshcd_tmc_handler(struct ufs_hba *hba)
irqreturn_t ret = IRQ_NONE;
int tag;
pending = ufshcd_readl(hba, REG_UTP_TASK_REQ_DOOR_BELL);
spin_lock_irqsave(hba->host->host_lock, flags);
pending = ufshcd_readl(hba, REG_UTP_TASK_REQ_DOOR_BELL);
issued = hba->outstanding_tasks & ~pending;
for_each_set_bit(tag, &issued, hba->nutmrs) {
struct request *req = tmf_rqs[tag];
@ -6939,6 +6941,7 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
unsigned long flags;
unsigned int tag;
int err = FAILED, res;
bool outstanding;
struct ufshcd_lrb *lrbp;
u32 reg;
@ -7025,6 +7028,17 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
goto release;
}
/*
* Clear the corresponding bit from outstanding_reqs since the command
* has been aborted successfully.
*/
spin_lock_irqsave(host->host_lock, flags);
outstanding = __test_and_clear_bit(tag, &hba->outstanding_reqs);
spin_unlock_irqrestore(host->host_lock, flags);
if (outstanding)
ufshcd_release_scsi_cmd(hba, lrbp);
err = SUCCESS;
release:

View File

@ -81,7 +81,6 @@ static int build_info_set(const char *str, const struct kernel_param *kp)
}
Exit:
vunmap(all_info_addr);
return ret;
}

View File

@ -3652,6 +3652,7 @@ static void __exit target_core_exit_configfs(void)
MODULE_DESCRIPTION("Target_Core_Mod/ConfigFS");
MODULE_AUTHOR("nab@Linux-iSCSI.org");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
module_init(target_core_init_configfs);
module_exit(target_core_exit_configfs);

View File

@ -956,6 +956,7 @@ static void __exit fileio_module_exit(void)
MODULE_DESCRIPTION("TCM FILEIO subsystem plugin");
MODULE_AUTHOR("nab@Linux-iSCSI.org");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
module_init(fileio_module_init);
module_exit(fileio_module_exit);

View File

@ -3446,6 +3446,7 @@ static struct usb_function *fsg_alloc(struct usb_function_instance *fi)
DECLARE_USB_FUNCTION_INIT(mass_storage, fsg_alloc_inst, fsg_alloc);
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
MODULE_AUTHOR("Michal Nazarewicz");
/************************* Module parameters *************************/

View File

@ -1015,4 +1015,5 @@ static struct usb_function *f_audio_alloc(struct usb_function_instance *fi)
DECLARE_USB_FUNCTION_INIT(uac1_legacy, f_audio_alloc_inst, f_audio_alloc);
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
MODULE_AUTHOR("Bryan Wu");

View File

@ -520,3 +520,4 @@ ssize_t fsg_store_inquiry_string(struct fsg_lun *curlun, const char *buf,
EXPORT_SYMBOL_GPL(fsg_store_inquiry_string);
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

View File

@ -1588,7 +1588,8 @@ int xhci_hub_status_data(struct usb_hcd *hcd, char *buf)
status = 1;
}
if (!status && !reset_change) {
xhci_dbg(xhci, "%s: stopping port polling.\n", __func__);
xhci_dbg(xhci, "%s: stopping usb%d port polling\n",
__func__, hcd->self.busnum);
clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
}
spin_unlock_irqrestore(&xhci->lock, flags);
@ -1620,7 +1621,8 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
if (bus_state->resuming_ports || /* USB2 */
bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
xhci_dbg(xhci, "suspend failed because a port is resuming\n");
xhci_dbg(xhci, "usb%d bus suspend to fail because a port is resuming\n",
hcd->self.busnum);
return -EBUSY;
}
}

View File

@ -868,9 +868,14 @@ static void xhci_giveback_invalidated_tds(struct xhci_virt_ep *ep)
ring = xhci_urb_to_transfer_ring(ep->xhci, td->urb);
if (td->cancel_status == TD_CLEARED)
if (td->cancel_status == TD_CLEARED) {
xhci_dbg(ep->xhci, "%s: Giveback cancelled URB %p TD\n",
__func__, td->urb);
xhci_td_cleanup(ep->xhci, td, ring, td->status);
} else {
xhci_dbg(ep->xhci, "%s: Keep cancelled URB %p TD as cancel_status is %d\n",
__func__, td->urb, td->cancel_status);
}
if (ep->xhci->xhc_state & XHCI_STATE_DYING)
return;
}
@ -888,6 +893,10 @@ static int xhci_reset_halted_ep(struct xhci_hcd *xhci, unsigned int slot_id,
goto done;
}
xhci_dbg(xhci, "%s-reset ep %u, slot %u\n",
(reset_type == EP_HARD_RESET) ? "Hard" : "Soft",
ep_index, slot_id);
ret = xhci_queue_reset_ep(xhci, command, slot_id, ep_index, reset_type);
done:
if (ret)
@ -921,7 +930,8 @@ static int xhci_handle_halted_endpoint(struct xhci_hcd *xhci,
}
if (ep->ep_state & EP_HALTED) {
xhci_dbg(xhci, "Reset ep command already pending\n");
xhci_dbg(xhci, "Reset ep command for ep_index %d already pending\n",
ep->ep_index);
return 0;
}
@ -960,9 +970,10 @@ static int xhci_invalidate_cancelled_tds(struct xhci_virt_ep *ep)
list_for_each_entry_safe(td, tmp_td, &ep->cancelled_td_list, cancelled_td_list) {
xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
"Removing canceled TD starting at 0x%llx (dma).",
(unsigned long long)xhci_trb_virt_to_dma(
td->start_seg, td->first_trb));
"Removing canceled TD starting at 0x%llx (dma) in stream %u URB %p",
(unsigned long long)xhci_trb_virt_to_dma(
td->start_seg, td->first_trb),
td->urb->stream_id, td->urb);
list_del_init(&td->td_list);
ring = xhci_urb_to_transfer_ring(xhci, td->urb);
if (!ring) {
@ -980,17 +991,21 @@ static int xhci_invalidate_cancelled_tds(struct xhci_virt_ep *ep)
td->urb->stream_id);
hw_deq &= ~0xf;
if (td->cancel_status == TD_HALTED) {
cached_td = td;
} else if (trb_in_td(xhci, td->start_seg, td->first_trb,
td->last_trb, hw_deq, false)) {
if (td->cancel_status == TD_HALTED ||
trb_in_td(xhci, td->start_seg, td->first_trb, td->last_trb, hw_deq, false)) {
switch (td->cancel_status) {
case TD_CLEARED: /* TD is already no-op */
case TD_CLEARING_CACHE: /* set TR deq command already queued */
break;
case TD_DIRTY: /* TD is cached, clear it */
case TD_HALTED:
/* FIXME stream case, several stopped rings */
td->cancel_status = TD_CLEARING_CACHE;
if (cached_td)
/* FIXME stream case, several stopped rings */
xhci_dbg(xhci,
"Move dq past stream %u URB %p instead of stream %u URB %p\n",
td->urb->stream_id, td->urb,
cached_td->urb->stream_id, cached_td->urb);
cached_td = td;
break;
}
@ -999,18 +1014,24 @@ static int xhci_invalidate_cancelled_tds(struct xhci_virt_ep *ep)
td->cancel_status = TD_CLEARED;
}
}
if (cached_td) {
cached_td->cancel_status = TD_CLEARING_CACHE;
err = xhci_move_dequeue_past_td(xhci, slot_id, ep->ep_index,
cached_td->urb->stream_id,
cached_td);
/* Failed to move past cached td, try just setting it noop */
if (err) {
td_to_noop(xhci, ring, cached_td, false);
cached_td->cancel_status = TD_CLEARED;
/* If there's no need to move the dequeue pointer then we're done */
if (!cached_td)
return 0;
err = xhci_move_dequeue_past_td(xhci, slot_id, ep->ep_index,
cached_td->urb->stream_id,
cached_td);
if (err) {
/* Failed to move past cached td, just set cached TDs to no-op */
list_for_each_entry_safe(td, tmp_td, &ep->cancelled_td_list, cancelled_td_list) {
if (td->cancel_status != TD_CLEARING_CACHE)
continue;
xhci_dbg(xhci, "Failed to clear cancelled cached URB %p, mark clear anyway\n",
td->urb);
td_to_noop(xhci, ring, td, false);
td->cancel_status = TD_CLEARED;
}
cached_td = NULL;
}
return 0;
}
@ -1107,6 +1128,8 @@ static void xhci_handle_cmd_stop_ep(struct xhci_hcd *xhci, int slot_id,
return;
case EP_STATE_RUNNING:
/* Race, HW handled stop ep cmd before ep was running */
xhci_dbg(xhci, "Stop ep completion ctx error, ep is running\n");
command = xhci_alloc_command(xhci, false, GFP_ATOMIC);
if (!command)
xhci_stop_watchdog_timer_in_irq(xhci, ep);
@ -1428,7 +1451,12 @@ static void xhci_handle_cmd_set_deq(struct xhci_hcd *xhci, int slot_id,
ep_ring = xhci_urb_to_transfer_ring(ep->xhci, td->urb);
if (td->cancel_status == TD_CLEARING_CACHE) {
td->cancel_status = TD_CLEARED;
xhci_dbg(ep->xhci, "%s: Giveback cancelled URB %p TD\n",
__func__, td->urb);
xhci_td_cleanup(ep->xhci, td, ep_ring, td->status);
} else {
xhci_dbg(ep->xhci, "%s: Keep cancelled URB %p TD as cancel_status is %d\n",
__func__, td->urb, td->cancel_status);
}
}
cleanup:
@ -2040,7 +2068,8 @@ static void handle_port_status(struct xhci_hcd *xhci,
* bits are still set. When an event occurs, switch over to
* polling to avoid losing status changes.
*/
xhci_dbg(xhci, "%s: starting port polling.\n", __func__);
xhci_dbg(xhci, "%s: starting usb%d port polling.\n",
__func__, hcd->self.busnum);
set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
spin_unlock(&xhci->lock);
/* Pass this up to the core */

View File

@ -993,7 +993,8 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup)
xhci_dbc_suspend(xhci);
/* Don't poll the roothubs on bus suspend. */
xhci_dbg(xhci, "%s: stopping port polling.\n", __func__);
xhci_dbg(xhci, "%s: stopping usb%d port polling.\n",
__func__, hcd->self.busnum);
clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
del_timer_sync(&hcd->rh_timer);
clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
@ -1257,7 +1258,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
usb_asmedia_modifyflowcontrol(to_pci_dev(hcd->self.controller));
/* Re-enable port polling. */
xhci_dbg(xhci, "%s: starting port polling.\n", __func__);
xhci_dbg(xhci, "%s: starting usb%d port polling.\n",
__func__, hcd->self.busnum);
set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
usb_hcd_poll_rh_status(xhci->shared_hcd);
set_bit(HCD_FLAG_POLL_RH, &hcd->flags);

View File

@ -419,6 +419,13 @@ int virtio_device_restore(struct virtio_device *dev)
struct virtio_driver *drv = drv_to_virtio(dev->dev.driver);
int ret;
/* Short path for stateful devices. Here we assume that if the device
* does not have a freeze callback, its state was not changed when
* suspended.
*/
if (drv && !drv->freeze)
goto on_config_enable;
/* We always start by resetting the device, in case a previous
* driver messed it up. */
dev->config->reset(dev);
@ -450,6 +457,7 @@ int virtio_device_restore(struct virtio_device *dev)
/* Finally, tell the device we're all set */
virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
on_config_enable:
virtio_config_enable(dev);
return 0;

View File

@ -763,6 +763,26 @@ static void vm_unregister_cmdline_devices(void)
#endif
#ifdef CONFIG_PM_SLEEP
static int virtio_mmio_freeze(struct device *dev)
{
struct platform_device *pdev = to_platform_device(dev);
struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
return virtio_device_freeze(&vm_dev->vdev);
}
static int virtio_mmio_restore(struct device *dev)
{
struct platform_device *pdev = to_platform_device(dev);
struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
return virtio_device_restore(&vm_dev->vdev);
}
#endif
static SIMPLE_DEV_PM_OPS(virtio_mmio_pm_ops, virtio_mmio_freeze, virtio_mmio_restore);
/* Platform driver */
static const struct of_device_id virtio_mmio_match[] = {
@ -786,6 +806,7 @@ static struct platform_driver virtio_mmio_driver = {
.name = "virtio-mmio",
.of_match_table = virtio_mmio_match,
.acpi_match_table = ACPI_PTR(virtio_mmio_acpi_match),
.pm = &virtio_mmio_pm_ops,
},
};

View File

@ -738,3 +738,4 @@ MODULE_AUTHOR("Latchesar Ionkov <lucho@ionkov.net>");
MODULE_AUTHOR("Eric Van Hensbergen <ericvh@gmail.com>");
MODULE_AUTHOR("Ron Minnich <rminnich@lanl.gov>");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -6,6 +6,8 @@
# Rewritten to use lists instead of if-statements.
#
subdir-ccflags-y += -DANDROID_GKI_VFS_EXPORT_ONLY=VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver
obj-y := open.o read_write.o file_table.o super.o \
char_dev.o stat.o exec.o pipe.o namei.o fcntl.o \
ioctl.o readdir.o select.o dcache.o inode.o \

View File

@ -492,3 +492,4 @@ static void __exit exit_adfs_fs(void)
module_init(init_adfs_fs)
module_exit(exit_adfs_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -676,6 +676,7 @@ static void __exit exit_affs_fs(void)
MODULE_DESCRIPTION("Amiga filesystem support for Linux");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
module_init(init_affs_fs)
module_exit(exit_affs_fs)

View File

@ -18,6 +18,7 @@
MODULE_DESCRIPTION("AFS Client File System");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
unsigned afs_debug;
module_param_named(debug, afs_debug, uint, S_IWUSR | S_IRUGO);

View File

@ -114,7 +114,7 @@ int setattr_prepare(struct dentry *dentry, struct iattr *attr)
return 0;
}
EXPORT_SYMBOL(setattr_prepare);
EXPORT_SYMBOL_NS(setattr_prepare, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* inode_newsize_ok - may this inode be truncated to a given size
@ -158,7 +158,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
out_big:
return -EFBIG;
}
EXPORT_SYMBOL(inode_newsize_ok);
EXPORT_SYMBOL_NS(inode_newsize_ok, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* setattr_copy - copy simple metadata updates into the generic inode
@ -345,4 +345,4 @@ int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **de
return error;
}
EXPORT_SYMBOL(notify_change);
EXPORT_SYMBOL_NS(notify_change, ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -44,3 +44,4 @@ static void __exit exit_autofs_fs(void)
module_init(init_autofs_fs)
module_exit(exit_autofs_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -207,7 +207,7 @@ void make_bad_inode(struct inode *inode)
inode->i_opflags &= ~IOP_XATTR;
inode->i_fop = &bad_file_ops;
}
EXPORT_SYMBOL(make_bad_inode);
EXPORT_SYMBOL_NS(make_bad_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* This tests whether an inode has been flagged as bad. The test uses
@ -227,7 +227,7 @@ bool is_bad_inode(struct inode *inode)
return (inode->i_op == &bad_inode_ops);
}
EXPORT_SYMBOL(is_bad_inode);
EXPORT_SYMBOL_NS(is_bad_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* iget_failed - Mark an under-construction inode as dead and release it

View File

@ -34,6 +34,7 @@
MODULE_DESCRIPTION("BeOS File System (BeFS) driver");
MODULE_AUTHOR("Will Dyson");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
/* The units the vfs expects inode->i_blocks to be in */
#define VFS_BLOCK_SIZE 512

View File

@ -22,6 +22,7 @@
MODULE_AUTHOR("Tigran Aivazian <aivazian.tigran@gmail.com>");
MODULE_DESCRIPTION("SCO UnixWare BFS filesystem for Linux");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
#undef DEBUG

View File

@ -832,3 +832,4 @@ static void __exit exit_misc_binfmt(void)
core_initcall(init_misc_binfmt);
module_exit(exit_misc_binfmt);
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -186,7 +186,7 @@ int sb_set_blocksize(struct super_block *sb, int size)
return sb->s_blocksize;
}
EXPORT_SYMBOL(sb_set_blocksize);
EXPORT_SYMBOL_NS(sb_set_blocksize, ANDROID_GKI_VFS_EXPORT_ONLY);
int sb_min_blocksize(struct super_block *sb, int size)
{
@ -196,7 +196,7 @@ int sb_min_blocksize(struct super_block *sb, int size)
return sb_set_blocksize(sb, size);
}
EXPORT_SYMBOL(sb_min_blocksize);
EXPORT_SYMBOL_NS(sb_min_blocksize, ANDROID_GKI_VFS_EXPORT_ONLY);
static int
blkdev_get_block(struct inode *inode, sector_t iblock,

View File

@ -2597,6 +2597,7 @@ late_initcall(init_btrfs_fs);
module_exit(exit_btrfs_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_SOFTDEP("pre: crc32c");
MODULE_SOFTDEP("pre: xxhash64");
MODULE_SOFTDEP("pre: sha256");

View File

@ -173,7 +173,7 @@ void end_buffer_write_sync(struct buffer_head *bh, int uptodate)
unlock_buffer(bh);
put_bh(bh);
}
EXPORT_SYMBOL(end_buffer_write_sync);
EXPORT_SYMBOL_NS(end_buffer_write_sync, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Various filesystems appear to want __find_get_block to be non-blocking.
@ -419,7 +419,7 @@ void mark_buffer_async_write(struct buffer_head *bh)
{
mark_buffer_async_write_endio(bh, end_buffer_async_write);
}
EXPORT_SYMBOL(mark_buffer_async_write);
EXPORT_SYMBOL_NS(mark_buffer_async_write, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
@ -674,7 +674,7 @@ int __set_page_dirty_buffers(struct page *page)
return newly_dirty;
}
EXPORT_SYMBOL(__set_page_dirty_buffers);
EXPORT_SYMBOL_NS(__set_page_dirty_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Write out and wait upon a list of buffers.
@ -1141,7 +1141,7 @@ void mark_buffer_dirty(struct buffer_head *bh)
__mark_inode_dirty(mapping->host, I_DIRTY_PAGES);
}
}
EXPORT_SYMBOL(mark_buffer_dirty);
EXPORT_SYMBOL_NS(mark_buffer_dirty, ANDROID_GKI_VFS_EXPORT_ONLY);
void mark_buffer_write_io_error(struct buffer_head *bh)
{
@ -1159,7 +1159,7 @@ void mark_buffer_write_io_error(struct buffer_head *bh)
errseq_set(&sb->s_wb_err, -EIO);
rcu_read_unlock();
}
EXPORT_SYMBOL(mark_buffer_write_io_error);
EXPORT_SYMBOL_NS(mark_buffer_write_io_error, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Decrement a buffer_head's reference count. If all buffers against a page
@ -1176,7 +1176,7 @@ void __brelse(struct buffer_head * buf)
}
WARN(1, KERN_ERR "VFS: brelse: Trying to free free buffer\n");
}
EXPORT_SYMBOL(__brelse);
EXPORT_SYMBOL_NS(__brelse, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* bforget() is like brelse(), except it discards any
@ -1195,7 +1195,7 @@ void __bforget(struct buffer_head *bh)
}
__brelse(bh);
}
EXPORT_SYMBOL(__bforget);
EXPORT_SYMBOL_NS(__bforget, ANDROID_GKI_VFS_EXPORT_ONLY);
static struct buffer_head *__bread_slow(struct buffer_head *bh)
{
@ -1376,7 +1376,7 @@ void __breadahead(struct block_device *bdev, sector_t block, unsigned size)
brelse(bh);
}
}
EXPORT_SYMBOL(__breadahead);
EXPORT_SYMBOL_NS(__breadahead, ANDROID_GKI_VFS_EXPORT_ONLY);
void __breadahead_gfp(struct block_device *bdev, sector_t block, unsigned size,
gfp_t gfp)
@ -1411,7 +1411,7 @@ __bread_gfp(struct block_device *bdev, sector_t block,
bh = __bread_slow(bh);
return bh;
}
EXPORT_SYMBOL(__bread_gfp);
EXPORT_SYMBOL_NS(__bread_gfp, ANDROID_GKI_VFS_EXPORT_ONLY);
static void __invalidate_bh_lrus(struct bh_lru *b)
{
@ -1573,7 +1573,7 @@ void block_invalidatepage(struct page *page, unsigned int offset,
out:
return;
}
EXPORT_SYMBOL(block_invalidatepage);
EXPORT_SYMBOL_NS(block_invalidatepage, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
@ -1609,7 +1609,7 @@ void create_empty_buffers(struct page *page,
attach_page_private(page, head);
spin_unlock(&page->mapping->private_lock);
}
EXPORT_SYMBOL(create_empty_buffers);
EXPORT_SYMBOL_NS(create_empty_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* clean_bdev_aliases: clean a range of buffers in block device
@ -1683,7 +1683,7 @@ void clean_bdev_aliases(struct block_device *bdev, sector_t block, sector_t len)
break;
}
}
EXPORT_SYMBOL(clean_bdev_aliases);
EXPORT_SYMBOL_NS(clean_bdev_aliases, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Size is a power-of-two in the range 512..PAGE_SIZE,
@ -1941,7 +1941,7 @@ void page_zero_new_buffers(struct page *page, unsigned from, unsigned to)
bh = bh->b_this_page;
} while (bh != head);
}
EXPORT_SYMBOL(page_zero_new_buffers);
EXPORT_SYMBOL_NS(page_zero_new_buffers, ANDROID_GKI_VFS_EXPORT_ONLY);
static void
iomap_to_bh(struct inode *inode, sector_t block, struct buffer_head *bh,
@ -2275,7 +2275,7 @@ int block_is_partially_uptodate(struct page *page, unsigned long from,
return ret;
}
EXPORT_SYMBOL(block_is_partially_uptodate);
EXPORT_SYMBOL_NS(block_is_partially_uptodate, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Generic "read page" function for block devices that have the normal
@ -3142,7 +3142,7 @@ void ll_rw_block(int op, int op_flags, int nr, struct buffer_head *bhs[])
unlock_buffer(bh);
}
}
EXPORT_SYMBOL(ll_rw_block);
EXPORT_SYMBOL_NS(ll_rw_block, ANDROID_GKI_VFS_EXPORT_ONLY);
void write_dirty_buffer(struct buffer_head *bh, int op_flags)
{
@ -3189,13 +3189,13 @@ int __sync_dirty_buffer(struct buffer_head *bh, int op_flags)
}
return ret;
}
EXPORT_SYMBOL(__sync_dirty_buffer);
EXPORT_SYMBOL_NS(__sync_dirty_buffer, ANDROID_GKI_VFS_EXPORT_ONLY);
int sync_dirty_buffer(struct buffer_head *bh)
{
return __sync_dirty_buffer(bh, REQ_SYNC);
}
EXPORT_SYMBOL(sync_dirty_buffer);
EXPORT_SYMBOL_NS(sync_dirty_buffer, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* try_to_free_buffers() checks if all the buffers on this particular page

View File

@ -28,6 +28,7 @@ MODULE_PARM_DESC(cachefiles_debug, "CacheFiles debugging mask");
MODULE_DESCRIPTION("Mounted-filesystem based cache");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
struct kmem_cache *cachefiles_object_jar;

View File

@ -1335,3 +1335,4 @@ MODULE_AUTHOR("Yehuda Sadeh <yehuda@hq.newdream.net>");
MODULE_AUTHOR("Patience Warnick <patience@newdream.net>");
MODULE_DESCRIPTION("Ceph filesystem for Linux");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -1692,6 +1692,7 @@ exit_cifs(void)
MODULE_AUTHOR("Steve French");
MODULE_LICENSE("GPL"); /* combination of LGPL + GPL source behaves as GPL */
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_DESCRIPTION
("VFS to access SMB3 servers e.g. Samba, Macs, Azure and Windows (and "
"also older servers complying with the SNIA CIFS Specification)");

View File

@ -388,6 +388,7 @@ MODULE_AUTHOR("Jan Harkes, Peter J. Braam");
MODULE_DESCRIPTION("Coda Distributed File System VFS interface");
MODULE_ALIAS_CHARDEV_MAJOR(CODA_PSDEV_MAJOR);
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_VERSION("7.0");
static int __init init_coda(void)

View File

@ -173,6 +173,7 @@ static void __exit configfs_exit(void)
MODULE_AUTHOR("Oracle");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);
MODULE_VERSION("0.0.2");
MODULE_DESCRIPTION("Simple RAM filesystem for user driven kernel subsystem configuration.");

View File

@ -1010,3 +1010,4 @@ static void __exit exit_cramfs_fs(void)
module_init(init_cramfs_fs)
module_exit(exit_cramfs_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -2110,7 +2110,7 @@ struct dentry *d_obtain_alias(struct inode *inode)
{
return __d_obtain_alias(inode, true);
}
EXPORT_SYMBOL(d_obtain_alias);
EXPORT_SYMBOL_NS(d_obtain_alias, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* d_obtain_root - find or allocate a dentry for a given inode
@ -2184,7 +2184,7 @@ struct dentry *d_add_ci(struct dentry *dentry, struct inode *inode,
}
return found;
}
EXPORT_SYMBOL(d_add_ci);
EXPORT_SYMBOL_NS(d_add_ci, ANDROID_GKI_VFS_EXPORT_ONLY);
static inline bool d_same_name(const struct dentry *dentry,
@ -3065,7 +3065,7 @@ struct dentry *d_splice_alias(struct inode *inode, struct dentry *dentry)
__d_add(dentry, inode);
return NULL;
}
EXPORT_SYMBOL(d_splice_alias);
EXPORT_SYMBOL_NS(d_splice_alias, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Test whether new_dentry is a subdirectory of old_dentry.

View File

@ -1380,7 +1380,7 @@ ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
end_io, submit_io, flags);
}
EXPORT_SYMBOL(__blockdev_direct_IO);
EXPORT_SYMBOL_NS(__blockdev_direct_IO, ANDROID_GKI_VFS_EXPORT_ONLY);
static __init int dio_init(void)
{

View File

@ -891,6 +891,7 @@ MODULE_AUTHOR("Michael A. Halcrow <mhalcrow@us.ibm.com>");
MODULE_DESCRIPTION("eCryptfs");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
module_init(ecryptfs_init)
module_exit(ecryptfs_exit)

View File

@ -272,6 +272,7 @@ static __exit void efivarfs_exit(void)
MODULE_AUTHOR("Matthew Garrett, Jeremy Kerr");
MODULE_DESCRIPTION("EFI Variable Filesystem");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_ALIAS_FS("efivarfs");
module_init(efivarfs_init);

View File

@ -311,3 +311,4 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) {
}
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -752,4 +752,5 @@ module_exit(erofs_module_exit);
MODULE_DESCRIPTION("Enhanced ROM File System");
MODULE_AUTHOR("Gao Xiang, Chao Yu, Miao Xie, CONSUMER BG, HUAWEI Inc.");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -836,5 +836,6 @@ module_exit(exit_exfat_fs);
MODULE_ALIAS_FS("exfat");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_DESCRIPTION("exFAT filesystem support");
MODULE_AUTHOR("Samsung Electronics Co., Ltd.");

View File

@ -1650,5 +1650,6 @@ static void __exit exit_ext2_fs(void)
MODULE_AUTHOR("Remy Card and others");
MODULE_DESCRIPTION("Second Extended Filesystem");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
module_init(init_ext2_fs)
module_exit(exit_ext2_fs)

View File

@ -6744,6 +6744,7 @@ static void __exit ext4_exit_fs(void)
MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
MODULE_DESCRIPTION("Fourth Extended Filesystem");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_SOFTDEP("pre: crc32c");
module_init(ext4_init_fs)
module_exit(ext4_exit_fs)

View File

@ -2531,6 +2531,11 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
{
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
/* The below cases were checked when setting it. */
if (f2fs_is_pinned_file(inode))
return false;
if (fio && is_sbi_flag_set(sbi, SBI_NEED_FSCK))
return true;
if (f2fs_lfs_mode(sbi))
return true;
if (S_ISDIR(inode->i_mode))
@ -2539,8 +2544,6 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
return true;
if (f2fs_is_atomic_file(inode))
return true;
if (is_sbi_flag_set(sbi, SBI_NEED_FSCK))
return true;
/* swap file is migrating in aligned write mode */
if (is_inode_flag_set(inode, FI_ALIGNED_WRITE))

View File

@ -3248,17 +3248,17 @@ static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg)
inode_lock(inode);
if (f2fs_should_update_outplace(inode, NULL)) {
ret = -EINVAL;
goto out;
}
if (!pin) {
clear_inode_flag(inode, FI_PIN_FILE);
f2fs_i_gc_failures_write(inode, 0);
goto done;
}
if (f2fs_should_update_outplace(inode, NULL)) {
ret = -EINVAL;
goto out;
}
if (f2fs_pin_file_control(inode, false)) {
ret = -EAGAIN;
goto out;

View File

@ -4441,5 +4441,6 @@ module_exit(exit_f2fs_fs)
MODULE_AUTHOR("Samsung Electronics's Praesto Team");
MODULE_DESCRIPTION("Flash Friendly File System");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_SOFTDEP("pre: crc32");

View File

@ -117,6 +117,15 @@ static ssize_t sb_status_show(struct f2fs_attr *a,
return sprintf(buf, "%lx\n", sbi->s_flag);
}
static ssize_t pending_discard_show(struct f2fs_attr *a,
struct f2fs_sb_info *sbi, char *buf)
{
if (!SM_I(sbi)->dcc_info)
return -EINVAL;
return sprintf(buf, "%llu\n", (unsigned long long)atomic_read(
&SM_I(sbi)->dcc_info->discard_cmd_cnt));
}
static ssize_t features_show(struct f2fs_attr *a,
struct f2fs_sb_info *sbi, char *buf)
{
@ -713,6 +722,7 @@ F2FS_GENERAL_RO_ATTR(unusable);
F2FS_GENERAL_RO_ATTR(encoding);
F2FS_GENERAL_RO_ATTR(mounted_time_sec);
F2FS_GENERAL_RO_ATTR(main_blkaddr);
F2FS_GENERAL_RO_ATTR(pending_discard);
#ifdef CONFIG_F2FS_STAT_FS
F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_foreground_calls, cp_count);
F2FS_STAT_ATTR(STAT_INFO, f2fs_stat_info, cp_background_calls, bg_cp_count);
@ -778,6 +788,7 @@ static struct attribute *f2fs_attrs[] = {
ATTR_LIST(main_blkaddr),
ATTR_LIST(max_small_discards),
ATTR_LIST(discard_granularity),
ATTR_LIST(pending_discard),
ATTR_LIST(batched_trim_sections),
ATTR_LIST(ipu_policy),
ATTR_LIST(min_ipu_util),

View File

@ -1979,3 +1979,4 @@ module_init(init_fat_fs)
module_exit(exit_fat_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -680,6 +680,7 @@ static void __exit exit_msdos_fs(void)
}
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_AUTHOR("Werner Almesberger");
MODULE_DESCRIPTION("MS-DOS filesystem support");

View File

@ -1077,6 +1077,7 @@ static void __exit exit_vfat_fs(void)
}
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_DESCRIPTION("VFAT filesystem support");
MODULE_AUTHOR("Gordon Chaffee");

View File

@ -52,6 +52,7 @@
MODULE_AUTHOR("Christoph Hellwig, Krzysztof Blaszkowski");
MODULE_DESCRIPTION("Veritas Filesystem (VxFS) driver");
MODULE_LICENSE("Dual BSD/GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
static struct kmem_cache *vxfs_inode_cachep;

View File

@ -2338,7 +2338,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
out_unlock_inode:
spin_unlock(&inode->i_lock);
}
EXPORT_SYMBOL(__mark_inode_dirty);
EXPORT_SYMBOL_NS(__mark_inode_dirty, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* The @s_sync_lock is used to serialise concurrent sync operations
@ -2504,7 +2504,7 @@ void try_to_writeback_inodes_sb(struct super_block *sb, enum wb_reason reason)
__writeback_inodes_sb_nr(sb, get_nr_dirty_pages(), reason, true);
up_read(&sb->s_umount);
}
EXPORT_SYMBOL(try_to_writeback_inodes_sb);
EXPORT_SYMBOL_NS(try_to_writeback_inodes_sb, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* sync_inodes_sb - sync sb inode pages
@ -2571,7 +2571,7 @@ int write_inode_now(struct inode *inode, int sync)
might_sleep();
return writeback_single_inode(inode, &wbc);
}
EXPORT_SYMBOL(write_inode_now);
EXPORT_SYMBOL_NS(write_inode_now, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* sync_inode - write an inode and its pages to disk.
@ -2608,4 +2608,4 @@ int sync_inode_metadata(struct inode *inode, int wait)
return sync_inode(inode, &wbc);
}
EXPORT_SYMBOL(sync_inode_metadata);
EXPORT_SYMBOL_NS(sync_inode_metadata, ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -27,6 +27,7 @@
MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
MODULE_DESCRIPTION("Filesystem in Userspace");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
static struct kmem_cache *fuse_inode_cachep;
struct list_head fuse_conn_list;

View File

@ -260,6 +260,7 @@ static void __exit exit_gfs2_fs(void)
MODULE_DESCRIPTION("Global File System");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
module_init(init_gfs2_fs);
module_exit(exit_gfs2_fs);

View File

@ -29,6 +29,7 @@
static struct kmem_cache *hfs_inode_cachep;
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
static int hfs_sync_fs(struct super_block *sb, int wait)
{

View File

@ -617,6 +617,7 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
MODULE_AUTHOR("Brad Boyer");
MODULE_DESCRIPTION("Extended Macintosh Filesystem");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
static struct kmem_cache *hfsplus_inode_cachep;

View File

@ -791,3 +791,4 @@ static void __exit exit_hpfs_fs(void)
module_init(init_hpfs_fs)
module_exit(exit_hpfs_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -44,5 +44,6 @@ module_init(init_incfs_module);
module_exit(cleanup_incfs_module);
MODULE_LICENSE("GPL v2");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
MODULE_AUTHOR("Eugene Zemtsov <ezemtsov@google.com>");
MODULE_DESCRIPTION("Incremental File System");

View File

@ -307,7 +307,7 @@ void drop_nlink(struct inode *inode)
if (!inode->i_nlink)
atomic_long_inc(&inode->i_sb->s_remove_count);
}
EXPORT_SYMBOL(drop_nlink);
EXPORT_SYMBOL_NS(drop_nlink, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* clear_nlink - directly zero an inode's link count
@ -346,7 +346,7 @@ void set_nlink(struct inode *inode, unsigned int nlink)
inode->__i_nlink = nlink;
}
}
EXPORT_SYMBOL(set_nlink);
EXPORT_SYMBOL_NS(set_nlink, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* inc_nlink - directly increment an inode's link count
@ -399,7 +399,7 @@ void inode_init_once(struct inode *inode)
__address_space_init_once(&inode->i_data);
i_size_ordered_init(inode);
}
EXPORT_SYMBOL(inode_init_once);
EXPORT_SYMBOL_NS(inode_init_once, ANDROID_GKI_VFS_EXPORT_ONLY);
static void init_once(void *foo)
{
@ -423,7 +423,7 @@ void ihold(struct inode *inode)
{
WARN_ON(atomic_inc_return(&inode->i_count) < 2);
}
EXPORT_SYMBOL(ihold);
EXPORT_SYMBOL_NS(ihold, ANDROID_GKI_VFS_EXPORT_ONLY);
static void inode_lru_list_add(struct inode *inode)
{
@ -503,7 +503,7 @@ void __insert_inode_hash(struct inode *inode, unsigned long hashval)
spin_unlock(&inode->i_lock);
spin_unlock(&inode_hash_lock);
}
EXPORT_SYMBOL(__insert_inode_hash);
EXPORT_SYMBOL_NS(__insert_inode_hash, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* __remove_inode_hash - remove an inode from the hash
@ -519,7 +519,7 @@ void __remove_inode_hash(struct inode *inode)
spin_unlock(&inode->i_lock);
spin_unlock(&inode_hash_lock);
}
EXPORT_SYMBOL(__remove_inode_hash);
EXPORT_SYMBOL_NS(__remove_inode_hash, ANDROID_GKI_VFS_EXPORT_ONLY);
void clear_inode(struct inode *inode)
{
@ -539,7 +539,7 @@ void clear_inode(struct inode *inode)
/* don't need i_lock here, no concurrent mods to i_state */
inode->i_state = I_FREEING | I_CLEAR;
}
EXPORT_SYMBOL(clear_inode);
EXPORT_SYMBOL_NS(clear_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* Free the inode passed in, removing it from the lists it is still connected
@ -1001,7 +1001,7 @@ void unlock_new_inode(struct inode *inode)
wake_up_bit(&inode->i_state, __I_NEW);
spin_unlock(&inode->i_lock);
}
EXPORT_SYMBOL(unlock_new_inode);
EXPORT_SYMBOL_NS(unlock_new_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
void discard_new_inode(struct inode *inode)
{
@ -1158,7 +1158,7 @@ struct inode *iget5_locked(struct super_block *sb, unsigned long hashval,
}
return inode;
}
EXPORT_SYMBOL(iget5_locked);
EXPORT_SYMBOL_NS(iget5_locked, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* iget_locked - obtain an inode from a mounted file system
@ -1290,7 +1290,7 @@ ino_t iunique(struct super_block *sb, ino_t max_reserved)
return res;
}
EXPORT_SYMBOL(iunique);
EXPORT_SYMBOL_NS(iunique, ANDROID_GKI_VFS_EXPORT_ONLY);
struct inode *igrab(struct inode *inode)
{
@ -1373,7 +1373,7 @@ struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
}
return inode;
}
EXPORT_SYMBOL(ilookup5);
EXPORT_SYMBOL_NS(ilookup5, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* ilookup - search for an inode in the inode cache
@ -1853,7 +1853,7 @@ void touch_atime(const struct path *path)
skip_update:
sb_end_write(inode->i_sb);
}
EXPORT_SYMBOL(touch_atime);
EXPORT_SYMBOL_NS(touch_atime, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* The logic we want is
@ -1949,7 +1949,7 @@ int file_remove_privs(struct file *file)
return error;
}
EXPORT_SYMBOL(file_remove_privs);
EXPORT_SYMBOL_NS(file_remove_privs, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* file_update_time - update mtime and ctime time
@ -2130,7 +2130,7 @@ void init_special_inode(struct inode *inode, umode_t mode, dev_t rdev)
" inode %s:%lu\n", mode, inode->i_sb->s_id,
inode->i_ino);
}
EXPORT_SYMBOL(init_special_inode);
EXPORT_SYMBOL_NS(init_special_inode, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* inode_init_owner - Init uid,gid,mode for new inode according to posix standards
@ -2156,7 +2156,7 @@ void inode_init_owner(struct inode *inode, const struct inode *dir,
inode->i_gid = current_fsgid();
inode->i_mode = mode;
}
EXPORT_SYMBOL(inode_init_owner);
EXPORT_SYMBOL_NS(inode_init_owner, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* inode_owner_or_capable - check current task permissions to inode
@ -2210,7 +2210,7 @@ void inode_dio_wait(struct inode *inode)
if (atomic_read(&inode->i_dio_count))
__inode_dio_wait(inode);
}
EXPORT_SYMBOL(inode_dio_wait);
EXPORT_SYMBOL_NS(inode_dio_wait, ANDROID_GKI_VFS_EXPORT_ONLY);
/*
* inode_set_flags - atomically set some inode flags
@ -2234,7 +2234,7 @@ void inode_set_flags(struct inode *inode, unsigned int flags,
WARN_ON_ONCE(flags & ~mask);
set_mask_bits(&inode->i_flags, mask, flags);
}
EXPORT_SYMBOL(inode_set_flags);
EXPORT_SYMBOL_NS(inode_set_flags, ANDROID_GKI_VFS_EXPORT_ONLY);
void inode_nohighmem(struct inode *inode)
{
@ -2271,7 +2271,7 @@ struct timespec64 timestamp_truncate(struct timespec64 t, struct inode *inode)
WARN(1, "invalid file time granularity: %u", gran);
return t;
}
EXPORT_SYMBOL(timestamp_truncate);
EXPORT_SYMBOL_NS(timestamp_truncate, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* current_time - Return FS time

View File

@ -146,7 +146,7 @@ int fiemap_fill_next_extent(struct fiemap_extent_info *fieinfo, u64 logical,
return 1;
return (flags & FIEMAP_EXTENT_LAST) ? 1 : 0;
}
EXPORT_SYMBOL(fiemap_fill_next_extent);
EXPORT_SYMBOL_NS(fiemap_fill_next_extent, ANDROID_GKI_VFS_EXPORT_ONLY);
/**
* fiemap_prep - check validity of requested flags for fiemap
@ -191,7 +191,7 @@ int fiemap_prep(struct inode *inode, struct fiemap_extent_info *fieinfo,
ret = filemap_write_and_wait(inode->i_mapping);
return ret;
}
EXPORT_SYMBOL(fiemap_prep);
EXPORT_SYMBOL_NS(fiemap_prep, ANDROID_GKI_VFS_EXPORT_ONLY);
static int ioctl_fiemap(struct file *filp, struct fiemap __user *ufiemap)
{

View File

@ -1612,3 +1612,4 @@ static void __exit exit_iso9660_fs(void)
module_init(init_iso9660_fs)
module_exit(exit_iso9660_fs)
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

View File

@ -3012,6 +3012,7 @@ static void __exit journal_exit(void)
}
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);
module_init(journal_init);
module_exit(journal_exit);

View File

@ -439,3 +439,4 @@ MODULE_DESCRIPTION("The Journalling Flash File System, v2");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL"); // Actually dual-licensed, but it doesn't matter for
// the sake of this tag. It's Free Software.
MODULE_IMPORT_NS(ANDROID_GKI_VFS_EXPORT_ONLY);

Some files were not shown because too many files have changed in this diff Show More