Merge keystone/android12-5.10-keystone-qcom-release.43+ (fb8aecf) into msm-5.10

* refs/heads/tmp-fb8aecf:
  FROMLIST: usb: dwc3: usb: dwc3: Force stop EP0 transfers during pullup disable
  ANDROID: Update symbol list for mtk
  ANDROID: scheduler: export task_sched_runtime
  FROMLIST: mm: slub: fix slub_debug disabling for list of slabs
  FROMLIST: mm/madvise: add MADV_WILLNEED to process_madvise()
  ANDROID: Update the exynos symbol list
  FROMGIT: firmware: arm_scmi: Free mailbox channels if probe fails
  ANDROID: GKI: gki_defconfig: Enable CONFIG_NFC
  ANDROID: sched: Make uclamp changes depend on CAP_SYS_NICE
  ANDROID: GKI: update xiaomi symbol list and ABI XML
  ANDROID: ABI: update generic symbol list
  ANDROID: consolidate.fragment: Add missing arguments from gki_defconfig
  ANDROID: scsi: ufs: Enable CONFIG_SCSI_UFS_HPB
  ANDROID: scsi: ufs: Make CONFIG_SCSI_UFS_HPB compatible with the GKI

Change-Id: Ie17c7b85770678d3661b4e196eb10c194791a723
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
This commit is contained in:
Ivaylo Georgiev 2021-08-19 00:10:42 -07:00
commit dee4171e89
19 changed files with 5756 additions and 5337 deletions

File diff suppressed because it is too large Load Diff

View File

@ -207,6 +207,8 @@
cpu_hwcap_keys
cpu_hwcaps
cpuidle_get_cpu_driver
cpuidle_pause_and_lock
cpuidle_resume_and_unlock
cpumask_next
cpumask_next_and
cpu_number
@ -334,6 +336,7 @@
devm_gpio_request_one
devm_hwrng_register
devm_i2c_new_dummy_device
devm_iio_channel_get
devm_iio_device_alloc
__devm_iio_device_register
devm_input_allocate_device
@ -923,11 +926,14 @@
ignore_console_lock_warning
iio_channel_get
iio_channel_release
iio_convert_raw_to_processed
iio_device_alloc
iio_device_free
__iio_device_register
iio_device_unregister
iio_get_channel_type
iio_read_channel_processed
iio_read_channel_raw
inc_zone_page_state
inet_csk_get_port
init_dummy_netdev
@ -1467,6 +1473,7 @@
proc_create_data
proc_create_seq_private
proc_mkdir
proc_mkdir_data
proc_remove
proc_set_size
proc_set_user
@ -1897,6 +1904,7 @@
time64_to_tm
topology_set_thermal_pressure
_totalram_pages
__trace_bprintk
trace_event_buffer_commit
trace_event_buffer_reserve
trace_event_ignore_this_pid

View File

@ -68,6 +68,7 @@
blkdev_put
blk_execute_rq_nowait
blk_get_request
blk_ksm_init_passthrough
blk_put_request
blk_queue_flag_clear
blk_queue_flag_set

View File

@ -190,6 +190,7 @@
cpufreq_driver_resolve_freq
__cpufreq_driver_target
cpufreq_enable_fast_switch
cpufreq_frequency_table_get_index
cpufreq_generic_attr
cpufreq_generic_frequency_table_verify
cpufreq_get_policy
@ -397,6 +398,7 @@
devm_pinctrl_get
devm_pinctrl_put
devm_pinctrl_register_and_init
devm_platform_get_and_ioremap_resource
devm_platform_ioremap_resource
devm_platform_ioremap_resource_byname
devm_power_supply_get_by_phandle
@ -531,6 +533,7 @@
driver_create_file
driver_remove_file
driver_unregister
drm_add_edid_modes
drm_add_modes_noedid
drm_atomic_add_affected_connectors
drm_atomic_get_crtc_state
@ -568,6 +571,7 @@
drm_connector_attach_encoder
drm_connector_cleanup
drm_connector_init
drm_connector_update_edid_property
drm_crtc_cleanup
drm_crtc_handle_vblank
drm_crtc_init_with_planes
@ -581,6 +585,16 @@
drm_dev_put
drm_dev_register
drm_dev_unregister
drm_dp_aux_init
drm_dp_aux_register
drm_dp_channel_eq_ok
drm_dp_clock_recovery_ok
drm_dp_dpcd_read
drm_dp_dpcd_write
drm_dp_link_train_channel_eq_delay
drm_dp_link_train_clock_recovery_delay
drm_edid_duplicate
drm_edid_to_sad
drm_encoder_cleanup
drm_encoder_init
__drm_err
@ -603,8 +617,8 @@
drm_gem_prime_fd_to_handle
drm_gem_prime_handle_to_fd
drm_gem_prime_import
drm_gem_private_object_init
drm_gem_vm_close
drm_get_edid
drm_helper_hpd_irq_event
drm_helper_mode_fill_fb_struct
drm_helper_probe_single_connector_modes
@ -813,6 +827,7 @@
i2c_add_adapter
i2c_del_adapter
i2c_del_driver
i2c_get_adapter
i2c_get_dma_safe_msg_buf
i2c_put_dma_safe_msg_buf
i2c_register_driver
@ -1072,6 +1087,7 @@
media_entity_pads_init
media_entity_remote_pad
media_entity_remove_links
__media_entity_setup_link
media_graph_walk_next
media_graph_walk_start
media_pipeline_start
@ -1421,6 +1437,7 @@
__put_net
__put_page
put_pid
put_task_stack
__put_task_struct
put_unused_fd
put_vaddr_frames
@ -1697,6 +1714,7 @@
skb_queue_purge
skb_queue_tail
skb_trim
smp_call_function
snd_card_add_dev_attr
snd_ctl_boolean_mono_info
snd_jack_set_key
@ -1847,6 +1865,7 @@
tasklist_lock
__task_pid_nr_ns
__task_rq_lock
task_sched_runtime
thermal_cooling_device_unregister
thermal_of_cooling_device_register
thermal_zone_get_temp
@ -1865,6 +1884,7 @@
trace_event_raw_init
trace_event_reg
trace_handle_return
__traceiter_android_rvh_after_enqueue_task
__traceiter_android_rvh_cpu_overutilized
__traceiter_android_rvh_dequeue_task
__traceiter_android_rvh_dequeue_task_fair
@ -1873,6 +1893,8 @@
__traceiter_android_rvh_find_busiest_group
__traceiter_android_rvh_find_energy_efficient_cpu
__traceiter_android_rvh_finish_prio_fork
__traceiter_android_rvh_media_device_setup_link
__traceiter_android_rvh_new_task_stats
__traceiter_android_rvh_prepare_prio_fork
__traceiter_android_rvh_rtmutex_prepare_setprio
__traceiter_android_rvh_sched_newidle_balance
@ -1881,6 +1903,9 @@
__traceiter_android_rvh_set_user_nice
__traceiter_android_rvh_tick_entry
__traceiter_android_rvh_uclamp_eff_get
__traceiter_android_rvh_v4l2subdev_set_fmt
__traceiter_android_rvh_v4l2subdev_set_frame_interval
__traceiter_android_rvh_v4l2subdev_set_selection
__traceiter_android_vh_alter_futex_plist_add
__traceiter_android_vh_alter_rwsem_list_add
__traceiter_android_vh_arch_set_freq_scale
@ -1900,6 +1925,7 @@
__traceiter_android_vh_finish_update_load_avg_se
__traceiter_android_vh_iommu_alloc_iova
__traceiter_android_vh_iommu_free_iova
__traceiter_android_vh_ipv6_gen_linklocal_addr
__traceiter_android_vh_logbuf
__traceiter_android_vh_override_creds
__traceiter_android_vh_prepare_update_load_avg_se
@ -1929,6 +1955,9 @@
__traceiter_rwmmio_read
__traceiter_rwmmio_write
__traceiter_sched_update_nr_running_tp
__traceiter_task_newtask
__traceiter_xhci_urb_giveback
__tracepoint_android_rvh_after_enqueue_task
__tracepoint_android_rvh_cpu_overutilized
__tracepoint_android_rvh_dequeue_task
__tracepoint_android_rvh_dequeue_task_fair
@ -1937,6 +1966,8 @@
__tracepoint_android_rvh_find_busiest_group
__tracepoint_android_rvh_find_energy_efficient_cpu
__tracepoint_android_rvh_finish_prio_fork
__tracepoint_android_rvh_media_device_setup_link
__tracepoint_android_rvh_new_task_stats
__tracepoint_android_rvh_prepare_prio_fork
__tracepoint_android_rvh_rtmutex_prepare_setprio
__tracepoint_android_rvh_sched_newidle_balance
@ -1945,6 +1976,9 @@
__tracepoint_android_rvh_set_user_nice
__tracepoint_android_rvh_tick_entry
__tracepoint_android_rvh_uclamp_eff_get
__tracepoint_android_rvh_v4l2subdev_set_fmt
__tracepoint_android_rvh_v4l2subdev_set_frame_interval
__tracepoint_android_rvh_v4l2subdev_set_selection
__tracepoint_android_vh_alter_futex_plist_add
__tracepoint_android_vh_alter_rwsem_list_add
__tracepoint_android_vh_arch_set_freq_scale
@ -1964,6 +1998,7 @@
__tracepoint_android_vh_finish_update_load_avg_se
__tracepoint_android_vh_iommu_alloc_iova
__tracepoint_android_vh_iommu_free_iova
__tracepoint_android_vh_ipv6_gen_linklocal_addr
__tracepoint_android_vh_logbuf
__tracepoint_android_vh_override_creds
__tracepoint_android_vh_prepare_update_load_avg_se
@ -1996,6 +2031,8 @@
__tracepoint_rwmmio_write
__tracepoint_sched_update_nr_running_tp
tracepoint_srcu
__tracepoint_task_newtask
__tracepoint_xhci_urb_giveback
trace_print_array_seq
trace_print_hex_seq
trace_print_symbols_seq
@ -2385,6 +2422,7 @@
dma_sync_single_for_device
downgrade_write
down_read_trylock
drm_gem_private_object_init
get_user_pages
get_user_pages_fast
gpiod_set_raw_value
@ -2402,7 +2440,6 @@
kstrtobool_from_user
ktime_get_raw
led_classdev_unregister
__media_entity_setup_link
memdup_user
__mmdrop
module_put
@ -2415,7 +2452,6 @@
param_ops_string
perf_num_counters
pin_user_pages_remote
put_task_stack
rb_prev
rb_replace_node
__release_region
@ -2445,7 +2481,6 @@
si_meminfo
skb_pull_rcsum
skb_realloc_headroom
smp_call_function
smp_call_function_single
snd_soc_component_test_bits
sprint_symbol_no_offset
@ -2455,31 +2490,17 @@
syscore_suspend
system_long_wq
thermal_zone_device_update
__traceiter_android_rvh_after_enqueue_task
__traceiter_android_rvh_media_device_setup_link
__traceiter_android_rvh_sched_rebalance_domains
__traceiter_android_rvh_v4l2subdev_set_fmt
__traceiter_android_rvh_v4l2subdev_set_frame_interval
__traceiter_android_rvh_v4l2subdev_set_selection
__traceiter_android_vh_cgroup_attach
__traceiter_android_vh_ipv6_gen_linklocal_addr
__traceiter_android_vh_is_fpsimd_save
__traceiter_android_vh_media_device_setup_link
__traceiter_android_vh_v4l2subdev_set_fmt
__traceiter_android_vh_v4l2subdev_set_frame_interval
__traceiter_android_vh_v4l2subdev_set_selection
__traceiter_gpu_mem_total
__traceiter_task_newtask
__traceiter_xhci_urb_giveback
trace_output_call
__tracepoint_android_rvh_after_enqueue_task
__tracepoint_android_rvh_media_device_setup_link
__tracepoint_android_rvh_sched_rebalance_domains
__tracepoint_android_rvh_v4l2subdev_set_fmt
__tracepoint_android_rvh_v4l2subdev_set_frame_interval
__tracepoint_android_rvh_v4l2subdev_set_selection
__tracepoint_android_vh_cgroup_attach
__tracepoint_android_vh_ipv6_gen_linklocal_addr
__tracepoint_android_vh_is_fpsimd_save
__tracepoint_android_vh_media_device_setup_link
__tracepoint_android_vh_ufs_update_sdev
@ -2487,8 +2508,6 @@
__tracepoint_android_vh_v4l2subdev_set_frame_interval
__tracepoint_android_vh_v4l2subdev_set_selection
__tracepoint_gpu_mem_total
__tracepoint_task_newtask
__tracepoint_xhci_urb_giveback
trace_print_flags_seq
try_module_get
tty_driver_flush_buffer

View File

@ -1,10 +1,9 @@
[abi_symbol_list]
# commonly used symbols
# required by xxx.ko
# required by touch module
proc_mkdir_data
proc_create_seq_private
# required by aw8697-haptic.ko
devm_gpio_free
@ -37,6 +36,10 @@
scsi_report_bus_reset
scsi_scan_host
scsi_unblock_requests
scsi_change_queue_depth
scsi_print_command
scsi_dma_map
scsi_host_alloc
sg_copy_from_buffer
sg_copy_to_buffer
ufshcd_alloc_host
@ -47,10 +50,14 @@
ufshcd_map_desc_id_to_length
ufshcd_query_attr_retry
ufshcd_query_flag_retry
ufshcd_update_evt_hist
wait_for_completion_io_timeout
__scsi_add_device
__scsi_execute
blk_mq_free_tag_set
blk_queue_update_dma_alignment
blk_queue_update_dma_pad
blk_ksm_get_slot_idx
#required by cs35l41 module
regmap_raw_write_async
@ -112,3 +119,39 @@
simple_strtoul
sync_blockdev
wait_for_device_probe
#required by millet.ko
freezer_cgrp_subsys
__traceiter_android_vh_do_send_sig_info
__traceiter_android_vh_binder_preset
__traceiter_android_vh_binder_wait_for_work
__traceiter_android_vh_binder_trans
__traceiter_android_vh_binder_reply
__traceiter_android_vh_binder_alloc_new_buf_locked
__tracepoint_android_vh_do_send_sig_info
__tracepoint_android_vh_binder_preset
__tracepoint_android_vh_binder_wait_for_work
__tracepoint_android_vh_binder_trans
__tracepoint_android_vh_binder_reply
__tracepoint_android_vh_binder_alloc_new_buf_locked
#required by mi_sched.ko
__traceiter_android_vh_free_task
__tracepoint_android_vh_free_task
jiffies_64
#required by pm8941-pwrkey.ko module
console_printk
#required by binderinfo.ko module
__traceiter_android_vh_binder_transaction_init
__traceiter_android_vh_binder_print_transaction_info
__tracepoint_android_vh_binder_transaction_init
__tracepoint_android_vh_binder_print_transaction_info
#required by reclaim module
__traceiter_android_vh_tune_scan_type
__tracepoint_android_vh_tune_scan_type
__traceiter_android_vh_tune_swappiness
__tracepoint_android_vh_tune_swappiness

View File

@ -4,7 +4,7 @@
# CONFIG_BITS_TEST is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
CONFIG_CMDLINE="kasan.stacktrace=off stack_depot_disable=off page_owner=on no_hash_pointers panic_on_taint=0x20"
CONFIG_CMDLINE="kasan.stacktrace=off stack_depot_disable=off kvm-arm.mode=protected cgroup_disable=pressure cgroup.memory=nokmem page_owner=on no_hash_pointers panic_on_taint=0x20"
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y

View File

@ -271,6 +271,7 @@ CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_RFKILL=y
CONFIG_NFC=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
@ -301,6 +302,7 @@ CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y
CONFIG_SCSI_UFS_HISI=y
CONFIG_SCSI_UFS_BSG=y
CONFIG_SCSI_UFS_CRYPTO=y
CONFIG_SCSI_UFS_HPB=y
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y

View File

@ -248,6 +248,7 @@ CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_RFKILL=y
CONFIG_NFC=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
@ -274,6 +275,7 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y
CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y
CONFIG_SCSI_UFS_BSG=y
CONFIG_SCSI_UFS_CRYPTO=y
CONFIG_SCSI_UFS_HPB=y
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y

View File

@ -1385,6 +1385,21 @@ void scmi_unrequest_protocol_device(const struct scmi_device_id *id_table)
mutex_unlock(&scmi_requested_devices_mtx);
}
static int scmi_cleanup_txrx_channels(struct scmi_info *info)
{
int ret;
struct idr *idr = &info->tx_idr;
ret = idr_for_each(idr, info->desc->ops->chan_free, idr);
idr_destroy(&info->tx_idr);
idr = &info->rx_idr;
ret = idr_for_each(idr, info->desc->ops->chan_free, idr);
idr_destroy(&info->rx_idr);
return ret;
}
static int scmi_probe(struct platform_device *pdev)
{
int ret;
@ -1426,7 +1441,7 @@ static int scmi_probe(struct platform_device *pdev)
ret = scmi_xfer_info_init(info);
if (ret)
return ret;
goto clear_txrx_setup;
if (scmi_notification_init(handle))
dev_err(dev, "SCMI Notifications NOT available.\n");
@ -1439,7 +1454,7 @@ static int scmi_probe(struct platform_device *pdev)
ret = scmi_acquire_protocol(handle, SCMI_PROTOCOL_BASE);
if (ret) {
dev_err(dev, "unable to communicate with SCMI\n");
return ret;
goto notification_exit;
}
mutex_lock(&scmi_list_mutex);
@ -1478,6 +1493,12 @@ static int scmi_probe(struct platform_device *pdev)
}
return 0;
notification_exit:
scmi_notification_exit(&info->handle);
clear_txrx_setup:
scmi_cleanup_txrx_channels(info);
return ret;
}
void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id)
@ -1489,7 +1510,6 @@ static int scmi_remove(struct platform_device *pdev)
{
int ret = 0, id;
struct scmi_info *info = platform_get_drvdata(pdev);
struct idr *idr = &info->tx_idr;
struct device_node *child;
mutex_lock(&scmi_list_mutex);
@ -1513,14 +1533,7 @@ static int scmi_remove(struct platform_device *pdev)
idr_destroy(&info->active_protocols);
/* Safe to free channels since no more users */
ret = idr_for_each(idr, info->desc->ops->chan_free, idr);
idr_destroy(&info->tx_idr);
idr = &info->rx_idr;
ret = idr_for_each(idr, info->desc->ops->chan_free, idr);
idr_destroy(&info->rx_idr);
return ret;
return scmi_cleanup_txrx_channels(info);
}
static ssize_t protocol_version_show(struct device *dev,

View File

@ -9318,7 +9318,7 @@ int ufshcd_alloc_host(struct device *dev, struct ufs_hba **hba_handle)
}
host = scsi_host_alloc(&ufshcd_driver_template,
sizeof(struct ufs_hba));
sizeof(struct ufs_hba_with_hpb));
if (!host) {
dev_err(dev, "scsi_host_alloc failed\n");
err = -ENOMEM;

View File

@ -913,7 +913,8 @@ struct ufs_hba {
bool wb_enabled;
struct delayed_work rpm_dev_flush_recheck_work;
#ifdef CONFIG_SCSI_UFS_HPB
#if 0
/* This has been moved into struct ufs_hba_with_hpb. */
struct ufshpb_dev_info ufshpb_dev;
#endif
@ -935,6 +936,17 @@ struct ufs_hba {
ANDROID_KABI_RESERVE(4);
};
/*
* Compared to the upstream equivalent, @hpb_dev has been moved from struct
* ufs_hba into struct ufs_hba_with_hpb to satisfy the Android ABI checks.
*/
struct ufs_hba_with_hpb {
struct ufs_hba hba;
#ifdef CONFIG_SCSI_UFS_HPB
struct ufshpb_dev_info hpb_dev;
#endif
};
/* Returns true if clocks can be gated. Otherwise false */
static inline bool ufshcd_is_clkgating_allowed(struct ufs_hba *hba)
{

View File

@ -35,15 +35,20 @@ static struct workqueue_struct *ufshpb_wq;
static void ufshpb_update_active_info(struct ufshpb_lu *hpb, int rgn_idx,
int srgn_idx);
static inline struct ufshpb_dev_info *ufs_hba_to_hpb(struct ufs_hba *hba)
{
return &container_of(hba, struct ufs_hba_with_hpb, hba)->hpb_dev;
}
bool ufshpb_is_allowed(struct ufs_hba *hba)
{
return !(hba->ufshpb_dev.hpb_disabled);
return !(ufs_hba_to_hpb(hba)->hpb_disabled);
}
/* HPB version 1.0 is called as legacy version. */
bool ufshpb_is_legacy(struct ufs_hba *hba)
{
return hba->ufshpb_dev.is_legacy;
return ufs_hba_to_hpb(hba)->is_legacy;
}
static struct ufshpb_lu *ufshpb_get_hpb_data(struct scsi_device *sdev)
@ -2743,8 +2748,7 @@ void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev)
if (ret)
goto out;
hpb = ufshpb_alloc_hpb_lu(hba, sdev, &hba->ufshpb_dev,
&hpb_lu_info);
hpb = ufshpb_alloc_hpb_lu(hba, sdev, ufs_hba_to_hpb(hba), &hpb_lu_info);
if (!hpb)
goto out;
@ -2753,7 +2757,7 @@ void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev)
out:
/* All LUs are initialized */
if (atomic_dec_and_test(&hba->ufshpb_dev.slave_conf_cnt))
if (atomic_dec_and_test(&ufs_hba_to_hpb(hba)->slave_conf_cnt))
ufshpb_hpb_lu_prepared(hba);
}
@ -2810,7 +2814,7 @@ static int ufshpb_init_mem_wq(struct ufs_hba *hba)
void ufshpb_get_geo_info(struct ufs_hba *hba, u8 *geo_buf)
{
struct ufshpb_dev_info *hpb_info = &hba->ufshpb_dev;
struct ufshpb_dev_info *hpb_info = ufs_hba_to_hpb(hba);
int max_active_rgns = 0;
int hpb_num_lu;
@ -2836,7 +2840,7 @@ void ufshpb_get_geo_info(struct ufs_hba *hba, u8 *geo_buf)
void ufshpb_get_dev_info(struct ufs_hba *hba, u8 *desc_buf)
{
struct ufshpb_dev_info *hpb_dev_info = &hba->ufshpb_dev;
struct ufshpb_dev_info *hpb_dev_info = ufs_hba_to_hpb(hba);
int version, ret;
u32 max_hpb_single_cmd = HPB_MULTI_CHUNK_LOW;
@ -2873,7 +2877,7 @@ void ufshpb_get_dev_info(struct ufs_hba *hba, u8 *desc_buf)
void ufshpb_init(struct ufs_hba *hba)
{
struct ufshpb_dev_info *hpb_dev_info = &hba->ufshpb_dev;
struct ufshpb_dev_info *hpb_dev_info = ufs_hba_to_hpb(hba);
int try;
int ret;

View File

@ -218,7 +218,7 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
return ret;
}
static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
{
struct dwc3_ep *dep;
@ -1070,7 +1070,7 @@ void dwc3_ep0_send_delayed_status(struct dwc3 *dwc)
__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
}
static void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
{
struct dwc3_gadget_ep_cmd_params params;
u32 cmd;

View File

@ -2427,7 +2427,11 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)
msecs_to_jiffies(DWC3_PULL_UP_TIMEOUT));
if (ret == 0) {
dev_err(dwc->dev, "timed out waiting for SETUP phase\n");
return -ETIMEDOUT;
spin_lock_irqsave(&dwc->lock, flags);
dwc3_ep0_end_control_data(dwc, dwc->eps[0]);
dwc3_ep0_end_control_data(dwc, dwc->eps[1]);
dwc3_ep0_stall_and_restart(dwc);
spin_unlock_irqrestore(&dwc->lock, flags);
}
}

