[Crash-utility] [PATCH] crash: Fix the type of pfn_to_pos().
Dave Anderson
anderson at redhat.com
Wed Aug 19 13:02:32 UTC 2009
----- "Ken'ichi Ohmichi" <oomichi at mxs.nes.nec.co.jp> wrote:
> Hi,
>
> pfn_to_pos() returns the position of the page header corresponding to
> the argument "pfn", and the value can be larger than "int".
> So it should be declared as "ulong".
Queued for the next release.
By the way, did you notice this by code inspection, or did you actually
see a failure with a large vmcore? And if you did see it, what kind of error
resulted? It appears like it would just read a bogus page descriptor, and
that could result in a few different error types. Also, I was under the
impression that the compressed diskdump/kdump page descriptors would be located
near the beginning of the vmcore, and for one to exist beyond 4GB would be highly
unusual?
Thanks,
Dave
>
>
> Thanks
> Ken'ichi Ohmichi
>
> Signed-off-by: Ken'ichi Ohmichi <oomichi at mxs.nes.nec.co.jp>
> ---
> --- a/diskdump.c 2009-08-19 15:02:16.000000000 +0900
> +++ b/diskdump.c 2009-08-19 15:03:40.000000000 +0900
> @@ -399,10 +399,10 @@ err:
> return FALSE;
> }
>
> -static int
> +static ulong
> pfn_to_pos(ulong pfn)
> {
> - int desc_pos, j, valid;
> + ulong desc_pos, j, valid;
> ulong p1, p2;
>
> if (KDUMP_SPLIT()) {
> @@ -530,7 +530,7 @@ cache_page(physaddr_t paddr)
> int i, ret;
> int found;
> ulong pfn;
> - int desc_pos;
> + ulong desc_pos;
> off_t seek_offset;
> page_desc_t pd;
> const int block_size = dd->block_size;
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
More information about the Crash-utility
mailing list