Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: asm-generic update candidates? | Date | Fri, 4 Sep 2009 15:32:50 +0200 |
| |
On Thursday 03 September 2009, Robin Getz wrote: > Arnd: > > I was reviewing some files in ./arch/blackfin/include for missing copyrights, > and while tracking things down I noticed there were still some likely > candidates for inclusion in asm-generic...
Ah, thanks. I basically started out with the list of files that exist in almost all architectures. I never looked at files that are identical in some architectures but nonexistent in more than a few others.
Also, my plan is to do one architecture at a time, not one file at a time across all architectures, because that will reduce the need for coordination between multiple maintainers.
> All seem to be the same file: > > md5sum: > 5b6b31d728ed2ed0df73c56676fdc68f blackfin/include/asm/fb.h > 5b6b31d728ed2ed0df73c56676fdc68f cris/include/asm/fb.h > 5b6b31d728ed2ed0df73c56676fdc68f frv/include/asm/fb.h > 5b6b31d728ed2ed0df73c56676fdc68f h8300/include/asm/fb.h > 5b6b31d728ed2ed0df73c56676fdc68f s390/include/asm/fb.h > 5b6b31d728ed2ed0df73c56676fdc68f xtensa/include/asm/fb.h
Look at the latest version. Some architectures have already started using the generic version, e.g. blackfin.
> e31d052cbba4f417ba2158a41b0d8709 arm/include/asm/fb.h > e31d052cbba4f417ba2158a41b0d8709 m32r/include/asm/fb.h > e31d052cbba4f417ba2158a41b0d8709 sh/include/asm/fb.h
Interesting one. The only difference between these and the above is the use of pgprot_writecombine, which is defined as pgprot_noncached on the other architectures.
> Mostly the same: > mn10300/include/asm/shmparam.h > frv/include/asm/shmparam.h > m68k/include/asm/shmparam.h > h8300/include/asm/shmparam.h > alpha/include/asm/shmparam.h > x86/include/asm/shmparam.h > m32r/include/asm/shmparam.h > avr32/include/asm/shmparam.h > powerpc/include/asm/shmparam.h > blackfin/include/asm/shmparam.h > > All the same: > frv/include/asm/ucontext.h > h8300/include/asm/ucontext.h > avr32/include/asm/ucontext.h > m32r/include/asm/ucontext.h > cris/include/asm/ucontext.h > alpha/include/asm/ucontext.h > mips/include/asm/ucontext.h > microblaze/include/asm/ucontext.h > mn10300/include/asm/ucontext.h > blackfin/include/asm/ucontext.h
Yes, these should come naturally when the architectures get changed to use the generic headers.
> There seems to be lots of similarities in > */include/asm/types.h > */include/asm/kmap_types.h > */include/asm/termios.h > */include/asm/socket.h > */include/asm/param.h > */include/asm/signal.h (but not all) > */include/asm/posix_types.h > */include/asm/termbits.h > */include/asm/segment.h > */include/asm/auxvec.h > */include/asm/shmbuf.h > */include/asm/spinlock_types.h > > Do you keep a list somewhere?
Well, this is how I started out writing doing the common files in the first place. I looked at the most similar files, and then used vimdiff on up to four files at a time, changing them to be exactly identical by editing out all the bitrot.
In general, if a file exists in asm-generic, it should be usable by some of the architectures, if it does not exist then either it is too hard to make a generic version or I have not looked at it yet.
If you want to help convert an architecture, try doing
for i in include/asm-generic/*.h ; do vimdiff ${i} arch/${ARCH}/include/asm/${i##*/} done
If the files are identical, replace the contents of the arch specific one with a simple #include <asm-generic/${i}>. If they are almost identical, add overrides like in arch/microblaze/include/asm/posix_types.h, possibly adding the option for overriding to the generic file. For files that are rather different, just leave them alone.
Arnd <><
| |