2005-12-22 10:15:27

by Al Viro

[permalink] [raw]
Subject: [PATCHSET] 2.6.15-rc6-bird1

Here it comes, after a long delay... I'm mostly done with
moving the tree to use of git (at least internally), so with any
luck the next revision will be available as a git tree on kernel.org.
For now, it's just a patch.

URL: ftp://ftp.linux.org.uk/pub/people/viro/patch-2.5.16-bird1.bz2

URL of splitup: same place, bird-mbox. It's stored as git-format-patch
output; i.e. an mbox consisting of individual changesets.

Changes since the last time: a lot. Moreover, a lot of stuff had come
_through_ the tree and got merged upstream in the meanwhile. The list
of targets remains the same, ppc and ppc64 had migrated to ARCH=powerpc.
The rest of ppc variants remain on the ARCH=ppc; they still don't build
on ARCH=powerpc.

Coming soon: mips variants and frv added to tracked targets list. That's
nearly finished, the main problem with frv is that some bits of gcc are
_still_ not in mainline ("U" constraint support).

It's an open season on endianness annotations; feel free to send such
stuff, this time update latency will stay tolerable, honest...

There will be a separate posting on the build setup; there had been a lot
of improvements since the last time, most notable ones being
* integration of ccache
* finally, a tolerable support of build clusters (basically,
source trees on build boxen are cloned from a branch in master git repository;
targets are split among the build boxen, any fixes done in a source tree
on a build box are simply pushed to master and then pulled to other build
boxen; on master they are cherry-picked to topic branches; from time to time
upstream in pulled to master; when needed, topic branches are rebased).

I've moved FC4 build boxen to recent binutils and I would like to spend
a few pages on expression of my opinion on that code and changes in it.
However, l-k is supposed to be more or less printable, so let's just
say that doing an as(1) replacement from scratch becomes more and more
attractive ;-/ Never would've thought that I would agree with Ulrich...

