mmc: sdhci: Fix ADMA page boundary warnings
Bytes are being copied from/to a single page. The intent of the warning is to warn if the page boundary is crossed. There are two problems. First, PAGE_MASK is mistaken for (PAGE_SIZE - 1). Secondly, instead of using the number of bytes to copy, the warning is using the maximum that that value could be. Fix both. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Родитель
c09df940eb
Коммит
8be78c6ad4
|
@ -525,7 +525,8 @@ static int sdhci_adma_table_pre(struct sdhci_host *host,
|
||||||
if (offset) {
|
if (offset) {
|
||||||
if (data->flags & MMC_DATA_WRITE) {
|
if (data->flags & MMC_DATA_WRITE) {
|
||||||
buffer = sdhci_kmap_atomic(sg, &flags);
|
buffer = sdhci_kmap_atomic(sg, &flags);
|
||||||
WARN_ON(((long)buffer & PAGE_MASK) > (PAGE_SIZE - 3));
|
WARN_ON(((long)buffer & (PAGE_SIZE - 1)) >
|
||||||
|
(PAGE_SIZE - offset));
|
||||||
memcpy(align, buffer, offset);
|
memcpy(align, buffer, offset);
|
||||||
sdhci_kunmap_atomic(buffer, &flags);
|
sdhci_kunmap_atomic(buffer, &flags);
|
||||||
}
|
}
|
||||||
|
@ -630,7 +631,8 @@ static void sdhci_adma_table_post(struct sdhci_host *host,
|
||||||
size = 4 - (sg_dma_address(sg) & 0x3);
|
size = 4 - (sg_dma_address(sg) & 0x3);
|
||||||
|
|
||||||
buffer = sdhci_kmap_atomic(sg, &flags);
|
buffer = sdhci_kmap_atomic(sg, &flags);
|
||||||
WARN_ON(((long)buffer & PAGE_MASK) > (PAGE_SIZE - 3));
|
WARN_ON(((long)buffer & (PAGE_SIZE - 1)) >
|
||||||
|
(PAGE_SIZE - size));
|
||||||
memcpy(buffer, align, size);
|
memcpy(buffer, align, size);
|
||||||
sdhci_kunmap_atomic(buffer, &flags);
|
sdhci_kunmap_atomic(buffer, &flags);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче