Skip to contentSkip to conversation

Some warning: ... cleanup; relay no interest?

parisc-linux Helge Deller 2 participants 2 messages Jul 23, 2007 – Jul 28, 2007 3 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hi Joel,

Quoted 3 lines · Joel Soete

There was <http://lists.parisc-linux.org/pipermail/parisc-linux/2007-June/031749.html>

Really no interest, just missed or did I made a big mistake?

I don't like that patch very much.
It converts everything needlessly to (unsigned long long), which is 64bit long.

Wouldn't it be better to use "%z" or "%z"<something> ?
%z refers to size_t which should be the native bit length.
I'm not sure what others on this list think about it, or if this even works with 64bit...

Helge
_______________________________________________
parisc-linux mailing list
[email protected]
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw

Hi Helge,

Quoted 13 lines · Helge Deller
Quoted 11 lines · Helge Deller

Hi Joel,

Quoted 3 lines · Joel Soete

There was <http://lists.parisc-linux.org/pipermail/parisc-linux/2007-June/031749.html>

Really no interest, just missed or did I made a big mistake?

I don't like that patch very much.
It converts everything needlessly to (unsigned long long), which is 64bit long.

Wouldn't it be better to use "%z" or "%z"<something> ? %z refers to size_t which should be the native bit length.

Quoted 8 lines

Hi Joel,

e.g. replace "%lx" by "%Zx" or "%zx" ???
(untested!!!)

Helge

I just do a short test again dino.c:

./drivers/parisc/dino.c

    898         if (request_resource(&ioport_resource, res) < 0) {
    899                 printk(KERN_ERR "%s: request I/O Port region failed "
    900                        "0x%Zx/%Zx (hpa 0x%p)\n",
    901                        name, res->start, res->end, dino_dev->hba.base_addr);
    902                 return 1;
    903         }

and unfortunately it doesn't help:
/CAD/linux-2.6.22-pa/drivers/parisc/dino.c: In function âdino_bridge_initâ:
/CAD/linux-2.6.22-pa/drivers/parisc/dino.c:821: warning: format %lx expects type long unsigned int, but argument 4 has type resource_size_t /CAD/linux-2.6.22-pa/drivers/parisc/dino.c:821: warning: format %lx expects type long unsigned int, but argument 5 has type resource_size_t

same warning either Z or z qualifier :_(

As far as I understand of headers' comments:
./lib/vsprintf.c:

    270         int qualifier;          /* 'h', 'l', or 'L' for integer fields */
    271                                 /* 'z' support added 23/7/1999 S.H.    */
    272                                 /* 'z' changed to 'Z' --davidm 1/25/99 */
    273                                 /* 't' added for ptrdiff_t */

(so Z or z are all acceptable)

    472                 } else if (qualifier == 'Z' || qualifier == 'z') {
    473                         num = va_arg(args, size_t);

and all for the same type size_t

while here
./include/linux/ioport.h

     17 struct resource {
     18         resource_size_t start;
     19         resource_size_t end;
     20         const char *name;
     21         unsigned long flags;
     22         struct resource *parent, *sibling, *child;
     23 };

start & end are of type resource_size_t and not size_t.

I suppose that's why somewhere else upstream:
<http://www.linuxhq.com/kernel/v2.6/18/kernel/resource.c>

(still the same in 2.6.22.1), though.

Tx,
Joel