2002-03-04 23:13:15

by Pavel Machek

[permalink] [raw]
Subject: save_flags() should take unsigned long

Hi!

...and here's patch to fix it... Please apply.
Pavel

--- linux/drivers/ide/ide.c Sun Nov 11 18:48:09 2001
+++ linux.uns/drivers/ide/ide.c Mon Mar 4 19:35:21 2002
@@ -1864,7 +1864,7 @@
ide_drive_t *drive;
ide_hwgroup_t *hwgroup;
unsigned int p, major, minor;
- long flags;
+ unsigned long flags;

if ((drive = get_info_ptr(i_rdev)) == NULL)
return -ENODEV;
--- linux/drivers/scsi/sym53c8xx.c Tue Jan 15 11:08:49 2002
+++ linux.uns/drivers/scsi/sym53c8xx.c Mon Mar 4 19:35:17 2002
@@ -14111,7 +14111,7 @@
if (len)
return -EINVAL;
else {
- long flags;
+ unsigned long flags;

NCR_LOCK_NCB(np, flags);
ncr_usercmd (np);
--- linux/include/linux/skbuff.h Thu Feb 28 23:15:23 2002
+++ linux.uns/include/linux/skbuff.h Mon Mar 4 19:24:35 2002
@@ -588,7 +588,7 @@

static inline struct sk_buff *skb_dequeue(struct sk_buff_head *list)
{
- long flags;
+ unsigned long flags;
struct sk_buff *result;

spin_lock_irqsave(&list->lock, flags);
@@ -737,7 +737,7 @@

static inline struct sk_buff *skb_dequeue_tail(struct sk_buff_head *list)
{
- long flags;
+ unsigned long flags;
struct sk_buff *result;

spin_lock_irqsave(&list->lock, flags);

--
(about SSSCA) "I don't say this lightly. However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa


2002-03-26 13:30:42

by David Weinehall

[permalink] [raw]
Subject: Re: save_flags() should take unsigned long

On Mon, Mar 04, 2002 at 07:46:53PM +0100, Pavel Machek wrote:
> Hi!
>
> ...and here's patch to fix it... Please apply.

The correct way to fix this would be:

<in suitable header-file; suggestions welcome>
typedef flags_t unsigned long;

If someone can just come up with the proper header-file to use, I have
a patch that fixes up all (?) code.

My suggestion would be to keep the typedef in the same header-file as
save_flags/restore_flags.


Regards: David Weinehall
_ _
// David Weinehall <[email protected]> /> Northern lights wander \\
// Maintainer of the v2.0 kernel // Dance across the winter sky //
\> http://www.acc.umu.se/~tao/ </ Full colour fire </

2002-03-26 13:47:36

by Pavel Machek

[permalink] [raw]
Subject: Re: save_flags() should take unsigned long

Hi!
> >
> > ...and here's patch to fix it... Please apply.
>
> The correct way to fix this would be:
>
> <in suitable header-file; suggestions welcome>
> typedef flags_t unsigned long;
>
> If someone can just come up with the proper header-file to use, I have
> a patch that fixes up all (?) code.
>
> My suggestion would be to keep the typedef in the same header-file as
> save_flags/restore_flags.

Yep, looks good. Try to feed it as trivial to rusty ;-).
Pavel
--
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.

2002-03-26 13:47:36

by Richard B. Johnson

[permalink] [raw]
Subject: Re: save_flags() should take unsigned long

On Tue, 26 Mar 2002, David Weinehall wrote:

> On Mon, Mar 04, 2002 at 07:46:53PM +0100, Pavel Machek wrote:
> > Hi!
> >
> > ...and here's patch to fix it... Please apply.
>
> The correct way to fix this would be:
>
> <in suitable header-file; suggestions welcome>
> typedef flags_t unsigned long;

I don't think it takes an 'unsigned long'. Instead, it takes 'size_t'.
This makes it work in all architectures because 'size_t' is the
size of a register.


Cheers,
Dick Johnson

Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).

Windows-2000/Professional isn't.

2002-03-26 16:54:59

by Russell King

[permalink] [raw]
Subject: Re: save_flags() should take unsigned long

On Tue, Mar 26, 2002 at 02:29:55PM +0100, David Weinehall wrote:
> The correct way to fix this would be:
>
> <in suitable header-file; suggestions welcome>
> typedef flags_t unsigned long;

You mean typedef unsigned long flags_t;

However, people will still write:

{
int flags;

save_flags(flags);

because 'int' is faster to type than 'flags_t'. About the only way
you're going to stop it dead is to do:

typedef struct { unsigned long val; } flags_t;

and then save_flags(x)/restore_flags(x) use (x).val

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html