Not-so-short log:
Al Viro:
[infrastructure]
allmodconfig-with-subset support
disabling DEBUG_INFO for test builds
[task_thread_info series]
missing helper - task_stack_page()
alpha: task_thread_info()
alpha: task_stack_page()
alpha: task_pt_regs()
amd64: task_thread_info()
amd64: task_pt_regs()
amd64: task_stack_page()
i386: task_thread_info()
i386: use task_pt_regs()
i386: task_stack_page()
sparc64: task_thread_info()
sparc64: task_stack_page()
sparc64: task_pt_regs()
sh: task_pt_regs()
sh: task_thread_info()
sh: task_stack_page()
sparc: task_thread_info()
sparc: task_stack_page()
uml: task_thread_info()
uml: task_stack_page()
s390: task_pt_regs()
s390: task_stack_page()
xtensa: task_pt_regs(), task_stack_page()
v850: task_stack_page(), task_pt_regs()
m32r: task_pt_regs(), task_stack_page(), task_thread_info()
frv: task_thread_info(), task_stack_page()
m68k: task_stack_page()
m6knommu: task_stack_page()
parisc: task_stack_page(), task_thread_info()
h8300: task_stack_page()
arm: task_thread_info()
arm: task_pt_regs()
arm: end_of_stack()
arm: task_stack_page()
arm26: task_thread_info()
arm26: task_pt_regs()
arm26: task_stack_page()
sh64: task_stack_page()
powerpc: task_thread_info()
powerpc: task_stack_page()
cris: task_pt_regs()
cris: fix KSTK_EIP
cris: task_thread_info()
ia64: task_thread_info()
ia64: task_pt_regs()
mips: namespace pollution: dump_regs() -> elf_dump_regs()
mips: task_pt_regs()
mips: task_thread_info()
mips: task_stack_page()
death of get_thread_info/put_thread_info
[endianness]
more sunrpc endianness annotations
[m32r]
m32r: Kconfig fix (m32r smc91x)
m32r: play it safer with ld24 arguments (64bit issues in cross-as(1))
m32r: more binutils fallout
[net]
arcnet probing cleanups and fixes
ibm_emac sparse annotations
appletalk/cops.h: missing const in struct ltfirmware
macsonic.c: missed s/driver_unregister/platform_driver_unregister/
missing include of asm/irq.h in drivers/net
bogus include of linux/irq.h in 7990.c
wrong ifdefs in 82596.c
[uml]
uml: kills symlinks in arch/um/sys-*
uml: kills unmap magic
uml: no need to add the same file twice to MRPROPER_FILES
uml: kconfig sanitized around drivers/net
uml: misc sparse annotations
uml: __user annotations (hppfs)
uml: removed assignments to unused variables in arch/um/os-Linux/Makefile
[misc]
B2 rio
B12 broken-on-big-endian Kconfig fix (BROKEN_ON_BIG_ENDIAN)
C4 asm-delay.h
C5 atyfb-sparc
C6 sparc-video
B23 8390 fixes - part 1
C15 mv643xx_eth ifdefs
B33 8390 fixes - part 2 (m68k)
Fix misspellings of ARCH_S390 in Kconfig
S54 drivers/s390 misc sparse annotations
mips: namespace pollution - mem_... -> __mem_... in io.h
at76c651.c: __ilog2() exists not only on powerpc, mips also has it.
remove bogus asm/bug.h includes.
arm: fix dependencies for MTD_XIP
V0 MEMORY_HOTPLUG
V1 KEXEC on powerpc 6xx is broken
drive_info removal outside of arch/i386
[m68k]
m68k: compile fix - hardirq checks were in wrong place
m68k: compile fix - updated vmlinux.lds to include LOCK_TEXT
m68k: namespace pollution fix (custom->amiga_custom)
m68k: switch mac/misc.c to direct use of appropriate cuda/pmu/maciisi requests
m68k: dumb typo in atyfb
m68k: oktagon makefile fix
m68k: Kconfig fix (mac vs. FONTS)
m68k: isa_{type,sex} should be exported
m68k: fix macro syntax to make current binutils happy
m68k: more workarounds for recent binutils idiocy
m68k: static vs. extern in scc.h
m68k: static vs. extern in sun3ints.h
m68k: static vs. extern in amigaints.h
m68k: memory input should be an lvalue (mac/misc.c)
m68k: broken constraints on mulu.l
m68k: bogus function argument types (sun3_pgtable.h)
m68k: lvalues abuse in mac8390
m68k: lvalues abuse in dmasound
m68k: compile fixes for dmasound (static vs. extern)
m68k: basic iomem annotations
m68k: basic __user annotations
m68k: signal __user annotations
m68k: rtc __user annotations
m68k: syscalls __user annotation
m68k: checksum __user annotations
m68k: amiflop __user annotations
m68k: ataflop __user annotations, NULL noise removal
m68k: amiserial __user annotations
m68k: dsp56k __user annotations
m68k: amifb __user annotations
m68k: zorro __user annotations
m68k: drivers/scsi/mac53c94.c __iomem annotations
m68k: dmasound __user annotations
m68k: NULL noise removal
m68k: cast in strnlen switched to unsigned long

Alexey Dobriyan:
Minimal patch to remove junk endianness warnings from net/sunrpc/*.
lockd endianness annotations
nfs endianness annotations
cdrom: add endianness annotations

Roman Zippel:
m68k: dmasound_paula.c lvalues abuse (from m68k CVS)


2005-12-22 21:28:33

by Alexey Dobriyan

[permalink] [raw]
Subject: nbd: add endian annotations

Signed-off-by: Alexey Dobriyan <[email protected]>

--- a/include/linux/nbd.h
+++ b/include/linux/nbd.h
@@ -68,11 +68,11 @@ struct nbd_device {
* server. All data are in network byte order.
*/
struct nbd_request {
- u32 magic;
- u32 type; /* == READ || == WRITE */
+ __be32 magic;
+ __be32 type; /* == READ || == WRITE */
char handle[8];
- u64 from;
- u32 len;
+ __be64 from;
+ __be32 len;
}
#ifdef __GNUC__
__attribute__ ((packed))
@@ -84,8 +84,8 @@ struct nbd_request {
* it has completed an I/O request (or an error occurs).
*/
struct nbd_reply {
- u32 magic;
- u32 error; /* 0 = ok, else error */
+ __be32 magic;
+ __be32 error; /* 0 = ok, else error */
char handle[8]; /* handle you got from request */
};
#endif

2005-12-22 21:44:33

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH] aes: fix endian warnings

