diff options
author | Thomas Klein <osstklei@de.ibm.com> | 2007-07-11 10:32:00 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-07-16 17:59:50 -0400 |
commit | 44c821525778c5d2e81da293195d5d589e8ad845 (patch) | |
tree | 7996d9d180023c752b61e2fcfe96a42a00a1510f /drivers/net/ehea/ehea_qmr.h | |
parent | 5be808467347fc99bdd216883c5dbd123d6ad9d6 (diff) |
eHEA: Introducing support vor DLPAR memory add
This patch adds support for DLPAR memory add to the eHEA driver. To detect
whether memory was added the driver uses its own memory mapping table and
checks for kernel addresses whether they're located in already known memory
sections. If not the function ehea_rereg_mrs() is triggered which performs
a rebuild of the mapping table and a re-registration of the global memory
region.
Signed-off-by: Thomas Klein <tklein@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ehea/ehea_qmr.h')
-rw-r--r-- | drivers/net/ehea/ehea_qmr.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/net/ehea/ehea_qmr.h b/drivers/net/ehea/ehea_qmr.h index c0eb3e03a102..b71f8452a5e3 100644 --- a/drivers/net/ehea/ehea_qmr.h +++ b/drivers/net/ehea/ehea_qmr.h | |||
@@ -36,8 +36,14 @@ | |||
36 | * page size of ehea hardware queues | 36 | * page size of ehea hardware queues |
37 | */ | 37 | */ |
38 | 38 | ||
39 | #define EHEA_PAGESHIFT 12 | 39 | #define EHEA_PAGESHIFT 12 |
40 | #define EHEA_PAGESIZE 4096UL | 40 | #define EHEA_PAGESIZE (1UL << EHEA_PAGESHIFT) |
41 | #define EHEA_SECTSIZE (1UL << 24) | ||
42 | #define EHEA_PAGES_PER_SECTION (EHEA_SECTSIZE >> PAGE_SHIFT) | ||
43 | |||
44 | #if (1UL << SECTION_SIZE_BITS) < EHEA_SECTSIZE | ||
45 | #error eHEA module can't work if kernel sectionsize < ehea sectionsize | ||
46 | #endif | ||
41 | 47 | ||
42 | /* Some abbreviations used here: | 48 | /* Some abbreviations used here: |
43 | * | 49 | * |
@@ -372,4 +378,8 @@ int ehea_rem_mr(struct ehea_mr *mr); | |||
372 | 378 | ||
373 | void ehea_error_data(struct ehea_adapter *adapter, u64 res_handle); | 379 | void ehea_error_data(struct ehea_adapter *adapter, u64 res_handle); |
374 | 380 | ||
381 | int ehea_create_busmap( void ); | ||
382 | void ehea_destroy_busmap( void ); | ||
383 | u64 ehea_map_vaddr(void *caddr); | ||
384 | |||
375 | #endif /* __EHEA_QMR_H__ */ | 385 | #endif /* __EHEA_QMR_H__ */ |