Commit Graph

979262 Commits

Author SHA1 Message Date
Chanho Park
f4d6e8324c ANDROID: GKI: add allowed GKI symbol for Exynosauto SoC
This patch adds below 48 symbols for Exynosauto SoC.
Notable changes:
- *pci* symbols for PCIe EP(Endpoint)
- mdio / phy / posix_clock for Ethernet / Phy and PTP

Leaf changes summary: 48 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 48 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

48 Added functions:

  [A] 'function void __napi_schedule_irqoff(napi_struct*)'
  [A] 'function int device_get_phy_mode(device*)'
  [A] 'function void dql_completed(dql*, unsigned int)'
  [A] 'function void dql_reset(dql*)'
  [A] 'function int dw_pcie_ep_init(dw_pcie_ep*)'
  [A] 'function u32 dw_pcie_read_dbi(dw_pcie*, u32, size_t)'
  [A] 'function void dw_pcie_write_dbi(dw_pcie*, u32, size_t, u32)'
  [A] 'function void ktime_get_snapshot(system_time_snapshot*)'
  [A] 'function phy_device* mdiobus_get_phy(mii_bus*, int)'
  [A] 'function int mdiobus_read(mii_bus*, int, u32)'
  [A] 'function int mdiobus_write(mii_bus*, int, u32, u16)'
  [A] 'function void netdev_alert(const net_device*, const char*, ...)'
  [A] 'function void* of_get_mac_address(device_node*)'
  [A] 'function int of_mdiobus_register(mii_bus*, device_node*)'
  [A] 'function void of_phy_deregister_fixed_link(device_node*)'
  [A] 'function bool of_phy_is_fixed_link(device_node*)'
  [A] 'function int of_phy_register_fixed_link(device_node*)'
  [A] 'function void pci_epc_clear_bar(pci_epc*, u8, pci_epf_bar*)'
  [A] 'function int pci_epc_map_addr(pci_epc*, u8, phys_addr_t, u64, size_t)'
  [A] 'function void* pci_epc_mem_alloc_addr(pci_epc*, phys_addr_t*, size_t)'
  [A] 'function void pci_epc_mem_free_addr(pci_epc*, phys_addr_t, void*, size_t)'
  [A] 'function int pci_epc_set_bar(pci_epc*, u8, pci_epf_bar*)'
  [A] 'function void pci_epc_unmap_addr(pci_epc*, u8, phys_addr_t)'
  [A] 'function int pci_num_vf(pci_dev*)'
  [A] 'function int pcie_set_mps(pci_dev*, int)'
  [A] 'function void phy_attached_info(phy_device*)'
  [A] 'function int phy_ethtool_get_eee(phy_device*, ethtool_eee*)'
  [A] 'function void phy_ethtool_ksettings_get(phy_device*, ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_ksettings_set(phy_device*, const ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_set_eee(phy_device*, ethtool_eee*)'
  [A] 'function int phy_get_eee_err(phy_device*)'
  [A] 'function int phy_init_eee(phy_device*, bool)'
  [A] 'function void phy_mac_interrupt(phy_device*)'
  [A] 'function int phy_mii_ioctl(phy_device*, ifreq*, int)'
  [A] 'function int phy_resume(phy_device*)'
  [A] 'function int phy_start_aneg(phy_device*)'
  [A] 'function int phy_suspend(phy_device*)'
  [A] 'function int phylink_connect_phy(phylink*, phy_device*)'
  [A] 'function phylink* phylink_create(phylink_config*, fwnode_handle*, phy_interface_t, const phylink_mac_ops*)'
  [A] 'function void phylink_destroy(phylink*)'
  [A] 'function int phylink_of_phy_connect(phylink*, device_node*, u32)'
  [A] 'function void phylink_set_port_modes(unsigned long int*)'
  [A] 'function void phylink_start(phylink*)'
  [A] 'function int posix_clock_register(posix_clock*, device*)'
  [A] 'function void posix_clock_unregister(posix_clock*)'
  [A] 'function void snd_pcm_release_substream(snd_pcm_substream*)'
  [A] 'function int snd_soc_dai_set_tristate(snd_soc_dai*, int)'
  [A] 'function int ufshcd_init(ufs_hba*, void*, unsigned int)'

Bug: 192805988
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I284d37d32d1808f3f628e84bb2900f5f2f1bede5
2021-07-08 03:46:00 +00:00
Liangliang Li
444a0b7752 ANDROID: mm: add vendor hook for vmpressure
Add vendor hook for bypass vmpressure accounting when doing oem's
custom memory reclaim.

Bug: 191534577

Change-Id: I0c2263e03943596312aa6b01cf8506f2ae87213e
Signed-off-by: Liangliang Li <liliangliang@vivo.com>
2021-07-07 23:23:10 +00:00
Eric Biggers
c799c6644b ANDROID: fips140: adjust some log messages
Downgrade some expected log messages from pr_warn() to pr_info().

Also remove "FIPS 140" from some log messages since the messages are
already prefixed with "fips140: " (the name of the module) which makes
it redundant.

Bug: 153614920
Bug: 188620248
Change-Id: I94055d7a5a86a770fcf38e958e7d7497b4bafdf0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-07 20:12:46 +00:00
Eric Biggers
091338cb39 ANDROID: fips140: add missing static keyword to fips140_init()
Avoid a compiler warning about there being no previous declaration for
fips140_init().

Bug: 153614920
Bug: 188620248
Change-Id: I8192c597d16ff6f43a0e9cb45a89969666b3875e
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-07 18:25:26 +00:00
Chanho Park
70bfd6a7e0 ANDROID: GKI: update allowed list for exynosauto SoC
This patch is for updating GKI allowed symbol list without adding any
new symbol. Next patch will introduce newly added symbols for Exynosauto
SoC GKI vendor modules.

Bug: 192805988
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I6afec1983c83c032d9bd34bb330faecfd0140bc4
2021-07-07 16:36:39 +00:00
Lee Jones
3e3147b280 UPSTREAM: scsi: ufs: ufshcd: Fix some function doc-rot
Fixes the following W=1 kernel build warning(s):

 drivers/scsi/ufs/ufshcd.c:6603: warning: Function parameter or member 'hba' not described in 'ufshcd_try_to_abort_task'
 drivers/scsi/ufs/ufshcd.c:6603: warning: Function parameter or member 'tag' not described in 'ufshcd_try_to_abort_task'
 drivers/scsi/ufs/ufshcd.c:6603: warning: Excess function parameter 'cmd' description in 'ufshcd_try_to_abort_task'

Link: https://lore.kernel.org/r/20201102142359.561122-12-lee.jones@linaro.org
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Santosh Yaraganavi <santosh.sy@samsung.com>
Cc: Vinayak Holikatti <h.vinayak@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit d23ec0b610 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)
Change-Id: I9540b80ceb7cd28629e86101b3b0b561762b6cde
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-07-07 09:06:07 -07:00
jintae jang
2c553e754f UPSTREAM: scsi: ufs: Adjust ufshcd_hold() during sending attribute requests
Invalidation check of arguments should have been checked before
ufshcd_hold(). This can help to prevent ufshcd_hold()/ ufshcd_release()
from being invoked unnecessarily.

[mkp: removed unused out: labels]

Link: https://lore.kernel.org/r/1606973132-5937-1-git-send-email-user@jang-Samsung-DeskTop-System
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: jintae jang <jt77.jang@samsung.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 8ca1a40b9f git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)
Signed-off-by: Bart Van Assche <bvanassche@google.com>
Change-Id: Iad1eaf4ddaf38091e68e7298c432a22abcce9d50
2021-07-07 09:06:07 -07:00
Elliot Berman
52ccdf90b9 FROMLIST: lockdep: Remove console_verbose when disable lock debugging
debug_locks_off can be called in scenarios where the kernel doesn't
immediately panic. For instance, debug_locks_off is called with a
mismatched preempt_count or when registering an improper lockdep map
and fails the sanity check for lock-class key [1]. Both of these issues
were discovered in vendor kernel code and were fixed.

When console_verbose is enabled, we have found that kernel tends to be
unstable because it is spending much of its time printing to the serial
log, so the system may miss watchdog pats. We explicitly set our system
to reduce the loglevel in order to prevent such scenarios, however
lockdep can circumvent the commandline setting. Thus, when we ran into
the kernel bugs, we first ended up trying to debug why the kernel wasn't
able to respond to watchdog pets and why it was spending all of its time
flushing the console, which did not quickly lead us to the "real"
lock dependency issue.

Remove the console_verbose when turning off lock debugging. Other debug
facilities, such as KASAN, KFENCE, SPINLOCK_DEBUG, and DEBUG_OBJECTS
don't set console_verbose when issues are detected. Current other uses
for console_verbose are in situations where kernel is in a panic path.

[1]: kernel/locking/lockdep.c:lockdep_init_map_waits:4617

Signed-off-by: Elliot Berman <eberman@codeaurora.org>