Signed-off-by: Alexey Dobriyan <[email protected]>
---

crypto/aes.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/crypto/aes.c
+++ b/crypto/aes.c
@@ -73,8 +73,8 @@ byte(const u32 x, const unsigned n)
return x >> (n << 3);
}

-#define u32_in(x) le32_to_cpu(*(const u32 *)(x))
-#define u32_out(to, from) (*(u32 *)(to) = cpu_to_le32(from))
+#define u32_in(x) le32_to_cpu(*(const __le32 *)(x))
+#define u32_out(to, from) (*(__le32 *)(to) = cpu_to_le32(from))

struct aes_ctx {
int key_length;

2005-12-22 21:56:35

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH] serpent: fix endian warnings

Signed-off-by: Alexey Dobriyan <[email protected]>
---

crypto/serpent.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

--- a/crypto/serpent.c
+++ b/crypto/serpent.c
@@ -367,10 +367,10 @@ static int serpent_setkey(void *ctx, con
static void serpent_encrypt(void *ctx, u8 *dst, const u8 *src)
{
const u32
- *k = ((struct serpent_ctx *)ctx)->expkey,
- *s = (const u32 *)src;
- u32 *d = (u32 *)dst,
- r0, r1, r2, r3, r4;
+ *k = ((struct serpent_ctx *)ctx)->expkey;
+ const __le32 *s = (const __le32 *)src;
+ __le32 *d = (__le32 *)dst;
+ u32 r0, r1, r2, r3, r4;

/*
* Note: The conversions between u8* and u32* might cause trouble
@@ -425,10 +425,10 @@ static void serpent_encrypt(void *ctx, u
static void serpent_decrypt(void *ctx, u8 *dst, const u8 *src)
{
const u32
- *k = ((struct serpent_ctx *)ctx)->expkey,
- *s = (const u32 *)src;
- u32 *d = (u32 *)dst,
- r0, r1, r2, r3, r4;
+ *k = ((struct serpent_ctx *)ctx)->expkey;
+ const __le32 *s = (const __le32 *)src;
+ __le32 *d = (__le32 *)dst;
+ u32 r0, r1, r2, r3, r4;

r0 = le32_to_cpu(s[0]);
r1 = le32_to_cpu(s[1]);

2005-12-23 09:31:47

by Al Viro

[permalink] [raw]
Subject: [PATCHSET] 2.6.15-rc6-bird2

Updated version:
ftp://ftp.linux.org.uk/pub/people/viro/patch-2.6.15-bird2.bz2

URL of splitup: same place, bird-mbox.

Changes since yesterday snapshot:

Al Viro:
dead code removed in hp100
m32r: C99 initializers in setup.c
m32r: NULL noise removal
m32r: signal __user annotations
m68k: kill mach_floppy_setup, convert to proper __setup() in drivers
m68k: fix use of void foo(void) asm("bar") in traps.c
drive_info removal outside of arch/i386

Alexey Dobriyan:
nbd: add endian annotations
aes: fix endian warnings
serpent: fix endian warnings
chelsio: add endian annotations

[pulled from m68k CVS]
Kars de Jong:
m68k: Moved initialisation of conswitchp from subarches to global arch
setup

2005-12-23 20:35:16

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH] drivers/pcmcia/cistpl.c: fix endian warnings

Signed-off-by: Alexey Dobriyan <[email protected]>
---

drivers/pcmcia/cistpl.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)

--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -463,7 +463,7 @@ static int follow_link(struct pcmcia_soc
/* Get indirect link from the MFC tuple */
read_cis_cache(s, LINK_SPACE(tuple->Flags),
tuple->LinkOffset, 5, link);
- ofs = le32_to_cpu(*(u_int *)(link+1));
+ ofs = le32_to_cpu(*(__le32 *)(link+1));
SPACE(tuple->Flags) = (link[0] == CISTPL_MFC_ATTR);
/* Move to the next indirect link */
tuple->LinkOffset += 5;
@@ -671,8 +671,8 @@ static int parse_checksum(tuple_t *tuple
if (tuple->TupleDataLen < 5)
return CS_BAD_TUPLE;
p = (u_char *)tuple->TupleData;
- csum->addr = tuple->CISOffset+(short)le16_to_cpu(*(u_short *)p)-2;
- csum->len = le16_to_cpu(*(u_short *)(p + 2));
+ csum->addr = tuple->CISOffset+(short)le16_to_cpu(*(__le16 *)p)-2;
+ csum->len = le16_to_cpu(*(__le16 *)(p + 2));
csum->sum = *(p+4);
return CS_SUCCESS;
}
@@ -683,7 +683,7 @@ static int parse_longlink(tuple_t *tuple
{
if (tuple->TupleDataLen < 4)
return CS_BAD_TUPLE;
- link->addr = le32_to_cpu(*(u_int *)tuple->TupleData);
+ link->addr = le32_to_cpu(*(__le32 *)tuple->TupleData);
return CS_SUCCESS;
}

@@ -702,7 +702,7 @@ static int parse_longlink_mfc(tuple_t *t
return CS_BAD_TUPLE;
for (i = 0; i < link->nfn; i++) {
link->fn[i].space = *p; p++;
- link->fn[i].addr = le32_to_cpu(*(u_int *)p); p += 4;
+ link->fn[i].addr = le32_to_cpu(*(__le32 *)p); p += 4;
}
return CS_SUCCESS;
}
@@ -789,10 +789,10 @@ static int parse_jedec(tuple_t *tuple, c

static int parse_manfid(tuple_t *tuple, cistpl_manfid_t *m)
{
- u_short *p;
+ __le16 *p;
if (tuple->TupleDataLen < 4)
return CS_BAD_TUPLE;
- p = (u_short *)tuple->TupleData;
+ p = (__le16 *)tuple->TupleData;
m->manf = le16_to_cpu(p[0]);
m->card = le16_to_cpu(p[1]);
return CS_SUCCESS;
@@ -1093,7 +1093,7 @@ static int parse_cftable_entry(tuple_t *
break;
case 0x20:
entry->mem.nwin = 1;
- entry->mem.win[0].len = le16_to_cpu(*(u_short *)p) << 8;
+ entry->mem.win[0].len = le16_to_cpu(*(__le16 *)p) << 8;
entry->mem.win[0].card_addr = 0;
entry->mem.win[0].host_addr = 0;
p += 2;
@@ -1101,9 +1101,9 @@ static int parse_cftable_entry(tuple_t *
break;
case 0x40:
entry->mem.nwin = 1;
- entry->mem.win[0].len = le16_to_cpu(*(u_short *)p) << 8;
+ entry->mem.win[0].len = le16_to_cpu(*(__le16 *)p) << 8;
entry->mem.win[0].card_addr =
- le16_to_cpu(*(u_short *)(p+2)) << 8;
+ le16_to_cpu(*(__le16 *)(p+2)) << 8;
entry->mem.win[0].host_addr = 0;
p += 4;
if (p > q) return CS_BAD_TUPLE;
@@ -1140,7 +1140,7 @@ static int parse_bar(tuple_t *tuple, cis
p = (u_char *)tuple->TupleData;
bar->attr = *p;
p += 2;
- bar->size = le32_to_cpu(*(u_int *)p);
+ bar->size = le32_to_cpu(*(__le32 *)p);
return CS_SUCCESS;
}

@@ -1153,7 +1153,7 @@ static int parse_config_cb(tuple_t *tupl
return CS_BAD_TUPLE;
config->last_idx = *(++p);
p++;
- config->base = le32_to_cpu(*(u_int *)p);
+ config->base = le32_to_cpu(*(__le32 *)p);
config->subtuples = tuple->TupleDataLen - 6;
return CS_SUCCESS;
}
@@ -1269,7 +1269,7 @@ static int parse_vers_2(tuple_t *tuple,

v2->vers = p[0];
v2->comply = p[1];
- v2->dindex = le16_to_cpu(*(u_short *)(p+2));
+ v2->dindex = le16_to_cpu(*(__le16 *)(p+2));
v2->vspec8 = p[6];
v2->vspec9 = p[7];
v2->nhdr = p[8];
@@ -1310,8 +1310,8 @@ static int parse_format(tuple_t *tuple,

fmt->type = p[0];
fmt->edc = p[1];
- fmt->offset = le32_to_cpu(*(u_int *)(p+2));
- fmt->length = le32_to_cpu(*(u_int *)(p+6));
+ fmt->offset = le32_to_cpu(*(__le32 *)(p+2));
+ fmt->length = le32_to_cpu(*(__le32 *)(p+6));

return CS_SUCCESS;
}

2005-12-24 09:51:15

by Al Viro

[permalink] [raw]
Subject: [PATCHSET] 2.6.15-rc6-bird3

Updated version:
ftp://ftp.linux.org.uk/pub/people/viro/patch-2.6.15-rc6-bird3.bz2

URL of splitup: same place, bird-mbox.

New target added to tracked set: sun3 (which completes m68k coverage).
Patches in befs series are only beginning - there's more to do to get
it endian-clean. Tomorrow... As an aside, fs/befs is a nice demonstration
of the typedef uses that can go wrong...

BTW, sun3 had exposed an ld(1) bug - mixing PHDRS, large holes in segments
and nobits sections in the end of segments after such holes can make ld(1)
forget to map such sections into any segment. If you've seen strip(1)
complaining about .bss - that's what it is. After fixing init_task reference
in vmlinux-sun3.lds it doesn't trigger that bug anymore, but binutils
still needs fixing; if nobody beats me to it I'll see what can be done
about that crap...

Changes since yesterday snapshot:

Al Viro:
m68k: fix reference to init_task in vmlinux-sun3.lds
m68k: fix macfb init
affs_fill_super() %s abuses
befs: remove bogus typedef
befs: prepare to sanitizing headers
befs: introduce on-disk endian types
befs: missing fs32_to_cpu() in debug.c

Alexey Dobriyan:
eisa_eeprom.c: __user annotations
parisc: add __iomem to __raw_check_addr()
include/asm-parisc/processor.h: C99 initializers

2005-12-25 20:14:25

by Al Viro

[permalink] [raw]
Subject: [PATCHSET] 2.6.15-rc7-bird1

Updated version:

ftp://ftp.linux.org.uk/pub/people/viro/patch-2.6.15-rc7-bird1.bz2

URL of splitup: same place, bird-mbox.

Mostly endianness stuff - finished off befs, killed the minor stuff that
had cropped up since the last (partial) endianness sweep in fs/*, handled
most of nfs and nfsd (that had uncovered several bugs in the latter).
Merged a patch from Alexey that should've been in -rc6-bird3, but had been
missed.

Changes since yesterday snapshot:

Al Viro:
[endianness annotations]
befs: endianness annotations
ext3 endianness annotations
fs/fat endianness annotations
hpfs endainness annotations
smbfs endianness annotations
isofs endianness annotations
fs/partitions endianness annotations
ufs endianness annotations
sunrpc: xdr_stream->end also points to network-order data
nfs: verifier is network-endian
nfs4 endianness annotations
nfs_common endianness annotations
nfsd/vfs.c: endianness fixes
nfsd4_truncate() bogus return value
NFSERR_SERVERFAULT returned host-endian
nfsd4_lock() returns bogus values to clients
nfsd: nfserrno() endianness annotations
nfsfh simple endianness annotations
nfsd: misc endianness annotations
nfsd: vfs.c endianness annotations
nfsd: NFSv3 endianness annotations
nfsd: NFSv2 endianness annotations
nfsd: NFS4 endiannness annotations
nfsd: nfs_replay_me
[m68k]
m68k: fix PIO case in esp
[misc]
isdn: amd7930 is blatantly broken (half-merged?), marked broken in Kconfig

Alexey Dobriyan:
drivers/pcmcia/cistpl.c: fix endian warnings

2005-12-29 04:38:29

by Adrian Bunk

[permalink] [raw]
Subject: Re: [PATCHSET] 2.6.15-rc7-bird1

Hi Al,

could you include your isaectomy patches in your patchset (and forward
them to Linus at an appropriate time)?

TIA
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2005-12-30 09:24:52

by Dominik Brodowski

[permalink] [raw]
Subject: Re: [PATCH] drivers/pcmcia/cistpl.c: fix endian warnings

On Fri, Dec 23, 2005 at 11:51:08PM +0300, Alexey Dobriyan wrote:
> Signed-off-by: Alexey Dobriyan <[email protected]>
> ---
>
> drivers/pcmcia/cistpl.c | 30 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)

Thanks, applied to the linux-pcmcia git tree, will push it into 2.6.16.

Dominik

2006-02-04 11:27:14

by Al Viro

[permalink] [raw]
Subject: [PATCHSET] 2.6.15-rc2-git1-bird1

OK, it's back. And this time it's finally in git - tree is on
git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird.git/
There will be a lot of reordering the patchset (and hopefully flushing
it into mainline) in the next few days, so it's in flux right now.

Composite patch:
ftp://ftp.linux.org.uk/pub/people/viro/patch-2.6.16-rc2-git1-bird1.bz2

URL of splitup: same place, splitup.tar.bz2

A lot of changes - many misc fixes, a lot of endianness annotations,
a couple of new targets added since the last time. More details when
the things settle down a bit...

2017-11-04 00:32:22

by Al Viro

[permalink] [raw]
Subject: Re: [PATCHSET] 2.6.15-rc7-bird1

On Sat, Nov 04, 2017 at 12:29:54AM +0000, Al Viro wrote:
[snip]

Bloody hell... My apologies - that was a postponed mail from *way*
back that got sent now by dumb mistake. Sorry about that....

From 1583093398980660688@xxx Sat Nov 04 00:31:55 +0000 2017
X-GM-THRID: 1583093398980660688
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread

2017-11-04 00:31:55

by Al Viro

[permalink] [raw]
Subject: Re: [PATCHSET] 2.6.15-rc7-bird1

BTW, here's the state of toolchains, by architecture:

alpha alpha-linux works
arm arm-linux works
arm26 support is gone in gcc4, tree is not well either
cris cris-linux broken [*3][*4], but gets through arch/cris, so
there's some use for it...
frv frv-linux 4.1 mostly works [*2], but "U" constraint
support is still missing in mainline
h8300 h8300-elf broken [*5][*3]
i386 x86_64-linux works
ia64 ia64-linux works
m32r m32r-linux works [*2]
m68k m68k-linux works [*2]
mips mips64-linux works
mips64 mips64-linux works [*1]
parisc hppa-linux works [*4]; gcc-4.1 gives an ICE [*7]
parisc64 hppa64-linux Linus' tree is broken; gcc builds, but doesn't
get far in kernel build; might die later.
powerpc powerpc64-linux works
ppc powerpc64-linux works
s390 s390x-linux works
sh sh-linux works [*4]
sh64 sh64-linux broken [*6]
sparc sparc64-linux works
sparc64 sparc64-linux works
um toolchain of corresponding sub-arch
v850 v850e-linux works [*2][*5]
x86_64 x86_64-linux works
xtensa, m68knommu: have not tried lately

[*1] except that we get bogus flags passed to as(1) if we are building
for 64bit cpu without CONFIG_BUILD_ELF64.
[*2] 64bit bugs in binutils, fixes exist
[*3] ICE during kernel build
[*4] needs a patch to get rid of dependency on target libc headers; fix exists
[*5] 64bit bugs in gcc, fixes exist
[*6] ICE during libgcc build
[*7] 4.0 works, 4.1 gives an ICE when you build on 64bit host with -Os;
trimmed-down reproducer is
void foo(int sig, int *p)
{
if (!((1ULL << ((sig)-1)) & 0x300000edcULL))
*p = 0;
}

From 1583272781975433127@xxx Mon Nov 06 00:03:08 +0000 2017
X-GM-THRID: 1576361141849228748
X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread