Snap for 10386213 from 5547371953 to android13-5.15-keystone-qcom-release

Change-Id: Ia007457d1ea38a27c72a6c2e49c661d680850555
This commit is contained in:
Android Build Coastguard Worker
2023-06-27 00:00:21 +00:00
4 changed files with 38 additions and 28 deletions

View File

@@ -2914,6 +2914,7 @@
<elf-symbol name='genphy_c45_pma_setup_forced' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa3c6c386'/>
<elf-symbol name='genphy_c45_read_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62efc471'/>
<elf-symbol name='genphy_c45_read_lpa' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x16f3df01'/>
<elf-symbol name='genphy_c45_read_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefb8b074'/>
<elf-symbol name='genphy_check_and_restart_aneg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x643dc3b7'/>
<elf-symbol name='genphy_handle_interrupt_no_ack' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89f6e9fb'/>
<elf-symbol name='genphy_read_abilities' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc30cafca'/>
@@ -51661,7 +51662,7 @@
</class-decl>
<pointer-type-def type-id='3e1d184a' size-in-bits='64' id='6aee814c'/>
<pointer-type-def type-id='74e7a035' size-in-bits='64' id='6af64a09'/>
<class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv6/route.c' line='130' column='1' id='6b1203e5'>
<class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv4/route.c' line='1505' column='1' id='6b1203e5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='net/ipv4/route.c' line='1506' column='1'/>
</data-member>
@@ -142496,6 +142497,10 @@
<parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='320' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='genphy_c45_read_status' mangled-name='genphy_c45_read_status' filepath='drivers/net/phy/phy-c45.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_c45_read_status'>
<parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy-c45.c' line='545' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='genphy_check_and_restart_aneg' mangled-name='genphy_check_and_restart_aneg' filepath='drivers/net/phy/phy_device.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='genphy_check_and_restart_aneg'>
<parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='2135' column='1'/>
<parameter type-id='b50a4934' name='restart' filepath='drivers/net/phy/phy_device.c' line='2135' column='1'/>
@@ -162921,7 +162926,6 @@
</abi-instr>
</abi-corpus>
</abi-corpus-group>
<!--
libabigail: abidw: 2.1.0SOONG BUILD NUMBER PLACEHOLDER
-->

View File

@@ -780,6 +780,7 @@
geni_se_tx_dma_unprep
genphy_check_and_restart_aneg
__genphy_config_aneg
genphy_c45_read_status
genphy_read_abilities
genphy_read_lpa
genphy_read_mmd_unsupported

View File

@@ -781,7 +781,7 @@ static pkvm_id completer_owner_id(const struct pkvm_mem_transition *tx)
struct check_walk_data {
enum pkvm_page_state desired;
enum pkvm_page_state (*get_page_state)(kvm_pte_t pte);
enum pkvm_page_state (*get_page_state)(kvm_pte_t pte, u64 addr);
};
static int __check_page_state_visitor(u64 addr, u64 end, u32 level,
@@ -792,10 +792,7 @@ static int __check_page_state_visitor(u64 addr, u64 end, u32 level,
struct check_walk_data *d = arg;
kvm_pte_t pte = *ptep;
if (kvm_pte_valid(pte) && !addr_is_allowed_memory(kvm_pte_to_phys(pte)))
return -EINVAL;
return d->get_page_state(pte) == d->desired ? 0 : -EPERM;
return d->get_page_state(pte, addr) == d->desired ? 0 : -EPERM;
}
static int check_page_state_range(struct kvm_pgtable *pgt, u64 addr, u64 size,
@@ -810,8 +807,11 @@ static int check_page_state_range(struct kvm_pgtable *pgt, u64 addr, u64 size,
return kvm_pgtable_walk(pgt, addr, size, &walker);
}
static enum pkvm_page_state host_get_page_state(kvm_pte_t pte)
static enum pkvm_page_state host_get_page_state(kvm_pte_t pte, u64 addr)
{
if (!addr_is_allowed_memory(addr))
return PKVM_NOPAGE;
if (!kvm_pte_valid(pte) && pte)
return PKVM_NOPAGE;
@@ -954,7 +954,7 @@ static int host_complete_donation(u64 addr, const struct pkvm_mem_transition *tx
return host_stage2_set_owner_locked(addr, size, host_id);
}
static enum pkvm_page_state hyp_get_page_state(kvm_pte_t pte)
static enum pkvm_page_state hyp_get_page_state(kvm_pte_t pte, u64 addr)
{
if (!kvm_pte_valid(pte))
return PKVM_NOPAGE;
@@ -1066,7 +1066,7 @@ static int hyp_complete_donation(u64 addr,
return pkvm_create_mappings_locked(start, end, prot);
}
static enum pkvm_page_state guest_get_page_state(kvm_pte_t pte)
static enum pkvm_page_state guest_get_page_state(kvm_pte_t pte, u64 addr)
{
if (!kvm_pte_valid(pte))
return PKVM_NOPAGE;
@@ -1180,7 +1180,7 @@ static int __guest_request_page_transition(u64 *completer_addr,
if (ret)
return ret;
state = guest_get_page_state(pte);
state = guest_get_page_state(pte, tx->initiator.addr);
if (state == PKVM_NOPAGE)
return -EFAULT;
@@ -1946,7 +1946,7 @@ int __pkvm_host_reclaim_page(u64 pfn)
if (ret)
goto unlock;
if (host_get_page_state(pte) == PKVM_PAGE_OWNED)
if (host_get_page_state(pte, addr) == PKVM_PAGE_OWNED)
goto unlock;
page = hyp_phys_to_page(addr);

View File

@@ -102,6 +102,15 @@
16, 4, buf, __len, false); \
} while (0)
/*
* ANDROID: this mutex is used to serialize devfreq and sysfs write booster
* toggling, it was taken out of struct ufs_hba from commit b03f7ed9af6e ("scsi:
* ufs: core: Fix devfreq deadlocks") and made static here in order to preserve
* the ABI.
* Bug: 286803489
*/
static DEFINE_MUTEX(wb_mutex);
int ufshcd_dump_regs(struct ufs_hba *hba, size_t offset, size_t len,
const char *prefix)
{
@@ -1207,12 +1216,14 @@ static int ufshcd_clock_scaling_prepare(struct ufs_hba *hba)
* clock scaling is in progress
*/
ufshcd_scsi_block_requests(hba);
mutex_lock(&wb_mutex);
down_write(&hba->clk_scaling_lock);
if (!hba->clk_scaling.is_allowed ||
ufshcd_wait_for_doorbell_clr(hba, DOORBELL_CLR_TOUT_US)) {
ret = -EBUSY;
up_write(&hba->clk_scaling_lock);
mutex_unlock(&wb_mutex);
ufshcd_scsi_unblock_requests(hba);
goto out;
}
@@ -1224,17 +1235,15 @@ out:
return ret;
}
static void ufshcd_clock_scaling_unprepare(struct ufs_hba *hba, bool writelock)
static void ufshcd_clock_scaling_unprepare(struct ufs_hba *hba, int err, bool scale_up)
{
/* Enable Write Booster if we have scaled up else disable it */
if (ufshcd_enable_wb_if_scaling_up(hba)) {
if (writelock)
up_write(&hba->clk_scaling_lock);
else
up_read(&hba->clk_scaling_lock);
up_write(&hba->clk_scaling_lock);
ufshcd_wb_toggle(hba, writelock);
}
/* Enable Write Booster if we have scaled up else disable it */
if (ufshcd_enable_wb_if_scaling_up(hba) && !err)
ufshcd_wb_toggle(hba, scale_up);
mutex_unlock(&wb_mutex);
ufshcd_scsi_unblock_requests(hba);
ufshcd_release(hba);
@@ -1252,7 +1261,6 @@ static void ufshcd_clock_scaling_unprepare(struct ufs_hba *hba, bool writelock)
static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up)
{
int ret = 0;
bool is_writelock = true;
ret = ufshcd_clock_scaling_prepare(hba);
if (ret)
@@ -1281,13 +1289,8 @@ static int ufshcd_devfreq_scale(struct ufs_hba *hba, bool scale_up)
}
}
/* Enable Write Booster if we have scaled up else disable it */
downgrade_write(&hba->clk_scaling_lock);
is_writelock = false;
ufshcd_wb_toggle(hba, scale_up);
out_unprepare:
ufshcd_clock_scaling_unprepare(hba, is_writelock);
ufshcd_clock_scaling_unprepare(hba, ret, scale_up);
return ret;
}
@@ -6030,9 +6033,11 @@ static void ufshcd_force_error_recovery(struct ufs_hba *hba)
static void ufshcd_clk_scaling_allow(struct ufs_hba *hba, bool allow)
{
mutex_lock(&wb_mutex);
down_write(&hba->clk_scaling_lock);
hba->clk_scaling.is_allowed = allow;
up_write(&hba->clk_scaling_lock);
mutex_unlock(&wb_mutex);
}
static void ufshcd_clk_scaling_suspend(struct ufs_hba *hba, bool suspend)