Yes, folks, it's YATree. It is supposed to act as a staging area
for the stuff like sparse cleanups, etc.
Right now it's mostly about iomem annotations and fixes; it gets
drivers/net more or less back to sanity and takes a swipe at other parts
of drivers/*. Other stuff that will eventually get in there includes e.g.
endianness annotations and fixes. It builds with allmodconfig on x86,
amd64, alpha, sparc32, sparc64 and ppc. *Note*: right now a bunch of
modules are broken on ppc since it doesn't have ioread*/iowrite* implemented.
Currently patch is on
ftp.linux.org.uk/pub/people/viro/patch-2.6.9-rc4-bird1.bz2. Splitup is
in ftp.linux.org.uk/pub/people/viro/patchset/. Patch is against 2.6.9-rc4;
the first chunk in splitup is bk-net snapshot circa Oct 12, the rest is
the series proper.
Testers are welcome. If you have patches in that direction, feel
free to send them for review/inclusion into patchset.
Hopefully, updated versions of patchset will be posted more or less
daily; for now - based on 2.6.4-rc9, once we get 2.6.9 and things start
moving again - on bk snapshots.
Current contents:
Base patches:
bk-net.patch jgarzik's tree
bk-net.fixes compile fixes - missing include in typhoon.c + use of -mm-only
function in tulip.
Infrastructure patches [not for merge]
kconfig teaches allmodconfig to pin a set of options in given state
[NB: rz has another variant; this is just a temporary]
CHECKFLAGS allows to add stuff to CHECKFLAGS from command line
disable-DI disables CONFIG_DEBUG_INFO for test builds
Series proper:
alpha-writeq-fix alpha compile fix (writeq/readq)
some drivers do ifdef on writeq; alpha has it as inline
function, so they
get confused.
sparc-kconfig-fixes sparc32 kconfig fixes
CONFIG_VT should select CONFIG_INPUT, parport, oss and serial
are broken.
alpha-io_remap_page_range compile fix for alpha io_remap_page_range
bw2 fixes for drivers/video/bw2.c
sparc-atomic-UP compile fix for UP sparc32 with DEBUG_SPINLOCK enabled
gadget-ether sparc32 compile fixes for drivers/usb/gadget/ether.c
amd64-ioremap amd64 io.h annotations
amd64-get_user amd64 uaccess.h annotations
qla2xxx qla2xx iomem annotations
ppc-ioremap ppc io.h annotations
s2io s2io iomem annotations
sparc64-io sparc64 io.h annotations
cycx cyclom iomem annotations
__iomem added where needed in cyclom code
cycx_setup() gets physical address as an explicit argument
instead of abusing hw->dpmbase
sparc64-ioremap added typechecking to sparc64 ioremap
made sparc64 ioremap an inlined function, fixed a bug in
sbus/char/cpwatchdog.c found by that.
ppc-uaccess ppc uaccess.h annotations
aacraid aacraid iomem annotations
aic-trivial aic7xxx iomem annotations
aic-ioremap aic7xxx ioremap cleanup
ioremap does the right thing when it sees a non-aligned
address; no need duplicate that in driver.
qla1820 qla1820 iomem annotionats
syscall pci/syscall.c __user annotations
msi msi iomem annotations
cpq-hotplug cpqphp iomem annotations
hotplug-misc the rest of pci/hotplug iomem annotations
fusion message/fusion iomem annotations
cycx-64bit 64bit fix in cycx_x25.c
comparing u32 with ~0UL is wrong
memcpy_io consistent prototypes for memcpy_..io()
x86_64 and sparc64 switched to usual prototypes for
memcpy_toio() et.al.
hd6457 hd6457x iomem annotations
dscc4 dscc4 iomem annotations
netdev-trivial bunch of trivial iomem annotations in drivers/net
rrunner rrunner iomem annotations
amd8111e amd8111e iomem annotations
r8169 r8169 iomem annotations
via-velocity via-velocity iomem annotations
via-rhine via-rhine iomem annotations, switch to io{read,write}
tulip tulip iomem annotations, switch to io{read,write}
winbond winbond840 iomem annotations, switch to io{read,write}
forcedeth forcedeth iomem annotations
sundance sundance iomem annotations, switch to io{read,write}
yellowfin yellowfin iomem annotations, switch to io{read,write}
ac3200 ac3200 iomem annotations and fixes
annotated, killed isa_... uses by making ioremap()
unconditional, fixed the use of isa_... on already remapped
address.
hp100 hp100 iomem annotations
ne3210 ne3210 iomem annotations
starfire starfire iomem annotations
3c507 killed isa_... in 3c507
switched to ioremap() + normal read../write..
depca depca iomem annotations
hamachi hamachi iomem annotations
3c359 3c359 iomem annotations
e2100 e2100 iomem annotations and fixes
added missing ioremap(); driver was using readw() et.al. on
non-remapped addresses.
ibmtr beginning of ibmtr iomem annotations
the easy parts of ibmtr annotations, there will be another
patch dealing with the rest of it [yet to be merged]
lanstreamer lanstreamer iomem annotations
lanstreamer-fix lanstreamer fix
copy from on-stack array is memcpy(), not memcpy_fromio()
arlan-priv netdev_priv() in arlan
arlan arlan iomem annotations and cleanups
iomem annotations + couple of bad implementations of offsetof()
replaced with the real thing.
netwave-priv netdev_priv() in netwave_cs
netwave netwave iomem annotations
pcmcia net/pcmcia iomem annotations
olympic olympic_open() cleanup and fixes
fixed direct dereference of iomem pointers and plugged a leak.
Next version of the patchset.
News:
* sparse noise in drivers/net/* is practically gone (e.g. i386 is
down to 84 lines of sparse output in there, most of them unrelated to iomem;
that's down from ~10000).
* a bunch of drivers/net patches had been ACKed for bk-net merge,
so hopefully the next revision will shrink.
* more iomem patches outside of drivers/net; we are down to 469 gcc
warnings on i386 allmodconfig, more than a half of them from sound/*. Other
platforms are, surprisingly, not much worse.
* merged ppc iomap patch from benh, so ppc32 breakage is gone.
Currently patch is on
ftp.linux.org.uk/pub/people/viro/patch-2.6.9-rc4-bird2.bz2. Splitup is
in ftp.linux.org.uk/pub/people/viro/patchset/. Patch is against 2.6.9-rc4;
the first two chunks in splitup are bk-net snapshot circa Oct 12 and ppc
iomap patch from benh, the rest is the series proper.
Testers are welcome. If you have patches in that direction, feel
free to send them for review/inclusion into patchset.
Next revision will hopefully merge bk-scsi (and sanitize scsi-related
patches).
Added chunks:
ibmtr2 ibmtr annotations - the rest
the rest of annotations and cleanup: ->sram_virt abuse removed,
we have separate ->sram_phys now (not remapped) and keep
->sram_virt an iomem pointer.
skfp skfp iomem annotations, switch to io{read,write}
hermes wireless iomem annotations and fixes, switch to io{read,write}
hermes.c switched to ioread/iowrite from homegrown analogs,
its users updated. Fixed direct dereferencing of ioremapped
memory in orinoco_plx.
fealnx fealnx iomem annotations, switch to io{read,write}
lne390 lne390 iomem annotations and fixes
annotated, killed isa_... uses by making ioremap()
unconditional, fixed the use of isa_... on already remapped
address.
includes a couple of missing includes of asm/irq.h
disable_irq() needs asm/irq.h and not everyone who needs it
gets it included indirectly.
wavelan_cs wavelan_cs iomem annotations
airo airo iomem annotations
miri_sbus miri_sbus iomem annotations and fixes
missing sbus_readl()
depca-noise depca removal of bogus virt_to_bus() uses
mace1 mace iomem annotations - trivial part
disk_on_chip disk_on_chip annotations and fixes
iomem annotations and fix for a bug they'd caught in
doc2001plus.c (wrong order of arguments in WriteDOC() call).
if_ppp __user annotations in if_ppp
annotated ioctl structure
moxa moxa iomem annotations
sx sx iomem annotations and fixes
missing readb(), check of 64Kb alignment of physical address
done to remapped one.
skystar2 skystar2 iomem annotations
kyro video/kyro iomem annotations
aty video/aty iomem annotations
riva video/riva iomem annotations
video misc drivers/video iomem annotations
teles teles0 and telespci iomem annotations
isurf isurf iomem annotations
ipr ipr iomem annotations
ips ips iomem annotations
megaraid megaraid iomem annotations
nsp32 nsp32 iomem annotations
dpt partial dpt_i2o iomem annotations
qlogicisp qlogicisp iomem annotations
aic-old aic7xxxold iomem annotations
3w-9xxx 3w-9xxx iomem annotations
News:
* based on 2.6.9-bk4 now
* a bunch of drivers/net/* stuff got merged, patchset based on more
recent bk-net.
Currently patch is on
ftp.linux.org.uk/pub/people/viro/patch-2.6.9-bk4-bird1.bz2. Splitup is
in ftp.linux.org.uk/pub/people/viro/patchset/.
Added chunks:
ncr ncr.../sym... iomem annotations
alpha-numa CONFIG_NUMA is broken on alpha right now
ppc-fix missing externs in ppc irq.c
netdev-fixes2 compile fixes in typhoon.c and ne2k-pci.c
News:
* based on 2.6.10-rc2-bk1 now
* a bunch of patches got merged - some into Linus' tree, some into
bk-net
* iomem patches in sound/oss
* eicon patchset added; that one is *not* for merge until maintainer
ACKs the sucker
* more __user annotations for recently merged stuff (folks, please
at least try to run make C=2 after your patches and look for regressions).
* misc iomem annotations and fixes all over the place in drivers/*
Currently patch is on
ftp.linux.org.uk/pub/people/viro/patch-2.6.10-rc2-bk1-bird1.bz2. Splitup is
in ftp.linux.org.uk/pub/people/viro/patchset/.
Added chunks:
X6 alpha-numa CONFIG_NUMA is broken on alpha right now
X11 emu10k-ioctl CONFIG_EMU10K1 is broken on a shitload of platforms
U573 pc300 portability fixes for pc300
X15 xircom fix for botched MODULE_PARM conversion in xircom
U574 i2o i2o iomem annotation
U575 cpq cpqphp_nvram iomem annotation
U576 misc_user trivial __user annotations
U577 init more C99 initializers
U578 w1 drivers/w1 iomem annotations
U579 isdn more trivial isdn iomem annotations
U580 pcilynx pcilynx iomem annotations
U581 media trivial drivers/media iomem annotations
U582 oss sound/oss iomem annotations
U583 ad1889 ad1889 iomem annotations and leak fixes
U584 64bit misc portability fixes
U585 sound_pci sound/pci iomem annotations
U586 isdn_fix isdn/pcbit iomem fix
U587 zoran_fix zoran iomem fix
U588 imsttfb imsttfb iomem annotations
U589 tgafb tgafb iomem annotations
U590 i386_uaccess i386 uaccess.h annotations
X20 config-rio marks rio broken
EIC1 eicon_getword distinguish between iomem and normal memory access
# adds new helpers ({GET,PUT}_{WORD,DWORD}) parallel to READ_WORD et.al.,
# but used on normal memory instead of iomem. Instances of READ_WORD
# and friends that are applied to vmalloc'ed memory and local variables
# switched to new helpers.
EIC2 eicon_iomem eicon iomem annotations
EIC3 eicon_readb eicon byte iomem access fixes
# new helpers - READ_BYTE() and WRITE_BYTE(). On Linux they are needed, since
# direct access to iomem pointers is not allowed (and does not work on some
# architectures).
# memcpy() to/from iomem is not allowed on Linux (same story). Proper
# primitives are memcpy_toio() and memcpy_fromio(). Several places
# misused memcpy(); switched to memcpy_{to,from}io().
EIC4 eicon_fix s_4bri.c bugfix (bogus &)
# s_4bri.c has a nasty typo - bogus & in qBri_cpu_trapped().
# We have
# void *base;
# followed by
# regs[0] = READ_DWORD((&base + offset) + 0x70);
# which is *NOT* what is meant there - instead of access to memory pointed to
# by base we get access to _stack_ at some offset from the place where the
# local variable base lives.