View File

@ -114,6 +114,9 @@ int __dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
int dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value);
int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
gfp_t gfp_flags);
void dwc3_ep0_stall_and_restart(struct dwc3 *dwc);
void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep);
int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol);
void dwc3_ep0_send_delayed_status(struct dwc3 *dwc);

View File

@ -1464,6 +1464,7 @@ drivers/scsi/ufs/ufshci-dwc.h
drivers/scsi/ufs/ufshci.h
drivers/scsi/ufs/ufs-hisi.c
drivers/scsi/ufs/ufs-hisi.h
drivers/scsi/ufs/ufshpb.c
drivers/scsi/ufs/ufshpb.h
drivers/scsi/ufs/ufs_quirks.h
drivers/scsi/ufs/ufs-sysfs.c
@ -3683,6 +3684,7 @@ include/net/netprio_cgroup.h
include/net/net_ratelimit.h
include/net/netrom.h
include/net/nexthop.h
include/net/nfc/nfc.h
include/net/nl802154.h
include/net/p8022.h
include/net/page_pool.h
@ -4247,6 +4249,7 @@ include/uapi/linux/net_namespace.h
include/uapi/linux/netrom.h
include/uapi/linux/net_tstamp.h
include/uapi/linux/nexthop.h
include/uapi/linux/nfc.h
include/uapi/linux/nfs2.h
include/uapi/linux/nfs3.h
include/uapi/linux/nfs4.h
@ -5525,6 +5528,15 @@ net/netlink/af_netlink.c
net/netlink/af_netlink.h
net/netlink/genetlink.c
net/netlink/policy.c
net/nfc/af_nfc.c
net/nfc/core.c
net/nfc/llcp_commands.c
net/nfc/llcp_core.c
net/nfc/llcp.h
net/nfc/llcp_sock.c
net/nfc/netlink.c
net/nfc/nfc.h
net/nfc/rawsock.c
net/packet/af_packet.c
net/packet/internal.h
net/rfkill/core.c

View File

@ -4217,6 +4217,7 @@ unsigned long long task_sched_runtime(struct task_struct *p)
return ns;
}
EXPORT_SYMBOL_GPL(task_sched_runtime);
/*
* This function gets called by the timer code, with HZ frequency.
@ -5554,6 +5555,10 @@ static int __sched_setscheduler(struct task_struct *p,
/* Normal users shall not reset the sched_reset_on_fork flag: */
if (p->sched_reset_on_fork && !reset_on_fork)
return -EPERM;
/* Can't change util-clamps */
if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP)
return -EPERM;
}
if (user) {

View File

@ -996,6 +996,7 @@ process_madvise_behavior_valid(int behavior)
switch (behavior) {
case MADV_COLD:
case MADV_PAGEOUT:
case MADV_WILLNEED:
return true;
default:
return false;

View File

@ -1378,12 +1378,13 @@ parse_slub_debug_flags(char *str, slab_flags_t *flags, char **slabs, bool init)
static int __init setup_slub_debug(char *str)
{
slab_flags_t flags;
slab_flags_t global_flags;
char *saved_str;
char *slab_list;
bool global_slub_debug_changed = false;
bool slab_list_specified = false;
slub_debug = DEBUG_DEFAULT_FLAGS;
global_flags = DEBUG_DEFAULT_FLAGS;
if (*str++ != '=' || !*str)
/*
* No options specified. Switch on full debugging.
@ -1395,7 +1396,7 @@ static int __init setup_slub_debug(char *str)
str = parse_slub_debug_flags(str, &flags, &slab_list, true);
if (!slab_list) {
slub_debug = flags;
global_flags = flags;
global_slub_debug_changed = true;
} else {
slab_list_specified = true;
@ -1404,16 +1405,18 @@ static int __init setup_slub_debug(char *str)
/*
* For backwards compatibility, a single list of flags with list of
* slabs means debugging is only enabled for those slabs, so the global
* slub_debug should be 0. We can extended that to multiple lists as
* slabs means debugging is only changed for those slabs, so the global
* slub_debug should be unchanged (0 or DEBUG_DEFAULT_FLAGS, depending
* on CONFIG_SLUB_DEBUG_ON). We can extended that to multiple lists as
* long as there is no option specifying flags without a slab list.
*/
if (slab_list_specified) {
if (!global_slub_debug_changed)
slub_debug = 0;
global_flags = slub_debug;
slub_debug_string = saved_str;
}
out:
slub_debug = global_flags;
if (slub_debug != 0 || slub_debug_string)
static_branch_enable(&slub_debug_enabled);
if ((static_branch_unlikely(&init_on_alloc) ||