summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-07-06 23:41:17 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-06 23:41:17 -0700
commit81b79b39c785a36c39db7c6d49ff19c8b02da883 (patch)
treeaa6aea3f46f47dbafe98c220abc74ae45f00094b /drivers
parent6b67ad013a290eaa48b429d7897f589477eb6555 (diff)
parent1fbefb5219e1f872dca8b1b54eecb7f83452d6fd (diff)
Merge "mmc: core: Use PF_MEMALLOC flag for clock scaling context"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/core/core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 79b5b3504ccd..0da9c5caea13 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -487,12 +487,17 @@ static int mmc_devfreq_set_target(struct device *dev,
struct mmc_devfeq_clk_scaling *clk_scaling;
int err = 0;
int abort;
+ unsigned long pflags = current->flags;
+
+ /* Ensure scaling would happen even in memory pressure conditions */
+ current->flags |= PF_MEMALLOC;
if (!(host && freq)) {
pr_err("%s: unexpected host/freq parameter\n", __func__);
err = -EINVAL;
goto out;
}
+
clk_scaling = &host->clk_scaling;
if (!clk_scaling->enable)
@@ -551,6 +556,7 @@ static int mmc_devfreq_set_target(struct device *dev,
rel_host:
mmc_release_host(host);
out:
+ tsk_restore_flags(current, pflags, PF_MEMALLOC);
return err;
}