------- Comment From <email address hidden> 2022-02-03 03:44 EDT-------
Here's the backported patch, based on git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
Use dev_alloc_page() for backing the RX buffers with pages. This way we
pick up __GFP_MEMALLOC.
Signed-off-by: Julian Wiedmann <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(backported from commit 714c9108851743bb718fbc1bfb81290f12a53854)
Signed-off-by: Alexandra Winter <email address hidden>
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index ec8c7a640d9e..61372e5c279b 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -227,7 +227,7 @@ static int qeth_alloc_buffer_pool(struct qeth_card *card)
return -ENOMEM;
}
for (j = 0; j < QETH_MAX_BUFFER_ELEMENTS(card); ++j) {
- ptr = (void *) __get_free_page(GFP_KERNEL);
+ ptr = (void *) __dev_alloc_page(GFP_KERNEL);
if (!ptr) {
while (j > 0)
free_page((unsigned long)
@@ -2612,7 +2612,7 @@ static struct qeth_buffer_pool_entry *qeth_find_free_buffer_pool_entry(
struct qeth_buffer_pool_entry, list);
for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) {
if (page_count(virt_to_page(entry->elements[i])) > 1) {
- page = alloc_page(GFP_ATOMIC);
+ page = dev_alloc_page();
if (!page) {
return NULL;
} else {
------- Comment From <email address hidden> 2022-02-03 03:44 EDT------- launchpad. net/~ubuntu- kernel/ ubuntu/ +source/ linux/+ git/focal
Here's the backported patch, based on git://git.
======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ======= ==
Author: Julian Wiedmann <email address hidden>
Date: Wed Mar 18 13:54:45 2020 +0100
s390/qeth: use memory reserves to back RX buffers
Use dev_alloc_page() for backing the RX buffers with pages. This way we
pick up __GFP_MEMALLOC.
Signed-off-by: Julian Wiedmann <email address hidden> b718fbc1bfb8129 0f12a53854)
Signed-off-by: David S. Miller <email address hidden>
(backported from commit 714c9108851743b
Signed-off-by: Alexandra Winter <email address hidden>
diff --git a/drivers/ s390/net/ qeth_core_ main.c b/drivers/ s390/net/ qeth_core_ main.c .61372e5c279b 100644 s390/net/ qeth_core_ main.c s390/net/ qeth_core_ main.c buffer_ pool(struct qeth_card *card) BUFFER_ ELEMENTS( card); ++j) { page(GFP_ KERNEL) ; page(GFP_ KERNEL) ; pool_entry *qeth_find_ free_buffer_ pool_entry( pool_entry, list); BUFFER_ ELEMENTS( card); ++i) { virt_to_ page(entry- >elements[ i])) > 1) { GFP_ATOMIC) ;
index ec8c7a640d9e.
--- a/drivers/
+++ b/drivers/
@@ -227,7 +227,7 @@ static int qeth_alloc_
return -ENOMEM;
}
for (j = 0; j < QETH_MAX_
- ptr = (void *) __get_free_
+ ptr = (void *) __dev_alloc_
if (!ptr) {
while (j > 0)
free_page((unsigned long)
@@ -2612,7 +2612,7 @@ static struct qeth_buffer_
struct qeth_buffer_
for (i = 0; i < QETH_MAX_
if (page_count(
- page = alloc_page(
+ page = dev_alloc_page();
if (!page) {
return NULL;
} else {