Link: https://lore.kernel.org/lkml/20210623045559.15750-1-eberman@codeaurora.org/
Bug: 191903062
Change-Id: If33587c49d316155a1745c9e0ef1a9ce23410a2b
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
2021-07-07 15:25:28 +00:00
Elliot Berman
4458494476 ANDROID: ABI: qcom: Add symbols for 80211
Add symbols missing from qcom symbol list for 80211 configs.

All of these symbols were already added in commit 7d8c327a64
("ANDROID: ABI: gki_defconfig: Make cfg80211 and mac80211 modules"), but
now add them explicitly to abi_gki_aarch64_qcom symbol list.

Bug: 189918667
Change-Id: I3ada83f8bbdc0edc4b9778cccb0ff07f68ee2aac
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
2021-07-07 09:17:03 +00:00
Jing-Ting Wu
5c51579fde ANDROID: fork: Export task_newtask tracepoint
android_rvh_sched_fork() and android_rvh_sched_fork_init()
already let us register probes during fork(), but those are
invoked *before* the new task is added to the tasklist, which
can lead to some undesired races when a module is trying to
initialize vendor-specific task_struct fields.

Export the task_newtask tracepoint to register probes to run
during fork() but *after* the task has been inserted into the
tasklist.

Bug: 192873984
Signed-off-by: Jing-Ting Wu <Jing-Ting.Wu@mediatek.com>
Cc: Valentin Schneider <valentin.schneider@arm.com>
Change-Id: Ifef14819264385b5e955a5966b4e4f66d50da5e3
2021-07-06 21:24:20 +00:00
Todd Kjos
e2a90797e8 ANDROID: Fix kernelci warnings for indentation in smp.c
Fix warnings reported by kernelci due to incorrect indentatio:

    kernel/smp.c:982:3: warning: this ‘if’ clause does not guard

Fixes: f0b280c395 ("ANDROID: cpuidle: Update cpuidle_uninstall_idle_handler()
to wakeup all online CPUs")
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ide771342558de321154696f9fe1272750a773853
2021-07-06 21:17:01 +00:00
Maulik Shah
bac33eaebf ANDROID: irqchip: gic-v3: Move struct gic_chip_data to header
Struct gic_chip_data definition is not visible to vendor modules
however its passed as parameter to trace_android_vh_gic_resume().

Move struct gic_chip_data definition to gic-v3 header so that vendor
hook can access member variables.

Bug: 192660047
Fixes: cb99d1b88c ("ANDROID: gic: change  gic resume vendor hook para")
Change-Id: I4d1f4adb5b6cb932876650feacb69950d0d686bc
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
2021-07-06 21:05:45 +00:00
Sahitya Tummala
bdac4418bf ANDROID: abi_gki_aarch64_qcom: Add android_vh_ufs_clock_scaling
Add android_vh_ufs_clock_scaling symbol so that vendor module can
use to influence UFS clock scaling policy.

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

1 Added function:

  [A] 'function int __traceiter_android_vh_ufs_clock_scaling(void*, ufs_hba*, bool*, bool*, bool*)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_ufs_clock_scaling'

Bug: 192050146
Change-Id: I4a908e60f1d79814fd3e2ac12512f80e33b1b748
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Nitin Rawat <nitirawa@codeaurora.org>
2021-07-06 18:48:44 +00:00
Denis Hsu
65c1de0f06 ANDROID: Update symbol list for mtk
Leaf changes summary: 15 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 15 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

15 Added functions:

  [A] 'function int fsg_common_create_luns(fsg_common*, fsg_config*)'
  [A] 'function int fsg_common_set_cdev(fsg_common*, usb_composite_dev*, bool)'
  [A] 'function void fsg_common_set_inquiry_string(fsg_common*, const char*, const char*)'
  [A] 'function void fsg_common_set_sysfs(fsg_common*, bool)'
  [A] 'function void fsg_config_from_params(fsg_config*, const fsg_module_parameters*, unsigned int)'
  [A] 'function int usb_add_config(usb_composite_dev*, usb_configuration*, int (usb_configuration*)*)'
  [A] 'function int usb_composite_probe(usb_composite_driver*)'
  [A] 'function void usb_composite_unregister(usb_composite_driver*)'
  [A] 'function int usb_gadget_connect(usb_gadget*)'
  [A] 'function int usb_gadget_disconnect(usb_gadget*)'
  [A] 'function int usb_gadget_set_selfpowered(usb_gadget*)'
  [A] 'function usb_function* usb_get_function(usb_function_instance*)'
  [A] 'function usb_function_instance* usb_get_function_instance(const char*)'
  [A] 'function void usb_put_function(usb_function*)'
  [A] 'function void usb_remove_function(usb_configuration*, usb_function*)'


Bug: 192917827
Change-Id: I57e493a76aaa13c3a953c869a6a9b9e85865e18e
Signed-off-by: Denis Hsu <denis.hsu@mediatek.com>
2021-07-06 17:23:21 +00:00
Bumyong Lee
d4d02ab9b0 UPSTREAM: swiotlb: manipulate orig_addr when tlb_addr has offset
commit 5f89468e2f upstream.

in case of driver wants to sync part of ranges with offset,
swiotlb_tbl_sync_single() copies from orig_addr base to tlb_addr with
offset and ends up with data mismatch.

It was removed from
"swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single",
but said logic has to be added back in.

From Linus's email:
"That commit which the removed the offset calculation entirely, because the old

        (unsigned long)tlb_addr & (IO_TLB_SIZE - 1)

was wrong, but instead of removing it, I think it should have just
fixed it to be

        (tlb_addr - mem->start) & (IO_TLB_SIZE - 1);

instead. That way the slot offset always matches the slot index calculation."

(Unfortunatly that broke NVMe).

The use-case that drivers are hitting is as follow:

1. Get dma_addr_t from dma_map_single()

dma_addr_t tlb_addr = dma_map_single(dev, vaddr, vsize, DMA_TO_DEVICE);

    |<---------------vsize------------->|
    +-----------------------------------+
    |                                   | original buffer
    +-----------------------------------+
  vaddr

 swiotlb_align_offset
     |<----->|<---------------vsize------------->|
     +-------+-----------------------------------+
     |       |                                   | swiotlb buffer
     +-------+-----------------------------------+
          tlb_addr

2. Do something
3. Sync dma_addr_t through dma_sync_single_for_device(..)

dma_sync_single_for_device(dev, tlb_addr + offset, size, DMA_TO_DEVICE);

  Error case.
    Copy data to original buffer but it is from base addr (instead of
  base addr + offset) in original buffer:

 swiotlb_align_offset
     |<----->|<- offset ->|<- size ->|
     +-------+-----------------------------------+
     |       |            |##########|           | swiotlb buffer
     +-------+-----------------------------------+
          tlb_addr

    |<- size ->|
    +-----------------------------------+
    |##########|                        | original buffer
    +-----------------------------------+
  vaddr

The fix is to copy the data to the original buffer and take into
account the offset, like so:

 swiotlb_align_offset
     |<----->|<- offset ->|<- size ->|
     +-------+-----------------------------------+
     |       |            |##########|           | swiotlb buffer
     +-------+-----------------------------------+
          tlb_addr

    |<- offset ->|<- size ->|
    +-----------------------------------+
    |            |##########|           | original buffer
    +-----------------------------------+
  vaddr

[One fix which was Linus's that made more sense to as it created a
symmetry would break NVMe. The reason for that is the:
 unsigned int offset = (tlb_addr - mem->start) & (IO_TLB_SIZE - 1);

would come up with the proper offset, but it would lose the
alignment (which this patch contains).]

Bug: 192521392
Fixes: 16fc3cef33 ("swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single")
Signed-off-by: Bumyong Lee <bumyong.lee@samsung.com>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reported-by: Dominique MARTINET <dominique.martinet@atmark-techno.com>
Reported-by: Horia Geantă <horia.geanta@nxp.com>
Tested-by: Horia Geantă <horia.geanta@nxp.com>
CC: stable@vger.kernel.org
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit e6108147dd of
linux-5.10.47)
Change-Id: Ib03e81080ab029d37e6ff54a3e2cb526d3a30e10
2021-07-06 16:30:01 +00:00
Subash Abhinov Kasiviswanathan
58aa0f2832 ANDROID: qcom: Add net related symbol
Add netif_receive_skb_core which is needed by rmnet modules.

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function int netif_receive_skb_core(sk_buff*)'

Bug: 192384227
Change-Id: I5e3f564ec1a28c804c7017b37fc2e3ccf9eabb28
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-07-05 10:24:13 +00:00
Donghoon Yu
2f9f816445 ANDROID: Update the exynos symbol list
Leaf changes summary: 52 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 47 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 5 Added variables
Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 1 Added variable symbol not referenced by debug info

47 Added functions:

  [A] 'function void __devm_release_region(device*, resource*, resource_size_t, resource_size_t)'
  [A] 'function buffer_head* __getblk_gfp(block_device*, sector_t, unsigned int, gfp_t)'
  [A] 'function void __lock_buffer(buffer_head*)'
  [A] 'function sk_buff* __pskb_copy_fclone(sk_buff*, int, gfp_t, bool)'
  [A] 'function int __sync_dirty_buffer(buffer_head*, int)'
  [A] 'function int __traceiter_android_rvh_find_new_ilb(void*, cpumask*, int*)'
  [A] 'function int __traceiter_dwc3_ep_queue(void*, dwc3_request*)'
  [A] 'function void __wait_on_buffer(buffer_head*)'
  [A] 'function void __wake_up_locked_key(wait_queue_head*, unsigned int, void*)'
  [A] 'function int _raw_write_trylock(rwlock_t*)'
  [A] 'function int blk_ksm_init(blk_keyslot_manager*, unsigned int)'
  [A] 'function void console_lock()'
  [A] 'function int cpufreq_frequency_table_get_index(cpufreq_policy*, unsigned int)'
  [A] 'function cpuidle_driver* cpuidle_get_cpu_driver(cpuidle_device*)'
  [A] 'function int dev_vprintk_emit(int, const device*, const char*, va_list)'
  [A] 'function void* devm_krealloc(device*, void*, size_t, gfp_t)'
  [A] 'function bool drm_mode_match(const drm_display_mode*, const drm_display_mode*, unsigned int)'
  [A] 'function drm_property* drm_property_create_signed_range(drm_device*, u32, const char*, int64_t, int64_t)'
  [A] 'function void end_buffer_read_sync(buffer_head*, int)'
  [A] 'function int hmm_range_fault(hmm_range*)'
  [A] 'function const cpumask* housekeeping_cpumask(hk_flags)'
  [A] 'function void i2c_clients_command(i2c_adapter*, unsigned int, void*)'
  [A] 'function iio_dev* iio_device_alloc(device*, int)'
  [A] 'function void iio_device_free(iio_dev*)'
  [A] 'function int is_console_locked()'
  [A] 'function int media_device_register_entity(media_device*, media_entity*)'
  [A] 'function __kernel_old_timeval ns_to_kernel_old_timeval(const s64)'
  [A] 'function int of_alias_get_highest_id(const char*)'
  [A] 'function int of_get_videomode(device_node*, videomode*, int)'
  [A] 'function int phy_reset(phy*)'
  [A] 'function proc_dir_entry* proc_create_seq_private(const char*, umode_t, proc_dir_entry*, const seq_operations*, unsigned int, void*)'
  [A] 'function int rtc_set_time(rtc_device*, rtc_time*)'
  [A] 'function void scsi_eh_ready_devs(Scsi_Host*, list_head*, list_head*)'
  [A] 'function int snd_soc_tplg_component_load(snd_soc_component*, snd_soc_tplg_ops*, const firmware*, u32)'
  [A] 'function int snd_soc_tplg_component_remove(snd_soc_component*, u32)'
  [A] 'function int snd_soc_tplg_widget_bind_event(snd_soc_dapm_widget*, const snd_soc_tplg_widget_events*, int, u16)'
  [A] 'function char* stpcpy(char* restrict, const char* restrict)'
  [A] 'function int sysfs_merge_group(kobject*, const attribute_group*)'
  [A] 'function void v4l2_ctrl_auto_cluster(unsigned int, v4l2_ctrl**, u8, bool)'
  [A] 'function __poll_t v4l2_ctrl_poll(file*, poll_table_struct*)'
  [A] 'function int v4l2_device_set_name(v4l2_device*, const char*, atomic_t*)'
  [A] 'function void v4l2_i2c_subdev_init(v4l2_subdev*, i2c_client*, const v4l2_subdev_ops*)'
  [A] 'function bool v4l2_match_dv_timings(const v4l2_dv_timings*, const v4l2_dv_timings*, unsigned int, bool)'
  [A] 'function void v4l2_spi_subdev_init(v4l2_subdev*, spi_device*, const v4l2_subdev_ops*)'
  [A] 'function int vb2_prepare_buf(vb2_queue*, media_device*, v4l2_buffer*)'
  [A] 'function loff_t vfs_llseek(file*, loff_t, int)'
  [A] 'function int vprintk_emit(int, int, const dev_printk_info*, const char*, va_list)'

5 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_find_new_ilb'
  [A] 'tracepoint __tracepoint_dwc3_ep_queue'
  [A] 'int console_printk[4]'
  [A] 'atomic_t ignore_console_lock_warning'
  [A] 'kmem_cache* names_cachep'

1 Added variable symbol not referenced by debug info:

  [A] fb_mode_option

Bug: 192480263
Signed-off-by: Donghoon Yu <hoony.yu@samsung.com>
Change-Id: I7269a0646108b05a815f1ea0fa4dfcc6aa5be864
2021-07-03 20:24:02 +09:00
Chun-Hung Wu
b2a9471239 ANDROID: Update symbol list for mtk
1. Generated with:
  BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh --update

Leaf changes summary: 10 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 10 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

10 Added functions:

  [A] 'function blk_status_t blk_insert_cloned_request(request_queue*, request*)'
  [A] 'function int class_create_file_ns(class*, const class_attribute*, void*)'
  [A] 'function void class_remove_file_ns(class*, const class_attribute*, void*)'
  [A] 'function rc_dev* devm_rc_allocate_device(device*, rc_driver_type)'
  [A] 'function int devm_rc_register_device(device*, rc_dev*)'
  [A] 'function int snd_soc_component_test_bits(snd_soc_component*, unsigned int, unsigned int, unsigned int)'
  [A] 'function void v4l2_m2m_buf_copy_metadata(const vb2_v4l2_buffer*, vb2_v4l2_buffer*, bool)'
  [A] 'function int v4l2_m2m_register_media_controller(v4l2_m2m_dev*, video_device*, int)'
  [A] 'function void v4l2_m2m_request_queue(media_request*)'
  [A] 'function void v4l2_m2m_unregister_media_controller(v4l2_m2m_dev*)'

Bug: 192041645
Signed-off-by: Chun-Hung Wu <chun-hung.wu@mediatek.com>
Change-Id: I3bbfe65e0bf8832feedbbe638c7dfd0e8341c9fb
2021-07-03 05:42:06 +00:00
Thinh Nguyen
7c9599e204 FROMGIT: usb: dwc3: Create helper function getting MDWIDTH
Different controller IPs check different HW parameters for MDWIDTH.
To help with maintainability, create a helper function to consolidate
the logic in a single place.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/456329d36e8c188df5c234f3282595b630bf1470.1616892233.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d00be779cc
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8b3b47c564d20d24e06dae2c70b423d4b42363f7
2021-07-03 05:07:50 +00:00
xieliujie
0a24affb86 ANDROID: vendor_hooks: modify the function name
int the commit: https://android-review.googlesource.com/c/kernel/common/+/1699406/
When we build  our vendor driver, report two errors:
1) Symbol too long "trace_android_vh_get_unmapped_area_from_anti_fragment_pool"
2) Symbol too long "trace_android_vh_get_unmapped_area_include_reserved_zone"

So, I shorten the function names:
android_vh_get_unmapped_area_from_anti_fragment_pool  -->  android_vh_get_from_fragment_pool
android_vh_get_unmapped_area_include_reserved_zone    -->  android_vh_include_reserved_zone

Bug: 191439466
Signed-off-by: xieliujie <xieliujie@oppo.com>
Change-Id: Icee4faa24df4fe1fc29434cd205c4dea82b4fba5
2021-07-02 20:42:14 +00:00
Chenggang Wang
d686d5ffc6 ANDROID: GKI: Add some symbols to symbol list
Leaf changes summary: 7 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 6 Added
functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added
variable

6 Added functions:

  [A] 'function int __sbitmap_queue_get(sbitmap_queue*)'
  [A] 'function int __traceiter_android_vh_ufs_update_sdev(void*,
scsi_device*)'
  [A] 'function int bio_add_pc_page(request_queue*, bio*, page*,
unsigned int, unsigned int)'
  [A] 'function void bio_reset(bio*)'
  [A] 'function void blk_mq_sched_mark_restart_hctx(blk_mq_hw_ctx*)'
  [A] 'function int blk_rq_append_bio(request*, bio**)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_ufs_update_sdev'

Bug: 191903080

Change-Id: Id181bf494dac59f1063759cf6e69f6a077861b49
Signed-off-by: Chenggang Wang <wangchenggang@vivo.com>
2021-07-02 20:12:55 +00:00
Maulik Shah
bdfb11230b ANDROID: cpuidle: Allow for an early exit from cpuidle_enter_state()
Vendor hook may modify index to negative to force an early
exit from idle entry. Add support for the same.

Bug: 192436062
Change-Id: I82b822296d06b122e3f154b2c8af2128136023d5
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
2021-07-02 19:45:07 +00:00
Maulik Shah
f0b280c395 ANDROID: cpuidle: Update cpuidle_uninstall_idle_handler() to wakeup all online CPUs
wake_up_all_idle_cpus() will not wakeup paused CPUs since they are removed
from cpu_active_mask but paused CPUs can be in deep cpu idle and hence must
wakeup when uninstalling idle handler.

This change fixes this by introducing wake_up_all_online_idle_cpus() to
unconditionally wakeup all online idle CPUs and invoking same when uninstalling
cpu idle handler.

Bug: 192436062
Fixes: 683010f555 ("ANDROID: cpu/hotplug: add pause/resume_cpus interface")
Change-Id: I4afd4b7a17b87f9cc495e7009c9537888387f9ef
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
2021-07-02 19:44:56 +00:00
Nitin Rawat
14dd90ab37 ANDROID: scsi: ufs: Add hook to influence the UFS clock scaling policy
Add a vendor hook in ufshcd_devfreq_target() to allow vendor modules to
influence the UFS clock scaling policy.

Bug: 192050146
Change-Id: Ice3e629e132460d240e07c2eba01307317d5aeca
Signed-off-by: Nitin Rawat <nitirawa@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
2021-07-02 19:33:14 +00:00
Maciej Żenczykowski
00aec39e2e FROMGIT: bpf: Support all gso types in bpf_skb_change_proto()
Since we no longer modify gso_size, it is now theoretically
safe to not set SKB_GSO_DODGY and reset gso_segs to zero.

This also means the skb_is_gso_tcp() check should no longer
be necessary.

Unfortunately we cannot remove the skb_{decrease,increase}_gso_size()
helpers, as they are still used elsewhere:

  bpf_skb_net_grow() without BPF_F_ADJ_ROOM_FIXED_GSO
  bpf_skb_net_shrink() without BPF_F_ADJ_ROOM_FIXED_GSO
  net/core/lwt_bpf.c's handle_gso_type()

Signed-off-by: Maciej Żenczykowski <maze@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Dongseok Yi <dseok.yi@samsung.com>
Cc: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/bpf/20210617000953.2787453-3-zenczykowski@gmail.com
(cherry picked from commit 0bc919d3e0 https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=0bc919d3e0b8149a60d2444c6a8e2b5974556522)
Test: builds, TreeHugger
Bug: 188690383
Change-Id: I46036bbacae9d1af7364ec0623dd75f0df5845fa
2021-07-02 11:28:32 +00:00
Todd Kjos
4e90d52c82 ANDROID: GKI: 7/2/2021 KMI update
Set KMI_GENERATION=8 for 7/2 KMI update

Leaf changes summary: 3604 artifacts changed (2 filtered out)
Changed leaf types summary: 18 (2 filtered out) leaf types changed
Removed/Changed/Added functions summary: 121 Removed, 3342 Changed, 55 Added functions
Removed/Changed/Added variables summary: 3 Removed, 62 Changed, 3 Added variables

121 Removed functions:

  [D] 'function sk_buff* __cfg80211_alloc_event_skb(wiphy*, wireless_dev*, nl80211_commands, nl80211_attrs, unsigned int, int, int, gfp_t)'
  [D] 'function sk_buff* __cfg80211_alloc_reply_skb(wiphy*, nl80211_commands, nl80211_attrs, int)'
  [D] 'function void __cfg80211_send_event_skb(sk_buff*, gfp_t)'
  [D] 'function void __ieee80211_schedule_txq(ieee80211_hw*, ieee80211_txq*, bool)'
  [D] 'function int __traceiter_android_vh_force_compatible_post(void*, void*)'
  [D] 'function int __traceiter_android_vh_force_compatible_pre(void*, void*)'
  [D] 'function void cfg80211_cac_event(net_device*, const cfg80211_chan_def*, nl80211_radar_event, gfp_t)'
  [D] 'function u32 cfg80211_calculate_bitrate(rate_info*)'
  [D] 'function void cfg80211_ch_switch_notify(net_device*, cfg80211_chan_def*)'
  [D] 'function void cfg80211_chandef_create(cfg80211_chan_def*, ieee80211_channel*, nl80211_channel_type)'
  [D] 'function unsigned int cfg80211_classify8021d(sk_buff*, cfg80211_qos_map*)'
  [D] 'function void cfg80211_connect_done(net_device*, cfg80211_connect_resp_params*, gfp_t)'
  [D] 'function void cfg80211_del_sta_sinfo(net_device*, const u8*, station_info*, gfp_t)'
  [D] 'function void cfg80211_disconnected(net_device*, u16, const u8*, size_t, bool, gfp_t)'
  [D] 'function int cfg80211_external_auth_request(net_device*, cfg80211_external_auth_params*, gfp_t)'
  [D] 'function const element* cfg80211_find_elem_match(u8, const u8*, unsigned int, const u8*, unsigned int, unsigned int)'
  [D] 'function const element* cfg80211_find_vendor_elem(unsigned int, int, const u8*, unsigned int)'
  [D] 'function void cfg80211_ft_event(net_device*, cfg80211_ft_event_params*)'
  [D] 'function cfg80211_bss* cfg80211_get_bss(wiphy*, ieee80211_channel*, const u8*, const u8*, size_t, ieee80211_bss_type, ieee80211_privacy)'
  [D] 'function void cfg80211_gtk_rekey_notify(net_device*, const u8*, const u8*, gfp_t)'
  [D] 'function void cfg80211_ibss_joined(net_device*, const u8*, ieee80211_channel*, gfp_t)'
  [D] 'function cfg80211_bss* cfg80211_inform_bss_data(wiphy*, cfg80211_inform_bss*, cfg80211_bss_frame_type, const u8*, u64, u16, u16, const u8*, size_t, gfp_t)'
  [D] 'function cfg80211_bss* cfg80211_inform_bss_frame_data(wiphy*, cfg80211_inform_bss*, ieee80211_mgmt*, size_t, gfp_t)'
  [D] 'function void cfg80211_mgmt_tx_status(wireless_dev*, u64, const u8*, size_t, bool, gfp_t)'
  [D] 'function void cfg80211_michael_mic_failure(net_device*, const u8*, nl80211_key_type, int, const u8*, gfp_t)'
  [D] 'function void cfg80211_new_sta(net_device*, const u8*, station_info*, gfp_t)'
  [D] 'function void cfg80211_pmksa_candidate_notify(net_device*, int, const u8*, bool, gfp_t)'
  [D] 'function void cfg80211_port_authorized(net_device*, const u8*, gfp_t)'
  [D] 'function void cfg80211_put_bss(wiphy*, cfg80211_bss*)'
  [D] 'function void cfg80211_radar_event(wiphy*, cfg80211_chan_def*, gfp_t)'
  [D] 'function void cfg80211_ready_on_channel(wireless_dev*, u64, ieee80211_channel*, unsigned int, gfp_t)'
  [D] 'function void cfg80211_remain_on_channel_expired(wireless_dev*, u64, ieee80211_channel*, gfp_t)'
  [D] 'function void cfg80211_roamed(net_device*, cfg80211_roam_info*, gfp_t)'
  [D] 'function bool cfg80211_rx_mgmt_khz(wireless_dev*, int, int, const u8*, size_t, u32)'
  [D] 'function void cfg80211_rx_unprot_mlme_mgmt(net_device*, const u8*, size_t)'
  [D] 'function void cfg80211_scan_done(cfg80211_scan_request*, cfg80211_scan_info*)'
  [D] 'function void cfg80211_sched_scan_results(wiphy*, u64)'
  [D] 'function void cfg80211_sched_scan_stopped(wiphy*, u64)'
  [D] 'function void cfg80211_sched_scan_stopped_rtnl(wiphy*, u64)'
  [D] 'function void cfg80211_stop_iface(wiphy*, wireless_dev*, gfp_t)'
  [D] 'function void cfg80211_tdls_oper_request(net_device*, const u8*, nl80211_tdls_operation, u16, gfp_t)'
  [D] 'function void cfg80211_unlink_bss(wiphy*, cfg80211_bss*)'
  [D] 'function void cfg80211_unregister_wdev(wireless_dev*)'
  [D] 'function void cfg80211_update_owe_info_event(net_device*, cfg80211_update_owe_info*, gfp_t)'
  [D] 'function int cfg80211_vendor_cmd_reply(sk_buff*)'
  [D] 'function const ieee80211_reg_rule* freq_reg_info(wiphy*, u32)'
  [D] 'function ieee80211_hw* ieee80211_alloc_hw_nm(size_t, const ieee80211_ops*, const char*)'
  [D] 'function sk_buff* ieee80211_ap_probereq_get(ieee80211_hw*, ieee80211_vif*)'
  [D] 'function bool ieee80211_beacon_cntdwn_is_complete(ieee80211_vif*)'
  [D] 'function sk_buff* ieee80211_beacon_get_template(ieee80211_hw*, ieee80211_vif*, ieee80211_mutable_offsets*)'
  [D] 'function sk_buff* ieee80211_beacon_get_tim(ieee80211_hw*, ieee80211_vif*, u16*, u16*)'
  [D] 'function void ieee80211_beacon_loss(ieee80211_vif*)'
  [D] 'function u8 ieee80211_beacon_update_cntdwn(ieee80211_vif*)'
  [D] 'function const element* ieee80211_bss_get_elem(cfg80211_bss*, u8)'
  [D] 'function u32 ieee80211_channel_to_freq_khz(int, nl80211_band)'
  [D] 'function void ieee80211_chswitch_done(ieee80211_vif*, bool)'
  [D] 'function void ieee80211_connection_loss(ieee80211_vif*)'
  [D] 'function void ieee80211_cqm_beacon_loss_notify(ieee80211_vif*, gfp_t)'
  [D] 'function void ieee80211_cqm_rssi_notify(ieee80211_vif*, nl80211_cqm_rssi_threshold_event, s32, gfp_t)'
  [D] 'function void ieee80211_csa_finish(ieee80211_vif*)'
  [D] 'function ieee80211_sta* ieee80211_find_sta(ieee80211_vif*, const u8*)'
  [D] 'function ieee80211_sta* ieee80211_find_sta_by_ifaddr(ieee80211_hw*, const u8*, const u8*)'
  [D] 'function void ieee80211_free_hw(ieee80211_hw*)'
  [D] 'function void ieee80211_free_txskb(ieee80211_hw*, sk_buff*)'
  [D] 'function int ieee80211_freq_khz_to_channel(u32)'
  [D] 'function sk_buff* ieee80211_get_buffered_bc(ieee80211_hw*, ieee80211_vif*)'
  [D] 'function ieee80211_channel* ieee80211_get_channel_khz(wiphy*, u32)'
  [D] 'function unsigned int ieee80211_get_hdrlen_from_skb(const sk_buff*)'
  [D] 'function void ieee80211_get_tx_rates(ieee80211_vif*, ieee80211_sta*, sk_buff*, ieee80211_tx_rate*, int)'
  [D] 'function unsigned int ieee80211_hdrlen(__le16)'
  [D] 'function void ieee80211_iter_chan_contexts_atomic(ieee80211_hw*, void (ieee80211_hw*, ieee80211_chanctx_conf*, void*)*, void*)'
  [D] 'function void ieee80211_iterate_active_interfaces_atomic(ieee80211_hw*, u32, void (void*, u8*, ieee80211_vif*)*, void*)'
  [D] 'function void ieee80211_iterate_interfaces(ieee80211_hw*, u32, void (void*, u8*, ieee80211_vif*)*, void*)'
  [D] 'function void ieee80211_iterate_stations_atomic(ieee80211_hw*, void (void*, ieee80211_sta*)*, void*)'
  [D] 'function void ieee80211_manage_rx_ba_offl(ieee80211_vif*, const u8*, unsigned int)'
  [D] 'function ieee80211_txq* ieee80211_next_txq(ieee80211_hw*, u8)'
  [D] 'function sk_buff* ieee80211_nullfunc_get(ieee80211_hw*, ieee80211_vif*, bool)'
  [D] 'function sk_buff* ieee80211_probereq_get(ieee80211_hw*, const u8*, const u8*, size_t, size_t)'
  [D] 'function sk_buff* ieee80211_proberesp_get(ieee80211_hw*, ieee80211_vif*)'
  [D] 'function sk_buff* ieee80211_pspoll_get(ieee80211_hw*, ieee80211_vif*)'
  [D] 'function void ieee80211_queue_delayed_work(ieee80211_hw*, delayed_work*, unsigned long int)'
  [D] 'function void ieee80211_queue_work(ieee80211_hw*, work_struct*)'
  [D] 'function void ieee80211_radar_detected(ieee80211_hw*)'
  [D] 'function void ieee80211_ready_on_channel(ieee80211_hw*)'
  [D] 'function int ieee80211_register_hw(ieee80211_hw*)'
  [D] 'function void ieee80211_remain_on_channel_expired(ieee80211_hw*)'
  [D] 'function void ieee80211_report_low_ack(ieee80211_sta*, u32)'
  [D] 'function void ieee80211_restart_hw(ieee80211_hw*)'
  [D] 'function void ieee80211_rx_irqsafe(ieee80211_hw*, sk_buff*)'
  [D] 'function void ieee80211_rx_napi(ieee80211_hw*, ieee80211_sta*, sk_buff*, napi_struct*)'
  [D] 'function void ieee80211_scan_completed(ieee80211_hw*, cfg80211_scan_info*)'
  [D] 'function void ieee80211_sched_scan_results(ieee80211_hw*)'
  [D] 'function void ieee80211_sched_scan_stopped(ieee80211_hw*)'
  [D] 'function int ieee80211_sta_ps_transition(ieee80211_sta*, bool)'
  [D] 'function void ieee80211_sta_register_airtime(ieee80211_sta*, u8, u32, u32)'
  [D] 'function void ieee80211_stop_queue(ieee80211_hw*, int)'
  [D] 'function void ieee80211_stop_queues(ieee80211_hw*)'
  [D] 'function void ieee80211_stop_rx_ba_session(ieee80211_vif*, u16, const u8*)'
  [D] 'function void ieee80211_stop_tx_ba_cb_irqsafe(ieee80211_vif*, const u8*, u16)'
  [D] 'function void ieee80211_tdls_oper_request(ieee80211_vif*, const u8*, nl80211_tdls_operation, u16, gfp_t)'
  [D] 'function sk_buff* ieee80211_tx_dequeue(ieee80211_hw*, ieee80211_txq*)'
  [D] 'function void ieee80211_tx_rate_update(ieee80211_hw*, ieee80211_sta*, ieee80211_tx_info*)'
  [D] 'function void ieee80211_tx_status(ieee80211_hw*, sk_buff*)'
  [D] 'function void ieee80211_tx_status_irqsafe(ieee80211_hw*, sk_buff*)'
  [D] 'function void ieee80211_txq_get_depth(ieee80211_txq*, unsigned long int*, unsigned long int*)'
  [D] 'function bool ieee80211_txq_may_transmit(ieee80211_hw*, ieee80211_txq*)'
  [D] 'function void ieee80211_txq_schedule_start(ieee80211_hw*, u8)'
  [D] 'function void ieee80211_unregister_hw(ieee80211_hw*)'
  [D] 'function void ieee80211_wake_queue(ieee80211_hw*, int)'
  [D] 'function void ieee80211_wake_queues(ieee80211_hw*)'
  [D] 'function const char* reg_initiator_name(nl80211_reg_initiator)'
  [D] 'function int regulatory_hint(wiphy*, const char*)'
  [D] 'function int regulatory_set_wiphy_regd(wiphy*, ieee80211_regdomain*)'
  [D] 'function void wiphy_apply_custom_regulatory(wiphy*, const ieee80211_regdomain*)'
  [D] 'function void wiphy_free(wiphy*)'
  [D] 'function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)'
  [D] 'function void wiphy_read_of_freq_limits(wiphy*)'
  [D] 'function int wiphy_register(wiphy*)'
  [D] 'function void wiphy_rfkill_set_hw_state(wiphy*, bool)'
  [D] 'function ieee80211_hw* wiphy_to_ieee80211_hw(wiphy*)'
  [D] 'function void wiphy_unregister(wiphy*)'

55 Added functions:

  [A] 'function void __hw_addr_init(netdev_hw_addr_list*)'
  [A] 'function int __hw_addr_sync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __hw_addr_unsync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __put_net(net*)'
  [A] 'function int __sock_create(net*, int, int, int, socket**, int)'
  [A] 'function int __traceiter_android_vh_rproc_recovery(void*, rproc*)'
  [A] 'function sk_buff* alloc_can_err_skb(net_device*, can_frame**)'
  [A] 'function sk_buff* alloc_can_skb(net_device*, can_frame**)'
  [A] 'function net_device* alloc_candev_mqs(int, unsigned int, unsigned int, unsigned int)'
  [A] 'function void arc4_crypt(arc4_ctx*, u8*, const u8*, unsigned int)'
  [A] 'function int arc4_setkey(arc4_ctx*, const u8*, unsigned int)'
  [A] 'function int can_change_mtu(net_device*, int)'
  [A] 'function void can_free_echo_skb(net_device*, unsigned int)'
  [A] 'function unsigned int can_get_echo_skb(net_device*, unsigned int)'
  [A] 'function int can_put_echo_skb(sk_buff*, net_device*, unsigned int)'
  [A] 'function void close_candev(net_device*)'
  [A] 'function u32 crc32_be(u32, const unsigned char*, size_t)'
  [A] 'function dentry* debugfs_rename(dentry*, dentry*, dentry*, const char*)'
  [A] 'function int dev_change_net_namespace(net_device*, net*, const char*)'
  [A] 'function void dev_fetch_sw_netstats(rtnl_link_stats64*, const pcpu_sw_netstats*)'
  [A] 'function void free_candev(net_device*)'
  [A] 'function int genlmsg_multicast_allns(const genl_family*, sk_buff*, u32, unsigned int, gfp_t)'
  [A] 'function net* get_net_ns_by_fd(int)'
  [A] 'function net* get_net_ns_by_pid(pid_t)'
  [A] 'function int inet_csk_get_port(sock*, unsigned short int)'
  [A] 'function void kernel_param_lock(module*)'
  [A] 'function void kernel_param_unlock(module*)'
  [A] 'function key_ref_t key_create_or_update(key_ref_t, const char*, const char*, void*, size_t, key_perm_t, unsigned long int)'
  [A] 'function void key_put(key*)'
  [A] 'function key* keyring_alloc(const char*, kuid_t, kgid_t, const cred*, key_perm_t, unsigned long int, key_restriction*, key*)'
  [A] 'function ktime_t ktime_get_coarse_with_offset(tk_offsets)'
  [A] 'function void netdev_set_default_ethtool_ops(net_device*, const ethtool_ops*)'
  [A] 'function int open_candev(net_device*)'
  [A] 'function int register_candev(net_device*)'
  [A] 'function bool rfkill_blocked(rfkill*)'
  [A] 'function void rfkill_pause_polling(rfkill*)'
  [A] 'function void rfkill_resume_polling(rfkill*)'
  [A] 'function bool rfkill_set_hw_state(rfkill*, bool)'
  [A] 'function void rhashtable_free_and_destroy(rhashtable*, void (void*, void*)*, void*)'
  [A] 'function int rhltable_init(rhltable*, const rhashtable_params*)'
  [A] 'function unsigned long int round_jiffies(unsigned long int)'
  [A] 'function void rproc_coredump(rproc*)'
  [A] 'function void rproc_coredump_cleanup(rproc*)'
  [A] 'function int skb_checksum_help(sk_buff*)'
  [A] 'function sk_buff* skb_clone_sk(sk_buff*)'
  [A] 'function void skb_complete_wifi_ack(sk_buff*, bool)'
  [A] 'function void sock_efree(sk_buff*)'
  [A] 'function void tty_hangup(tty_struct*)'
  [A] 'function int tty_mode_ioctl(tty_struct*, file*, unsigned int, unsigned long int)'
  [A] 'function void unregister_candev(net_device*)'
  [A] 'function void usb_anchor_urb(urb*, usb_anchor*)'
  [A] 'function void usb_kill_anchored_urbs(usb_anchor*)'
  [A] 'function void usb_unanchor_urb(urb*)'
  [A] 'function int verify_pkcs7_signature(void*, size_t, void*, size_t, key*, key_being_used_for, int (void*, void*, typedef size_t, typedef size_t)*, void*)'
  [A] 'function void wireless_nlevent_flush()'

3342 functions with some sub-type change:

  [C] 'function void* PDE_DATA(const inode*)' at generic.c:799:1 has some sub-type changes:
    CRC (modversions) changed from 0x1c3ef274 to 0xf1429f7e

  [C] 'function void __ClearPageMovable(page*)' at compaction.c:138:1 has some sub-type changes:
    CRC (modversions) changed from 0xdc28d620 to 0xd8bcfba7

  [C] 'function void __SetPageMovable(page*, address_space*)' at compaction.c:130:1 has some sub-type changes:
    CRC (modversions) changed from 0xd7b7b883 to 0x7389406a

  ... 3339 omitted; 3342 symbols have only CRC changes

3 Removed variables:

  [D] 'tracepoint __tracepoint_android_vh_force_compatible_post'
  [D] 'tracepoint __tracepoint_android_vh_force_compatible_pre'
  [D] 'const unsigned char rfc1042_header[6]'

3 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_rproc_recovery'
  [A] 'const char hex_asc_upper[17]'
  [A] 'const kobj_ns_type_operations net_ns_type_operations'

62 Changed variables:

  [C] 'net init_net' was changed at net_namespace.c:47:1:
    size of symbol changed from 4416 to 4544
    CRC (modversions) changed from 0x144cd521 to 0x661d880a
    type of variable changed:
      type size changed from 35328 to 36352 (in bits)
      1 data member insertion:
        'netns_can can', at offset 34368 (in bits) at net_namespace.h:183:1
      there are data member changes:
        2 ('netns_xdp xdp' .. 'sock* diag_nlsk') offsets changed (by +1408 bits)
      3735 impacted interfaces

  [C] 'rq runqueues' was changed at core.c:56:1:
    size of symbol changed from 4544 to 4672
    CRC (modversions) changed from 0x3e534b4f to 0x27777ba4
    type of variable changed:
      type size changed from 36352 to 37376 (in bits)
      there are data member changes:
        type 'struct cfs_rq' of 'rq::cfs' changed:
          type size changed from 3072 to 4096 (in bits)
          1 data member insertion:
            'u64 android_vendor_data1[16]', at offset 2752 (in bits) at sched.h:617:1
          3735 impacted interfaces
        61 ('rt_rq rt' .. 'u64 android_kabi_reserved4') offsets changed (by +1024 bits)
      3735 impacted interfaces

  [C] 'bus_type amba_bustype' was changed at bus.c:215:1:
    CRC (modversions) changed from 0x13c06cac to 0x1f5d98ee

  [C] 'neigh_table arp_tbl' was changed at arp.c:152:1:
    CRC (modversions) changed from 0x56697f62 to 0x16be2042

  [C] 'const address_space_operations balloon_aops' was changed at balloon_compaction.c:253:1:
    CRC (modversions) changed from 0xf0207a10 to 0xf3018b56

  ... 57 omitted; 60 symbols have only CRC changes

'enum attr_idn at ufs.h:128:1' changed:
  type size hasn't changed
  1 enumerator deletion:
    'attr_idn::QUERY_ATTR_IDN_RESERVED' value '1'
  1 enumerator insertion:
    'attr_idn::QUERY_ATTR_IDN_MAX_HPB_SINGLE_CMD' value '1'
  2 impacted interfaces
'struct binder_transaction at binder_internal.h:547:1' changed:
  type size changed from 1280 to 1408 (in bits)
  1 data member insertion:
    'u64 android_oem_data1[2]', at offset 1280 (in bits) at binder_internal.h:575:1
  4 impacted interfaces

'struct bio at blk_types.h:205:1' changed:
  type size changed from 1152 to 1216 (in bits)
  1 data member insertion:
    'u64 bi_iocost_cost', at offset 704 (in bits) at blk_types.h:234:1
  there are data member changes:
    2 ('bio_crypt_ctx* bi_crypt_context' .. 'bool bi_skip_dm_default_key') offsets changed (by +64 bits)
    anonymous data member 'union {}' offset changed from 776 to 840 (in bits) (by +64 bits)
    8 ('unsigned short int bi_vcnt' .. 'bio_vec bi_inline_vecs[]') offsets changed (by +64 bits)
  3735 impacted interfaces

'struct blk_mq_ctx at blk-mq.h:18:1' changed:
  type size changed from 2048 to 2560 (in bits)
  1 data member insertion:
    'u64 android_oem_data1[2]', at offset 2048 (in bits) at blk-mq.h:39:1
  3735 impacted interfaces

'struct blk_mq_hw_ctx at blk-mq.h:16:1' changed:
  type size hasn't changed
  1 data member deletion:
    'atomic_t elevator_queued', at offset 3424 (in bits) at blk-mq.h:145:1
  3735 impacted interfaces

'struct blk_mq_tags at blk-mq-tag.h:8:1' changed:
  type size changed from 1600 to 1664 (in bits)
  1 data member insertion:
    'u64 android_oem_data1', at offset 1600 (in bits) at blk-mq-tag.h:30:1
  3735 impacted interfaces

'struct cfs_rq at sched.h:530:1' changed:
  details were reported earlier

'struct dma_buf at dma-buf.h:397:1' changed:
  type size changed from 3520 to 2240 (in bits)
  3 data member deletions:
    'int mmap_count', at offset 2240 (in bits) at dma-buf.h:430:1
    'const vm_operations_struct* exp_vm_ops', at offset 2304 (in bits) at dma-buf.h:431:1
    'vm_operations_struct vm_ops', at offset 2368 (in bits) at dma-buf.h:432:1
  456 impacted interfaces

'struct mm_struct at mm_types.h:407:1' changed:
  type size changed from 7424 to 7360 (in bits)
  there are data member changes:
    anonymous data member at offset 0 (in bits) changed from:
      struct {vm_area_struct* mmap; rb_root mm_rb; u64 vmacache_seqnum; rwlock_t mm_rb_lock; unsigned long int (file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)* get_unmapped_area; unsigned long int mmap_base; unsigned long int mmap_legacy_base; unsigned long int task_size; unsigned long int highest_vm_end; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_t has_pinned; seqcount_t write_protect_seq; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; rw_semaphore mmap_lock; list_head mmlist; unsigned long int hiwater_rss; unsigned long int hiwater_vm; unsigned long int total_vm; unsigned long int locked_vm; atomic64_t pinned_vm; unsigned long int data_vm; unsigned long int exec_vm; unsigned long int stack_vm; unsigned long int def_flags; spinlock_t arg_lock; unsigned long int start_code; unsigned long int end_code; unsigned long int start_data; unsigned long int end_data; unsigned long int start_brk; unsigned long int brk; unsigned long int start_stack; unsigned long int arg_start; unsigned long int arg_end; unsigned long int env_start; unsigned long int env_end; unsigned long int saved_auxv[46]; mm_rss_stat rss_stat; linux_binfmt* binfmt; mm_context_t context; unsigned long int flags; core_state* core_state; spinlock_t ioctx_lock; kioctx_table* ioctx_table; user_namespace* user_ns; file* exe_file; mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; uprobes_state uprobes_state; work_struct async_put_work; u32 pasid;}
    to:
      struct {vm_area_struct* mmap; rb_root mm_rb; u64 vmacache_seqnum; rwlock_t mm_rb_lock; unsigned long int (file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)* get_unmapped_area; unsigned long int mmap_base; unsigned long int mmap_legacy_base; unsigned long int task_size; unsigned long int highest_vm_end; pgd_t* pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; atomic_t has_pinned; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; rw_semaphore mmap_lock; list_head mmlist; unsigned long int hiwater_rss; unsigned long int hiwater_vm; unsigned long int total_vm; unsigned long int locked_vm; atomic64_t pinned_vm; unsigned long int data_vm; unsigned long int exec_vm; unsigned long int stack_vm; unsigned long int def_flags; seqcount_t write_protect_seq; spinlock_t arg_lock; unsigned long int start_code; unsigned long int end_code; unsigned long int start_data; unsigned long int end_data; unsigned long int start_brk; unsigned long int brk; unsigned long int start_stack; unsigned long int arg_start; unsigned long int arg_end; unsigned long int env_start; unsigned long int env_end; unsigned long int saved_auxv[46]; mm_rss_stat rss_stat; linux_binfmt* binfmt; mm_context_t context; unsigned long int flags; core_state* core_state; spinlock_t ioctx_lock; kioctx_table* ioctx_table; user_namespace* user_ns; file* exe_file; mmu_notifier_subscriptions* notifier_subscriptions; atomic_t tlb_flush_pending; uprobes_state uprobes_state; work_struct async_put_work; u32 pasid;}
    and size changed from 7424 to 7360 (in bits) (by -64 bits)
    'unsigned long int cpu_bitmap[]' offset changed (by -64 bits)
  3735 impacted interfaces

'struct mmc_bus_ops at core.h:20:1' changed:
  type size changed from 768 to 896 (in bits)
  1 data member insertion:
    'u64 android_vendor_data1[2]', at offset 768 (in bits) at core.h:34:1
  89 impacted interfaces

'struct mmc_card at card.h:244:1' changed:
  type size changed from 13504 to 13568 (in bits)
  1 data member insertion:
    'u64 android_vendor_data1', at offset 13504 (in bits) at card.h:317:1
  89 impacted interfaces

'struct mmc_host at host.h:279:1' changed:
  type size hasn't changed
  1 data member insertion:
    'u64 android_vendor_data1', at offset 13440 (in bits) at host.h:488:1
  there are data member changes:
    'u64 android_oem_data1' offset changed (by +64 bits)
  89 impacted interfaces

'struct net at net_namespace.h:56:1' changed:
  details were reported earlier

'struct request at blkdev.h:127:1' changed:
  type size changed from 2304 to 2368 (in bits)
  1 data member insertion:
    'u64 alloc_time_ns', at offset 1408 (in bits) at blkdev.h:194:1
  there are data member changes:
    12 ('u64 start_time_ns' .. 'unsigned long int deadline') offsets changed (by +64 bits)
    anonymous data member 'union {__call_single_data csd; u64 fifo_time;}' offset changed from 1920 to 1984 (in bits) (by +64 bits)
    2 ('rq_end_io_fn* end_io' .. 'void* end_io_data') offsets changed (by +64 bits)
  3735 impacted interfaces

'struct request_queue at blkdev.h:396:1' changed:
  type size changed from 15616 to 15680 (in bits)
  1 data member insertion:
    'u64 android_oem_data1', at offset 15616 (in bits) at blkdev.h:592:1
  3735 impacted interfaces

'struct rq at sched.h:914:1' changed (indirectly):
  details were reported earlier

'struct ufs_dev_info at ufs.h:529:1' changed:
  type size hasn't changed
  1 data member insertion:
    'bool hpb_enabled', at offset 304 (in bits) at ufs.h:596:1
  38 impacted interfaces

'struct ufs_hba at ufshcd.h:737:1' changed (indirectly):
  type size hasn't changed
  there are data member changes:
    type 'struct ufs_dev_info' of 'ufs_hba::dev_info' changed, as reported earlier
  38 impacted interfaces

Bug: 192107071
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ib0c3e59b2e33922b00a374801a8aa5d544047848
2021-07-01 22:51:06 -07:00
John Stultz
6ae626fd8e ANDROID: ABI: hikey960_gki.fragment: Add cfg80211 and mac80211 as modules
In change Iab3971cd0d78d669536b8eb0505c60caa3aafeee the
cfg80211 and mac80211 drivers were switched to modules, so we
need to add them as such to the hikey960_gki.fragment.

With this change, hikey960 boots and wifi comes up.

Bug: 189918667
Fixes: Iab3971cd0d78d669536b8eb0505c60caa3aafeee
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I8cd3dd3dc76852e270b7b4ba518323af92ff6dda
2021-07-01 22:32:07 -07:00
Todd Kjos
7d8c327a64 ANDROID: ABI: gki_defconfig: Make cfg80211 and mac80211 modules
Remove CONFIG_CFG80211 and CONFIG_MAC80211 from gki_defconfig
to allow vendors to incorporate features that have landed upstream.

Also need to update symbol lists since the related 80211
symbols are no longer exported from the core kernel.

Bug: 189918667
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Iab3971cd0d78d669536b8eb0505c60caa3aafeee
2021-07-01 22:32:06 -07:00
Todd Kjos
ee12781f0c Revert "ANDROID: GKI: Enable some necessary CFG80211 configs for WIFI"
This reverts commit bba0d8a87e.

CFG80211 changing to a module so these configs go into device-specific
defconfig fragments.

Bug: 189918667
Change-Id: Ie4b70407369da3c865541e4857c3ba18fec24587
2021-07-01 22:32:06 -07:00
Kalesh Singh
25c500f2dc Revert "ANDROID: dmabuf: Add mmap_count to struct dmabuf"
This reverts commit 9132fbe545.

Reason for revert: mmap_count is no longer used for reporting dma-bufs
and introduces subtle bugs related to changing the vm_ops

Bug: 192459295
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Change-Id: Id07802e5a3e18918c5c46e31b73be4a594f7dc26
2021-07-01 22:32:05 -07:00
Kalesh Singh
32f0fa685c Revert "ANDROID: dma-buf: Don't change vm_ops if vm_file changes"
This reverts commit fca37c251a.

Reason for revert: mmap_count is no longer used for reporting dma-bufs and introduces subtle bugs related to changing the vm_ops

Bug: 192459295
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Change-Id: I52fb55e1048a151fae7641c9646a231d59b3224d
2021-07-01 22:32:05 -07:00
Sahitya Tummala
f45304d091 ANDROID: GKI: mmc: add Android ABI padding to some structures
Add ABI padding to some of the data structures to accommodate
new eMMC features enablement later.

Bug: 192337957
Change-Id: Ica3f96ea004fb89e4b46ef9734864c655cdcd277
Signed-off-by: Sahitya Tummala <quic_stummala@quicinc.com>
2021-07-01 22:32:05 -07:00
Siddharth Gupta
00d9f57a69 ANDROID: GKI: Add rproc coredump APIs to symbol list
This change adds the rproc_coredump() and rproc_coredump_cleanup()
APIs to the qcom symbol list.

Bug: 188764827
Change-Id: I32a56f5d3caabc61ed94f6de0d7daa29becb490d
Signed-off-by: Siddharth Gupta <quic_sidgup@quicinc.com>
2021-07-01 22:32:05 -07:00
Siddharth Gupta
3136de9b19 ANDROID: GKI: Add remoteproc vendor hook symbols
Add the the symbols exported by the remoteproc vendor hook to the
qcom symbol list.

Change-Id: Iffd58aa5d367141de1c065488519b29fb802fd86
Signed-off-by: Siddharth Gupta <quic_sidgup@quicinc.com>
2021-07-01 22:32:04 -07:00
Siddharth Gupta
019990276b ANDROID: rproc: Add vendor hook for recovery
Add vendor hook for rproc recovery to allow vendor enhancements.

Bug: 188764827
Change-Id: If6f0846c141a4ad40748d552002f65b94d9c52d5
Signed-off-by: Siddharth Gupta <quic_sidgup@quicinc.com>
2021-07-01 22:32:04 -07:00
Rick Yiu
df80ec7469 ANDROID: sched: Add vendor data in struct cfs_rq
For vendor specific data in struct cfs_rq.

Bug: 188947181
Signed-off-by: Rick Yiu <rickyiu@google.com>
Change-Id: I7c322c6812829c19014426b5721cd1fb0c37a53f
2021-07-01 22:32:03 -07:00
zhang chuang
3ad47a04c9 ANDROID: Add oem data array for async binder transaction
We need to obtain the pid and tid information of the caller in the async binder transaction.
So we need to add the pid and tid information in the async binder transaction.

Bug: 190413570
Signed-off-by: zhang chuang <zhangchuang3@xiaomi.com>
Change-Id: If67c972aa53196d626ccfeb46b6b61e43ddc57ae
2021-07-01 22:32:03 -07:00
Feng Tang
4b7c035626 UPSTREAM: mm: relocate 'write_protect_seq' in struct mm_struct
0day robot reported a 9.2% regression for will-it-scale mmap1 test
case[1], caused by commit 57efa1fe59 ("mm/gup: prevent gup_fast from
racing with COW during fork").

Further debug shows the regression is due to that commit changes the
offset of hot fields 'mmap_lock' inside structure 'mm_struct', thus some
cache alignment changes.

From the perf data, the contention for 'mmap_lock' is very severe and
takes around 95% cpu cycles, and it is a rw_semaphore

        struct rw_semaphore {
                atomic_long_t count;	/* 8 bytes */
                atomic_long_t owner;	/* 8 bytes */
                struct optimistic_spin_queue osq; /* spinner MCS lock */
                ...

Before commit 57efa1fe59 adds the 'write_protect_seq', it happens to
have a very optimal cache alignment layout, as Linus explained:

 "and before the addition of the 'write_protect_seq' field, the
  mmap_sem was at offset 120 in 'struct mm_struct'.

  Which meant that count and owner were in two different cachelines,
  and then when you have contention and spend time in
  rwsem_down_write_slowpath(), this is probably *exactly* the kind
  of layout you want.

  Because first the rwsem_write_trylock() will do a cmpxchg on the
  first cacheline (for the optimistic fast-path), and then in the
  case of contention, rwsem_down_write_slowpath() will just access
  the second cacheline.

  Which is probably just optimal for a load that spends a lot of
  time contended - new waiters touch that first cacheline, and then
  they queue themselves up on the second cacheline."

After the commit, the rw_semaphore is at offset 128, which means the
'count' and 'owner' fields are now in the same cacheline, and causes
more cache bouncing.

Currently there are 3 "#ifdef CONFIG_XXX" before 'mmap_lock' which will
affect its offset:

  CONFIG_MMU
  CONFIG_MEMBARRIER
  CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES

The layout above is on 64 bits system with 0day's default kernel config
(similar to RHEL-8.3's config), in which all these 3 options are 'y'.
And the layout can vary with different kernel configs.

Relayouting a structure is usually a double-edged sword, as sometimes it
can helps one case, but hurt other cases.  For this case, one solution
is, as the newly added 'write_protect_seq' is a 4 bytes long seqcount_t
(when CONFIG_DEBUG_LOCK_ALLOC=n), placing it into an existing 4 bytes
hole in 'mm_struct' will not change other fields' alignment, while
restoring the regression.

Link: https://lore.kernel.org/lkml/20210525031636.GB7744@xsang-OptiPlex-9020/ [1]
Reported-by: kernel test robot <oliver.sang@intel.com>
Signed-off-by: Feng Tang <feng.tang@intel.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Bug: 161946584
(cherry picked from commit 2e3025434a)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9142789c5d57d167e5bb1f450d914bf2111894a2
2021-07-01 22:32:03 -07:00
Shaleen Agrawal
f9fcdaeab7 ANDROID: sched: remove regular vendor hooks for 32bit execve
As restricted hooks have been introduced, regular vendor hooks are no
longer necessary.

Bug: 187917024
Change-Id: Ia70e9dd1bd7373e19bdc82e90a2384201076bc0b
Signed-off-by: Shaleen Agrawal <shalagra@codeaurora.org>
2021-07-01 22:32:03 -07:00
Yang Yang
19316b4889 ANDROID: GKI: enable CONFIG_BLK_CGROUP_IOCOST
Enable CONFIG_BLK_CGROUP_IOCOST to help control IO resources.

Bug: 188749221
Change-Id: I611b3ff5929d0a998fa6241967887803636b7588
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-07-01 22:32:02 -07:00
Yang Yang
1f23e139ad ANDROID: GKI: Add ANDROID_OEM_DATA in struct blk_mq_tags
Add ANDROID_OEM_DATA for implement of oem gki

Bug: 188749221
Change-Id: I1feba2334aa34e3bc46eb9d0217118485405beb4
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-07-01 22:32:02 -07:00
Yang Yang
5b388812e8 ANDROID: GKI: Add ANDROID_OEM_DATA in struct blk_mq_ctx
Add ANDROID_OEM_DATA for implement of oem gki

Bug: 188749221
Change-Id: Ide8378a898de01a34d8ca3c34472844cd4ffa71c
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-07-01 22:32:01 -07:00
Yang Yang
3a0675c6ca ANDROID: GKI: Add ANDROID_OEM_DATA in struct request_queue
Add ANDROID_OEM_DATA for implement of oem gki

Bug: 188749221
Change-Id: I96b1c690fda172d0c490e944557a674a37620742
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-07-01 22:32:01 -07:00
Todd Kjos
cebb002b99 ANDROID: ABI: update virtual device symbols for CAN
Need symbols for newly added CAN drivers

Bug: 190375772
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ibaa1c0963e2e5efb0cf77e6661a683cb00f095d9
2021-07-01 22:32:01 -07:00
Roman Kiryanov
b971e8ab32 ANDROID: Add CONFIG_CAN=y to gki_defconfig
required for Android Auto.

Bug: 190375772
Signed-off-by: Roman Kiryanov <rkir@google.com>
Change-Id: I34ec0d68ce3ea1463738a16158adf854eebbb5af
2021-07-01 22:32:01 -07:00
Avri Altman
d6a486a194 FROMLIST: scsi: ufs: Make HCM parameter configurable
We can make use of this commit, to elaborate some more of the host
control mode logic, explaining what role play each and every variable.

While at it, allow those parameters to be configurable.

Bug: 183467926
Bug: 170940265
Bug: 183454255

Link: https://lore.kernel.org/lkml/20210607061401.58884-13-avri.altman@wdc.com/
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: Ib05c6643c69504b8d9442b0024cfe1b0b687a4ce
2021-07-01 22:32:00 -07:00
Avri Altman
fbf68bf104 FROMLIST: scsi: ufs: Add support for HCM
Support devices that report they are using host control mode.

Bug: 183467926
Bug: 170940265
Bug: 183454255

Link: https://lore.kernel.org/lkml/20210607061401.58884-12-avri.altman@wdc.com/
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I7cb80024255626feacfe4c344bbcc17727291a26
2021-07-01 22:32:00 -07:00
Avri Altman
dd41ce5581 FROMLIST: scsi: ufs: Do not send umap_all in host control mode
HPB-WRITE-BUFFER with buffer-id = 0x3h is supported in device control
mode only.

Bug: 183467926
Bug: 170940265
Bug: 183454255

link: https://lore.kernel.org/lkml/20210607061401.58884-11-avri.altman@wdc.com/
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I719f8bb876270d960aa92ddc53f29c9fc863fda6
2021-07-01 22:32:00 -07:00
Avri Altman
5e463110fb FROMLIST: scsi: ufs: Limit the number of inflight rb
in host control mode the host is the originator of map requests. To not
flood the device with map requests, use a simple throttling mechanism
that limits the number of inflight map requests.

Bug: 183467926
Bug: 170940265
Bug: 183454255

Link: https://lore.kernel.org/lkml/20210607061401.58884-10-avri.altman@wdc.com/
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I75a5ced3be60569adcd75befa17d8a6340c147fd
2021-07-01 22:31:59 -07:00
Avri Altman
76aa39a9f2 FROMLIST: scsi: ufs: Add "Cold" regions timer
In order not to hang on to “cold” regions, we shall inactivate a
region that has no READ access for a predefined amount of time -
READ_TO_MS. For that purpose we shall monitor the active regions list,
polling it on every POLLING_INTERVAL_MS. On timeout expiry we shall add
the region to the "to-be-inactivated" list, unless it is clean and did
not exhaust its READ_TO_EXPIRIES - another parameter.

All this does not apply to pinned regions.

Bug: 183467926
Bug: 170940265
Bug: 183454255

Link: https://lore.kernel.org/lkml/20210607061401.58884-9-avri.altman@wdc.com/
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I2d2efbbc612ccec6ef7036cc1e1d31bd8bfd4174
2021-07-01 22:31:59 -07:00