On Thu, 17 Apr 2014 04:54:37 +0000 Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote: > Hello Petr, > > Could you repost this later for v1.5.7? > In v1.5.6, is_on() will also use "unsigned long long" for pfn. I guess it's the only option, anyway. ;-) Yes, I agree, this is not an urgent patch, and since hugepage support will apparently have to wait for v1.5.7, too, I can wait and send my patches after v1.5.6 is out. Petr T > Thanks > Atsushi Kumagai > > >Replace unsigned long long with mdf_pfn_t where: > > > > a. the variable denotes a PFN > > b. the variable is a number of pages > > > >The number of pages is converted to a mdf_pfn_t, because it is a result > >of subtracting two PFNs or incremented in a loop over a range of PFNs, > >so it can get as large as a PFN. > > > >Note: The mdf_ (i.e. makedumpfile) prefix is used to prevent possible > >conflicts with other software that defines a pfn_t type. > > > >Signed-off-by: Petr Tesarik <ptesarik at suse.cz> > >--- > > makedumpfile.c | 152 ++++++++++++++++++++++++++++++--------------------------- > > makedumpfile.h | 46 ++++++++--------- > > sadump_info.c | 15 +++--- > > sadump_info.h | 4 +- > > 4 files changed, 114 insertions(+), 103 deletions(-) > > > >diff --git a/makedumpfile.c b/makedumpfile.c > >index 75092a8..5609430 100644 > >--- a/makedumpfile.c > >+++ b/makedumpfile.c > >@@ -37,7 +37,7 @@ struct DumpInfo *info = NULL; > > > > char filename_stdout[] = FILENAME_STDOUT; > > > >-static void first_cycle(unsigned long long start, unsigned long long max, struct cycle *cycle) > >+static void first_cycle(mdf_pfn_t start, mdf_pfn_t max, struct cycle *cycle) > > { > > cycle->start_pfn = round(start, info->pfn_cyclic); > > cycle->end_pfn = cycle->start_pfn + info->pfn_cyclic; > >@@ -46,7 +46,7 @@ static void first_cycle(unsigned long long start, unsigned long long max, struct > > cycle->end_pfn = max; > > } > > > >-static void update_cycle(unsigned long long max, struct cycle *cycle) > >+static void update_cycle(mdf_pfn_t max, struct cycle *cycle) > > { > > cycle->start_pfn= cycle->end_pfn; > > cycle->end_pfn= cycle->start_pfn + info->pfn_cyclic; > >@@ -55,7 +55,7 @@ static void update_cycle(unsigned long long max, struct cycle *cycle) > > cycle->end_pfn = max; > > } > > > >-static int end_cycle(unsigned long long max, struct cycle *cycle) > >+static int end_cycle(mdf_pfn_t max, struct cycle *cycle) > > { > > return (cycle->start_pfn >= max)?TRUE:FALSE; > > } > >@@ -67,15 +67,15 @@ static int end_cycle(unsigned long long max, struct cycle *cycle) > > /* > > * The numbers of the excluded pages > > */ > >-unsigned long long pfn_zero; > >-unsigned long long pfn_memhole; > >-unsigned long long pfn_cache; > >-unsigned long long pfn_cache_private; > >-unsigned long long pfn_user; > >-unsigned long long pfn_free; > >-unsigned long long pfn_hwpoison; > >+mdf_pfn_t pfn_zero; > >+mdf_pfn_t pfn_memhole; > >+mdf_pfn_t pfn_cache; > >+mdf_pfn_t pfn_cache_private; > >+mdf_pfn_t pfn_user; > >+mdf_pfn_t pfn_free; > >+mdf_pfn_t pfn_hwpoison; > > > >-unsigned long long num_dumped; > >+mdf_pfn_t num_dumped; > > > > int retcd = FAILED; /* return code */ > > > >@@ -122,7 +122,9 @@ unsigned long long > > ptom_xen(unsigned long long paddr) > > { > > unsigned long mfn; > >- unsigned long long maddr, pfn, mfn_idx, frame_idx; > >+ unsigned long long maddr; > >+ mdf_pfn_t pfn; > >+ unsigned long long mfn_idx, frame_idx; > > > > pfn = paddr_to_pfn(paddr); > > mfn_idx = pfn / MFNS_PER_FRAME; > >@@ -226,12 +228,13 @@ is_in_same_page(unsigned long vaddr1, unsigned long vaddr2) > > } > > > > #define BITMAP_SECT_LEN 4096 > >-static inline int is_dumpable(struct dump_bitmap *, unsigned long long); > >-static inline int is_dumpable_cyclic(char *bitmap, unsigned long long, struct cycle *cycle); > >+static inline int is_dumpable(struct dump_bitmap *, mdf_pfn_t); > >+static inline int is_dumpable_cyclic(char *bitmap, mdf_pfn_t, struct cycle *cycle); > > unsigned long > >-pfn_to_pos(unsigned long long pfn) > >+pfn_to_pos(mdf_pfn_t pfn) > > { > >- unsigned long desc_pos, i; > >+ unsigned long desc_pos; > >+ mdf_pfn_t i; > > > > desc_pos = info->valid_pages[pfn / BITMAP_SECT_LEN]; > > for (i = round(pfn, BITMAP_SECT_LEN); i < pfn; i++) > >@@ -246,7 +249,7 @@ read_page_desc(unsigned long long paddr, page_desc_t *pd) > > { > > struct disk_dump_header *dh; > > unsigned long desc_pos; > >- unsigned long long pfn; > >+ mdf_pfn_t pfn; > > off_t offset; > > > > /* > >@@ -2375,8 +2378,8 @@ pgdat4: > > } > > > > void > >-dump_mem_map(unsigned long long pfn_start, > >- unsigned long long pfn_end, unsigned long mem_map, int num_mm) > >+dump_mem_map(mdf_pfn_t pfn_start, mdf_pfn_t pfn_end, > >+ unsigned long mem_map, int num_mm) > > { > > struct mem_map_data *mmd; > > > >@@ -2802,7 +2805,7 @@ int > > get_mm_sparsemem(void) > > { > > unsigned int section_nr, mem_section_size, num_section; > >- unsigned long long pfn_start, pfn_end; > >+ mdf_pfn_t pfn_start, pfn_end; > > unsigned long section, mem_map; > > unsigned long *mem_sec = NULL; > > > >@@ -2886,7 +2889,7 @@ get_mem_map_without_mm(void) > > int > > get_mem_map(void) > > { > >- unsigned long long max_pfn = 0; > >+ mdf_pfn_t max_pfn = 0; > > unsigned int i; > > int ret; > > > >@@ -2944,7 +2947,7 @@ initialize_bitmap_memory(void) > > struct dump_bitmap *bmp; > > off_t bitmap_offset; > > off_t bitmap_len, max_sect_len; > >- unsigned long pfn; > >+ mdf_pfn_t pfn; > > int i, j; > > long block_size; > > > >@@ -3309,8 +3312,7 @@ initialize_2nd_bitmap(struct dump_bitmap *bitmap) > > } > > > > int > >-set_bitmap(struct dump_bitmap *bitmap, unsigned long long pfn, > >- int val) > >+set_bitmap(struct dump_bitmap *bitmap, mdf_pfn_t pfn, int val) > > { > > int byte, bit; > > off_t old_offset, new_offset; > >@@ -3358,7 +3360,7 @@ set_bitmap(struct dump_bitmap *bitmap, unsigned long long pfn, > > } > > > > int > >-set_bitmap_cyclic(char *bitmap, unsigned long long pfn, int val, struct cycle *cycle) > >+set_bitmap_cyclic(char *bitmap, mdf_pfn_t pfn, int val, struct cycle *cycle) > > { > > int byte, bit; > > > >@@ -3418,7 +3420,7 @@ sync_2nd_bitmap(void) > > } > > > > int > >-set_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle) > >+set_bit_on_1st_bitmap(mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (info->flag_cyclic) { > > return set_bitmap_cyclic(info->partial_bitmap1, pfn, 1, cycle); > >@@ -3428,7 +3430,7 @@ set_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle) > > } > > > > int > >-clear_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle) > >+clear_bit_on_1st_bitmap(mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (info->flag_cyclic) { > > return set_bitmap_cyclic(info->partial_bitmap1, pfn, 0, cycle); > >@@ -3438,7 +3440,7 @@ clear_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle) > > } > > > > int > >-clear_bit_on_2nd_bitmap(unsigned long long pfn, struct cycle *cycle) > >+clear_bit_on_2nd_bitmap(mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (info->flag_cyclic) { > > return set_bitmap_cyclic(info->partial_bitmap2, pfn, 0, cycle); > >@@ -3448,7 +3450,7 @@ clear_bit_on_2nd_bitmap(unsigned long long pfn, struct cycle *cycle) > > } > > > > int > >-clear_bit_on_2nd_bitmap_for_kernel(unsigned long long pfn, struct cycle *cycle) > >+clear_bit_on_2nd_bitmap_for_kernel(mdf_pfn_t pfn, struct cycle *cycle) > > { > > unsigned long long maddr; > > > >@@ -3465,7 +3467,7 @@ clear_bit_on_2nd_bitmap_for_kernel(unsigned long long pfn, struct cycle *cycle) > > } > > > > int > >-set_bit_on_2nd_bitmap(unsigned long long pfn, struct cycle *cycle) > >+set_bit_on_2nd_bitmap(mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (info->flag_cyclic) { > > return set_bitmap_cyclic(info->partial_bitmap2, pfn, 1, cycle); > >@@ -3475,7 +3477,7 @@ set_bit_on_2nd_bitmap(unsigned long long pfn, struct cycle *cycle) > > } > > > > int > >-set_bit_on_2nd_bitmap_for_kernel(unsigned long long pfn, struct cycle *cycle) > >+set_bit_on_2nd_bitmap_for_kernel(mdf_pfn_t pfn, struct cycle *cycle) > > { > > unsigned long long maddr; > > > >@@ -3786,11 +3788,11 @@ rearrange_dumpdata(void) > > return TRUE; > > } > > > >-unsigned long long > >+mdf_pfn_t > > page_to_pfn(unsigned long page) > > { > > unsigned int num; > >- unsigned long long pfn = ULONGLONG_MAX; > >+ mdf_pfn_t pfn = ULONGLONG_MAX; > > unsigned long long index = 0; > > struct mem_map_data *mmd; > > > >@@ -3820,7 +3822,7 @@ reset_bitmap_of_free_pages(unsigned long node_zones, struct cycle *cycle) > > int order, i, migrate_type, migrate_types; > > unsigned long curr, previous, head, curr_page, curr_prev; > > unsigned long addr_free_pages, free_pages = 0, found_free_pages = 0; > >- unsigned long long pfn, start_pfn; > >+ mdf_pfn_t pfn, start_pfn; > > > > /* > > * On linux-2.6.24 or later, free_list is divided into the array. > >@@ -4423,7 +4425,7 @@ create_1st_bitmap(void) > > int i; > > unsigned int num_pt_loads = get_num_pt_loads(); > > char buf[info->page_size]; > >- unsigned long long pfn, pfn_start, pfn_end, pfn_bitmap1; > >+ mdf_pfn_t pfn, pfn_start, pfn_end, pfn_bitmap1; > > unsigned long long phys_start, phys_end; > > struct timeval tv_start; > > off_t offset_page; > >@@ -4495,10 +4497,10 @@ int > > create_1st_bitmap_cyclic(struct cycle *cycle) > > { > > int i; > >- unsigned long long pfn, pfn_bitmap1; > >+ mdf_pfn_t pfn, pfn_bitmap1; > > unsigned long long phys_start, phys_end; > >- unsigned long long pfn_start, pfn_end; > >- unsigned long long pfn_start_roundup, pfn_end_round; > >+ mdf_pfn_t pfn_start, pfn_end; > >+ mdf_pfn_t pfn_start_roundup, pfn_end_round; > > unsigned long pfn_start_byte, pfn_end_byte; > > > > /* > >@@ -4556,7 +4558,8 @@ create_1st_bitmap_cyclic(struct cycle *cycle) > > int > > exclude_zero_pages(void) > > { > >- unsigned long long pfn, paddr; > >+ mdf_pfn_t pfn; > >+ unsigned long long paddr; > > struct dump_bitmap bitmap2; > > struct timeval tv_start; > > unsigned char buf[info->page_size]; > >@@ -4608,10 +4611,10 @@ static int > > initialize_2nd_bitmap_cyclic(struct cycle *cycle) > > { > > int i; > >- unsigned long long pfn; > >+ mdf_pfn_t pfn; > > unsigned long long phys_start, phys_end; > >- unsigned long long pfn_start, pfn_end; > >- unsigned long long pfn_start_roundup, pfn_end_round; > >+ mdf_pfn_t pfn_start, pfn_end; > >+ mdf_pfn_t pfn_start_roundup, pfn_end_round; > > unsigned long pfn_start_byte, pfn_end_byte; > > > > /* > >@@ -4659,10 +4662,12 @@ initialize_2nd_bitmap_cyclic(struct cycle *cycle) > > > > int > > __exclude_unnecessary_pages(unsigned long mem_map, > >- unsigned long long pfn_start, unsigned long long pfn_end, struct cycle *cycle) > >+ mdf_pfn_t pfn_start, mdf_pfn_t pfn_end, struct cycle *cycle) > > { > >- unsigned long long pfn, pfn_mm, maddr; > >- unsigned long long pfn_read_start, pfn_read_end, index_pg; > >+ mdf_pfn_t pfn; > >+ unsigned long index_pg, pfn_mm; > >+ unsigned long long maddr; > >+ mdf_pfn_t pfn_read_start, pfn_read_end; > > unsigned char page_cache[SIZE(page) * PGMM_CACHED]; > > unsigned char *pcache; > > unsigned int _count, _mapcount = 0; > >@@ -5162,7 +5167,7 @@ get_loads_dumpfile(void) > > { > > int i, phnum, num_new_load = 0; > > long page_size = info->page_size; > >- unsigned long long pfn, pfn_start, pfn_end, num_excluded; > >+ mdf_pfn_t pfn, pfn_start, pfn_end, num_excluded; > > unsigned long frac_head, frac_tail; > > Elf64_Phdr load; > > struct dump_bitmap bitmap2; > >@@ -5612,10 +5617,10 @@ out: > > return ret; > > } > > > >-unsigned long long > >+mdf_pfn_t > > get_num_dumpable(void) > > { > >- unsigned long long pfn, num_dumpable; > >+ mdf_pfn_t pfn, num_dumpable; > > struct dump_bitmap bitmap2; > > > > initialize_2nd_bitmap(&bitmap2); > >@@ -5627,10 +5632,10 @@ get_num_dumpable(void) > > return num_dumpable; > > } > > > >-unsigned long long > >+mdf_pfn_t > > get_num_dumpable_cyclic(void) > > { > >- unsigned long long pfn, num_dumpable=0; > >+ mdf_pfn_t pfn, num_dumpable=0; > > struct cycle cycle = {0}; > > > > for_each_cycle(0, info->max_mapnr, &cycle) > >@@ -5692,8 +5697,9 @@ write_elf_pages(struct cache_data *cd_header, struct cache_data *cd_page) > > { > > int i, phnum; > > long page_size = info->page_size; > >- unsigned long long pfn, pfn_start, pfn_end, paddr, num_excluded; > >- unsigned long long num_dumpable, per; > >+ mdf_pfn_t pfn, pfn_start, pfn_end, num_excluded; > >+ unsigned long long paddr; > >+ mdf_pfn_t num_dumpable, per; > > unsigned long long memsz, filesz; > > unsigned long frac_head, frac_tail; > > off_t off_seg_load, off_memory; > >@@ -5878,7 +5884,7 @@ write_elf_pages(struct cache_data *cd_header, struct cache_data *cd_page) > > } > > > > int > >-read_pfn(unsigned long long pfn, unsigned char *buf) > >+read_pfn(mdf_pfn_t pfn, unsigned char *buf) > > { > > unsigned long long paddr; > > > >@@ -5897,7 +5903,7 @@ get_loads_dumpfile_cyclic(void) > > int i, phnum, num_new_load = 0; > > long page_size = info->page_size; > > unsigned char buf[info->page_size]; > >- unsigned long long pfn, pfn_start, pfn_end, num_excluded; > >+ mdf_pfn_t pfn, pfn_start, pfn_end, num_excluded; > > unsigned long frac_head, frac_tail; > > Elf64_Phdr load; > > struct cycle cycle = {0}; > >@@ -5969,8 +5975,8 @@ write_elf_pages_cyclic(struct cache_data *cd_header, struct cache_data *cd_page) > > int i, phnum; > > long page_size = info->page_size; > > unsigned char buf[info->page_size]; > >- unsigned long long pfn, pfn_start, pfn_end, paddr, num_excluded; > >- unsigned long long num_dumpable, per; > >+ mdf_pfn_t pfn, pfn_start, pfn_end, num_excluded, num_dumpable, per; > >+ unsigned long long paddr; > > unsigned long long memsz, filesz; > > unsigned long frac_head, frac_tail; > > off_t off_seg_load, off_memory; > >@@ -6190,8 +6196,8 @@ write_elf_pages_cyclic(struct cache_data *cd_header, struct cache_data *cd_page) > > int > > write_kdump_pages(struct cache_data *cd_header, struct cache_data *cd_page) > > { > >- unsigned long long pfn, per, num_dumpable; > >- unsigned long long start_pfn, end_pfn; > >+ mdf_pfn_t pfn, per, num_dumpable; > >+ mdf_pfn_t start_pfn, end_pfn; > > unsigned long size_out; > > struct page_desc pd, pd_zero; > > off_t offset_data = 0; > >@@ -6397,8 +6403,8 @@ int > > write_kdump_pages_cyclic(struct cache_data *cd_header, struct cache_data *cd_page, > > struct page_desc *pd_zero, off_t *offset_data, struct cycle *cycle) > > { > >- unsigned long long pfn, per; > >- unsigned long long start_pfn, end_pfn; > >+ mdf_pfn_t pfn, per; > >+ mdf_pfn_t start_pfn, end_pfn; > > unsigned long size_out; > > struct page_desc pd; > > unsigned char buf[info->page_size], *buf_out = NULL; > >@@ -7504,7 +7510,7 @@ read_vmcoreinfo_xen(void) > > } > > > > int > >-allocated_in_map(unsigned long long pfn) > >+allocated_in_map(mdf_pfn_t pfn) > > { > > static unsigned long long cur_idx = -1; > > static unsigned long cur_word; > >@@ -7550,8 +7556,8 @@ exclude_xen3_user_domain(void) > > unsigned int num_pt_loads = get_num_pt_loads(); > > unsigned long page_info_addr; > > unsigned long long phys_start, phys_end; > >- unsigned long long pfn, pfn_end; > >- unsigned long long j, size; > >+ mdf_pfn_t pfn, pfn_end; > >+ mdf_pfn_t j, size; > > > > /* > > * NOTE: the first half of bitmap is not used for Xen extraction > >@@ -7614,8 +7620,8 @@ exclude_xen4_user_domain(void) > > unsigned int num_pt_loads = get_num_pt_loads(); > > unsigned long page_info_addr; > > unsigned long long phys_start, phys_end; > >- unsigned long long pfn, pfn_end; > >- unsigned long long j, size; > >+ mdf_pfn_t pfn, pfn_end; > >+ mdf_pfn_t j, size; > > > > /* > > * NOTE: the first half of bitmap is not used for Xen extraction > >@@ -7840,7 +7846,7 @@ print_vtop(void) > > void > > print_report(void) > > { > >- unsigned long long pfn_original, pfn_excluded, shrinking; > >+ mdf_pfn_t pfn_original, pfn_excluded, shrinking; > > > > /* > > * /proc/vmcore doesn't contain the memory hole area. > >@@ -7945,9 +7951,9 @@ int > > setup_splitting(void) > > { > > int i; > >- unsigned long long j, pfn_per_dumpfile; > >- unsigned long long start_pfn, end_pfn; > >- unsigned long long num_dumpable = get_num_dumpable(); > >+ mdf_pfn_t j, pfn_per_dumpfile; > >+ mdf_pfn_t start_pfn, end_pfn; > >+ mdf_pfn_t num_dumpable = get_num_dumpable(); > > struct dump_bitmap bitmap2; > > > > if (info->num_dumpfile <= 1) > >@@ -8274,7 +8280,7 @@ void > > sort_splitting_info(void) > > { > > int i, j; > >- unsigned long long start_pfn, end_pfn; > >+ mdf_pfn_t start_pfn, end_pfn; > > char *name_dumpfile; > > > > /* > >@@ -8310,7 +8316,7 @@ int > > check_splitting_info(void) > > { > > int i; > >- unsigned long long end_pfn; > >+ mdf_pfn_t end_pfn; > > > > /* > > * Check whether there are not lack of /proc/vmcore. > >@@ -8537,8 +8543,8 @@ reassemble_kdump_pages(void) > > int i, fd = 0, ret = FALSE; > > off_t offset_first_ph, offset_ph_org, offset_eraseinfo; > > off_t offset_data_new, offset_zero_page = 0; > >- unsigned long long pfn, start_pfn, end_pfn; > >- unsigned long long num_dumpable; > >+ mdf_pfn_t pfn, start_pfn, end_pfn; > >+ mdf_pfn_t num_dumpable; > > unsigned long size_eraseinfo; > > struct dump_bitmap bitmap2; > > struct disk_dump_header dh; > >diff --git a/makedumpfile.h b/makedumpfile.h > >index 951ed1b..a6a679b 100644 > >--- a/makedumpfile.h > >+++ b/makedumpfile.h > >@@ -767,13 +767,15 @@ unsigned long long vaddr_to_paddr_ia64(unsigned long vaddr); > > #define VADDR_REGION(X) (((unsigned long)(X)) >> REGION_SHIFT) > > #endif /* ia64 */ > > > >+typedef unsigned long long mdf_pfn_t; > >+ > > #ifndef ARCH_PFN_OFFSET > > #define ARCH_PFN_OFFSET 0 > > #endif > > #define paddr_to_pfn(X) \ > > (((unsigned long long)(X) >> PAGESHIFT()) - ARCH_PFN_OFFSET) > > #define pfn_to_paddr(X) \ > >- (((unsigned long long)(X) + ARCH_PFN_OFFSET) << PAGESHIFT()) > >+ (((mdf_pfn_t)(X) + ARCH_PFN_OFFSET) << PAGESHIFT()) > > > > /* Format of Xen crash info ELF note */ > > typedef struct { > >@@ -813,8 +815,8 @@ typedef struct { > > } xen_crash_info_v2_t; > > > > struct mem_map_data { > >- unsigned long long pfn_start; > >- unsigned long long pfn_end; > >+ mdf_pfn_t pfn_start; > >+ mdf_pfn_t pfn_end; > > unsigned long mem_map; > > }; > > > >@@ -866,8 +868,8 @@ struct makedumpfile_data_header { > > struct splitting_info { > > char *name_dumpfile; > > int fd_bitmap; > >- unsigned long long start_pfn; > >- unsigned long long end_pfn; > >+ mdf_pfn_t start_pfn; > >+ mdf_pfn_t end_pfn; > > off_t offset_eraseinfo; > > unsigned long size_eraseinfo; > > } splitting_info_t; > >@@ -914,7 +916,7 @@ struct DumpInfo { > > unsigned long vaddr_for_vtop; /* virtual address for debugging */ > > long page_size; /* size of page */ > > long page_shift; > >- unsigned long long max_mapnr; /* number of page descriptor */ > >+ mdf_pfn_t max_mapnr; /* number of page descriptor */ > > unsigned long page_offset; > > unsigned long section_size_bits; > > unsigned long max_physmem_bits; > >@@ -1025,10 +1027,10 @@ struct DumpInfo { > > * 1 .. xen_crash_info_t > > * 2 .. xen_crash_info_v2_t */ > > > >- unsigned long long dom0_mapnr; /* The number of page in domain-0. > >- * Different from max_mapnr. > >- * max_mapnr is the number of page > >- * in system. */ > >+ mdf_pfn_t dom0_mapnr; /* The number of page in domain-0. > >+ * Different from max_mapnr. > >+ * max_mapnr is the number of page > >+ * in system. */ > > unsigned long xen_phys_start; > > unsigned long xen_heap_start; /* start mfn of xen heap area */ > > unsigned long xen_heap_end; /* end mfn(+1) of xen heap area */ > >@@ -1048,15 +1050,15 @@ struct DumpInfo { > > /* > > * for splitting > > */ > >- unsigned long long split_start_pfn; > >- unsigned long long split_end_pfn; > >+ mdf_pfn_t split_start_pfn; > >+ mdf_pfn_t split_end_pfn; > > > > /* > > * for cyclic processing > > */ > > char *partial_bitmap1; > > char *partial_bitmap2; > >- unsigned long long num_dumpable; > >+ mdf_pfn_t num_dumpable; > > unsigned long bufsize_cyclic; > > unsigned long pfn_cyclic; > > > >@@ -1453,7 +1455,7 @@ int readmem(int type_addr, unsigned long long addr, void *bufptr, size_t size); > > int get_str_osrelease_from_vmlinux(void); > > int read_vmcoreinfo_xen(void); > > int exclude_xen_user_domain(void); > >-unsigned long long get_num_dumpable(void); > >+mdf_pfn_t get_num_dumpable(void); > > int __read_disk_dump_header(struct disk_dump_header *dh, char *filename); > > int read_disk_dump_header(struct disk_dump_header *dh, char *filename); > > int read_kdump_sub_header(struct kdump_sub_header *kh, char *filename); > >@@ -1589,8 +1591,8 @@ int get_xen_info_ia64(void); > > #endif /* s390x */ > > > > struct cycle { > >- unsigned long long start_pfn; > >- unsigned long long end_pfn; > >+ mdf_pfn_t start_pfn; > >+ mdf_pfn_t end_pfn; > > }; > > > > static inline int > >@@ -1600,7 +1602,7 @@ is_on(char *bitmap, int i) > > } > > > > static inline int > >-is_dumpable(struct dump_bitmap *bitmap, unsigned long long pfn) > >+is_dumpable(struct dump_bitmap *bitmap, mdf_pfn_t pfn) > > { > > off_t offset; > > if (pfn == 0 || bitmap->no_block != pfn/PFN_BUFBITMAP) { > >@@ -1616,7 +1618,7 @@ is_dumpable(struct dump_bitmap *bitmap, unsigned long long pfn) > > } > > > > static inline int > >-is_dumpable_cyclic(char *bitmap, unsigned long long pfn, struct cycle *cycle) > >+is_dumpable_cyclic(char *bitmap, mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (pfn < cycle->start_pfn || cycle->end_pfn <= pfn) > > return FALSE; > >@@ -1625,7 +1627,7 @@ is_dumpable_cyclic(char *bitmap, unsigned long long pfn, struct cycle *cycle) > > } > > > > static inline int > >-is_cyclic_region(unsigned long long pfn, struct cycle *cycle) > >+is_cyclic_region(mdf_pfn_t pfn, struct cycle *cycle) > > { > > if (pfn < cycle->start_pfn || cycle->end_pfn <= pfn) > > return FALSE; > >@@ -1647,8 +1649,8 @@ is_zero_page(unsigned char *buf, long page_size) > > } > > > > void write_vmcoreinfo_data(void); > >-int set_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle); > >-int clear_bit_on_1st_bitmap(unsigned long long pfn, struct cycle *cycle); > >+int set_bit_on_1st_bitmap(mdf_pfn_t pfn, struct cycle *cycle); > >+int clear_bit_on_1st_bitmap(mdf_pfn_t pfn, struct cycle *cycle); > > > > #ifdef __x86__ > > > >@@ -1759,7 +1761,7 @@ struct elf_prstatus { > > /* > > * Function Prototype. > > */ > >-unsigned long long get_num_dumpable_cyclic(void); > >+mdf_pfn_t get_num_dumpable_cyclic(void); > > int get_loads_dumpfile_cyclic(void); > > int initial_xen(void); > > unsigned long long get_free_memory_size(void); > >diff --git a/sadump_info.c b/sadump_info.c > >index f14ffc9..9434ff7 100644 > >--- a/sadump_info.c > >+++ b/sadump_info.c > >@@ -94,7 +94,7 @@ static int read_device_diskset(struct sadump_diskset_info *sdi, void *buf, > > size_t bytes, ulong *offset); > > static int read_sadump_header(char *filename); > > static int read_sadump_header_diskset(int diskid, struct sadump_diskset_info *sdi); > >-static unsigned long long pfn_to_block(unsigned long long pfn); > >+static unsigned long long pfn_to_block(mdf_pfn_t pfn); > > static int lookup_diskset(unsigned long long whole_offset, int *diskid, > > unsigned long long *disk_offset); > > static int max_mask_cpu(void); > >@@ -202,7 +202,8 @@ sadump_copy_1st_bitmap_from_memory(void) > > * modify bitmap accordingly. > > */ > > if (si->kdump_backed_up) { > >- unsigned long long paddr, pfn, backup_src_pfn; > >+ unsigned long long paddr; > >+ mdf_pfn_t pfn, backup_src_pfn; > > > > for (paddr = si->backup_src_start; > > paddr < si->backup_src_start + si->backup_src_size; > >@@ -754,7 +755,8 @@ sadump_initialize_bitmap_memory(void) > > struct sadump_header *sh = si->sh_memory; > > struct dump_bitmap *bmp; > > unsigned long dumpable_bitmap_offset; > >- unsigned long long section, max_section, pfn; > >+ unsigned long long section, max_section; > >+ mdf_pfn_t pfn; > > unsigned long long *block_table; > > > > dumpable_bitmap_offset = > >@@ -901,7 +903,7 @@ sadump_set_timestamp(struct timeval *ts) > > return TRUE; > > } > > > >-unsigned long long > >+mdf_pfn_t > > sadump_get_max_mapnr(void) > > { > > return si->sh_memory->max_mapnr; > >@@ -951,7 +953,8 @@ failed: > > int > > readpage_sadump(unsigned long long paddr, void *bufptr) > > { > >- unsigned long long pfn, block, whole_offset, perdisk_offset; > >+ mdf_pfn_t pfn; > >+ unsigned long long block, whole_offset, perdisk_offset; > > int fd_memory; > > > > if (si->kdump_backed_up && > >@@ -1117,7 +1120,7 @@ sadump_check_debug_info(void) > > } > > > > static unsigned long long > >-pfn_to_block(unsigned long long pfn) > >+pfn_to_block(mdf_pfn_t pfn) > > { > > unsigned long long block, section, p; > > > >diff --git a/sadump_info.h b/sadump_info.h > >index c0175dd..131687a 100644 > >--- a/sadump_info.h > >+++ b/sadump_info.h > >@@ -42,7 +42,7 @@ int sadump_copy_1st_bitmap_from_memory(void); > > int sadump_initialize_bitmap_memory(void); > > int sadump_num_online_cpus(void); > > int sadump_set_timestamp(struct timeval *ts); > >-unsigned long long sadump_get_max_mapnr(void); > >+mdf_pfn_t sadump_get_max_mapnr(void); > > int readpage_sadump(unsigned long long paddr, void *bufptr); > > int sadump_check_debug_info(void); > > int sadump_generate_vmcoreinfo_from_vmlinux(size_t *vmcoreinfo_size); > >@@ -92,7 +92,7 @@ static inline int sadump_set_timestamp(struct timeval *ts) > > return FALSE; > > } > > > >-static inline unsigned long long sadump_get_max_mapnr(void) > >+static inline mdf_pfn_t sadump_get_max_mapnr(void) > > { > > return 0; > > } > >-- > >1.8.4.5 > > _______________________________________________ > kexec mailing list > kexec at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/kexec