From: Russell King <rmk@arm.linux.org.uk>
To: John Weber <john.weber@linuxhq.com>
Cc: Mikael Pettersson <mikpe@csd.uu.se>,
Keith Owens <kaos@ocs.com.au>,
linux-kernel@vger.kernel.org, davej@suse.de
Subject: Re: 2.5.15 warnings
Date: Fri, 10 May 2002 16:51:24 +0100 [thread overview]
Message-ID: <20020510165124.D7165@flint.arm.linux.org.uk> (raw)
In-Reply-To: <26013.1021001169@kao2.melbourne.sgi.com> <26949.1021006885@kao2.melbourne.sgi.com> <15579.46584.447522.360378@kim.it.uu.se> <20020510142038.A7165@flint.arm.linux.org.uk> <15579.54308.729464.625414@kim.it.uu.se> <3CDBE92E.5060307@linuxhq.com>
On Fri, May 10, 2002 at 11:37:18AM -0400, John Weber wrote:
> Mikael Pettersson wrote:
> > Russell King writes:
> > > On Fri, May 10, 2002 at 01:58:48PM +0200, Mikael Pettersson wrote:
> > > > This patch silences the sound/oss/emu10k1 warnings.
> > >
> > > You probably want to think about these in context of 32bit vs 64bit
> > > machines.
> > >
> > > > --- linux-2.5.15/sound/oss/emu10k1/efxmgr.h.~1~ Wed Feb 20 03:11:02 2002
> > > > +++ linux-2.5.15/sound/oss/emu10k1/efxmgr.h Fri May 10 01:54:43 2002
> > > > @@ -50,10 +50,10 @@
> > > > u16 code_start;
> > > > u16 code_size;
> > > >
> > > > - u32 gpr_used[NUM_GPRS / 32];
> > > > - u32 gpr_input[NUM_GPRS / 32];
> > > > - u32 route[NUM_OUTPUTS];
> > > > - u32 route_v[NUM_OUTPUTS];
> > > > + unsigned long gpr_used[NUM_GPRS / 32];
> > > > + unsigned long gpr_input[NUM_GPRS / 32];
> > > > + unsigned long route[NUM_OUTPUTS];
> > > > + unsigned long route_v[NUM_OUTPUTS];
> > > > };
> >
> > Ideally the emu10k1 maintainer should have fixed this by now. I'm just an emu10k user.
> >
> > The problem is: 3 archs (i386, ppc, ppc64) require "unsigned long *" as the
> > parameter type in bitops (set_bit et al), the others take "void *".
> > "unsigned int *" triggers compiler warnings: on the 32-bitters the warnings
> > are just portability hints, but for ppc64 I imagine int != long. (And
> > consequently emu10k1 is already broken on ppc64.)
> >
> > So what emu10k1 needs here is either
> > (a) a fix to make these arrays work even if the element type is 64 bits
> > (I can't claim to understand the code so I don't want to do that), or
> > (b) a typedef for a 32-bit type which is "unsigned long" on 32-bitters and
> > "unsigned int" on 64-bitters; I couldn't find a standard one but I could
> > certainly invent one for emu10k1's private use.
> >
> > Suggestions?
> >
> > /Mikael
>
> Why wouldn't something like this be handled by declaring the variable as
> "void *"? If the function is declared as taking "unsigned long *" then
> the cast is implicit, while if the function is declared as taking "void
> *" then it must explicitly cast the value anyway. Either way, a "void
> *" would work.
Umm, 'void *gpr_used' is a pointer to some undefined data.
'u32 gpr_used[NUM_GPRS / 32]' is an array of 'u32's, where 'u32' is
defined to be 32-bits. Therefore, there are NUM_GPRS bits in the array.
'unsigned long gpr_used[NUM_GPRS / 32]' is an array of 'unsigned long's,
where 'unsigned long' is a platform defined number of bits. Therefore
you can't say anything about the number of bits in the array. Typically,
it's either 32bit or 64bit, but doesn't have to be. You therefore should
to adjust the 'NUM_GPRS / 32' according to the size of 'unsigned long'.
This is only a minor point I'm highlighting - the worst that will happen
is the arrays will take up twice as much memory with an Alpha machine
than they really need to.
Note that the change of type for the bitops occurred because they are
defined to operate on 'unsigned long' quantities only. Passing any
other type into them is a bug.
--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html
next prev parent reply other threads:[~2002-05-10 15:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-10 3:26 2.5.15 broken code Keith Owens
2002-05-10 5:01 ` 2.5.15 warnings Keith Owens
2002-05-10 7:17 ` [PATCH] fix one of " Stephen Rothwell
2002-05-10 11:49 ` Mikael Pettersson
2002-05-10 11:54 ` Mikael Pettersson
2002-05-10 11:58 ` Mikael Pettersson
2002-05-10 13:20 ` Russell King
2002-05-10 14:07 ` Mikael Pettersson
2002-05-10 15:37 ` John Weber
2002-05-10 15:51 ` Russell King [this message]
2002-05-10 16:01 ` John Weber
2002-05-11 0:56 ` jw schultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020510165124.D7165@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=davej@suse.de \
--cc=john.weber@linuxhq.com \
--cc=kaos@ocs.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=mikpe@csd.uu.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox