From 336421804051b02ff4f3439f84aa66ec33889dbd Mon Sep 17 00:00:00 2001 From: Narendra Muppalla Date: Fri, 6 Nov 2020 17:17:25 -0800 Subject: [PATCH 01/41] ANDROID: ABI: Update allowed list for QCOM Leaf changes summary: 3 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable 3 Added functions: [A] 'function int drm_connector_set_tile_property(drm_connector*)' [A] 'function drm_tile_group* drm_mode_create_tile_group(drm_device*, char*)' [A] 'function drm_tile_group* drm_mode_get_tile_group(drm_device*, char*)' Bug: 171996270 Signed-off-by: Govinda Rao K S Signed-off-by: Narendra Muppalla Change-Id: Ia647561b76932a6fb6bd1f81a563cc95adca9b01 --- android/abi_gki_aarch64.xml | 861 +++++++++++++++++------------------ android/abi_gki_aarch64_qcom | 3 + 2 files changed, 430 insertions(+), 434 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 715bd63ce516..ba255654d385 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -1222,6 +1222,7 @@ + @@ -1369,11 +1370,13 @@ + + @@ -5326,6 +5329,17 @@ + + + + + + + + + + + @@ -14433,17 +14447,6 @@ - - - - - - - - - - - @@ -32891,7 +32894,7 @@ - + @@ -34275,7 +34278,7 @@ - + @@ -34536,7 +34539,7 @@ - + @@ -35542,7 +35545,7 @@ - + @@ -36487,6 +36490,10 @@ + + + + @@ -36541,6 +36548,16 @@ + + + + + + + + + + @@ -37237,14 +37254,6 @@ - - - - - - - - @@ -41110,17 +41119,17 @@ - + - + - + @@ -52692,7 +52701,7 @@ - + @@ -53011,7 +53020,7 @@ - + @@ -53100,7 +53109,7 @@ - + @@ -53987,6 +53996,7 @@ + @@ -54010,7 +54020,7 @@ - + @@ -54018,7 +54028,7 @@ - + @@ -54210,17 +54220,6 @@ - - - - - - - - - - - @@ -55219,7 +55218,7 @@ - + @@ -55483,6 +55482,14 @@ + + + + + + + + @@ -55500,8 +55507,8 @@ - - + + @@ -55529,20 +55536,6 @@ - - - - - - - - - - - - - - @@ -55646,17 +55639,17 @@ - + - + - + @@ -55795,14 +55788,14 @@ - + - + @@ -56247,6 +56240,20 @@ + + + + + + + + + + + + + + @@ -59788,7 +59795,7 @@ - + @@ -63140,7 +63147,7 @@ - + @@ -63149,7 +63156,7 @@ - + @@ -64404,7 +64411,7 @@ - + @@ -88563,14 +88570,6 @@ - - - - - - - - @@ -92918,6 +92917,14 @@ + + + + + + + + @@ -107973,240 +107980,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -108359,18 +108135,7 @@ - - - - - - - - - - - @@ -108553,13 +108318,6 @@ - - - - - - - @@ -108567,10 +108325,6 @@ - - - - @@ -108785,7 +108539,7 @@ - + @@ -108997,18 +108751,15 @@ - + - + - + - - - - + @@ -109016,7 +108767,7 @@ - + @@ -111630,14 +111381,6 @@ - - - - - - - - @@ -112804,6 +112547,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -114619,29 +114384,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -114649,7 +114392,7 @@ - + @@ -114657,7 +114400,7 @@ - + @@ -114665,7 +114408,7 @@ - + @@ -114673,7 +114416,7 @@ - + @@ -114681,7 +114424,7 @@ - + @@ -114692,7 +114435,7 @@ - + @@ -114703,7 +114446,15 @@ - + + + + + + + + + @@ -114711,14 +114462,6 @@ - - - - - - - - @@ -114741,7 +114484,7 @@ - + @@ -115665,14 +115408,6 @@ - - - - - - - - @@ -116705,14 +116440,6 @@ - - - - - - - - @@ -117198,17 +116925,6 @@ - - - - - - - - - - - @@ -117620,7 +117336,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -117704,6 +117681,17 @@ + + + + + + + + + + + @@ -122334,15 +122322,20 @@ - + - + - + + + + + + - + @@ -122820,7 +122813,7 @@ - + @@ -122846,13 +122839,13 @@ - + - + @@ -122860,35 +122853,35 @@ - + - + - + - + - + @@ -122897,28 +122890,28 @@ - + - + - + - + @@ -122926,12 +122919,12 @@ - + - + @@ -122939,18 +122932,18 @@ - + - + - + @@ -129961,6 +129954,6 @@ diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index bc7e54479399..90d04aded65a 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -663,6 +663,7 @@ drm_connector_list_iter_end drm_connector_list_iter_next drm_connector_register + drm_connector_set_tile_property drm_connector_unregister drm_connector_update_edid_property drm_crtc_cleanup @@ -781,9 +782,11 @@ drm_mode_copy drm_mode_create drm_mode_create_dp_colorspace_property + drm_mode_create_tile_group drm_mode_debug_printmodeline drm_mode_duplicate drm_mode_equal + drm_mode_get_tile_group drm_mode_object_find drm_mode_object_get drm_mode_object_put From 0b4009b30ff3d6b9eaa6f27ba7bd97706a9df920 Mon Sep 17 00:00:00 2001 From: Chanho Park Date: Thu, 12 Nov 2020 08:58:11 +0900 Subject: [PATCH 02/41] ANDROID: GKI: initial upload list for exynosauto soc This patch adds to upload initial symbol list for Exynosauto SoC. To find what has updated from GKI symbol easily, this list does not include full list of symbol. So, nothing has added to GKI ABI symbols. Bug: 172885440 Signed-off-by: Chanho Park Change-Id: I41cc355687a5ba859ad601b8f1efdad13e52f20f --- android/abi_gki_aarch64_exynosauto | 1330 ++++++++++++++++++++++++++++ build.config.gki.aarch64 | 1 + 2 files changed, 1331 insertions(+) create mode 100644 android/abi_gki_aarch64_exynosauto diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto new file mode 100644 index 000000000000..f0f54ce409a8 --- /dev/null +++ b/android/abi_gki_aarch64_exynosauto @@ -0,0 +1,1330 @@ +[abi_symbol_list] +# commonly used symbols + add_timer + __alloc_pages_nodemask + alloc_workqueue + __arch_copy_from_user + __arch_copy_to_user + arm64_const_caps_ready + atomic_notifier_call_chain + atomic_notifier_chain_register + __bitmap_andnot + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + cdev_init + __cfi_slowpath + __check_object_size + __class_create + class_destroy + clk_bulk_disable + clk_bulk_unprepare + clk_disable + clk_enable + clk_get_rate + clk_prepare + clk_put + clk_set_rate + clk_unprepare + complete + complete_all + __const_udelay + cpu_hwcap_keys + cpu_hwcaps + cpumask_next + cpu_number + __cpu_online_mask + __cpu_possible_mask + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + dev_driver_string + _dev_emerg + _dev_err + device_create_file + device_for_each_child + device_initialize + device_init_wakeup + device_property_present + device_property_read_u32_array + device_remove_file + _dev_info + devm_add_action + devm_clk_get + devm_free_irq + devm_gpiod_get_optional + devm_gpio_request_one + devm_ioremap + devm_ioremap_resource + devm_kfree + devm_kmalloc + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get + devm_pinctrl_get + devm_platform_ioremap_resource + devm_request_threaded_irq + devm_usb_get_phy_by_phandle + _dev_notice + dev_pm_opp_add + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + dma_alloc_attrs + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_get + dma_buf_kmap + dma_buf_kunmap + dma_buf_map_attachment + dma_buf_mmap + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_direct_map_page + dma_direct_map_sg + dma_direct_sync_sg_for_cpu + dma_direct_sync_sg_for_device + dma_direct_sync_single_for_cpu + dma_direct_sync_single_for_device + dma_direct_unmap_page + dma_direct_unmap_sg + dma_fence_add_callback + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_init + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_free_attrs + dma_release_channel + dma_request_slave_channel + dma_set_coherent_mask + dma_set_mask + down_read + drm_add_edid_modes + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_bridge_add + drm_bridge_remove + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_connector_register + drm_connector_update_edid_property + drm_display_mode_from_videomode + drm_err + drm_helper_probe_single_connector_modes + drm_kms_helper_hotplug_event + drm_mode_copy + drm_mode_create + drm_mode_duplicate + drm_mode_probed_add + drm_mode_vrefresh + drm_panel_detach + enable_irq + event_triggers_call + fd_install + find_next_bit + find_vma + finish_wait + flush_delayed_work + flush_work + flush_workqueue + fput + frame_vector_to_pages + free_irq + __free_pages + free_pages + freezing_slow_path + generic_handle_irq + get_device + __get_free_pages + get_task_mm + get_unused_fd_flags + get_user_pages + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_set_raw_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_to_desc + handle_edge_irq + handle_level_irq + handle_nested_irq + i2c_add_numbered_adapter + i2c_del_driver + i2c_new_dummy + i2c_register_driver + i2c_transfer + i2c_unregister_device + __init_rwsem + init_timer_key + init_wait_entry + __init_waitqueue_head + iomem_resource + iommu_register_device_fault_handler + iommu_unregister_device_fault_handler + ion_alloc + ion_query_heaps_kernel + __ioremap + iounmap + __irq_alloc_descs + __irq_domain_add + irq_domain_remove + irq_find_mapping + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_affinity_hint + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_wake + irq_to_desc + jiffies + kasprintf + kernel_kobj + kfree + kimage_vaddr + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_order_trace + kmem_cache_alloc_trace + kmemdup + kobject_create_and_add + krealloc + kstrdup + kstrtobool + kstrtoint + kstrtouint + kstrtoull + kthread_create_on_node + kthread_stop + ktime_get + ktime_get_mono_fast_ns + ktime_get_raw_ts64 + ktime_get_real_ts64 + __list_add_valid + __list_del_entry_valid + mdiobus_read + mdiobus_write + memcpy + memset + mfd_add_devices + mfd_remove_devices + mipi_dsi_attach + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + misc_deregister + misc_register + mmput + mod_delayed_work_on + mod_timer + module_layout + __msecs_to_jiffies + msleep + __mutex_init + mutex_lock + mutex_unlock + netif_carrier_off + nr_cpu_ids + __num_online_cpus + of_address_to_resource + of_alias_get_id + of_clk_get + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_mipi_dsi_host_by_node + of_find_node_by_name + of_find_property + of_get_child_by_name + of_get_drm_display_mode + of_get_named_gpio_flags + of_get_next_child + of_get_property + of_get_regulator_init_data + of_graph_get_remote_node + of_iomap + of_match_device + of_match_node + of_parse_phandle + of_platform_populate + of_property_count_elems_of_size + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_variable_u16_array + of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_reserved_mem_lookup + of_root + panic + panic_notifier_list + param_ops_bool + param_ops_int + param_ops_uint + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_valid + phy_disconnect + phy_ethtool_get_eee + phy_ethtool_ksettings_get + phy_ethtool_ksettings_set + phy_ethtool_set_eee + phy_mii_ioctl + phy_power_off + phy_power_on + phy_stop + physvirt_offset + pinctrl_lookup_state + pinctrl_pm_select_sleep_state + pinctrl_select_state + platform_bus_type + platform_device_add + platform_device_add_properties + platform_device_add_resources + platform_device_alloc + platform_device_put + platform_device_unregister + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_resource + platform_get_resource_byname + pm_qos_update_request + pm_runtime_allow + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + printk + put_device + __put_page + __put_task_struct + put_unused_fd + queue_delayed_work_on + queue_work_on + ___ratelimit + _raw_spin_lock + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_unlock + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + refcount_dec_and_test_checked + refcount_inc_checked + refcount_inc_not_zero_checked + __refrigerator + register_pm_notifier + register_restart_handler + register_syscore_ops + regmap_read + regmap_update_bits_base + regmap_write + regulator_disable + regulator_enable + regulator_list_voltage_linear + regulator_map_voltage_linear + regulator_register + regulator_unregister + release_firmware + __release_region + request_firmware + __request_region + request_threaded_irq + reset_control_assert + sched_clock + schedule + schedule_timeout + scnprintf + seq_printf + set_page_dirty_lock + sg_alloc_table + sg_alloc_table_from_pages + sg_free_table + sg_init_table + sg_next + simple_read_from_buffer + simple_strtoul + snprintf + sprintf + sscanf + __stack_chk_fail + __stack_chk_guard + strcasecmp + strcmp + strcpy + strlcpy + strlen + strncmp + strncpy + strnlen + strstr + subsys_system_register + __sw_hweight32 + __sw_hweight64 + sync_file_create + sync_file_get_fence + synchronize_irq + syscon_regmap_lookup_by_phandle + sysfs_create_file_ns + sysfs_create_group + sysfs_create_groups + sysfs_remove_group + system_freezing_cnt + system_wq + _totalram_pages + trace_define_field + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_ignore_this_pid + trace_event_raw_init + trace_event_reg + trace_handle_return + trace_print_symbols_seq + trace_raw_output_prep + trace_seq_printf + __udelay + unregister_chrdev_region + unregister_pm_notifier + up_read + usb_add_hcd + usb_disabled + usb_hcd_is_primary_hcd + usb_put_hcd + usb_remove_hcd + __usecs_to_jiffies + usleep_range + v4l2_device_register + v4l2_device_unregister + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + vabits_actual + vb2_buffer_done + vb2_dqbuf + vb2_mmap + vb2_plane_cookie + vb2_qbuf + vb2_querybuf + vb2_queue_init + vb2_queue_release + vb2_reqbufs + vb2_streamoff + vb2_streamon + vfree + video_devdata + video_device_alloc + video_device_release + video_ioctl2 + __video_register_device + video_unregister_device + vmalloc + vmalloc_to_page + vmap + vmemmap + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible_timeout + wait_for_completion_timeout + __wake_up + wake_up_process + __warn_printk + work_busy + +# required by adv7511.ko + cec_allocate_adapter + cec_delete_adapter + cec_received_msg_ts + cec_register_adapter + cec_s_phys_addr + cec_s_phys_addr_from_edid + cec_transmit_attempt_done_ts + cec_transmit_done_ts + cec_unregister_adapter + __devm_regmap_init_i2c + devm_regulator_bulk_get + drm_detect_hdmi_monitor + drm_do_get_edid + hdmi_avi_infoframe_init + hdmi_avi_infoframe_pack + i2c_new_ancillary_device + regcache_mark_dirty + regcache_sync + regmap_bulk_write + regmap_register_patch + regulator_bulk_disable + regulator_bulk_enable + +# required by bufq.ko + kstrndup + +# required by clk-exynos-audss.ko + __clk_get_name + clk_hw_register_divider + clk_hw_register_gate + clk_hw_register_mux + clk_hw_unregister_divider + clk_hw_unregister_gate + clk_hw_unregister_mux + of_clk_add_hw_provider + of_clk_del_provider + of_clk_hw_onecell_get + pm_runtime_force_resume + pm_runtime_force_suspend + +# required by clk_exynos.ko + __clk_get_hw + clk_hw_get_parent + clk_register + clk_register_clkdev + clk_register_fixed_factor + clk_register_fixed_rate + of_clk_add_provider + of_clk_src_onecell_get + +# required by cmupmucal.ko + pm_qos_add_request + +# required by dss.ko + __alloc_percpu + init_task + kstat + nr_irqs + of_count_phandle_with_args + __per_cpu_offset + proc_create + register_die_notifier + return_address + sched_show_task + smp_call_function + touch_softlockup_watchdog + __tracepoint_android_vh_ipi_stop + __tracepoint_device_pm_callback_end + __tracepoint_device_pm_callback_start + tracepoint_probe_register + __tracepoint_suspend_resume + +# required by dwc3-of-simple.ko + clk_bulk_enable + clk_bulk_get_all + clk_bulk_prepare + clk_bulk_put_all + of_platform_depopulate + of_reset_control_array_get + reset_control_deassert + reset_control_put + reset_control_reset + +# required by dwc3.ko + dev_fwnode + device_property_read_string + device_property_read_u8_array + devm_regulator_get + devm_usb_get_phy + extcon_find_edev_by_node + extcon_get_edev_by_phandle + extcon_get_extcon_dev + extcon_get_state + extcon_register_notifier + extcon_unregister_notifier + of_usb_get_phy_mode + phy_calibrate + phy_exit + phy_init + phy_reset + phy_set_mode_ext + platform_device_add_data + platform_device_del + platform_get_irq_byname_optional + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_pwr_opmode + typec_set_pwr_role + typec_unregister_partner + typec_unregister_port + usb_add_gadget_udc + usb_decode_ctrl + usb_del_gadget_udc + usb_ep_set_maxpacket_limit + usb_gadget_giveback_request + usb_gadget_map_request_by_dev + usb_gadget_set_state + usb_gadget_udc_reset + usb_gadget_unmap_request_by_dev + usb_gadget_vbus_connect + usb_gadget_vbus_disconnect + usb_get_dr_mode + usb_get_maximum_speed + usb_otg_state_string + usb_role_switch_register + usb_role_switch_unregister + wakeup_source_register + wakeup_source_unregister + +# required by ect_parser.ko + seq_lseek + seq_read + single_open + single_release + +# required by exynos-acme.ko + bitmap_parselist + __cpu_active_mask + cpufreq_cpu_get + cpufreq_cpu_get_raw + cpufreq_cpu_put + __cpufreq_driver_target + cpufreq_freq_transition_begin + cpufreq_freq_transition_end + cpufreq_frequency_table_verify + cpufreq_generic_attr + cpufreq_register_driver + cpufreq_table_index_unsorted + cpuhp_tasks_frozen + freq_qos_add_request + freq_qos_update_request + get_cpu_device + strsep + system_state + +# required by exynos-chipid_v2.ko + of_find_node_opts_by_path + soc_device_register + +# required by exynos-pd.ko + of_genpd_add_provider_simple + pm_genpd_add_subdomain + pm_genpd_init + +# required by exynos-pd_el3.ko + __arm_smccc_smc + +# required by exynos-pmu-if.ko + cpu_topology + +# required by exynos-reboot.ko + pm_power_off + +# required by exynos9drm.ko + add_wait_queue + bus_find_device + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_unbind_all + console_trylock + console_unlock + device_rename + drm_atomic_helper_check + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + drm_atomic_helper_crtc_destroy_state + drm_atomic_helper_crtc_duplicate_state + drm_atomic_helper_crtc_reset + drm_atomic_helper_disable_plane + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_vblanks + drm_atomic_private_obj_init + drm_bridge_attach + drm_compat_ioctl + drm_connector_list_iter_begin + drm_connector_list_iter_end + drm_connector_list_iter_next + drm_connector_set_tile_property + drm_connector_unregister + drm_crtc_arm_vblank_event + drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_count + drm_crtc_vblank_get + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_crtc_vblank_waitqueue + drm_dbg + drm_dev_alloc + drm_dev_dbg + drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_display_mode_to_videomode + drm_dp_aux_register + drm_dp_aux_unregister + drm_dp_bw_code_to_link_rate + drm_dp_calc_pbn_mode + drm_dp_channel_eq_ok + drm_dp_check_act_status + drm_dp_clock_recovery_ok + drm_dp_dpcd_read + drm_dp_dpcd_read_link_status + drm_dp_dpcd_write + drm_dp_find_vcpi_slots + drm_dp_link_train_channel_eq_delay + drm_dp_link_train_clock_recovery_delay + drm_dp_mst_allocate_vcpi + drm_dp_mst_deallocate_vcpi + drm_dp_mst_detect_port + drm_dp_mst_hpd_irq + drm_dp_mst_put_port_malloc + drm_dp_mst_reset_vcpi_slots + drm_dp_mst_topology_mgr_init + drm_dp_mst_topology_mgr_set_mst + drm_dp_update_payload_part1 + drm_dp_update_payload_part2 + drm_encoder_cleanup + drm_encoder_init + drm_flip_work_cleanup + drm_flip_work_commit + drm_flip_work_init + drm_flip_work_queue + drm_framebuffer_init + drm_gem_create_mmap_offset + drm_gem_handle_create + drm_gem_mmap + drm_gem_object_lookup + drm_gem_object_put + drm_gem_object_put_unlocked + drm_gem_object_release + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_private_object_init + drm_gem_vm_close + drm_gem_vm_open + drm_get_connector_status_name + drm_get_edid + drm_get_format_info + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_ioctl + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drm_mode_config_cleanup + drm_mode_config_init + drm_mode_config_reset + drm_mode_object_find + drm_mode_object_get + drm_mode_object_put + drm_object_attach_property + drm_of_component_match_add + drm_of_find_possible_crtcs + drm_open + drm_panel_attach + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_prepare + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_zpos_immutable_property + drm_plane_create_zpos_property + drm_poll + drm_prime_gem_destroy + drm_property_create + drm_property_create_range + drm_read + drm_release + drm_universal_plane_init + drm_vblank_init + kstrtou8 + mipi_dsi_host_register + mipi_dsi_host_unregister + mutex_is_locked + of_drm_find_bridge + of_drm_find_panel + of_get_next_available_child + of_graph_get_endpoint_by_regs + of_graph_get_next_endpoint + of_graph_get_remote_port_parent + of_graph_parse_endpoint + of_io_request_and_map + of_platform_device_create + of_property_match_string + strlcat + +# required by exynos_devfreq.ko + devfreq_add_device + devfreq_add_governor + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_device + devfreq_unregister_opp_notifier + dev_pm_opp_disable + dev_pm_opp_get_freq + dev_pm_opp_put + register_reboot_notifier + unregister_reboot_notifier + update_devfreq + +# required by exynos_mfc.ko + clk_get + iommu_dma_reserve_iova + iommu_get_domain_for_dev + iommu_map_sg + iommu_unmap + mutex_lock_interruptible + ns_to_timeval + vb2_plane_vaddr + vb2_poll + +# required by exynos_pm_qos.ko + kstrtoint_from_user + noop_llseek + _raw_read_lock_irqsave + _raw_read_unlock_irqrestore + +# required by exynos_thermal.ko + of_thermal_get_ntrips + of_thermal_is_trip_valid + thermal_zone_device_update + thermal_zone_of_sensor_register + thermal_zone_of_sensor_unregister + +# required by exynos_tty.ko + dma_get_slave_caps + dma_request_chan + do_SAK + handle_sysrq + register_console + tty_flip_buffer_push + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_port_tty_get + uart_add_one_port + uart_console_write + uart_get_baud_rate + uart_parse_options + uart_register_driver + uart_remove_one_port + uart_resume_port + uart_set_options + uart_suspend_port + uart_unregister_driver + uart_update_timeout + uart_write_wakeup + +# required by exynosauto9-itmon.ko + atomic_notifier_chain_unregister + devm_ioremap_nocache + +# required by g2d.ko + __arch_copy_in_user + compat_alloc_user_space + device_get_dma_attr + dma_fence_signal_locked + frame_vector_create + frame_vector_destroy + get_vaddr_frames + put_vaddr_frames + +# required by i2c-dev.ko + bus_register_notifier + bus_unregister_notifier + cdev_device_add + cdev_device_del + i2c_adapter_type + i2c_bus_type + i2c_for_each_dev + i2c_get_adapter + i2c_put_adapter + i2c_smbus_xfer + i2c_transfer_buffer_flags + i2c_verify_client + memdup_user + no_llseek + register_chrdev_region + +# required by i2c-exynosauto.ko + cpu_bit_bitmap + i2c_del_adapter + +# required by ion_exynos_mod.ko + adjust_managed_page_count + arch_setup_dma_ops + cma_alloc + cma_get_name + cma_release + contig_page_data + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + ion_buffer_prep_noncached + ion_buffer_zero + __ion_device_add_heap + ion_device_remove_heap + ion_free + ion_heap_map_kernel + ion_heap_map_user + ion_heap_unmap_kernel + kthread_should_stop + list_sort + mod_node_page_state + of_reserved_mem_device_init_by_idx + of_reserved_mem_device_release + register_oom_notifier + sched_setscheduler + +# required by mali_kbase.ko + anon_inode_getfd + __bitmap_weight + bpf_trace_run5 + cache_line_size + clear_page + __clk_is_enabled + __close_fd + dev_pm_opp_of_add_table + dev_pm_opp_of_remove_table + dev_pm_opp_put_regulators + dev_pm_opp_set_regulators + dma_fence_get_status + down + downgrade_write + down_trylock + down_write + dump_stack + __get_task_comm + get_user_pages_fast + get_user_pages_remote + hrtimer_active + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + kobject_put + ktime_get_raw + __mmdrop + module_put + of_machine_is_compatible + param_ops_byte + rb_erase + rb_first + rb_insert_color + rb_next + rb_prev + rb_replace_node + register_shrinker + regulator_get_optional + regulator_put + remap_pfn_range + remap_vmalloc_range + strcspn + strncasecmp + synchronize_rcu + sysfs_remove_file_ns + sysfs_streq + system_highpri_wq + trace_output_call + trace_print_array_seq + trace_print_flags_seq + try_module_get + unmap_mapping_range + unregister_shrinker + up + up_write + vmalloc_user + vmf_insert_pfn_prot + +# required by marvell.ko + __genphy_config_aneg + genphy_read_status + genphy_resume + genphy_suspend + __mdiobus_read + __mdiobus_write + phy_drivers_register + phy_drivers_unregister + phy_restore_page + phy_save_page + +# required by mcDrvModule.ko + alloc_chrdev_region + cdev_add + cdev_del + crypto_alloc_shash + crypto_destroy_tfm + crypto_shash_final + crypto_shash_update + device_create + device_destroy + d_path + get_task_exe_file + get_zeroed_page + __kthread_init_worker + kthread_queue_work + kthread_worker_fn + release_pages + set_cpus_allowed_ptr + sg_miter_next + sg_miter_start + sg_miter_stop + wait_for_completion_interruptible + wait_for_completion_killable + +# required by panel-samsung-dummy.ko + drm_panel_add + drm_panel_init + drm_panel_remove + +# required by pcie-exynos-dw-rc.ko + dw_pcie_host_init + dw_pcie_msi_init + dw_pcie_read + dw_pcie_setup_rc + dw_pcie_write + irq_chip_ack_parent + irq_chip_mask_parent + irq_chip_unmask_parent + irq_domain_get_irq_data + irq_domain_set_info + irq_domain_update_bus_token + pci_find_bus + pci_get_device + pci_load_saved_state + pci_msi_create_irq_domain + pci_msi_mask_irq + pci_msi_unmask_irq + pci_rescan_bus + pci_restore_state + pci_save_state + pci_store_saved_state + +# required by phylink.ko + __bitmap_or + dev_printk + fwnode_handle_put + fwnode_property_present + fwnode_property_read_string + fwnode_property_read_u32_array + gpiod_get_value_cansleep + netdev_printk + netif_carrier_on + phy_ethtool_set_wol + phy_start + rtnl_is_locked + system_power_efficient_wq + +# required by pinctrl-samsung-core.ko + devm_gpiochip_add_data + devm_pinctrl_register + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + irq_create_mapping + irq_domain_xlate_twocell + irq_set_chained_handler_and_data + of_node_name_eq + pinctrl_add_gpio_range + pinctrl_dev_get_drvdata + pinctrl_remove_gpio_range + +# required by pl330.ko + amba_driver_register + amba_driver_unregister + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dma_direct_map_resource + dmaengine_unmap_put + dma_get_slave_channel + of_dma_controller_free + of_dma_controller_register + pm_runtime_irq_safe + tasklet_init + tasklet_kill + __tasklet_schedule + +# required by rtc-s2vps01.ko + devm_rtc_device_register + pm_wakeup_ws_event + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_update_irq + rtc_valid_tm + +# required by s3c2410_wdt.ko + rtc_class_close + rtc_class_open + rtc_read_time + watchdog_init_timeout + watchdog_register_device + watchdog_set_restart_priority + watchdog_unregister_device + +# required by samsung-iommu-group.ko + iommu_group_alloc + iommu_group_set_name + +# required by samsung-seqos.ko + alloc_etherdev_mqs + capable + consume_skb + crc32_le + dev_close + device_set_wakeup_capable + device_set_wakeup_enable + __dev_kfree_skb_any + dev_open + eth_mac_addr + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + free_netdev + get_random_bytes + in4_pton + in6_pton + jiffies_to_usecs + mdiobus_alloc_size + mdiobus_free + __mdiobus_register + mdiobus_unregister + napi_complete_done + napi_disable + napi_gro_receive + __napi_schedule + __napi_schedule_irqoff + napi_schedule_prep + __netdev_alloc_skb + netdev_err + netdev_info + netdev_update_features + netdev_warn + netif_device_attach + netif_device_detach + netif_napi_add + netif_napi_del + netif_schedule_queue + netif_set_real_num_rx_queues + netif_set_real_num_tx_queues + netif_tx_wake_queue + net_ratelimit + ns_to_timespec64 + of_get_mac_address + of_mdiobus_register + phy_ethtool_nway_reset + pinctrl_pm_select_default_state + platform_get_irq_byname + pm_wakeup_dev_event + _raw_spin_lock_bh + _raw_spin_unlock_bh + register_netdev + rtnl_lock + rtnl_unlock + skb_pull + skb_put + skb_tstamp_tx + unregister_netdev + +# required by samsung_iommu.ko + bus_set_iommu + device_link_add + device_link_del + devres_add + devres_alloc_node + iommu_attach_group + iommu_device_link + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unlink + iommu_device_unregister + iommu_domain_alloc + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_dma_cookie + iommu_group_for_each_dev + iommu_group_get + iommu_group_get_for_dev + iommu_group_get_iommudata + iommu_group_put + iommu_group_remove_device + iommu_group_set_iommudata + iommu_put_dma_cookie + iommu_report_device_fault + kmem_cache_alloc + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + of_get_dma_window + pm_runtime_get_if_in_use + +# required by scaler.ko + clk_set_parent + pm_qos_remove_request + sort + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + v4l2_ctrl_handler_setup + v4l2_ctrl_new_custom + v4l2_ctrl_new_std + v4l_bound_align_image + +# required by sfi_ipc_test.ko + nsecs_to_jiffies + +# required by spi-exynosauto.ko + gpio_request_one + loops_per_jiffy + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + spi_finalize_current_message + spi_register_controller + spi_unregister_controller + +# required by ufs-exynos-core.ko + ufshcd_dme_get_attr + ufshcd_dme_set_attr + ufshcd_pltfrm_init + ufshcd_remove + ufshcd_shutdown + ufshcd_system_resume + ufshcd_system_suspend + +# required by v4l2-mem2mem.ko + media_create_intf_link + media_create_pad_link + media_device_register_entity + media_device_unregister_entity + media_devnode_create + media_devnode_remove + media_entity_pads_init + media_entity_remove_links + media_remove_intf_links + v4l2_event_pending + vb2_create_bufs + vb2_expbuf + vb2_prepare_buf + vb2_request_object_is_buffer + +# required by videobuf2-dma-sg.ko + kvfree + kvmalloc_node + split_page + vb2_common_vm_ops + vb2_create_framevec + vb2_destroy_framevec + vm_map_pages + vm_map_ram + vm_unmap_ram + +# required by xhci-hcd.ko + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + param_ops_ullong + pci_alloc_irq_vectors_affinity + pci_free_irq_vectors + pci_irq_vector + radix_tree_delete + radix_tree_insert + radix_tree_lookup + radix_tree_maybe_preload + schedule_timeout_uninterruptible + sg_pcopy_from_buffer + sg_pcopy_to_buffer + usb_amd_dev_put + usb_amd_pt_check_port + usb_amd_quirk_pll_disable + usb_amd_quirk_pll_enable + usb_asmedia_modifyflowcontrol + usb_disable_xhci_ports + usb_hcd_check_unlink_urb + usb_hcd_end_port_resume + usb_hcd_giveback_urb + usb_hc_died + usb_hcd_irq + usb_hcd_link_urb_to_ep + usb_hcd_map_urb_for_dma + usb_hcd_poll_rh_status + usb_hcd_resume_root_hub + usb_hcd_start_port_resume + usb_hcd_unlink_urb_from_ep + usb_hub_clear_tt_buffer + usb_root_hub_lost_power + usb_wakeup_notification + +# required by xhci-pci.ko + pci_d3cold_disable + pci_read_config_byte + __pci_register_driver + pci_set_mwi + pci_set_power_state + pci_unregister_driver + usb_amd_quirk_pll_check + usb_create_shared_hcd + usb_enable_intel_xhci_ports + usb_hcd_pci_pm_ops + usb_hcd_pci_probe + usb_hcd_pci_remove + usb_hcd_pci_shutdown + +# required by xhci-plat-hcd.ko + device_wakeup_enable + devm_clk_get_optional + of_fwnode_ops + of_usb_host_tpl_support + pci_bus_type + __usb_create_hcd + usb_hcd_platform_shutdown diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64 index b5aef871837c..58ea308926f0 100644 --- a/build.config.gki.aarch64 +++ b/build.config.gki.aarch64 @@ -8,6 +8,7 @@ ADDITIONAL_KMI_SYMBOL_LISTS=" android/abi_gki_aarch64_cuttlefish android/abi_gki_aarch64_db845c android/abi_gki_aarch64_exynos +android/abi_gki_aarch64_exynosauto android/abi_gki_aarch64_galaxy android/abi_gki_aarch64_goldfish android/abi_gki_aarch64_hikey960 From 9898521cefd804b8b280b663e67a4592655a61bb Mon Sep 17 00:00:00 2001 From: Jeehong Kim Date: Fri, 13 Nov 2020 16:14:25 +0900 Subject: [PATCH 03/41] ANDROID: ABI: update allowed list for galaxy Update Galaxy list of symbols with ones that are already in the .xml file to manage symbols by used our modules Bug: 173174399 Signed-off-by: Jeehong Kim Change-Id: I0b26dff0c0075ba74fbbb3948f4e71c636f3a6cb --- android/abi_gki_aarch64_galaxy | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index 400b3a7699ca..7d254cd6dd84 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -144,8 +144,11 @@ __spi_alloc_controller __spi_register_driver __spmi_driver_register + __srcu_read_lock + __srcu_read_unlock __stack_chk_fail __stack_chk_guard + __sw_hweight8 __sw_hweight32 __sw_hweight64 __sync_dirty_buffer @@ -177,6 +180,7 @@ __wake_up __wake_up_locked __warn_printk + __xa_alloc _bcd2bin _bin2bcd _copy_from_iter_full @@ -441,6 +445,7 @@ cpufreq_table_index_unsorted cpufreq_unregister_driver cpufreq_unregister_notifier + cpufreq_update_policy cpuhp_tasks_frozen cpuidle_pause_and_lock cpuidle_resume_and_unlock @@ -457,6 +462,8 @@ crypto_destroy_tfm crypto_register_rngs crypto_shash_digest + crypto_shash_final + crypto_shash_update crypto_unregister_rngs csum_partial d_add @@ -575,6 +582,7 @@ devm_gpio_request_one devm_gpiochip_add_data devm_gpiod_get + devm_gpiod_get_index devm_gpiod_get_optional devm_iio_channel_get devm_iio_device_alloc @@ -678,6 +686,7 @@ dma_fence_context_alloc dma_fence_default_wait dma_fence_enable_sw_signaling + dma_fence_free dma_fence_get_status dma_fence_init dma_fence_release @@ -1079,6 +1088,7 @@ gpiod_direction_input gpiod_direction_output gpiod_direction_output_raw + gpiod_cansleep gpiod_get_optional gpiod_get_raw_value gpiod_get_raw_value_cansleep @@ -1115,6 +1125,7 @@ hrtimer_try_to_cancel hvc_alloc hvc_kick + hvc_poll hvc_remove hwrng_register hwrng_unregister @@ -1192,6 +1203,7 @@ in6_pton init_dummy_netdev init_net + init_srcu_struct init_task init_timer_key init_uts_ns @@ -1336,6 +1348,7 @@ kernel_kobj kernel_read kernel_recvmsg + kernel_restart kernel_sendmsg kernel_setsockopt kernel_write @@ -1376,6 +1389,7 @@ kstat kstrdup kstrdup_quotable + kstrdup_quotable_cmdline kstrndup kstrtobool kstrtobool_from_user @@ -1812,6 +1826,7 @@ power_supply_unregister preempt_schedule preempt_schedule_notrace + prepare_to_wait prepare_to_wait_event print_hex_dump printk @@ -1913,6 +1928,7 @@ regulator_enable regulator_force_disable regulator_get + regulator_get_current_limit regulator_get_mode regulator_get_optional regulator_get_voltage @@ -1933,6 +1949,7 @@ regulatory_hint release_firmware release_sock + regmap_mmio_detach_clk remap_pfn_range remap_vmalloc_range remove_proc_entry @@ -2113,6 +2130,7 @@ smp_call_function_single smp_call_function_single_async smp_call_on_cpu + smpboot_register_percpu_thread smpboot_unregister_percpu_thread snd_card_free snd_card_new @@ -2321,6 +2339,7 @@ sync_filesystem synchronize_irq synchronize_rcu + synchronize_srcu sys_tz syscon_node_to_regmap syscon_regmap_lookup_by_phandle @@ -2379,6 +2398,7 @@ trace_raw_output_prep trace_seq_printf tracepoint_probe_register + tracing_off truncate_inode_pages try_module_get try_wait_for_completion From 5c1738a8f0d74a111b3fe3a48d7acc860cdb0178 Mon Sep 17 00:00:00 2001 From: Chanho Park Date: Thu, 12 Nov 2020 17:32:51 +0900 Subject: [PATCH 04/41] ANDROID: GKI: update symbol list for exynosauto soc This patch updates the GKI symbol list for Exynosauto SoC. This is an initial version of symbol list for Android Automotive Native. Leaf changes summary: 74 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 72 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 2 Added variables 72 Added functions: [A] 'function int __bitmap_and(unsigned long int*, const unsigned long int*, const unsigned long int*, unsigned int)' [A] 'function void __drm_atomic_helper_plane_reset(drm_plane*, drm_plane_state*)' [A] 'function int __phy_modify(phy_device*, u32, u16, u16)' [A] 'function int bitmap_find_free_region(unsigned long int*, unsigned int, int)' [A] 'function void bitmap_release_region(unsigned long int*, unsigned int, int)' [A] 'function void display_timings_release(display_timings*)' [A] 'function void dql_completed(dql*, unsigned int)' [A] 'function void dql_reset(dql*)' [A] 'function int drm_atomic_helper_async_check(drm_device*, drm_atomic_state*)' [A] 'function void drm_atomic_helper_disable_planes_on_crtc(drm_crtc_state*, bool)' [A] 'function void drm_atomic_helper_fake_vblank(drm_atomic_state*)' [A] 'function int drm_atomic_normalize_zpos(drm_device*, drm_atomic_state*)' [A] 'function int drm_connector_set_path_property(drm_connector*, const char*)' [A] 'function u8 drm_dp_dsc_sink_line_buf_depth(const u8*)' [A] 'function u8 drm_dp_dsc_sink_max_slice_count(const u8*, bool)' [A] 'function int drm_dsc_compute_rc_parameters(drm_dsc_config*)' [A] 'function void drm_dsc_pps_payload_pack(drm_dsc_picture_parameter_set*, const drm_dsc_config*)' [A] 'function void drm_framebuffer_cleanup(drm_framebuffer*)' [A] 'function int drm_helper_connector_dpms(drm_connector*, int)' [A] 'function int drm_mode_config_helper_resume(drm_device*)' [A] 'function int drm_mode_config_helper_suspend(drm_device*)' [A] 'function int drm_property_add_enum(drm_property*, long long unsigned int, const char*)' [A] 'function void drm_property_destroy(drm_device*, drm_property*)' [A] 'function fwnode_handle* fwnode_get_named_child_node(const fwnode_handle*, const char*)' [A] 'function gpio_desc* fwnode_get_named_gpiod(fwnode_handle*, const char*, int, gpiod_flags, const char*)' [A] 'function int fwnode_property_get_reference_args(const fwnode_handle*, const char*, const char*, unsigned int, unsigned int, fwnode_reference_args*)' [A] 'function int genphy_loopback(phy_device*, bool)' [A] 'function int genphy_restart_aneg(phy_device*)' [A] 'function int genphy_setup_forced(phy_device*)' [A] 'function int genphy_soft_reset(phy_device*)' [A] 'function int genphy_update_link(phy_device*)' [A] 'function void gpiod_put(gpio_desc*)' [A] 'function phy_device* mdiobus_get_phy(mii_bus*, int)' [A] 'function void netdev_alert(const net_device*, const char*, ...)' [A] 'function display_timings* of_get_display_timings(const device_node*)' [A] 'function int of_get_phy_mode(device_node*)' [A] 'function int of_graph_get_endpoint_count(const device_node*)' [A] 'function device_node* of_graph_get_port_by_id(device_node*, u32)' [A] 'function device_node* of_graph_get_remote_port(const device_node*)' [A] 'function phy_device* of_phy_attach(net_device*, device_node*, u32, phy_interface_t)' [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 int of_platform_device_destroy(device*, void*)' [A] 'function int pcie_set_mps(pci_dev*, int)' [A] 'function int phy_attach_direct(net_device*, phy_device*, u32, phy_interface_t)' [A] 'function void phy_attached_info(phy_device*)' [A] 'function int phy_create_lookup(phy*, const char*, const char*)' [A] 'function void phy_detach(phy_device*)' [A] 'function const char* phy_duplex_to_str(unsigned int)' [A] 'function void phy_ethtool_get_wol(phy_device*, ethtool_wolinfo*)' [A] 'function int phy_get_eee_err(phy_device*)' [A] 'function int phy_init_eee(phy_device*, bool)' [A] 'function const phy_setting* phy_lookup_setting(int, int, const unsigned long int*, bool)' [A] 'function void phy_mac_interrupt(phy_device*)' [A] 'function int phy_modify(phy_device*, unsigned int, unsigned short int, unsigned short int)' [A] 'function int phy_modify_paged(phy_device*, int, u32, u16, u16)' [A] 'function int phy_read_paged(phy_device*, int, u32)' [A] 'function void phy_remove_lookup(phy*, const char*, const char*)' [A] 'function void phy_request_interrupt(phy_device*)' [A] 'function int phy_restart_aneg(phy_device*)' [A] 'function int phy_resume(phy_device*)' [A] 'function int phy_select_page(phy_device*, int)' [A] 'function void phy_set_asym_pause(phy_device*, bool, bool)' [A] 'function const char* phy_speed_to_str(int)' [A] 'function int phy_start_aneg(phy_device*)' [A] 'function int phy_suspend(phy_device*)' [A] 'function int phy_write_paged(phy_device*, int, u32, u16)' [A] 'function int swphy_read_reg(int, const fixed_phy_status*)' [A] 'function int ufshcd_config_pwr_mode(ufs_hba*, ufs_pa_layer_attr*)' [A] 'function void videomode_from_timing(const display_timing*, videomode*)' [A] 'function int videomode_from_timings(const display_timings*, videomode*, unsigned int)' 2 Added variables: [A] 'const drm_private_state_funcs drm_dp_mst_topology_state_funcs' [A] 'unsigned long int phy_gbit_fibre_features[2]' Bug: 172885440 Signed-off-by: Chanho Park Change-Id: Id1154cc855fb633f22acbf89f59a89dad07ed15f --- android/abi_gki_aarch64.xml | 1210 +++++++++++++++++++++++----- android/abi_gki_aarch64_exynosauto | 74 ++ 2 files changed, 1093 insertions(+), 191 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index ba255654d385..c7c5df0e8900 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -16,6 +16,7 @@ + @@ -80,6 +81,7 @@ + @@ -164,6 +166,7 @@ + @@ -366,10 +369,12 @@ + + @@ -1039,6 +1044,7 @@ + @@ -1136,6 +1142,8 @@ + + @@ -1149,6 +1157,7 @@ + @@ -1170,7 +1179,9 @@ + + @@ -1186,6 +1197,7 @@ + @@ -1222,6 +1234,7 @@ + @@ -1265,6 +1278,8 @@ + + @@ -1289,6 +1304,8 @@ + + @@ -1301,6 +1318,7 @@ + @@ -1346,6 +1364,7 @@ + @@ -1364,6 +1383,8 @@ + + @@ -1425,6 +1446,7 @@ + @@ -1432,6 +1454,7 @@ + @@ -1541,8 +1564,11 @@ + + + @@ -1590,9 +1616,14 @@ + + + + + @@ -1670,6 +1701,7 @@ + @@ -2241,6 +2273,7 @@ + @@ -2395,6 +2428,7 @@ + @@ -2527,6 +2561,7 @@ + @@ -2535,12 +2570,16 @@ + + + + @@ -2569,9 +2608,14 @@ + + + + + @@ -2692,6 +2736,7 @@ + @@ -2706,15 +2751,21 @@ + + + + + + @@ -2723,24 +2774,41 @@ + + + + + + + + + + + + + + + + + @@ -3638,6 +3706,7 @@ + @@ -3822,6 +3891,7 @@ + @@ -4204,6 +4274,8 @@ + + @@ -4394,6 +4466,7 @@ + @@ -4447,6 +4520,7 @@ + @@ -16399,13 +16473,13 @@ - + - + @@ -23586,6 +23660,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -23715,10 +23809,24 @@ + + + + + + + + + + + + + + @@ -30711,6 +30819,18 @@ + + + + + + + + + + + + @@ -30722,7 +30842,6 @@ - @@ -30765,7 +30884,6 @@ - @@ -30944,6 +31062,16 @@ + + + + + + + + + + @@ -31013,6 +31141,10 @@ + + + + @@ -31051,6 +31183,11 @@ + + + + + @@ -31173,6 +31310,11 @@ + + + + + @@ -31314,6 +31456,14 @@ + + + + + + + + @@ -31398,10 +31548,26 @@ + + + + + + + + + + + + + + + + @@ -32894,7 +33060,7 @@ - + @@ -34278,7 +34444,7 @@ - + @@ -34539,7 +34705,7 @@ - + @@ -34852,6 +35018,11 @@ + + + + + @@ -35545,7 +35716,7 @@ - + @@ -35796,6 +35967,15 @@ + + + + + + + + + @@ -36353,6 +36533,7 @@ + @@ -36535,6 +36716,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -37183,6 +37670,10 @@ + + + + @@ -37254,6 +37745,14 @@ + + + + + + + + @@ -37695,6 +38194,14 @@ + + + + + + + + @@ -37737,6 +38244,10 @@ + + + + @@ -37767,46 +38278,38 @@ - - - - - - - - - + - + - + - + - + - + - + - + @@ -41119,17 +41622,17 @@ - + - + - + @@ -43017,6 +43520,17 @@ + + + + + + + + + + + @@ -52701,7 +53215,7 @@ - + @@ -53020,7 +53534,7 @@ - + @@ -53109,7 +53623,7 @@ - + @@ -55033,23 +55547,6 @@ - - - - - - - - - - - - - - - - - @@ -55095,16 +55592,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -55536,6 +56066,19 @@ + + + + + + + + + + + + + @@ -55569,6 +56112,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -55602,20 +56175,41 @@ + + + + + + + + + + + + + + + + + + + + + @@ -55638,6 +56232,11 @@ + + + + + @@ -55772,6 +56371,7 @@ + @@ -55787,6 +56387,11 @@ + + + + + @@ -55794,6 +56399,17 @@ + + + + + + + + + + + @@ -55805,11 +56421,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -55818,11 +56458,22 @@ + + + + + + + + + + + @@ -55835,6 +56486,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -56240,20 +56917,6 @@ - - - - - - - - - - - - - - @@ -59795,7 +60458,7 @@ - + @@ -64411,7 +65074,7 @@ - + @@ -64693,7 +65356,7 @@ - + @@ -64750,7 +65413,7 @@ - + @@ -64932,8 +65595,31 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -65002,6 +65688,11 @@ + + + + + @@ -65032,12 +65723,21 @@ + + + + + + + + + @@ -66976,6 +67676,11 @@ + + + + + @@ -67120,6 +67825,18 @@ + + + + + + + + + + + + @@ -74354,6 +75071,11 @@ + + + + + @@ -86421,6 +87143,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -86873,7 +87674,21 @@ + + + + + + + + + + + + + + @@ -86906,27 +87721,20 @@ - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + @@ -88515,6 +89323,23 @@ + + + + + + + + + + + + + + + + + @@ -89018,7 +89843,7 @@ - + @@ -89861,6 +90686,7 @@ + @@ -89875,6 +90701,8 @@ + + @@ -90437,7 +91265,7 @@ - + @@ -90636,23 +91464,6 @@ - - - - - - - - - - - - - - - - - @@ -91221,6 +92032,20 @@ + + + + + + + + + + + + + + @@ -92819,17 +93644,6 @@ - - - - - - - - - - - @@ -92917,14 +93731,6 @@ - - - - - - - - @@ -93590,7 +94396,7 @@ - + @@ -94451,7 +95257,7 @@ - + @@ -99418,7 +100224,7 @@ - + @@ -102770,7 +103576,7 @@ - + @@ -102895,7 +103701,7 @@ - + @@ -106018,6 +106824,13 @@ + + + + + + + @@ -106189,6 +107002,18 @@ + + + + + + + + + + + + @@ -107416,23 +108241,6 @@ - - - - - - - - - - - - - - - - - @@ -108318,6 +109126,12 @@ + + + + + + @@ -108751,15 +109565,18 @@ - + - + - + - + + + + @@ -108767,7 +109584,7 @@ - + @@ -114554,45 +115371,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -114600,7 +115379,7 @@ - + @@ -116925,6 +117704,17 @@ + + + + + + + + + + + @@ -123800,6 +124590,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -129954,6 +130782,6 @@ diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto index f0f54ce409a8..52ac68379854 100644 --- a/android/abi_gki_aarch64_exynosauto +++ b/android/abi_gki_aarch64_exynosauto @@ -8,6 +8,7 @@ arm64_const_caps_ready atomic_notifier_call_chain atomic_notifier_chain_register + __bitmap_and __bitmap_andnot blocking_notifier_call_chain blocking_notifier_chain_register @@ -79,6 +80,7 @@ _dev_warn disable_irq disable_irq_nosync + display_timings_release dma_alloc_attrs dma_buf_attach dma_buf_begin_cpu_access @@ -263,6 +265,7 @@ of_find_node_by_name of_find_property of_get_child_by_name + of_get_display_timings of_get_drm_display_mode of_get_named_gpio_flags of_get_next_child @@ -297,6 +300,8 @@ phy_ethtool_ksettings_get phy_ethtool_ksettings_set phy_ethtool_set_eee + phy_get_eee_err + phy_init_eee phy_mii_ioctl phy_power_off phy_power_on @@ -572,8 +577,10 @@ extcon_unregister_notifier of_usb_get_phy_mode phy_calibrate + phy_create_lookup phy_exit phy_init + phy_remove_lookup phy_reset phy_set_mode_ext platform_device_add_data @@ -661,6 +668,7 @@ console_trylock console_unlock device_rename + drm_atomic_helper_async_check drm_atomic_helper_check drm_atomic_helper_cleanup_planes drm_atomic_helper_commit @@ -671,19 +679,24 @@ drm_atomic_helper_crtc_duplicate_state drm_atomic_helper_crtc_reset drm_atomic_helper_disable_plane + drm_atomic_helper_disable_planes_on_crtc + drm_atomic_helper_fake_vblank drm_atomic_helper_page_flip __drm_atomic_helper_plane_destroy_state __drm_atomic_helper_plane_duplicate_state + __drm_atomic_helper_plane_reset drm_atomic_helper_set_config drm_atomic_helper_shutdown drm_atomic_helper_update_plane drm_atomic_helper_wait_for_vblanks + drm_atomic_normalize_zpos drm_atomic_private_obj_init drm_bridge_attach drm_compat_ioctl drm_connector_list_iter_begin drm_connector_list_iter_end drm_connector_list_iter_next + drm_connector_set_path_property drm_connector_set_tile_property drm_connector_unregister drm_crtc_arm_vblank_event @@ -716,6 +729,8 @@ drm_dp_dpcd_read drm_dp_dpcd_read_link_status drm_dp_dpcd_write + drm_dp_dsc_sink_line_buf_depth + drm_dp_dsc_sink_max_slice_count drm_dp_find_vcpi_slots drm_dp_link_train_channel_eq_delay drm_dp_link_train_clock_recovery_delay @@ -727,14 +742,18 @@ drm_dp_mst_reset_vcpi_slots drm_dp_mst_topology_mgr_init drm_dp_mst_topology_mgr_set_mst + drm_dp_mst_topology_state_funcs drm_dp_update_payload_part1 drm_dp_update_payload_part2 + drm_dsc_compute_rc_parameters + drm_dsc_pps_payload_pack drm_encoder_cleanup drm_encoder_init drm_flip_work_cleanup drm_flip_work_commit drm_flip_work_init drm_flip_work_queue + drm_framebuffer_cleanup drm_framebuffer_init drm_gem_create_mmap_offset drm_gem_handle_create @@ -751,12 +770,15 @@ drm_get_connector_status_name drm_get_edid drm_get_format_info + drm_helper_connector_dpms drm_helper_hpd_irq_event drm_helper_mode_fill_fb_struct drm_ioctl drm_kms_helper_poll_fini drm_kms_helper_poll_init drm_mode_config_cleanup + drm_mode_config_helper_resume + drm_mode_config_helper_suspend drm_mode_config_init drm_mode_config_reset drm_mode_object_find @@ -777,8 +799,10 @@ drm_plane_create_zpos_property drm_poll drm_prime_gem_destroy + drm_property_add_enum drm_property_create drm_property_create_range + drm_property_destroy drm_read drm_release drm_universal_plane_init @@ -791,13 +815,18 @@ of_drm_find_panel of_get_next_available_child of_graph_get_endpoint_by_regs + of_graph_get_endpoint_count of_graph_get_next_endpoint + of_graph_get_port_by_id + of_graph_get_remote_port of_graph_get_remote_port_parent of_graph_parse_endpoint of_io_request_and_map of_platform_device_create + of_platform_device_destroy of_property_match_string strlcat + videomode_from_timings # required by exynos_devfreq.ko devfreq_add_device @@ -985,15 +1014,27 @@ # required by marvell.ko __genphy_config_aneg + genphy_loopback genphy_read_status + genphy_restart_aneg genphy_resume + genphy_setup_forced + genphy_soft_reset genphy_suspend + genphy_update_link __mdiobus_read __mdiobus_write phy_drivers_register phy_drivers_unregister + phy_gbit_fibre_features + __phy_modify + phy_modify + phy_modify_paged + phy_read_paged phy_restore_page phy_save_page + phy_select_page + phy_write_paged # required by mcDrvModule.ko alloc_chrdev_region @@ -1023,8 +1064,11 @@ drm_panel_add drm_panel_init drm_panel_remove + videomode_from_timing # required by pcie-exynos-dw-rc.ko + bitmap_find_free_region + bitmap_release_region dw_pcie_host_init dw_pcie_msi_init dw_pcie_read @@ -1036,6 +1080,7 @@ irq_domain_get_irq_data irq_domain_set_info irq_domain_update_bus_token + pcie_set_mps pci_find_bus pci_get_device pci_load_saved_state @@ -1050,16 +1095,31 @@ # required by phylink.ko __bitmap_or dev_printk + fwnode_get_named_child_node + fwnode_get_named_gpiod fwnode_handle_put + fwnode_property_get_reference_args fwnode_property_present fwnode_property_read_string fwnode_property_read_u32_array gpiod_get_value_cansleep + gpiod_put netdev_printk netif_carrier_on + of_phy_attach + phy_attach_direct + phy_detach + phy_duplex_to_str + phy_ethtool_get_wol phy_ethtool_set_wol + phy_lookup_setting + phy_request_interrupt + phy_restart_aneg + phy_set_asym_pause + phy_speed_to_str phy_start rtnl_is_locked + swphy_read_reg system_power_efficient_wq # required by pinctrl-samsung-core.ko @@ -1125,6 +1185,8 @@ device_set_wakeup_enable __dev_kfree_skb_any dev_open + dql_completed + dql_reset eth_mac_addr ethtool_op_get_link ethtool_op_get_ts_info @@ -1136,6 +1198,7 @@ jiffies_to_usecs mdiobus_alloc_size mdiobus_free + mdiobus_get_phy __mdiobus_register mdiobus_unregister napi_complete_done @@ -1144,6 +1207,7 @@ __napi_schedule __napi_schedule_irqoff napi_schedule_prep + netdev_alert __netdev_alloc_skb netdev_err netdev_info @@ -1160,8 +1224,17 @@ net_ratelimit ns_to_timespec64 of_get_mac_address + of_get_phy_mode of_mdiobus_register + of_phy_deregister_fixed_link + of_phy_is_fixed_link + of_phy_register_fixed_link + phy_attached_info phy_ethtool_nway_reset + phy_mac_interrupt + phy_resume + phy_start_aneg + phy_suspend pinctrl_pm_select_default_state platform_get_irq_byname pm_wakeup_dev_event @@ -1233,6 +1306,7 @@ spi_unregister_controller # required by ufs-exynos-core.ko + ufshcd_config_pwr_mode ufshcd_dme_get_attr ufshcd_dme_set_attr ufshcd_pltfrm_init From 174953dd82e4dae982cd8a5232337a6248de5184 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 17 Sep 2020 11:52:23 +0200 Subject: [PATCH 05/41] UPSTREAM: cfg80211: fix 6 GHz channel conversion We shouldn't accept any channels bigger than 233, fix that. Reported-by: Amar Fixes: d1a1646c0de7 ("cfg80211: adapt to new channelization of the 6GHz band") Signed-off-by: Johannes Berg Link: https://lore.kernel.org/r/20200917115222.312ba6f1d461.I3a8c8fbcc3cc019814fd9cd0aced7eb591626136@changeid Signed-off-by: Johannes Berg (cherry picked from commit c0de8776af6543e10d1a5c8969679fd9f6b66fa9) Signed-off-by: Greg Kroah-Hartman Change-Id: I83a88dce9a0c78f949abd792c824ed6f923ee809 --- net/wireless/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/wireless/util.c b/net/wireless/util.c index 2ad081bf515e..a468e64313dc 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -95,7 +95,7 @@ u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band) /* see 802.11ax D6.1 27.3.23.2 */ if (chan == 2) return MHZ_TO_KHZ(5935); - if (chan <= 253) + if (chan <= 233) return MHZ_TO_KHZ(5950 + chan * 5); break; case NL80211_BAND_60GHZ: From c8f920986436040011519eb31473c6a7dfca850d Mon Sep 17 00:00:00 2001 From: Stanley Chu Date: Tue, 8 Sep 2020 14:45:05 +0800 Subject: [PATCH 06/41] UPSTREAM: scsi: ufs: ufs-mediatek: Fix HOST_PA_TACTIVATE quirk Simply add HOST_PA_TACTIVATE quirk back since it was incorrectly removed before. Link: https://lore.kernel.org/r/20200908064507.30774-3-stanley.chu@mediatek.com Fixes: 47d054580a75 ("scsi: ufs-mediatek: fix HOST_PA_TACTIVATE quirk for Samsung UFS Devices") Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen (cherry picked from commit a3e40b80dc951057033dce86f0e675b2b822b513) Signed-off-by: Greg Kroah-Hartman Change-Id: Id1f55fa74d0d393974b9f152d3289cd3ac4e3298 --- drivers/scsi/ufs/ufs-mediatek.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index f435c938455e..20b4c183e0dd 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -669,13 +669,7 @@ static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba) static void ufs_mtk_fixup_dev_quirks(struct ufs_hba *hba) { - struct ufs_dev_info *dev_info = &hba->dev_info; - u16 mid = dev_info->wmanufacturerid; - ufshcd_fixup_dev_quirks(hba, ufs_mtk_dev_fixups); - - if (mid == UFS_VENDOR_SAMSUNG) - hba->dev_quirks &= ~UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE; } /** From 4a5e996245af28f958e328784b571ce2195c94ef Mon Sep 17 00:00:00 2001 From: Stanley Chu Date: Tue, 8 Sep 2020 14:45:04 +0800 Subject: [PATCH 07/41] UPSTREAM: scsi: ufs: ufs-mediatek: Eliminate error message for unbound mphy Some MediaTek platforms does not have to bind MPHY so users shall not see any unnecessary logs. Simply remove logs for this case. Link: https://lore.kernel.org/r/20200908064507.30774-2-stanley.chu@mediatek.com Fixes: fc4983018fea ("scsi: ufs-mediatek: Allow unbound mphy") Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen (cherry picked from commit 30a90782c105fe498df74161392aa143796b6886) Signed-off-by: Greg Kroah-Hartman Change-Id: I01f51f1532bf1826692b22b5650acd25a63f3698 --- drivers/scsi/ufs/ufs-mediatek.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index 20b4c183e0dd..e22f91695b04 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -129,7 +129,10 @@ static int ufs_mtk_bind_mphy(struct ufs_hba *hba) __func__, err); } else if (IS_ERR(host->mphy)) { err = PTR_ERR(host->mphy); - dev_info(dev, "%s: PHY get failed %d\n", __func__, err); + if (err != -ENODEV) { + dev_info(dev, "%s: PHY get failed %d\n", __func__, + err); + } } if (err) From 8502859d4634ad246a663839e572cc63ce27f51d Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Mon, 24 Aug 2020 13:38:41 -0700 Subject: [PATCH 08/41] UPSTREAM: fscrypt: restrict IV_INO_LBLK_32 to ino_bits <= 32 When an encryption policy has the IV_INO_LBLK_32 flag set, the IV generation method involves hashing the inode number. This is different from fscrypt's other IV generation methods, where the inode number is either not used at all or is included directly in the IVs. Therefore, in principle IV_INO_LBLK_32 can work with any length inode number. However, currently fscrypt gets the inode number from inode::i_ino, which is 'unsigned long'. So currently the implementation limit is actually 32 bits (like IV_INO_LBLK_64), since longer inode numbers will have been truncated by the VFS on 32-bit platforms. Fix fscrypt_supported_v2_policy() to enforce the correct limit. This doesn't actually matter currently, since only ext4 and f2fs support IV_INO_LBLK_32, and they both only support 32-bit inode numbers. But we might as well fix it in case it matters in the future. Ideally inode::i_ino would instead be made 64-bit, but for now it's not needed. (Note, this limit does *not* prevent filesystems with 64-bit inode numbers from adding fscrypt support, since IV_INO_LBLK_* support is optional and is useful only on certain hardware.) Fixes: e3b1078bedd3 ("fscrypt: add support for IV_INO_LBLK_32 policies") Reported-by: Jeff Layton Link: https://lore.kernel.org/r/20200824203841.1707847-1-ebiggers@kernel.org Signed-off-by: Eric Biggers (cherry picked from commit 5e895bd4d5233cb054447d0491d4e63c8496d419) Signed-off-by: Greg Kroah-Hartman Change-Id: Ie4abfef403dfacf790baa667a37febf591c7e3ca --- fs/crypto/policy.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c index d23ff162c78b..0b32c64eb405 100644 --- a/fs/crypto/policy.c +++ b/fs/crypto/policy.c @@ -178,10 +178,15 @@ static bool fscrypt_supported_v2_policy(const struct fscrypt_policy_v2 *policy, 32, 32)) return false; + /* + * IV_INO_LBLK_32 hashes the inode number, so in principle it can + * support any ino_bits. However, currently the inode number is gotten + * from inode::i_ino which is 'unsigned long'. So for now the + * implementation limit is 32 bits. + */ if ((policy->flags & FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32) && - /* This uses hashed inode numbers, so ino_bits doesn't matter. */ !supported_iv_ino_lblk_policy(policy, inode, "IV_INO_LBLK_32", - INT_MAX, 32)) + 32, 32)) return false; if (memchr_inv(policy->__reserved, 0, sizeof(policy->__reserved))) { From 5eee799bec052c3c8aea0d69d72ab437743d21aa Mon Sep 17 00:00:00 2001 From: Saravana Kannan Date: Tue, 1 Sep 2020 11:44:44 -0700 Subject: [PATCH 09/41] UPSTREAM: driver core: Fix device_pm_lock() locking for device links This commit fixes two issues: 1. The lockdep warning reported by Dong Aisheng [1]. It is a warning about a cycle (dpm_list_mtx --> kn->active#3 --> fw_lock) that was introduced when device-link devices were added to expose device link information in sysfs. The patch that "introduced" this cycle can't be reverted because it's fixes a real SRCU issue and also ensures that the device-link device is deleted as soon as the device-link is deleted. This is important to avoid sysfs name collisions if the device-link is create again immediately (this can happen a lot with deferred probing). 2. Inconsistency in grabbing device_pm_lock() during device link deletion Some device link deletion code paths grab device_pm_lock(), while others don't. The device_pm_lock() is grabbed during device_link_add() because it checks if the supplier is in the dpm_list and also reorders the dpm_list. However, when a device link is deleted, it does not do either of those and therefore device_pm_lock() is not necessary. Dropping the device_pm_lock() in all the device link deletion paths removes the inconsistency in locking. Thanks to Stephen Boyd for helping me understand the lockdep splat. Fixes: 843e600b8a2b ("driver core: Fix sleeping in invalid context during device link deletion") [1] - https://lore.kernel.org/lkml/CAA+hA=S4eAreb7vo69LAXSk2t5=DEKNxHaiY1wSpk4xTp9urLg@mail.gmail.com/ Reported-by: Dong Aisheng Signed-off-by: Saravana Kannan Tested-by: Peng Fan Link: https://lore.kernel.org/r/20200901184445.1736658-1-saravanak@google.com Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 6b57b15abe11aa334ebf726e02c0deaf123ba040) Signed-off-by: Greg Kroah-Hartman Change-Id: I714523d92bbfbad145df2794c481cd0b697d7d16 --- drivers/base/core.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 5b53e35775d2..60721e05dba0 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -806,9 +806,7 @@ static void device_link_put_kref(struct device_link *link) void device_link_del(struct device_link *link) { device_links_write_lock(); - device_pm_lock(); device_link_put_kref(link); - device_pm_unlock(); device_links_write_unlock(); } EXPORT_SYMBOL_GPL(device_link_del); @@ -829,7 +827,6 @@ void device_link_remove(void *consumer, struct device *supplier) return; device_links_write_lock(); - device_pm_lock(); list_for_each_entry(link, &supplier->links.consumers, s_node) { if (link->consumer == consumer) { @@ -838,7 +835,6 @@ void device_link_remove(void *consumer, struct device *supplier) } } - device_pm_unlock(); device_links_write_unlock(); } EXPORT_SYMBOL_GPL(device_link_remove); From 91c21bea596c3630104ceb4aa5607dc45c2614d9 Mon Sep 17 00:00:00 2001 From: Lukasz Luba Date: Mon, 10 Aug 2020 09:30:04 +0100 Subject: [PATCH 10/41] UPSTREAM: sched/fair: Fix wrong negative conversion in find_energy_efficient_cpu() In find_energy_efficient_cpu() 'cpu_cap' could be less that 'util'. It might be because of RT, DL (so higher sched class than CFS), irq or thermal pressure signal, which reduce the capacity value. In such situation the result of 'cpu_cap - util' might be negative but stored in the unsigned long. Then it might be compared with other unsigned long when uclamp_rq_util_with() reduced the 'util' such that is passes the fits_capacity() check. Prevent this situation and make the arithmetic more safe. Fixes: 1d42509e475cd ("sched/fair: Make EAS wakeup placement consider uclamp restrictions") Signed-off-by: Lukasz Luba Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Valentin Schneider Link: https://lkml.kernel.org/r/20200810083004.26420-1-lukasz.luba@arm.com (cherry picked from commit da0777d35f47892f359c3f73ea155870bb595700) Signed-off-by: Greg Kroah-Hartman Change-Id: Ib3e22c155eb031854cfb4428494c1c4da57692b1 --- kernel/sched/fair.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 7bd7edf1b14d..1b028e23128b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6477,7 +6477,8 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu, int sy util = cpu_util_next(cpu, p, cpu); cpu_cap = capacity_of(cpu); - spare_cap = cpu_cap - util; + spare_cap = cpu_cap; + lsub_positive(&spare_cap, util); /* * Skip CPUs that cannot satisfy the capacity request. From 67d571fe3164b373a6adc2b43924aa4425f0530e Mon Sep 17 00:00:00 2001 From: Adrian Hunter Date: Tue, 11 Aug 2020 16:39:35 +0300 Subject: [PATCH 11/41] UPSTREAM: scsi: ufs: Fix interrupt error message for shared interrupts The interrupt might be shared, in which case it is not an error for the interrupt handler to be called when the interrupt status is zero, so don't print the message unless there was enabled interrupt status. Link: https://lore.kernel.org/r/20200811133936.19171-1-adrian.hunter@intel.com Fixes: 9333d7757348 ("scsi: ufs: Fix irq return code") Reviewed-by: Avri Altman Signed-off-by: Adrian Hunter Signed-off-by: Martin K. Petersen (cherry picked from commit 6337f58cec030b34ced435b3d9d7d29d63c96e36) Signed-off-by: Greg Kroah-Hartman Change-Id: I60f61f9453edae05b796afa7a37e59bf8ace32e1 --- drivers/scsi/ufs/ufshcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 0e9b35288193..6c3c7f55ef09 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6258,7 +6258,7 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba) intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS); } while (intr_status && --retries); - if (retval == IRQ_NONE) { + if (enabled_intr_status && retval == IRQ_NONE) { dev_err(hba->dev, "%s: Unhandled interrupt 0x%08x\n", __func__, intr_status); ufshcd_dump_regs(hba, 0, UFSHCI_REG_SPACE_SIZE, "host_regs: "); From 05f0c99de84cc057d8cf7be1d142de3bd810a796 Mon Sep 17 00:00:00 2001 From: Rajkumar Manoharan Date: Wed, 1 Jul 2020 19:20:24 -0700 Subject: [PATCH 12/41] UPSTREAM: mac80211: fix warning in 6 GHz IE addition in mesh mode The commit 24a2042cb22f ("mac80211: add HE 6 GHz Band Capability element") failed to check device capability before adding HE 6 GHz capability element. Below warning is reported in 11ac device in mesh. Fix that by checking device capability at HE 6 GHz cap IE addition in mesh beacon and association request. WARNING: CPU: 1 PID: 1897 at net/mac80211/util.c:2878 ieee80211_ie_build_he_6ghz_cap+0x149/0x150 [mac80211] [ 3138.720358] Call Trace: [ 3138.720361] ieee80211_mesh_build_beacon+0x462/0x530 [mac80211] [ 3138.720363] ieee80211_start_mesh+0xa8/0xf0 [mac80211] [ 3138.720365] __cfg80211_join_mesh+0x122/0x3e0 [cfg80211] [ 3138.720368] nl80211_join_mesh+0x3d3/0x510 [cfg80211] Fixes: 24a2042cb22f ("mac80211: add HE 6 GHz Band Capability element") Reported-by: Markus Theil Signed-off-by: Rajkumar Manoharan Link: https://lore.kernel.org/r/1593656424-18240-1-git-send-email-rmanohar@codeaurora.org Signed-off-by: Johannes Berg (cherry picked from commit 65ad3ef9fced4062dfd74e2f89443fb5ce184321) Signed-off-by: Greg Kroah-Hartman Change-Id: I482ae69d99fcf58b3c08fef4561673b656d32995 --- net/mac80211/mesh.c | 13 +++++++++++++ net/mac80211/util.c | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index 4d7d23e47829..66e830727c98 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c @@ -590,6 +590,19 @@ int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata, int mesh_add_he_6ghz_cap_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) { + struct ieee80211_supported_band *sband; + const struct ieee80211_sband_iftype_data *iftd; + + sband = ieee80211_get_sband(sdata); + if (!sband) + return -EINVAL; + + iftd = ieee80211_get_sband_iftype_data(sband, + NL80211_IFTYPE_MESH_POINT); + /* The device doesn't support HE in mesh mode or at all */ + if (!iftd) + return 0; + ieee80211_ie_build_he_6ghz_cap(sdata, skb); return 0; } diff --git a/net/mac80211/util.c b/net/mac80211/util.c index a27f7aa3f9c9..9fdee728f29b 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -2845,6 +2845,10 @@ void ieee80211_ie_build_he_6ghz_cap(struct ieee80211_sub_if_data *sdata, if (WARN_ON(!iftd)) return; + /* Check for device HE 6 GHz capability before adding element */ + if (!iftd->he_6ghz_capa.capa) + return; + cap = le16_to_cpu(iftd->he_6ghz_capa.capa); cap &= ~IEEE80211_HE_6GHZ_CAP_SM_PS; From 3fcaa86a3db6afa00dce5aea76b1efa050f688ca Mon Sep 17 00:00:00 2001 From: Tiezhu Yang Date: Wed, 22 Jul 2020 11:06:52 +0100 Subject: [PATCH 13/41] UPSTREAM: nvmem: sprd: Fix return value of sprd_efuse_probe() When call function devm_platform_ioremap_resource(), we should use IS_ERR() to check the return value and return PTR_ERR() if failed. Fixes: 096030e7f449 ("nvmem: sprd: Add Spreadtrum SoCs eFuse support") Signed-off-by: Tiezhu Yang Signed-off-by: Srinivas Kandagatla Link: https://lore.kernel.org/r/20200722100705.7772-2-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman (cherry picked from commit bcd14bb7a68520bf88e45e91d354e43535624f82) Signed-off-by: Greg Kroah-Hartman Change-Id: I6121d3ca4cb636bb4088a3baab6da554984a8dd0 --- drivers/nvmem/sprd-efuse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/nvmem/sprd-efuse.c b/drivers/nvmem/sprd-efuse.c index 925feb21d5ad..59523245db8a 100644 --- a/drivers/nvmem/sprd-efuse.c +++ b/drivers/nvmem/sprd-efuse.c @@ -378,8 +378,8 @@ static int sprd_efuse_probe(struct platform_device *pdev) return -ENOMEM; efuse->base = devm_platform_ioremap_resource(pdev, 0); - if (!efuse->base) - return -ENOMEM; + if (IS_ERR(efuse->base)) + return PTR_ERR(efuse->base); ret = of_hwspin_lock_get_id(np, 0); if (ret < 0) { From 5eb84aafc7381423de10e46f4f5204e1cf123f1c Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Tue, 21 Jul 2020 15:59:17 -0700 Subject: [PATCH 14/41] UPSTREAM: fscrypt: use smp_load_acquire() for fscrypt_prepared_key Normally smp_store_release() or cmpxchg_release() is paired with smp_load_acquire(). Sometimes smp_load_acquire() can be replaced with the more lightweight READ_ONCE(). However, for this to be safe, all the published memory must only be accessed in a way that involves the pointer itself. This may not be the case if allocating the object also involves initializing a static or global variable, for example. fscrypt_prepared_key includes a pointer to a crypto_skcipher object, which is internal to and is allocated by the crypto subsystem. By using READ_ONCE() for it, we're relying on internal implementation details of the crypto subsystem. Remove this fragile assumption by using smp_load_acquire() instead. (Note: I haven't seen any real-world problems here. This change is just fixing the code to be guaranteed correct and less fragile.) Fixes: 5fee36095cda ("fscrypt: add inline encryption support") Cc: Satya Tangirala Link: https://lore.kernel.org/r/20200721225920.114347-3-ebiggers@kernel.org Signed-off-by: Eric Biggers (cherry picked from commit 97c6327f7192d7312eabc033b26a41ad6816496c) Signed-off-by: Greg Kroah-Hartman Change-Id: I03b3e854e44734206112554dfc38cfe899127cfa --- fs/crypto/fscrypt_private.h | 15 +++++++++------ fs/crypto/inline_crypt.c | 6 ++++-- fs/crypto/keysetup.c | 6 ++++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/fs/crypto/fscrypt_private.h b/fs/crypto/fscrypt_private.h index ea28dd500d2b..688ae13f8f5f 100644 --- a/fs/crypto/fscrypt_private.h +++ b/fs/crypto/fscrypt_private.h @@ -363,13 +363,16 @@ fscrypt_is_key_prepared(struct fscrypt_prepared_key *prep_key, const struct fscrypt_info *ci) { /* - * The READ_ONCE() here pairs with the smp_store_release() in - * fscrypt_prepare_key(). (This only matters for the per-mode keys, - * which are shared by multiple inodes.) + * The two smp_load_acquire()'s here pair with the smp_store_release()'s + * in fscrypt_prepare_inline_crypt_key() and fscrypt_prepare_key(). + * I.e., in some cases (namely, if this prep_key is a per-mode + * encryption key) another task can publish blk_key or tfm concurrently, + * executing a RELEASE barrier. We need to use smp_load_acquire() here + * to safely ACQUIRE the memory the other task published. */ if (fscrypt_using_inline_encryption(ci)) - return READ_ONCE(prep_key->blk_key) != NULL; - return READ_ONCE(prep_key->tfm) != NULL; + return smp_load_acquire(&prep_key->blk_key) != NULL; + return smp_load_acquire(&prep_key->tfm) != NULL; } #else /* CONFIG_FS_ENCRYPTION_INLINE_CRYPT */ @@ -416,7 +419,7 @@ static inline bool fscrypt_is_key_prepared(struct fscrypt_prepared_key *prep_key, const struct fscrypt_info *ci) { - return READ_ONCE(prep_key->tfm) != NULL; + return smp_load_acquire(&prep_key->tfm) != NULL; } #endif /* !CONFIG_FS_ENCRYPTION_INLINE_CRYPT */ diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c index 6504f053ae57..3b3a684c19d5 100644 --- a/fs/crypto/inline_crypt.c +++ b/fs/crypto/inline_crypt.c @@ -202,8 +202,10 @@ int fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key, } } /* - * Pairs with READ_ONCE() in fscrypt_is_key_prepared(). (Only matters - * for the per-mode keys, which are shared by multiple inodes.) + * Pairs with the smp_load_acquire() in fscrypt_is_key_prepared(). + * I.e., here we publish ->blk_key with a RELEASE barrier so that + * concurrent tasks can ACQUIRE it. Note that this concurrency is only + * possible for per-mode keys, not for per-file keys. */ smp_store_release(&prep_key->blk_key, blk_key); return 0; diff --git a/fs/crypto/keysetup.c b/fs/crypto/keysetup.c index 2ce4d48b6655..96609a5c3843 100644 --- a/fs/crypto/keysetup.c +++ b/fs/crypto/keysetup.c @@ -134,8 +134,10 @@ int fscrypt_prepare_key(struct fscrypt_prepared_key *prep_key, if (IS_ERR(tfm)) return PTR_ERR(tfm); /* - * Pairs with READ_ONCE() in fscrypt_is_key_prepared(). (Only matters - * for the per-mode keys, which are shared by multiple inodes.) + * Pairs with the smp_load_acquire() in fscrypt_is_key_prepared(). + * I.e., here we publish ->tfm with a RELEASE barrier so that + * concurrent tasks can ACQUIRE it. Note that this concurrency is only + * possible for per-mode keys, not for per-file keys. */ smp_store_release(&prep_key->tfm, tfm); return 0; From 23b53e4b2ac27c3fd8c876d03c904edac99630ca Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Tue, 21 Jul 2020 11:10:12 -0700 Subject: [PATCH 15/41] UPSTREAM: fscrypt: restrict IV_INO_LBLK_* to AES-256-XTS IV_INO_LBLK_* exist only because of hardware limitations, and currently the only known use case for them involves AES-256-XTS. Therefore, for now only allow them in combination with AES-256-XTS. This way we don't have to worry about them being combined with other encryption modes. (To be clear, combining IV_INO_LBLK_* with other encryption modes *should* work just fine. It's just not being tested, so we can't be 100% sure it works. So with no known use case, it's best to disallow it for now, just like we don't allow other weird combinations like AES-256-XTS contents encryption with Adiantum filenames encryption.) This can be relaxed later if a use case for other combinations arises. Fixes: b103fb7653ff ("fscrypt: add support for IV_INO_LBLK_64 policies") Fixes: e3b1078bedd3 ("fscrypt: add support for IV_INO_LBLK_32 policies") Link: https://lore.kernel.org/r/20200721181012.39308-1-ebiggers@kernel.org Signed-off-by: Eric Biggers (cherry picked from commit f000223c981a7c75f6f3ab7288f0be7b571c3644) Signed-off-by: Greg Kroah-Hartman Change-Id: I9b28a1d2394a8a70d020be3a4f8661ac5987a78d --- fs/crypto/policy.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c index 0b32c64eb405..026dbb2fa36f 100644 --- a/fs/crypto/policy.c +++ b/fs/crypto/policy.c @@ -77,6 +77,20 @@ static bool supported_iv_ino_lblk_policy(const struct fscrypt_policy_v2 *policy, struct super_block *sb = inode->i_sb; int ino_bits = 64, lblk_bits = 64; + /* + * IV_INO_LBLK_* exist only because of hardware limitations, and + * currently the only known use case for them involves AES-256-XTS. + * That's also all we test currently. For these reasons, for now only + * allow AES-256-XTS here. This can be relaxed later if a use case for + * IV_INO_LBLK_* with other encryption modes arises. + */ + if (policy->contents_encryption_mode != FSCRYPT_MODE_AES_256_XTS) { + fscrypt_warn(inode, + "Can't use %s policy with contents mode other than AES-256-XTS", + type); + return false; + } + /* * It's unsafe to include inode numbers in the IVs if the filesystem can * potentially renumber inodes, e.g. via filesystem shrinking. From 8aff1e0e2a75fcb8de7b751af713f5a846484419 Mon Sep 17 00:00:00 2001 From: Tiezhu Yang Date: Mon, 25 May 2020 09:59:01 +0800 Subject: [PATCH 16/41] UPSTREAM: thermal/drivers/sprd: Fix return value of sprd_thm_probe() When call function devm_platform_ioremap_resource(), we should use IS_ERR() to check the return value and return PTR_ERR() if failed. Fixes: 554fdbaf19b1 ("thermal: sprd: Add Spreadtrum thermal driver support") Signed-off-by: Tiezhu Yang Reviewed-by: Baolin Wang Signed-off-by: Daniel Lezcano Link: https://lore.kernel.org/r/1590371941-25430-1-git-send-email-yangtiezhu@loongson.cn (cherry picked from commit b4147917ad4ff2c755e01a7ca296b14030d2d507) Signed-off-by: Greg Kroah-Hartman Change-Id: I5ba1ea5bf4846edb0c0990557bbd00ce81bdc15f --- drivers/thermal/sprd_thermal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c index a340374e8c51..4cde70dcf655 100644 --- a/drivers/thermal/sprd_thermal.c +++ b/drivers/thermal/sprd_thermal.c @@ -348,8 +348,8 @@ static int sprd_thm_probe(struct platform_device *pdev) thm->var_data = pdata; thm->base = devm_platform_ioremap_resource(pdev, 0); - if (!thm->base) - return -ENOMEM; + if (IS_ERR(thm->base)) + return PTR_ERR(thm->base); thm->nr_sensors = of_get_child_count(np); if (thm->nr_sensors == 0 || thm->nr_sensors > SPRD_THM_MAX_SENSOR) { From f1ed2a97d34561cfa543a4988c323d674f6bede2 Mon Sep 17 00:00:00 2001 From: Luca Coelho Date: Fri, 26 Jun 2020 12:49:40 +0300 Subject: [PATCH 17/41] UPSTREAM: nl80211: fix memory leak when parsing NL80211_ATTR_HE_BSS_COLOR If there is an error when parsing the NL80211_ATTR_HE_BSS_COLOR attribute, we return immediately without freeing param.acl. Fit it by using goto out instead of returning immediately. Fixes: 5c5e52d1bb96 ("nl80211: add handling for BSS color") Signed-off-by: Luca Coelho Link: https://lore.kernel.org/r/iwlwifi.20200626124931.7ad2a3eb894f.I60905fb70bd20389a3b170db515a07275e31845e@changeid Signed-off-by: Johannes Berg (cherry picked from commit 60a0121f8fa64b0f4297aa6fef8207500483a874) Signed-off-by: Greg Kroah-Hartman Change-Id: I1b25c92cf781e73aba43e4b344358c6f458ae50e --- net/wireless/nl80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 2b01f92388ac..fec0dbcfa9ed 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4995,7 +4995,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) info->attrs[NL80211_ATTR_HE_BSS_COLOR], ¶ms.he_bss_color); if (err) - return err; + goto out; } nl80211_calculate_ap_params(¶ms); From cd63b9b3ef3f2353f670a3671137a6860063c3c6 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 24 Jun 2020 16:06:06 -0600 Subject: [PATCH 18/41] UPSTREAM: wil6210: account for napi_gro_receive never returning GRO_DROP The napi_gro_receive function no longer returns GRO_DROP ever, making handling GRO_DROP dead code. This commit removes that dead code. Further, it's not even clear that device drivers have any business in taking action after passing off received packets; that's arguably out of their hands. In this case, too, the non-gro path didn't bother checking the return value. Plus, this had some clunky debugging functions that duplicated code from elsewhere and was generally pretty messy. So, this commit cleans that all up too. Fixes: 6570bc79c0df ("net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()") Signed-off-by: Jason A. Donenfeld Signed-off-by: David S. Miller (cherry picked from commit 045790b7bc66a75070c112a61558c639cef2263e) Signed-off-by: Greg Kroah-Hartman Change-Id: I6fa5a5c7a7b123e192e02e5dc671041454ad2df8 --- drivers/net/wireless/ath/wil6210/txrx.c | 39 +++++++------------------ 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c index 598c1fba9dac..579bfa267041 100644 --- a/drivers/net/wireless/ath/wil6210/txrx.c +++ b/drivers/net/wireless/ath/wil6210/txrx.c @@ -907,7 +907,6 @@ static void wil_rx_handle_eapol(struct wil6210_vif *vif, struct sk_buff *skb) void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, struct wil_net_stats *stats, bool gro) { - gro_result_t rc = GRO_NORMAL; struct wil6210_vif *vif = ndev_to_vif(ndev); struct wil6210_priv *wil = ndev_to_wil(ndev); struct wireless_dev *wdev = vif_to_wdev(vif); @@ -918,22 +917,16 @@ void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, */ int mcast = is_multicast_ether_addr(da); struct sk_buff *xmit_skb = NULL; - static const char * const gro_res_str[] = { - [GRO_MERGED] = "GRO_MERGED", - [GRO_MERGED_FREE] = "GRO_MERGED_FREE", - [GRO_HELD] = "GRO_HELD", - [GRO_NORMAL] = "GRO_NORMAL", - [GRO_DROP] = "GRO_DROP", - [GRO_CONSUMED] = "GRO_CONSUMED", - }; if (wdev->iftype == NL80211_IFTYPE_STATION) { sa = wil_skb_get_sa(skb); if (mcast && ether_addr_equal(sa, ndev->dev_addr)) { /* mcast packet looped back to us */ - rc = GRO_DROP; dev_kfree_skb(skb); - goto stats; + ndev->stats.rx_dropped++; + stats->rx_dropped++; + wil_dbg_txrx(wil, "Rx drop %d bytes\n", len); + return; } } else if (wdev->iftype == NL80211_IFTYPE_AP && !vif->ap_isolate) { if (mcast) { @@ -977,26 +970,16 @@ void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, wil_rx_handle_eapol(vif, skb); if (gro) - rc = napi_gro_receive(&wil->napi_rx, skb); + napi_gro_receive(&wil->napi_rx, skb); else netif_rx_ni(skb); - wil_dbg_txrx(wil, "Rx complete %d bytes => %s\n", - len, gro_res_str[rc]); - } -stats: - /* statistics. rc set to GRO_NORMAL for AP bridging */ - if (unlikely(rc == GRO_DROP)) { - ndev->stats.rx_dropped++; - stats->rx_dropped++; - wil_dbg_txrx(wil, "Rx drop %d bytes\n", len); - } else { - ndev->stats.rx_packets++; - stats->rx_packets++; - ndev->stats.rx_bytes += len; - stats->rx_bytes += len; - if (mcast) - ndev->stats.multicast++; } + ndev->stats.rx_packets++; + stats->rx_packets++; + ndev->stats.rx_bytes += len; + stats->rx_bytes += len; + if (mcast) + ndev->stats.multicast++; } void wil_netif_rx_any(struct sk_buff *skb, struct net_device *ndev) From 1bd9ca0eb936ae264bb0fdeccf5b13c213329902 Mon Sep 17 00:00:00 2001 From: Vinod Koul Date: Sat, 16 May 2020 21:55:16 +0530 Subject: [PATCH 19/41] UPSTREAM: usb: renesas-xhci: include correct header for get_unaligned_le16() get_unaligned_le16() is defined in linux/unaligned/access_ok.h header but it uses symbols which may not be available, leading to build failures on ia64. Using asm/unaligned.h seem to be the right thing and used in other drivers. This fixes below error reported by kbuild test robot In file included from drivers/usb/host/xhci-pci-renesas.c:9: >> include/linux/unaligned/access_ok.h:8:28: error: redefinition of 'get_unaligned_le16' 8 | static __always_inline u16 get_unaligned_le16(const void *p) | ^~~~~~~~~~~~~~~~~~ In file included from arch/ia64/include/asm/unaligned.h:5, from arch/ia64/include/asm/io.h:23, from arch/ia64/include/asm/smp.h:21, from include/linux/smp.h:67, from include/linux/percpu.h:7, from include/linux/arch_topology.h:9, from include/linux/topology.h:30, from include/linux/gfp.h:9, from include/linux/xarray.h:14, from include/linux/radix-tree.h:18, from include/linux/idr.h:15, from include/linux/kernfs.h:13, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/of.h:17, from include/linux/irqdomain.h:35, from include/linux/acpi.h:13, from drivers/usb/host/xhci-pci-renesas.c:4: include/linux/unaligned/le_struct.h:7:19: note: previous definition of 'get_unaligned_le16' was here 7 | static inline u16 get_unaligned_le16(const void *p) | ^~~~~~~~~~~~~~~~~~ In file included from drivers/usb/host/xhci-pci-renesas.c:9: include/linux/unaligned/access_ok.h:13:28: error: redefinition of 'get_unaligned_le32' 13 | static __always_inline u32 get_unaligned_le32(const void *p) | ^~~~~~~~~~~~~~~~~~ In file included from arch/ia64/include/asm/unaligned.h:5, from arch/ia64/include/asm/io.h:23, from arch/ia64/include/asm/smp.h:21, from include/linux/smp.h:67, from include/linux/percpu.h:7, from include/linux/arch_topology.h:9, from include/linux/topology.h:30, from include/linux/gfp.h:9, from include/linux/xarray.h:14, from include/linux/radix-tree.h:18, from include/linux/idr.h:15, from include/linux/kernfs.h:13, from include/linux/sysfs.h:16, from include/linux/kobject.h:20, from include/linux/of.h:17, from include/linux/irqdomain.h:35, from include/linux/acpi.h:13, from drivers/usb/host/xhci-pci-renesas.c:4: include/linux/unaligned/le_struct.h:12:19: note: previous definition of 'get_unaligned_le32' was here Fixes: 8bd5741e3145 ("usb: renesas-xhci: Add the renesas xhci driver") Reported-by: kbuild test robot Signed-off-by: Vinod Koul Link: https://lore.kernel.org/r/20200516162516.385149-1-vkoul@kernel.org Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 357abc1d6b832bdb6a7d27ed258f6d2be27d096d) Signed-off-by: Greg Kroah-Hartman Change-Id: I30d9b8d71db8ca8143f22f461666f1deeef2a58b --- drivers/usb/host/xhci-pci-renesas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/host/xhci-pci-renesas.c b/drivers/usb/host/xhci-pci-renesas.c index be2e7eff492f..02fcb01bc2b9 100644 --- a/drivers/usb/host/xhci-pci-renesas.c +++ b/drivers/usb/host/xhci-pci-renesas.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include "xhci.h" #include "xhci-trace.h" From 2bef33024648c9e38679af29dd32c0203485c3ea Mon Sep 17 00:00:00 2001 From: Adrian Hunter Date: Mon, 18 May 2020 15:09:39 +0300 Subject: [PATCH 20/41] UPSTREAM: mmc: sdhci: Fix SDHCI_QUIRK_BROKEN_CQE Previous to commit 511ce378e16f07 ("mmc: Add MMC host software queue support"), removing MMC_CAP2_CQE was enough to disable command queuing, but now the cqe_ops must also be NULL otherwise ->cqe_enable() will be called. Fix SDHCI_QUIRK_BROKEN_CQE to do that. Signed-off-by: Adrian Hunter Fixes: 511ce378e16f07 ("mmc: Add MMC host software queue support") Link: https://lore.kernel.org/r/20200518120939.1399-1-adrian.hunter@intel.com Signed-off-by: Ulf Hansson (cherry picked from commit 2b17b8d7cc65d333a48c6d32ee44fc489cecb7d9) Signed-off-by: Greg Kroah-Hartman Change-Id: Ibadc2a45340e9c783f836401910b44123a49f02f --- drivers/mmc/host/sdhci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 1bffde7a399d..7b400741838f 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -3896,9 +3896,6 @@ int sdhci_setup_host(struct sdhci_host *host) mmc_hostname(mmc), host->version); } - if (host->quirks & SDHCI_QUIRK_BROKEN_CQE) - mmc->caps2 &= ~MMC_CAP2_CQE; - if (host->quirks & SDHCI_QUIRK_FORCE_DMA) host->flags |= SDHCI_USE_SDMA; else if (!(host->caps & SDHCI_CAN_DO_SDMA)) @@ -4418,6 +4415,12 @@ int __sdhci_add_host(struct sdhci_host *host) struct mmc_host *mmc = host->mmc; int ret; + if ((mmc->caps2 & MMC_CAP2_CQE) && + (host->quirks & SDHCI_QUIRK_BROKEN_CQE)) { + mmc->caps2 &= ~MMC_CAP2_CQE; + mmc->cqe_ops = NULL; + } + host->complete_wq = alloc_workqueue("sdhci", flags, 0); if (!host->complete_wq) return -ENOMEM; From 6ac5a6198973b91cb231b99b7eb6ac15aa77f24c Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Mon, 20 Apr 2020 14:01:02 +0200 Subject: [PATCH 21/41] UPSTREAM: of: property: Do not link to disabled devices When creating a consumer/supplier relationship between two devices, make sure the supplier node is actually active. Otherwise this will create a link relationship that will never be fulfilled. This, in the worst case scenario, will hang the system during boot. Note that, in practice, the fact that a device-tree represented consumer/supplier relationship isn't fulfilled will not prevent devices from successfully probing. Fixes: a3e1d1a7f5fc ("of: property: Add functional dependency link from DT bindings") Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Saravana Kannan Signed-off-by: Rob Herring (cherry picked from commit 7456427af9def0fec5508dd8b861556038ee96a8) Signed-off-by: Greg Kroah-Hartman Change-Id: I43d1405a81b00f360a514ff67487f0b375215ee3 --- drivers/of/property.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 277d2d854ad5..05e413605dba 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1031,8 +1031,20 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np, * Find the device node that contains the supplier phandle. It may be * @sup_np or it may be an ancestor of @sup_np. */ - while (sup_np && !of_find_property(sup_np, "compatible", NULL)) + while (sup_np) { + + /* Don't allow linking to a disabled supplier */ + if (!of_device_is_available(sup_np)) { + of_node_put(sup_np); + sup_np = NULL; + } + + if (of_find_property(sup_np, "compatible", NULL)) + break; + sup_np = of_get_next_parent(sup_np); + } + if (!sup_np) { dev_dbg(dev, "Not linking to %pOFP - No device\n", tmp_np); return -ENODEV; From b01c28647348978878e5c52393bf1a4e904d9730 Mon Sep 17 00:00:00 2001 From: Nicolas Saenz Julienne Date: Mon, 20 Apr 2020 14:01:01 +0200 Subject: [PATCH 22/41] UPSTREAM: of: property: Fix create device links for all child-supplier dependencies Upon adding a new device from a DT node, we scan its properties and its children's properties in order to create a consumer/supplier relationship between the device and the property provider. That said, it's possible for some of the node's children to be disabled, which will create links that'll never be fulfilled. To get around this, use the for_each_available_child_of_node() function instead of for_each_available_node() when iterating over the node's children. Fixes: d4387cd11741 ("of: property: Create device links for all child-supplier depencencies") Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Saravana Kannan Signed-off-by: Rob Herring (cherry picked from commit ed3655729182a59b9bef1b564c6fc2dcbbbe954e) Signed-off-by: Greg Kroah-Hartman Change-Id: I729c42bb3ddc8ecff1e5e097a439d672faea1f89 --- drivers/of/property.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 05e413605dba..c3cca636e8ea 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1323,7 +1323,7 @@ static int of_link_to_suppliers(struct device *dev, if (of_link_property(dev, con_np, p->name)) ret = -ENODEV; - for_each_child_of_node(con_np, child) + for_each_available_child_of_node(con_np, child) if (of_link_to_suppliers(dev, child) && !ret) ret = -EAGAIN; From 223c666145d349ae64825be99413f5a2e7f3f0e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 20 Apr 2020 11:25:07 -0700 Subject: [PATCH 23/41] UPSTREAM: ipv6: ndisc: RFC-ietf-6man-ra-pref64-09 is now published as RFC8781 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See: https://www.rfc-editor.org/authors/rfc8781.txt Cc: Erik Kline Cc: Jen Linkova Cc: Lorenzo Colitti Cc: Michael Haro Signed-off-by: Maciej Å»enczykowski Fixes: c24a77edc9a7 ("ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier") Signed-off-by: David S. Miller (cherry picked from commit 9175d3f38816835b0801bacbf4f6aff1a1672b71) Signed-off-by: Greg Kroah-Hartman Change-Id: I9ac8f0e2d500846e4a545434583bda3f671e00bb --- include/net/ndisc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 5ffba5a4e5c5..6cb3e6c11132 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -41,7 +41,7 @@ enum { ND_OPT_DNSSL = 31, /* RFC6106 */ ND_OPT_6CO = 34, /* RFC6775 */ ND_OPT_CAPTIVE_PORTAL = 37, /* RFC7710 */ - ND_OPT_PREF64 = 38, /* RFC-ietf-6man-ra-pref64-09 */ + ND_OPT_PREF64 = 38, /* RFC8781 */ __ND_OPT_MAX }; From df1cc4066ffa036e174eb7ec45330a71c262be54 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Mon, 30 Mar 2020 18:51:29 +0200 Subject: [PATCH 24/41] UPSTREAM: net: fix fraglist segmentation reference count leak Xin Long says: On udp rx path udp_rcv_segment() may do segment where the frag skbs will get the header copied from the head skb in skb_segment_list() by calling __copy_skb_header(), which could overwrite the frag skbs' extensions by __skb_ext_copy() and cause a leak. This issue was found after loading esp_offload where a sec path ext is set in the skb. Fix this by discarding head state of the fraglist skb before replacing its contents. Fixes: 3a1296a38d0cf62 ("net: Support GRO/GSO fraglist chaining.") Cc: Steffen Klassert Reported-by: Xiumei Mu Tested-by: Xin Long Signed-off-by: Florian Westphal Acked-by: Steffen Klassert Signed-off-by: David S. Miller (cherry picked from commit cf673ed0e057a2dd68d930c6d7e30d53c70c5789) Signed-off-by: Greg Kroah-Hartman Change-Id: Iba886d897485ddddb2f1f67347b65fbba4d3e119 --- net/core/skbuff.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index e53fe52dd764..b2c203bcf24c 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3671,6 +3671,7 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb, skb_push(nskb, -skb_network_offset(nskb) + offset); + skb_release_head_state(nskb); __copy_skb_header(nskb, skb); skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb)); From 9008abe0e4362752eafce8857a6836bf1918a002 Mon Sep 17 00:00:00 2001 From: Vincenzo Frascino Date: Mon, 23 Mar 2020 12:41:09 +0000 Subject: [PATCH 25/41] UPSTREAM: um: Fix header inclusion User Mode Linux is a flavor of x86 that from the vDSO prospective always falls back on system calls. This implies that it does not require any of the unified vDSO definitions and their inclusion causes side effects like this: In file included from include/vdso/processor.h:10:0, from include/vdso/datapage.h:17, from arch/x86/include/asm/vgtod.h:7, from arch/x86/um/../kernel/sys_ia32.c:49: >> arch/x86/include/asm/vdso/processor.h:11:29: error: redefinition of 'rep_nop' static __always_inline void rep_nop(void) ^~~~~~~ In file included from include/linux/rcupdate.h:30:0, from include/linux/rculist.h:11, from include/linux/pid.h:5, from include/linux/sched.h:14, from arch/x86/um/../kernel/sys_ia32.c:25: arch/x86/um/asm/processor.h:24:20: note: previous definition of 'rep_nop' was here static inline void rep_nop(void) Make sure that the unnecessary headers are not included when um is built to address the problem. Fixes: abc22418db02 ("x86/vdso: Enable x86 to use common headers") Reported-by: kbuild test robot Signed-off-by: Vincenzo Frascino Signed-off-by: Borislav Petkov Link: https://lkml.kernel.org/r/20200323124109.7104-1-vincenzo.frascino@arm.com (cherry picked from commit 1c1a18b00d7e25d1bed3507880de2da07be704a2) Signed-off-by: Greg Kroah-Hartman Change-Id: I9a8e1f005867caa5b9da510ec129e0640cb55f10 --- arch/x86/include/asm/vgtod.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/include/asm/vgtod.h b/arch/x86/include/asm/vgtod.h index a2638c6124ed..f3fe0057647c 100644 --- a/arch/x86/include/asm/vgtod.h +++ b/arch/x86/include/asm/vgtod.h @@ -2,6 +2,11 @@ #ifndef _ASM_X86_VGTOD_H #define _ASM_X86_VGTOD_H +/* + * This check is required to prevent ARCH=um to include + * unwanted headers. + */ +#ifdef CONFIG_GENERIC_GETTIMEOFDAY #include #include #include @@ -14,6 +19,7 @@ typedef u64 gtod_long_t; #else typedef unsigned long gtod_long_t; #endif +#endif /* CONFIG_GENERIC_GETTIMEOFDAY */ extern int vclocks_used; static inline bool vclock_was_used(int vclock) From a268f056b76533824d53eb873523121812cf99f2 Mon Sep 17 00:00:00 2001 From: Dinh Nguyen Date: Mon, 3 Feb 2020 15:55:09 -0600 Subject: [PATCH 26/41] UPSTREAM: ARM: socfpga_defconfig: Add back DEBUG_FS Commit 0e4a459f56c3 ("tracing: Remove unnecessary DEBUG_FS dependency") removed select for DEBUG_FS but we still need it for development purposes. Fixes: 0e4a459f56c3 ("tracing: Remove unnecessary DEBUG_FS dependency") Signed-off-by: Dinh Nguyen (cherry picked from commit 41bae0caf5dc216c7b43712b8c2b6a0d63b4d655) Signed-off-by: Greg Kroah-Hartman Change-Id: I43ec65bdd0d67d9a3be986c8ccc2e86eed1763fa --- arch/arm/configs/socfpga_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/socfpga_defconfig b/arch/arm/configs/socfpga_defconfig index fe2e1e82e233..e73c97b0f5b0 100644 --- a/arch/arm/configs/socfpga_defconfig +++ b/arch/arm/configs/socfpga_defconfig @@ -157,6 +157,7 @@ CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_SCHED_DEBUG is not set CONFIG_FUNCTION_TRACER=y From fecd3edb9528436492c837100e670aa21609b1d2 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Sun, 23 Feb 2020 14:02:56 +0100 Subject: [PATCH 27/41] UPSTREAM: ARM: bcm2835_defconfig: Explicitly restore CONFIG_DEBUG_FS The commit 0e4a459f56c3 ("tracing: Remove unnecessary DEBUG_FS dependency") accidentally dropped the DEBUG FS support in bcm2835_defconfig. So restore the config as before the commit. Reported-by: Marek Szyprowski Fixes: 0e4a459f56c3 ("tracing: Remove unnecessary DEBUG_FS dependency") Signed-off-by: Stefan Wahren Signed-off-by: Florian Fainelli (cherry picked from commit 1bba60808404b873defa0f3560497eb2e8fe86b8) Signed-off-by: Greg Kroah-Hartman Change-Id: I9eb54e224a75a3970956898319e0a8a4ce28676f --- arch/arm/configs/bcm2835_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 519ff58e67b3..0afcae9f7cf8 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -178,6 +178,7 @@ CONFIG_SCHED_TRACER=y CONFIG_STACK_TRACER=y CONFIG_FUNCTION_PROFILER=y CONFIG_TEST_KSTRTOX=y +CONFIG_DEBUG_FS=y CONFIG_KGDB=y CONFIG_KGDB_KDB=y CONFIG_STRICT_DEVMEM=y From 3ab3de2667c94366b5638ba4c8d28d063cf5d6bb Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Thu, 30 Jan 2020 13:55:29 +0100 Subject: [PATCH 28/41] UPSTREAM: mfd: syscon: Fix syscon_regmap_lookup_by_phandle_args() dummy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If CONFIG_MFD_SYSCON=n: include/linux/mfd/syscon.h:54:23: warning: ‘syscon_regmap_lookup_by_phandle_args’ defined but not used [-Wunused-function] Fix this by adding the missing inline keyword. Fixes: 6a24f567af4accef ("mfd: syscon: Add arguments support for syscon reference") Signed-off-by: Geert Uytterhoeven Signed-off-by: Lee Jones (cherry picked from commit 5312f321a67cfee1fe4de245bc558fa857dce33b) Signed-off-by: Greg Kroah-Hartman Change-Id: Icd3816bb79110e06860ea5ede34a69692fba7a7a --- include/linux/mfd/syscon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mfd/syscon.h b/include/linux/mfd/syscon.h index 714cab1e09d3..7f20e9b502a5 100644 --- a/include/linux/mfd/syscon.h +++ b/include/linux/mfd/syscon.h @@ -51,7 +51,7 @@ static inline struct regmap *syscon_regmap_lookup_by_phandle( return ERR_PTR(-ENOTSUPP); } -static struct regmap *syscon_regmap_lookup_by_phandle_args( +static inline struct regmap *syscon_regmap_lookup_by_phandle_args( struct device_node *np, const char *property, int arg_count, From b1ab58007628a6f46dbccb40c20093c7553d0e4a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Jan 2020 20:43:41 +0100 Subject: [PATCH 29/41] UPSTREAM: MIPS: vdso: Define BUILD_VDSO32 when building a 32bit kernel The confinement of the 32bit specific VDSO functions missed to define BUILD_VDSO32 when building a 32bit MIPS kernel: arch/mips/vdso/vgettimeofday.c: In function __vdso_clock_gettime: arch/mips/vdso/vgettimeofday.c:17:9: error: implicit declaration of function __cvdso_clock_gettime32 arch/mips/vdso/vgettimeofday.c: In function __vdso_clock_getres: arch/mips/vdso/vgettimeofday.c:39:9: error: implicit declaration of function __cvdso_clock_getres_time32 Force the define for 32bit builds in the VDSO Makefile. Fixes: bf279849ad59 ("lib/vdso: Build 32 bit specific functions in the right context") Reported-by: kbuild test robot Signed-off-by: Thomas Gleixner Acked-by: Paul Burton Link: https://lore.kernel.org/r/87d0bjfaqa.fsf@nanos.tec.linutronix.de (cherry picked from commit 99570c3da96a0f7aa11c6ad4981776f3adabf3b5) Signed-off-by: Greg Kroah-Hartman Change-Id: I00c1cbdbca17f9b9d018e32115ed12cff5c1db18 --- arch/mips/vdso/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile index 996a934ece7d..267bd182946d 100644 --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile @@ -18,6 +18,10 @@ ccflags-vdso := \ $(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \ -D__VDSO__ +ifndef CONFIG_64BIT +ccflags-vdso += -DBUILD_VDSO32 +endif + ifdef CONFIG_CC_IS_CLANG ccflags-vdso += $(filter --target=%,$(KBUILD_CFLAGS)) endif From 26d0b8dd3a3f203c8d87b5e94639e27557326e8b Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Mon, 23 Dec 2019 16:38:36 -0500 Subject: [PATCH 30/41] UPSTREAM: selinux: ensure the policy has been loaded before reading the sidtab stats Check to make sure we have loaded a policy before we query the sidtab's hash stats. Failure to do so could result in a kernel panic/oops due to a dereferenced NULL pointer. Fixes: 66f8e2f03c02 ("selinux: sidtab reverse lookup hash table") Reported-by: kernel test robot Signed-off-by: Paul Moore (cherry picked from commit 15b590a81fcdd44ddcb4810f2a6334df8b6ca512) Signed-off-by: Greg Kroah-Hartman Change-Id: I9c9309341634ba0bdc6d151ec1ae4040a71dcd40 --- security/selinux/ss/services.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index e352ce1e1779..5199dd3f3db5 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -1261,6 +1261,12 @@ int security_sidtab_hash_stats(struct selinux_state *state, char *page) { int rc; + if (!state->initialized) { + pr_err("SELinux: %s: called before initial load_policy\n", + __func__); + return -EINVAL; + } + read_lock(&state->ss->policy_rwlock); rc = sidtab_hash_stats(state->ss->sidtab, page); read_unlock(&state->ss->policy_rwlock); From e13d39a31f8ee23b9e16d36673b02ff28413bd7c Mon Sep 17 00:00:00 2001 From: Saravana Kannan Date: Mon, 9 Dec 2019 11:31:19 -0800 Subject: [PATCH 31/41] UPSTREAM: of/platform: Unconditionally pause/resume sync state during kernel init Commit 5e6669387e22 ("of/platform: Pause/resume sync state during init and of_platform_populate()") paused/resumed sync state during init only if Linux had parsed and populated a devicetree. However, the check for that (of_have_populated_dt()) can change after of_platform_default_populate_init() executes. One example of this is when devicetree unittests are enabled. This causes an unmatched pause/resume of sync state. To avoid this, just unconditionally pause/resume sync state during init. Fixes: 5e6669387e22 ("of/platform: Pause/resume sync state during init and of_platform_populate()") Reported-by: kernel test robot Signed-off-by: Saravana Kannan Reviewed-by: Frank Rowand Signed-off-by: Rob Herring (cherry picked from commit ee9b280e17dce51c44e1d04d11eb0a4acd0ee1a9) Signed-off-by: Greg Kroah-Hartman Change-Id: Iba0f462bf45e056a03f3e925d8037db81cb517b2 --- drivers/of/platform.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index c616c4d9f082..55d719347810 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -518,10 +518,11 @@ static int __init of_platform_default_populate_init(void) { struct device_node *node; + device_links_supplier_sync_state_pause(); + if (!of_have_populated_dt()) return -ENODEV; - device_links_supplier_sync_state_pause(); /* * Handle certain compatibles explicitly, since we don't want to create * platform_devices for every node in /reserved-memory with a @@ -547,8 +548,7 @@ arch_initcall_sync(of_platform_default_populate_init); static int __init of_platform_sync_state_init(void) { - if (of_have_populated_dt()) - device_links_supplier_sync_state_resume(); + device_links_supplier_sync_state_resume(); return 0; } late_initcall_sync(of_platform_sync_state_init); From f49688970b36cb80f1fef3527ecedf3a60053905 Mon Sep 17 00:00:00 2001 From: YueHaibing Date: Wed, 13 Nov 2019 18:53:13 +0800 Subject: [PATCH 32/41] UPSTREAM: thermal: power_allocator: Fix Kconfig warning When do randbuiding, we got this: WARNING: unmet direct dependencies detected for THERMAL_GOV_POWER_ALLOCATOR Depends on [n]: THERMAL [=y] && ENERGY_MODEL [=n] Selected by [y]: - THERMAL_DEFAULT_GOV_POWER_ALLOCATOR [=y] && The Kconfig option THERMAL_DEFAULT_GOV_POWER_ALLOCATOR selects the THERMAL_GOV_POWER_ALLOCATOR but this one depends on the ENERGY_MODEL which is not enabled. Make THERMAL_DEFAULT_GOV_POWER_ALLOCATOR depend on THERMAL_GOV_POWER_ALLOCATOR to fix this warning. Suggested-by: Quentin Perret Fixes: a4e893e802e6 ("thermal: cpu_cooling: Migrate to using the EM framework") Signed-off-by: YueHaibing Signed-off-by: Daniel Lezcano Signed-off-by: Zhang Rui Link: https://lore.kernel.org/r/20191113105313.41616-1-yuehaibing@huawei.com (cherry picked from commit 50260614245b09887c197c58732298f02052d61b) Signed-off-by: Greg Kroah-Hartman Change-Id: I18848e76a65a03fb79b15ffae45919562e906853 --- drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index 47e1fb30aef4..f08f46533aa8 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -108,7 +108,7 @@ config THERMAL_DEFAULT_GOV_USER_SPACE config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR bool "power_allocator" - select THERMAL_GOV_POWER_ALLOCATOR + depends on THERMAL_GOV_POWER_ALLOCATOR help Select this if you want to control temperature based on system and device power allocation. This governor can only From 42e0a0e97f9309312fe63ccd61153652d5f6b023 Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Mon, 11 Nov 2019 11:53:34 -0800 Subject: [PATCH 33/41] UPSTREAM: spi: Fix regression to return zero on success instead of positive value Commit d948e6ca1899 ("spi: add power control when set_cs") added generic runtime PM handling, but also changed the return value to be 1 instead of 0 that we had earlier as pm_runtime_get functions return a positve value on success. This causes SPI devices to return errors for cases where they do: ret = spi_setup(spi); if (ret) return ret; As in many cases the SPI devices do not check for if (ret < 0). Let's fix this by setting the status to 0 on succeess after the runtime PM calls. Let's not return 0 at the end of the function as this might break again later on if the function changes and starts returning status again. Fixes: d948e6ca1899 ("spi: add power control when set_cs") Cc: Luhua Xu Cc: wsd_upstream@mediatek.com Signed-off-by: Tony Lindgren Link: https://lore.kernel.org/r/20191111195334.44833-1-tony@atomide.com Signed-off-by: Mark Brown (cherry picked from commit 57a9460705f105e1d79d1410c5cfe285beda8986) Signed-off-by: Greg Kroah-Hartman Change-Id: I70449c0ef2cbe4c34065adbad577f78ff9928b7b --- drivers/spi/spi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index bb3066cedb7e..cbcb40924824 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -3119,6 +3119,15 @@ int spi_setup(struct spi_device *spi) status); return status; } + + /* + * We do not want to return positive value from pm_runtime_get, + * there are many instances of devices calling spi_setup() and + * checking for a non-zero return value instead of a negative + * return value. + */ + status = 0; + spi_set_cs(spi, false); pm_runtime_mark_last_busy(spi->controller->dev.parent); pm_runtime_put_autosuspend(spi->controller->dev.parent); From 7982ae0c2c85e23195941d2b53ccf8a8e2b3cc05 Mon Sep 17 00:00:00 2001 From: Zhiqiang Tu Date: Mon, 16 Nov 2020 17:31:55 +0800 Subject: [PATCH 34/41] ANDROID: ABI: Update allowed list for QCOM Leaf changes summary: 0 artifact changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable Bug: 173134053 Change-Id: I7f419c3180f2a45ae628e4a600eb6a45ca12a7e9 Signed-off-by: Zhiqiang Tu --- android/abi_gki_aarch64_qcom | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 90d04aded65a..1e6e35d4f546 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1883,6 +1883,8 @@ register_shrinker register_syscore_ops register_sysctl_table + register_virtio_device + register_virtio_driver regmap_bulk_read regmap_bulk_write regmap_field_read @@ -2486,6 +2488,8 @@ unregister_shrinker unregister_syscore_ops unregister_sysctl_table + unregister_virtio_device + unregister_virtio_driver up update_devfreq up_read @@ -2742,6 +2746,29 @@ video_ioctl2 __video_register_device video_unregister_device + virtio_check_driver_offered_feature + virtio_config_changed + virtio_max_dma_size + virtqueue_add_inbuf + virtqueue_add_inbuf_ctx + virtqueue_add_outbuf + virtqueue_add_sgs + virtqueue_detach_unused_buf + virtqueue_disable_cb + virtqueue_enable_cb + virtqueue_enable_cb_delayed + virtqueue_enable_cb_prepare + virtqueue_get_avail_addr + virtqueue_get_buf + virtqueue_get_buf_ctx + virtqueue_get_desc_addr + virtqueue_get_used_addr + virtqueue_get_vring_size + virtqueue_is_broken + virtqueue_kick + virtqueue_kick_prepare + virtqueue_notify + virtqueue_poll vmalloc vmalloc_to_page vmalloc_user @@ -2755,6 +2782,10 @@ vm_map_ram vm_unmap_ram vprintk + vring_create_virtqueue + vring_del_virtqueue + vring_interrupt + vring_transport_features vscnprintf vsnprintf vunmap From 70145df882580537f337a53f7b871922e8aa4f1f Mon Sep 17 00:00:00 2001 From: Mukesh Ojha Date: Mon, 16 Nov 2020 19:42:54 +0530 Subject: [PATCH 35/41] FROMLIST: thermal: Fix NULL pointer dereference issue Cooling stats variable inside thermal_cooling_device_stats_update() can get NULL. We should add a valid check on stat before using it. Bug: 173355233 Link: https://lore.kernel.org/lkml/1605544181-5348-1-git-send-email-mojha@codeaurora.org/ Change-Id: I48105dcf8ff81d272534c59b7120a6d9fc831d04 Signed-off-by: Mukesh Ojha --- drivers/thermal/thermal_sysfs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c index aa99edb4dff7..4dce4a8f71ed 100644 --- a/drivers/thermal/thermal_sysfs.c +++ b/drivers/thermal/thermal_sysfs.c @@ -770,6 +770,9 @@ void thermal_cooling_device_stats_update(struct thermal_cooling_device *cdev, { struct cooling_dev_stats *stats = cdev->stats; + if (!stats) + return; + spin_lock(&stats->lock); if (stats->state == new_state) From 5eaa11cf0d1c9bca7aecbbadcc18ea6aab55ba5f Mon Sep 17 00:00:00 2001 From: Chunyan Zhang Date: Fri, 10 Jan 2020 16:39:02 +0800 Subject: [PATCH 36/41] UPSTREAM: tick/common: Touch watchdog in tick_unfreeze() on all CPUs Suspend to IDLE invokes tick_unfreeze() on resume. tick_unfreeze() on the first resuming CPU resumes timekeeping, which also has the side effect of resetting the softlockup watchdog on this CPU. But on the secondary CPUs the watchdog is not reset in the resume / unfreeze() path, which can result in false softlockup warnings on those CPUs depending on the time spent in suspend. Prevent this by clearing the softlock watchdog in the unfreeze path also on the secondary resuming CPUs. [ tglx: Massaged changelog ] Signed-off-by: Chunyan Zhang Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/r/20200110083902.27276-1-chunyan.zhang@unisoc.com Bug: 173341055 (cherry picked from commit 5167c506d62dd9ffab73eba23c79b0a8845c9fe1) Signed-off-by: Chunyan Zhang Change-Id: Iab440b4137726811fce76f3636a4cf8bafc2c202 --- kernel/time/tick-common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index 59225b484e4e..7e5d3524e924 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -558,6 +559,7 @@ void tick_unfreeze(void) trace_suspend_resume(TPS("timekeeping_freeze"), smp_processor_id(), false); } else { + touch_softlockup_watchdog(); tick_resume_local(); } From 4e20d65b7289edfd34f8c0b56dc4130f7a02680d Mon Sep 17 00:00:00 2001 From: Baolin Wang Date: Tue, 18 Aug 2020 11:41:58 +0800 Subject: [PATCH 37/41] UPSTREAM: mfd: sprd: Add wakeup capability for PMIC IRQ When changing to use suspend-to-idle to save power, the PMIC irq can not wakeup the system due to lack of wakeup capability, which will cause the sub-irqs (such as power key) of the PMIC can not wake up the system. Thus we can add the wakeup capability for PMIC irq to solve this issue, as well as removing the IRQF_NO_SUSPEND flag to allow PMIC irq to be a wakeup source. Reported-by: Chunyan Zhang Signed-off-by: Baolin Wang Tested-by: Chunyan Zhang Signed-off-by: Lee Jones Bug: 173341055 (cherry picked from commit a75bfc824a2d33f57ebdc003bfe6b7a9e11e9cb9) Signed-off-by: Chunyan Zhang Change-Id: Ibe5f907b96d59e8b02e8e4838fc8b3cde5f4f35e --- drivers/mfd/sprd-sc27xx-spi.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/sprd-sc27xx-spi.c b/drivers/mfd/sprd-sc27xx-spi.c index ebdf2f11ae28..bb502f4c56df 100644 --- a/drivers/mfd/sprd-sc27xx-spi.c +++ b/drivers/mfd/sprd-sc27xx-spi.c @@ -256,7 +256,7 @@ static int sprd_pmic_probe(struct spi_device *spi) } ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq, - IRQF_ONESHOT | IRQF_NO_SUSPEND, 0, + IRQF_ONESHOT, 0, &ddata->irq_chip, &ddata->irq_data); if (ret) { dev_err(&spi->dev, "Failed to add PMIC irq chip %d\n", ret); @@ -272,9 +272,34 @@ static int sprd_pmic_probe(struct spi_device *spi) return ret; } + device_init_wakeup(&spi->dev, true); return 0; } +#ifdef CONFIG_PM_SLEEP +static int sprd_pmic_suspend(struct device *dev) +{ + struct sprd_pmic *ddata = dev_get_drvdata(dev); + + if (device_may_wakeup(dev)) + enable_irq_wake(ddata->irq); + + return 0; +} + +static int sprd_pmic_resume(struct device *dev) +{ + struct sprd_pmic *ddata = dev_get_drvdata(dev); + + if (device_may_wakeup(dev)) + disable_irq_wake(ddata->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(sprd_pmic_pm_ops, sprd_pmic_suspend, sprd_pmic_resume); + static const struct of_device_id sprd_pmic_match[] = { { .compatible = "sprd,sc2731", .data = &sc2731_data }, {}, @@ -286,6 +311,7 @@ static struct spi_driver sprd_pmic_driver = { .name = "sc27xx-pmic", .bus = &spi_bus_type, .of_match_table = sprd_pmic_match, + .pm = &sprd_pmic_pm_ops, }, .probe = sprd_pmic_probe, }; From 83e8d7513cbc0a4f2f50f41c04de002e519b3606 Mon Sep 17 00:00:00 2001 From: Chanho Park Date: Mon, 16 Nov 2020 16:01:01 +0900 Subject: [PATCH 38/41] ANDROID: GKI: update allowed list for Exynosauto SoC This patch adds to update GKI symbol list for Exynosauto SoC. To review the allowed list easily, this patch does not include any newly additions of GKI symbols. Bug: 173340486 Signed-off-by: Chanho Park Change-Id: I6854f5e813845840b4db052282a92f59c6864cc0 --- android/abi_gki_aarch64_exynosauto | 114 ++++++++++++++++++++--------- 1 file changed, 80 insertions(+), 34 deletions(-) diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto index 52ac68379854..264a57846de5 100644 --- a/android/abi_gki_aarch64_exynosauto +++ b/android/abi_gki_aarch64_exynosauto @@ -29,6 +29,7 @@ clk_bulk_unprepare clk_disable clk_enable + clk_get clk_get_rate clk_prepare clk_put @@ -37,12 +38,14 @@ complete complete_all __const_udelay + cpu_bit_bitmap cpu_hwcap_keys cpu_hwcaps cpumask_next cpu_number __cpu_online_mask __cpu_possible_mask + crc32_le delayed_work_timer_fn del_timer del_timer_sync @@ -50,7 +53,9 @@ dev_driver_string _dev_emerg _dev_err + device_create device_create_file + device_destroy device_for_each_child device_initialize device_init_wakeup @@ -64,6 +69,7 @@ devm_gpiod_get_optional devm_gpio_request_one devm_ioremap + devm_ioremap_nocache devm_ioremap_resource devm_kfree devm_kmalloc @@ -116,7 +122,9 @@ dma_request_slave_channel dma_set_coherent_mask dma_set_mask + down down_read + down_trylock drm_add_edid_modes drm_atomic_helper_connector_destroy_state drm_atomic_helper_connector_duplicate_state @@ -156,6 +164,7 @@ generic_handle_irq get_device __get_free_pages + get_random_bytes get_task_mm get_unused_fd_flags get_user_pages @@ -167,12 +176,14 @@ gpiod_to_irq gpio_free gpio_request + gpio_request_one gpio_to_desc handle_edge_irq handle_level_irq handle_nested_irq i2c_add_numbered_adapter i2c_del_driver + i2c_get_adapter i2c_new_dummy i2c_register_driver i2c_transfer @@ -209,17 +220,23 @@ __kmalloc kmalloc_caches kmalloc_order_trace + kmem_cache_alloc kmem_cache_alloc_trace + kmem_cache_free kmemdup kobject_create_and_add krealloc kstrdup kstrtobool kstrtoint + kstrtou8 kstrtouint kstrtoull kthread_create_on_node + __kthread_init_worker + kthread_queue_work kthread_stop + kthread_worker_fn ktime_get ktime_get_mono_fast_ns ktime_get_raw_ts64 @@ -229,6 +246,7 @@ mdiobus_read mdiobus_write memcpy + memdup_user memset mfd_add_devices mfd_remove_devices @@ -247,9 +265,12 @@ __msecs_to_jiffies msleep __mutex_init + mutex_is_locked mutex_lock mutex_unlock + names_cachep netif_carrier_off + no_llseek nr_cpu_ids __num_online_cpus of_address_to_resource @@ -360,6 +381,7 @@ refcount_inc_not_zero_checked __refrigerator register_pm_notifier + register_reboot_notifier register_restart_handler register_syscore_ops regmap_read @@ -367,8 +389,10 @@ regmap_write regulator_disable regulator_enable + regulator_get_optional regulator_list_voltage_linear regulator_map_voltage_linear + regulator_put regulator_register regulator_unregister release_firmware @@ -382,6 +406,7 @@ schedule_timeout scnprintf seq_printf + set_cpus_allowed_ptr set_page_dirty_lock sg_alloc_table sg_alloc_table_from_pages @@ -417,6 +442,9 @@ sysfs_remove_group system_freezing_cnt system_wq + tasklet_init + tasklet_kill + __tasklet_schedule _totalram_pages trace_define_field trace_event_buffer_commit @@ -431,6 +459,7 @@ __udelay unregister_chrdev_region unregister_pm_notifier + up up_read usb_add_hcd usb_disabled @@ -445,11 +474,15 @@ v4l2_fh_del v4l2_fh_exit v4l2_fh_init + v4l2_subdev_init vabits_actual vb2_buffer_done vb2_dqbuf vb2_mmap vb2_plane_cookie + vb2_plane_vaddr + vb2_poll + vb2_prepare_buf vb2_qbuf vb2_querybuf vb2_queue_init @@ -807,10 +840,8 @@ drm_release drm_universal_plane_init drm_vblank_init - kstrtou8 mipi_dsi_host_register mipi_dsi_host_unregister - mutex_is_locked of_drm_find_bridge of_drm_find_panel of_get_next_available_child @@ -838,20 +869,16 @@ dev_pm_opp_disable dev_pm_opp_get_freq dev_pm_opp_put - register_reboot_notifier unregister_reboot_notifier update_devfreq # required by exynos_mfc.ko - clk_get iommu_dma_reserve_iova iommu_get_domain_for_dev iommu_map_sg iommu_unmap mutex_lock_interruptible ns_to_timeval - vb2_plane_vaddr - vb2_poll # required by exynos_pm_qos.ko kstrtoint_from_user @@ -891,7 +918,6 @@ # required by exynosauto9-itmon.ko atomic_notifier_chain_unregister - devm_ioremap_nocache # required by g2d.ko __arch_copy_in_user @@ -911,17 +937,13 @@ i2c_adapter_type i2c_bus_type i2c_for_each_dev - i2c_get_adapter i2c_put_adapter i2c_smbus_xfer i2c_transfer_buffer_flags i2c_verify_client - memdup_user - no_llseek register_chrdev_region # required by i2c-exynosauto.ko - cpu_bit_bitmap i2c_del_adapter # required by ion_exynos_mod.ko @@ -954,6 +976,7 @@ # required by mali_kbase.ko anon_inode_getfd + __arch_clear_user __bitmap_weight bpf_trace_run5 cache_line_size @@ -965,9 +988,7 @@ dev_pm_opp_put_regulators dev_pm_opp_set_regulators dma_fence_get_status - down downgrade_write - down_trylock down_write dump_stack __get_task_comm @@ -978,6 +999,7 @@ hrtimer_forward hrtimer_init hrtimer_start_range_ns + kfree_call_rcu kobject_put ktime_get_raw __mmdrop @@ -991,10 +1013,10 @@ rb_prev rb_replace_node register_shrinker - regulator_get_optional - regulator_put remap_pfn_range remap_vmalloc_range + static_key_slow_dec + static_key_slow_inc strcspn strncasecmp synchronize_rcu @@ -1002,12 +1024,12 @@ sysfs_streq system_highpri_wq trace_output_call + __tracepoint_gpu_mem_total trace_print_array_seq trace_print_flags_seq try_module_get unmap_mapping_range unregister_shrinker - up up_write vmalloc_user vmf_insert_pfn_prot @@ -1044,16 +1066,10 @@ crypto_destroy_tfm crypto_shash_final crypto_shash_update - device_create - device_destroy d_path get_task_exe_file get_zeroed_page - __kthread_init_worker - kthread_queue_work - kthread_worker_fn release_pages - set_cpus_allowed_ptr sg_miter_next sg_miter_start sg_miter_stop @@ -1150,9 +1166,6 @@ of_dma_controller_free of_dma_controller_register pm_runtime_irq_safe - tasklet_init - tasklet_kill - __tasklet_schedule # required by rtc-s2vps01.ko devm_rtc_device_register @@ -1171,6 +1184,38 @@ watchdog_set_restart_priority watchdog_unregister_device +# required by sam-is-cis-4ec.ko + v4l2_i2c_subdev_init + +# required by sam-is.ko + down_interruptible + filp_close + filp_open + get_random_u32 + get_task_pid + i2c_new_device + jiffies_to_msecs + kstrtou16 + kthread_flush_work + kthread_flush_worker + ktime_get_ts64 + ktime_get_with_offset + mutex_trylock + ns_to_timespec + param_ops_string + phy_configure + pm_relax + pm_stay_awake + regulator_get_voltage + regulator_is_enabled + regulator_set_voltage + sched_setscheduler_nocheck + v4l2_device_register_subdev + v4l2_device_set_name + v4l2_device_unregister_subdev + v4l2_subdev_call_wrappers + vscnprintf + # required by samsung-iommu-group.ko iommu_group_alloc iommu_group_set_name @@ -1179,7 +1224,6 @@ alloc_etherdev_mqs capable consume_skb - crc32_le dev_close device_set_wakeup_capable device_set_wakeup_enable @@ -1192,7 +1236,6 @@ ethtool_op_get_ts_info eth_type_trans free_netdev - get_random_bytes in4_pton in6_pton jiffies_to_usecs @@ -1274,10 +1317,8 @@ iommu_group_set_iommudata iommu_put_dma_cookie iommu_report_device_fault - kmem_cache_alloc kmem_cache_create kmem_cache_destroy - kmem_cache_free of_get_dma_window pm_runtime_get_if_in_use @@ -1292,11 +1333,7 @@ v4l2_ctrl_new_std v4l_bound_align_image -# required by sfi_ipc_test.ko - nsecs_to_jiffies - # required by spi-exynosauto.ko - gpio_request_one loops_per_jiffy __spi_alloc_controller spi_controller_resume @@ -1305,6 +1342,16 @@ spi_register_controller spi_unregister_controller +# required by spidev.ko + driver_unregister + find_next_zero_bit + __register_chrdev + __spi_register_driver + spi_setup + spi_sync + stream_open + __unregister_chrdev + # required by ufs-exynos-core.ko ufshcd_config_pwr_mode ufshcd_dme_get_attr @@ -1328,7 +1375,6 @@ v4l2_event_pending vb2_create_bufs vb2_expbuf - vb2_prepare_buf vb2_request_object_is_buffer # required by videobuf2-dma-sg.ko From 09b63a94473094e2ac004354e5bf7f4d0301a9e1 Mon Sep 17 00:00:00 2001 From: Chanho Park Date: Mon, 16 Nov 2020 17:00:16 +0900 Subject: [PATCH 39/41] ANDROID: GKI: add allowed list for Exynosauto SoC This patch adds GKI symbol list for Exynosauto SoC. We need to add below 10 functions and most of symbols are required by PCIe EP(End point) driver. 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 uint32_t drm_of_crtc_port_mask(drm_device*, device_node*)' [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 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)' Bug: 173340486 Signed-off-by: Chanho Park Change-Id: I7411118d2112f10f09405acc1a1461e06ccd9883 --- android/abi_gki_aarch64.xml | 1239 +++++++++++++++------------- android/abi_gki_aarch64_exynosauto | 12 + 2 files changed, 673 insertions(+), 578 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index c7c5df0e8900..23ebcfe434ba 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -1418,6 +1418,7 @@ + @@ -1480,12 +1481,15 @@ + + + @@ -2680,6 +2684,12 @@ + + + + + + @@ -4677,6 +4687,7 @@ + @@ -16473,13 +16484,13 @@ - + - + @@ -22940,102 +22951,102 @@ - - + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -23660,26 +23671,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -31456,14 +31447,6 @@ - - - - - - - - @@ -38234,6 +38217,11 @@ + + + + + @@ -38278,38 +38266,46 @@ + + + + + + + + - + - + - + - + - + - + - + - + @@ -43520,17 +43516,6 @@ - - - - - - - - - - - @@ -48823,7 +48808,7 @@ - + @@ -49336,7 +49321,7 @@ - + @@ -49460,7 +49445,7 @@ - + @@ -49969,7 +49954,7 @@ - + @@ -50033,7 +50018,7 @@ - + @@ -50090,7 +50075,7 @@ - + @@ -50229,7 +50214,7 @@ - + @@ -50260,7 +50245,7 @@ - + @@ -50271,7 +50256,7 @@ - + @@ -50530,7 +50515,7 @@ - + @@ -50549,7 +50534,7 @@ - + @@ -50586,7 +50571,7 @@ - + @@ -50710,7 +50695,7 @@ - + @@ -50731,7 +50716,7 @@ - + @@ -50768,7 +50753,7 @@ - + @@ -50862,7 +50847,7 @@ - + @@ -50921,7 +50906,7 @@ - + @@ -55095,8 +55080,8 @@ - - + + @@ -55161,17 +55146,17 @@ - - + + - - + + - - - + + + @@ -57259,6 +57244,17 @@ + + + + + + + + + + + @@ -65356,7 +65352,7 @@ - + @@ -65413,7 +65409,7 @@ - + @@ -65699,7 +65695,7 @@ - + @@ -66077,6 +66073,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -66088,6 +66357,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -66154,17 +66526,10 @@ - - - - - - - @@ -66515,244 +66880,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -66780,36 +66907,17 @@ - - - - - - - - - - - - - - - - - - - @@ -66819,14 +66927,9 @@ - - - - - @@ -66834,10 +66937,6 @@ - - - - @@ -66965,74 +67064,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -67115,26 +67150,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -67151,6 +67166,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -75418,17 +75476,17 @@ - - - + + + - - + + - - + + @@ -80537,6 +80595,17 @@ + + + + + + + + + + + @@ -89323,23 +89392,6 @@ - - - - - - - - - - - - - - - - - @@ -89395,17 +89447,6 @@ - - - - - - - - - - - @@ -89621,6 +89662,16 @@ + + + + + + + + + + @@ -89843,7 +89894,7 @@ - + @@ -90686,7 +90737,6 @@ - @@ -90701,8 +90751,6 @@ - - @@ -90870,7 +90918,7 @@ - + @@ -90884,7 +90932,7 @@ - + @@ -90896,16 +90944,17 @@ - + - + - + - - + + + @@ -91265,7 +91314,7 @@ - + @@ -91464,6 +91513,23 @@ + + + + + + + + + + + + + + + + + @@ -93644,6 +93710,17 @@ + + + + + + + + + + + @@ -94396,7 +94473,7 @@ - + @@ -95257,7 +95334,7 @@ - + @@ -100224,7 +100301,7 @@ - + @@ -103576,7 +103653,7 @@ - + @@ -103701,7 +103778,7 @@ - + @@ -108241,6 +108318,23 @@ + + + + + + + + + + + + + + + + + @@ -109531,33 +109625,33 @@ - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + @@ -115464,8 +115558,8 @@ - - + + @@ -117704,17 +117798,6 @@ - - - - - - - - - - - diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto index 264a57846de5..084429b560c2 100644 --- a/android/abi_gki_aarch64_exynosauto +++ b/android/abi_gki_aarch64_exynosauto @@ -819,6 +819,7 @@ drm_mode_object_put drm_object_attach_property drm_of_component_match_add + drm_of_crtc_port_mask drm_of_find_possible_crtcs drm_open drm_panel_attach @@ -1082,6 +1083,17 @@ drm_panel_remove videomode_from_timing +# required by pcie-exynos-dw-ep.ko + dw_pcie_ep_init + dw_pcie_read_dbi + dw_pcie_write_dbi + pci_epc_clear_bar + pci_epc_map_addr + pci_epc_mem_alloc_addr + pci_epc_mem_free_addr + pci_epc_set_bar + pci_epc_unmap_addr + # required by pcie-exynos-dw-rc.ko bitmap_find_free_region bitmap_release_region From 6d9ab208c5e3b95d7219a527952def213963e041 Mon Sep 17 00:00:00 2001 From: Chris Ye Date: Thu, 29 Oct 2020 12:38:00 -0700 Subject: [PATCH 40/41] FROMGIT: Input: Add devices for HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE Kernel 5.4 introduces HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE, devices need to be set explicitly with this flag. Bug: 170072925 Bug: 170126889 Tests: atest android.hardware.input.cts.tests (cherry picked from commit f59ee399de4a8ca4d7d19cdcabb4b63e94867f09 https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-5.10/upstream-fixes) Signed-off-by: Chris Ye Change-Id: I65742e96babc59adde0ab32656850ef4f164ac3e --- drivers/hid/hid-ids.h | 4 ++++ drivers/hid/hid-quirks.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index bd1dc3194a51..8e2b155d5d24 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -449,6 +449,10 @@ #define USB_VENDOR_ID_FRUCTEL 0x25B6 #define USB_DEVICE_ID_GAMETEL_MT_MODE 0x0002 +#define USB_VENDOR_ID_GAMEVICE 0x27F8 +#define USB_DEVICE_ID_GAMEVICE_GV186 0x0BBE +#define USB_DEVICE_ID_GAMEVICE_KISHI 0x0BBF + #define USB_VENDOR_ID_GAMERON 0x0810 #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002 diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index a49fa2b047cb..d34c31721713 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -84,6 +84,10 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_FUTABA, USB_DEVICE_ID_LED_DISPLAY), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD), HID_QUIRK_MULTI_INPUT }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_GV186), + HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + { HID_USB_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_KISHI), + HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, From 37201331c48dc7071c3366a216ecd114a836bd74 Mon Sep 17 00:00:00 2001 From: Deeksha Gupta Date: Wed, 18 Nov 2020 10:53:08 +0530 Subject: [PATCH 41/41] ANDROID: ABI: Update allowed list for QCOM 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 void cfg80211_stop_iface(wiphy*, wireless_dev*, gfp_t)' Bug: 173561495 Signed-off-by: Deeksha Gupta Change-Id: I8197af49fd23443631b8845859f88e6bfa363ad1 --- android/abi_gki_aarch64.xml | 289 +++++++++++++++++------------------ android/abi_gki_aarch64_qcom | 1 + 2 files changed, 143 insertions(+), 147 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 23ebcfe434ba..599c5c28ba4c 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -566,6 +566,7 @@ + @@ -4687,7 +4688,6 @@ - @@ -15459,6 +15459,20 @@ + + + + + + + + + + + + + + @@ -23257,6 +23271,14 @@ + + + + + + + + @@ -31610,6 +31632,7 @@ + @@ -31665,7 +31688,7 @@ - + @@ -31898,7 +31921,7 @@ - + @@ -32196,7 +32219,7 @@ - + @@ -34809,7 +34832,7 @@ - + @@ -35321,7 +35344,7 @@ - + @@ -35593,7 +35616,7 @@ - + @@ -36689,7 +36712,7 @@ - + @@ -37089,7 +37112,7 @@ - + @@ -37151,7 +37174,6 @@ - @@ -37260,6 +37282,14 @@ + + + + + + + + @@ -37728,7 +37758,7 @@ - + @@ -38266,14 +38296,6 @@ - - - - - - - - @@ -48808,7 +48830,7 @@ - + @@ -49321,7 +49343,7 @@ - + @@ -49445,7 +49467,7 @@ - + @@ -49954,7 +49976,7 @@ - + @@ -50018,7 +50040,7 @@ - + @@ -50075,7 +50097,7 @@ - + @@ -50214,7 +50236,7 @@ - + @@ -50245,7 +50267,7 @@ - + @@ -50256,7 +50278,7 @@ - + @@ -50515,7 +50537,7 @@ - + @@ -50534,7 +50556,7 @@ - + @@ -50571,7 +50593,7 @@ - + @@ -50695,7 +50717,7 @@ - + @@ -50716,7 +50738,7 @@ - + @@ -50753,7 +50775,7 @@ - + @@ -50847,7 +50869,7 @@ - + @@ -50906,7 +50928,7 @@ - + @@ -57244,17 +57266,6 @@ - - - - - - - - - - - @@ -72165,6 +72176,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -78104,14 +78139,6 @@ - - - - - - - - @@ -80595,17 +80622,6 @@ - - - - - - - - - - - @@ -89447,6 +89463,17 @@ + + + + + + + + + + + @@ -89662,16 +89689,6 @@ - - - - - - - - - - @@ -90918,7 +90935,7 @@ - + @@ -90932,7 +90949,7 @@ - + @@ -90944,17 +90961,16 @@ - + - + - + - - - + + @@ -100708,13 +100724,13 @@ - + - + - + @@ -100756,7 +100772,7 @@ - + @@ -104919,7 +104935,7 @@ - + @@ -104935,7 +104951,7 @@ - + @@ -104943,7 +104959,7 @@ - + @@ -104957,7 +104973,7 @@ - + @@ -116281,6 +116297,14 @@ + + + + + + + + @@ -117798,6 +117822,17 @@ + + + + + + + + + + + @@ -122486,6 +122521,12 @@ + + + + + + @@ -123195,15 +123236,7 @@ - - - - - - - - - + @@ -124673,44 +124706,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -129955,6 +129950,14 @@ + + + + + + + + @@ -130153,14 +130156,6 @@ - - - - - - - - diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 1e6e35d4f546..238eb7c8331e 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -164,6 +164,7 @@ cfg80211_scan_done cfg80211_sched_scan_results __cfg80211_send_event_skb + cfg80211_stop_iface cfg80211_tdls_oper_request cfg80211_unlink_bss cfg80211_update_owe_info_event