diff options
author | Ursula Braun <braunu@de.ibm.com> | 2008-04-01 04:26:54 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-16 20:41:38 -0400 |
commit | 508b3c4f71dc348f8b68f1b4ea3aa0d115f0199d (patch) | |
tree | db695382910aeadee677aeb088cf7874a40eb60a /drivers/s390/net | |
parent | 2d921c321ca670201abe9eff5e53585c39e68f5e (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/s390/net')
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 8 |
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 { |