aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2008-04-01 04:26:54 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-16 20:41:38 -0400
commit508b3c4f71dc348f8b68f1b4ea3aa0d115f0199d (patch)
treedb695382910aeadee677aeb088cf7874a40eb60a /drivers
parent2d921c321ca670201abe9eff5e53585c39e68f5e (diff)
qeth: allow qdio queue element addresses > 2GB
OSA-adapters do not have an address limitation for the qdio queue structures except the MAX storage level of the current processor. And due to a recent z/VM APAR there is no longer a restriction to allocate qdio structures below 2 GB. Signed-off-by: Ursula Braun <braunu@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/s390/net/qeth_core_main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 95c6fcf58953..86bcaf0e9957 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -241,7 +241,7 @@ static int qeth_alloc_buffer_pool(struct qeth_card *card)
241 return -ENOMEM; 241 return -ENOMEM;
242 } 242 }
243 for (j = 0; j < QETH_MAX_BUFFER_ELEMENTS(card); ++j) { 243 for (j = 0; j < QETH_MAX_BUFFER_ELEMENTS(card); ++j) {
244 ptr = (void *) __get_free_page(GFP_KERNEL|GFP_DMA); 244 ptr = (void *) __get_free_page(GFP_KERNEL);
245 if (!ptr) { 245 if (!ptr) {
246 while (j > 0) 246 while (j > 0)
247 free_page((unsigned long) 247 free_page((unsigned long)
@@ -2000,7 +2000,7 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card)
2000 return 0; 2000 return 0;
2001 2001
2002 card->qdio.in_q = kmalloc(sizeof(struct qeth_qdio_q), 2002 card->qdio.in_q = kmalloc(sizeof(struct qeth_qdio_q),
2003 GFP_KERNEL|GFP_DMA); 2003 GFP_KERNEL);
2004 if (!card->qdio.in_q) 2004 if (!card->qdio.in_q)
2005 goto out_nomem; 2005 goto out_nomem;
2006 QETH_DBF_TEXT(setup, 2, "inq"); 2006 QETH_DBF_TEXT(setup, 2, "inq");
@@ -2021,7 +2021,7 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card)
2021 goto out_freepool; 2021 goto out_freepool;
2022 for (i = 0; i < card->qdio.no_out_queues; ++i) { 2022 for (i = 0; i < card->qdio.no_out_queues; ++i) {
2023 card->qdio.out_qs[i] = kmalloc(sizeof(struct qeth_qdio_out_q), 2023 card->qdio.out_qs[i] = kmalloc(sizeof(struct qeth_qdio_out_q),
2024 GFP_KERNEL|GFP_DMA); 2024 GFP_KERNEL);
2025 if (!card->qdio.out_qs[i]) 2025 if (!card->qdio.out_qs[i])
2026 goto out_freeoutq; 2026 goto out_freeoutq;
2027 QETH_DBF_TEXT_(setup, 2, "outq %i", i); 2027 QETH_DBF_TEXT_(setup, 2, "outq %i", i);
@@ -2308,7 +2308,7 @@ static inline struct qeth_buffer_pool_entry *qeth_find_free_buffer_pool_entry(
2308 struct qeth_buffer_pool_entry, list); 2308 struct qeth_buffer_pool_entry, list);
2309 for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) { 2309 for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) {
2310 if (page_count(virt_to_page(entry->elements[i])) > 1) { 2310 if (page_count(virt_to_page(entry->elements[i])) > 1) {
2311 page = alloc_page(GFP_ATOMIC|GFP_DMA); 2311 page = alloc_page(GFP_ATOMIC);
2312 if (!page) { 2312 if (!page) {
2313 return NULL; 2313 return NULL;
2314 } else { 2314 } else {