lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 14 Dec 2007 09:55:41 -0200
From:	"Glauber de Oliveira Costa" <glommer@...il.com>
To:	"Jan Beulich" <jbeulich@...ell.com>
Cc:	"Jeremy Fitzhardinge" <jeremy@...p.org>,
	"Ingo Molnar" <mingo@...e.hu>,
	"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/4] x86: clean up asm-x86/page*.h

On Dec 14, 2007 6:53 AM, Jan Beulich <jbeulich@...ell.com> wrote:
> >>> Jeremy Fitzhardinge <jeremy@...p.org> 14.12.07 09:44 >>>
>
> >Jan Beulich wrote:
> >>> --- a/arch/x86/mm/fault_64.c
> >>> +++ b/arch/x86/mm/fault_64.c
> >>> @@ -158,22 +158,22 @@ void dump_pagetable(unsigned long addres
> >>>     pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK);
> >>>     pgd += pgd_index(address);
> >>>     if (bad_address(pgd)) goto bad;
> >>> -   printk("PGD %lx ", pgd_val(*pgd));
> >>> +   printk("PGD %lx ", (unsigned long)pgd_val(*pgd));
> >>>
> >>
> >> Casts like this here and elsewhere look rather odd (in fact I think using
> >> casts should really be limited to places where you either can't do it
> >> differently or the code would become badly readable or much uglier
> >> without them). I would therefore favor simply using the right formatting
> >> specifier here.
> >
> >I would agree, but pgd_val() is defined as returning a pgdval_t, which
> >is typedefed to be unsigned long.  I'll have another look, but I don't
> >think there's an appropriate format for this.
>
> Typedef-s can be printed with the same format specifier as the underlying
> type. But u64 is (at least in plain -rc5) a typedef of 'unsigned long long', so
> the compiler validly warns about the use of 'l' there, and I would assume it's
> those compiler warnings that you want to get rid of...
>
The strategy I've been adopting in this case is to simply use unsigned
long long when we need
u64, and print it with llx for both i386 and x86_64. The problem here
is that pgd_val may be 32-bit with non-PAE configs,
IIRC. So maybe we can #define the print string, and put it inside the
ifdefs. Along the lines of printk("pgd: " PGD_STR ...)

For this particular warning, it is in a _64.c file, so the llx may be
able to help.

-- 
Glauber de Oliveira Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