There should be a lot of compile fixes here, along with updates for ia64,
and the (painful) move of the 'name' entry out of the "struct device" that
helps avoid unnecessary memory waste.
It's a lot of small stuff all over: nothing really stands out in diffstat,
except the big update of the Zoran video capture driver, and the blkmtd
driver - both updated from their respective development trees (and the ips
scsi driver, but that was due to massive whitespace fixing).
Normal merges with Andrew and arch maintainers (x86-64, ia64, sparc64,
arm), and AGP updates (notably the merging of the ATI IGP). And network
driver updates, ACPI and power management infrastructure.
Linus
----
Summary of changes from v2.6.0-test3 to v2.6.0-test4
============================================
<bos:camp4.serpentine.com>:
o Documentation for initramfs, klibc, and early userspace
<javier:tudela.mad.ttd.net>:
o [wireless airo] Replaces task queues by simpler kernel_thread
<joern:infradead.org>:
o keep cramfs silent, when it ought to be
o remove cramfs maintainership
<kevino:asti-usa.com>:
o USB: bug in EHCI device reset through transaction
<lkml:mathfillsmewithgreatjoy.com>:
o Correct DEVPTS config help
Adam Belay:
o Remove remaining usage of device.name in PnP
o Fix sb_card.c for "name" removal
o Fix awe PnP probing
Adam Kropelin:
o [netdrvr] fix seeq8005 entry help text in Kconfig
Adrian Bunk:
o [NET]: Kill EXPORT_NO_SYMBOLS from meth.c
Alan Cox:
o [netdrvr eexpress] fix buglet in skb_padto conversion
o Maintainer/Credit update
Alan Stern:
o (as70b) Update request_bufflen to match this_count
Albert Cahalan:
o fast AND correct strncpy
o reduce diff between x86-64 & i386
o IO port bitmap cleanups, x86-64 oops fix
Alexander Viro:
o Fix pd.c for new queue allocation
Alexey Kuznetsov:
o [IPV4]: Fix rt_score() and usage when purging rtcache hash chains
Andi Kleen:
o [NET]: Allow XFRM subsystem to be optional
o x86-64 merge for 2.6.0test3
o add compat_statfs64
o add compat_utimes
o add posix timer compat functions
o Make x86-64 use new compat support code
o Make x86-64 compile again
o Fix ugly hole in x86-64 interrupt gates
Andrea Arcangeli:
o address update
Andrew Morton:
o fadvise(POSIX_FADV_DONTNEED) fix
o sys_fadvise64_64
o Fix raid "bio too big" failures
o missing #if for 1000 HZ
o timer race fixes
o AS: remove hash valid stuff
o AS: no trinary states
o AS requeue implementation
o standalone elevator noop
o pipe.c: don't write to readonly filesystems
o reiserfs: remove unneeded kunmap
o reiserfs: Fix handling of some extended inode
o Set up P4 thermal interrupt vector on UP
o nbd: fix send/receive/shutdown/disconnect races
o /proc/net/pnp oops fix
o vt_ioctl warning fixes
o fix task struct refcount bug
o probe UDF after reiserfs
o fix ide-scsi for ide_drive_t->queue change
o BUG fix for drivers/bluetooth/hci_usb.c
o handle old-style "root=" arguments
o firmware loader requires hotplug
o devfs_mk_dir fix
o _devfs_walk_path fix
o floppy_init fix
o Make MTRR init conform with recommended procedure
o fix typo in hd.c
o fix hugetlbfs slab corruption on umount
o Kill warning in minix filesystem on 64-bit archs
o loop oops fix
o request_firmware fix
o Kill warning in drivers/input/misc/uinput.c on IA64
o kill warning in jbd/revoke.c
o keyboard.c warning fix
o fix [un]likely(), add ptr support
o ipmi_kcs_intf.c compile warning
o hugetlbfs - 'recovering' too many blocks on failure
o more documentation for request_firmware()
o state request_firmware() maintainership
o jffs statfs fix
o Make 16-way x440's boot
o Fix strncpy off-by-one error
o nls Makefile fix
o Fix DAC960 oops
o Better argument size tracking in fs/exec.c
o bugfix for initialization bug in adm1021 driver
o dnotify documentation update
o access_process_vm() needs to dirty the page
o Use mark_page_accessed() in follow_page()
o uinput oops and panic fix
o Docbook: Make mandocs output more terse
o opl3 use-after-free fix
o SELinux inode security init
o Add SELinux entry to MAINTAINERS
o AS: update as_requeue_request()
o cpumask_t: allow more than BITS_PER_LONG CPUs
o Fix si_band type in asm-generic/siginfo.h
o signal handling race condition causing reboot hangs
o add ASUS l3800P to DMI black list
o Local APIC enable fixes
o async write errors: report truncate and io errors on
o async write errors: use flags in address space
o async write errors: fix spurious fs truncate errors
o enable the ikconfig stuff in config
o aio: fix error-path mm leak in ioctx_alloc
o Fix SELinux avc_log_lock
o SELinux check behavior value
o ymfpci oops fix
o add locking to global list in ymfpci.c
o slab: drain_array fix
o loop: fix module unload oops
o atp870u.c lockup fix
o sysctl.h needs compiler.h
o misc fixes
o ext3 block allocator cleanup
o vmscan: give dirty referenced pages another pass
o When a partition is claimed, claim the whole device
o Allow O_EXCL on a block device to claim exclusive use
o opl3sa2 uninitialised spinlock
o dscc4: commentary
o dscc4: clock mode commentary
o dscc4: debug messages
o dscc4: scc changes
o dscc4: reset changes
o dscc4: CCR1 register fixes
o dscc4: various
o dscc4: module refcounting
o fix intel copy_to_user()
o update Documentation/filesystems/Locking
o dmi_scan warning fix
o fix for htree corruption
o export device_suspend() and device_resume()
o missing io_apic.h inclusions
o Fix CPU boot problem
o fix /proc mm_struct refcounting bug
Andries E. Brouwer:
o hpt366 fix
Andy Grover:
o ACPI: Fix intr on IA64 (davidm)
o ACPI: Better blacklist messages (Jasper Spaans)
o ACPI: Fix Kconfig for ia64 and SN2 (Jesse Barnes)
o ACPI: toshiba_acpi update (John Belmonte)
o ACPI: Allow irqs > 15 to use interrupt semantics other than PCI's
standard active-low, level trigger. Make other changes as required
for this. (Andrew de Quincey)
o ACPI: If notify handler fails to be removed properly, don't just
return, but clean up other resources too (Daniele Bellucci)
o ACPI: Fix ACPI for IA64 on Big Sur machines (HJ Lu)
o ACPI: Update version so we can keep bugreports straight
Anton Blanchard:
o minor fix to sym2 hotplug conversion
o another fix to sym2 hotplug conversion
Arnaldo Carvalho de Melo:
o atm/eni: use skb_queue_walk, not open coded equivalent
Arnd Bergmann:
o correct local_dec on some architectures
Arun Sharma:
o ia64: IA-32 compatibility patch: FP denormal handling
o ia64: fix bug in handling ERESTART_RESTARTBLOCK for IA-32 emulation
Bartlomiej Zolnierkiewicz:
o kill HDIO_GETGEO_BIG_RAW ioctl
o ide: disk geometry/capacity cleanups
o ide: always store disk capacity in u64
o ide: limit drive capacity to 137GB if host doesn't support LBA48
o ide: more ide_unregister() fixes
o ide: build fixes for ide-tape.c
o ide: remove bogus bh->bio conversion from ide-tape.c
o ide: some CodingStyle fixes from 2.4.x for ide-tape.c
Benjamin Herrenschmidt:
o PowerMac: Ground work for new driver model
o Fix ide-scsi build with driver model change
o PowerMac: Update for removal of device->name
o Fix incorrect pci_ids.h for Radeon
Bjorn Helgaas:
o ia64: Trivial 2.5 efivars.c whitespace cleanup
o ia64: export EFI systab
Chas Williams:
o [ATM]: Fix printk() warnings in LANAI driver (from
[email protected])
o [ATM]: Use likely()/unlikely() in many potential hot-paths of LANAI
driver (from [email protected])
o [ATM]: Cleanup/minor fixes to interrupt handler of LANAI driver
(from [email protected])
o [ATM]: make br2684 more net_device * centric (from
[email protected] ala [email protected])
o [ATM]: remove MOD_* used as semaphore; convert others to new style
o [ATM]: atmdev api cleanup -- remove sg_send() and feedback()
([email protected])
Christoph Hellwig:
o scsi_remove_device simplifications
o AHA152x driver hangs on PCMCIA
o make sym2 scan devices again
o fix dc395x compile
o nuke some junk from the pcmcia scsi drivers
o place host-related LDM code directly in hosts.c
o Re: scsi proc_info called unconditionally
o [PCMCIA] kill remaining pcmcia release timers
o [PCMCIA] kill off last remains of the release timer
o [PCMCIA] kill remaining cardservices version checking
o sedlbauer_cs.c: remove release timer
Christophe Saout:
o Fix /sys/<dev>/<partition>/dev format: %04x -> %u:%u
Corey Minyard:
o IPMI updates for 2.6.0-test3
Daniele Bellucci:
o USB: usbvideo cleanup on error
Dave Jones:
o [AGPGART] Kill off agp_try_unsupported module parameter
o [AGPGART] Fix logic bug
o [IPV6]: Missing break in switch statement of rawv6_getsockopt()
o [IPV4]: /proc/net/pnp dumps items marked initdata
o [SUNRPC]: Remove duplicate access_ok()
o [AGPGART] Disable calibration cycle when not in AGP3 mode of
operation on AGP3 chipset
o [AGPGART] VIA AGP3 fixups
o [AGPGART] Fix overflow on machines with >4GB From Marcelo E
Magallon.
o USB: Add Minolta Dimage F300 to unusual_devs
o Enable OOSTORE on Geode
o Don't refer to devel kernel in Kconfig option
o winchip3d can use same -march as winchip2
o Fix x87 FPU exception status check
o microcode driver sparse __user annotations
o document easier bitkeeper option
o Remove duplicate ; at end of macro definitions
o DAC960 64bit fixup
o CCISS 64bit fixup
o cpu_relax whilst in busy-wait loops
o c99 initialisers for random.c
o Remove unneeded ; from macros in i8042
o remove version.h from bttv
o misc 3c505 bits
o c99 initialisers for bttv
o FusionMPT 64bit fixup
o arcnet indentation fixup
o c99 struct initialisers for AMD8111e driver
o boolean logic error in fpu emulation
o CodingStyle fixes for drm_agpsupport
o c99 initiliasers for bttv (2)
o c99 for blkmtd
o sparse annotations for MSR driver
o PCMCIA copy_*_user fixes
o missing copy_to_user check in tun driver
o Missing copy_from_user check in comx driver
o missing copy_from_user check in comx_proto_lapb driver
o missing copy_to_user check in pc300 wan driver
o missing copy_from_user check in comx-proto-fr driver
o missing copy_*_user checks in sbni wan driver
o Missing spin_unlock_irqrestore from rrunner driver
o missing copy_from_user check in munich driver
o missing copy_from_user check in mixcom driver
o sync iocb wakeup
o BEFS 64bit fixup
o EFI 64bit fixup
o sparse annotations for page-writeback
o LDM 64bit fixup
o correct tlb_remove_page comment
o Remove useless assertions from reiserfs
o AD1848 claims a card it shouldn't
o sparse annotations for page_alloc
o sparse annotations for ipc/sem
o logic error in gus_wave driver
o [AGPGART] Merge ATI IGP GART driver
o [AGPGART] Move ATI PCI IDs to pci_ids.h
o [AGPGART] Kill off agp_try_unsupported for ATI
o [AGPGART] Masks cleanup for ATI GART
o [AGPGART] Plug memory leak in failure path of ATI GATT allocator
o [AGPGART] Kill compiler warnings for ATI GART driver
o [AGPGART] Fix compiler warning
o [AGPGART] Check ioremap for failure in Serverworks GART driver
o [AGPGART] Remove duplicate agpgart: from printk's
o [AGPGART] Another missing ioremap() failure check
o [AGPGART] Kconfig updates for the ATI GART
o [CPUFREQ] Fix up dumb thinko in powernow-k7 From John Clemens
Dave Olien:
o DAC960 fix for NULL dereference in open()
David Brownell:
o USB: dabusb doesn't claim every ez-usb an21xx device
o add usb_reset_configuration()
o USB: usb hcd-pci suspend/resume updates
o usb hc cleanup-after-death, oops fix
o USB: usb_start_wait_urb() rewrite
David Jeffery:
o ips 4/4: version resync
David Mosberger:
o ia64: Patch by Peter Chubb: Kill _syscallX macros that generate
lots of warnings, in favour of inline syscalls for clone() and
execve(), and direct calling of kernel functions for other system
calls.
o entry.S
o ia64: Make things compile with gcc-pre3.4 and work on the simulator
o Move patch from linux-ia64-2.5 to to-linus-2.5 repository
o ia64: Fixes for the inline-asm cleanup patch so the tree builds and
works again on the simulator (besides the real hw, of course).
o .del-fw-emu.S~94665166d94d93e
o ia64: Reapply lost patch due to bk breakage
o ia64: perfmon update
David S. Miller:
o [IPV6]: Make sure errors propagate properly in {udp,raw} sendmsg
o [IPV4]: Fix setting net.ipv4.conf.all.forwarding via sysctl()
system call
o [SPARC]: Handle switches out of graphics mode properly in sbusfb
drivers
o [SPARC]: Fix typos in leo/cg14 fixes
o [IDE]: Fix alim15x3 build after ATI PCI ID changes
o [IDE]: Use pci_name() in amd74xx driver
o [INPUT]: Use pci_name() in pcips2 driver
o [SCSI]: Use pci_name() in eata_pio.c
o [SPARC64]: Use pci_name() in sparc64 PCI layer
o [SPARC]: Add sys_fadvise64{,_64} syscall entries
o [SPARC]: Fix TLS and thread ID handling
o [SPARC64]: Fix typo in clone changes
o [MM]: Add and use offset_in_page() convenience macro
o [SPARC]: Add missing sys_tgkill syscall entries
o [SPARC]: Add more missing system calls
o [SPARC64]: Fix syscall table alignments
o [SCSI]: In dc395x.c, scsi_release_host() does not return a value
o [TCP]: When socket route changes, do not forget to update
ext2_header_len and sk_route_caps
o [SPARC64]: Fix syscall table base loading assembler
o [SCSI]: Fix bugs in sym2 hotplug conversion
o [IPV6]: Fix some dst cache leaks
o [CRYPTO]: Fix cast{5,6} build after cia_ivsize removal
o [SPARC]: Kill bogus SHELL= lines in Makefiles
o [SPARC64]: Update defconfig
o [SPARC64]: Do not make sparc_{cpu,fpu}_type a NR_CPUS array
o [SPARC64]: Only allocate cpu structs we really need in
topology_init()
o [SPARC64]: In solaris module use sparc64_get_clock_tick() to get
cpu frequency
o [SPARC64]: Kill prom_cpu_nodes, unused
o [SPARC64]: Kill linux_cpus[]/linux_num_cpus, replace with cpu probe
helpers
o [SPARC64]: Turn cpu_data into per-cpu data
o [SPARC64]: Remove unused crap from asm/irq.h
o [SPARC64]: Make cpu_data present even on UP builds
o [SPARC64]: Kill up_clock_tick, use cpu_data()
o [SPARC64]: Always use cpu_data().udelay_val
o [CPUMASK]: Prevent unused variable warnings on uniprocessor
o [SPARC64]: Fix uniprocessor build
o [NET]: Export neigh_changeaddr
o [IPV6]: Fix dangling multicast device references
David Stevens:
o [NET]: Fix IGMPv2/MLDv2 list handling OOPS
David T. Hollis:
o USB: usbnet.c - trailing 'else' that probably breaks net1080
Doug Ledford:
o Add irq and softirq time accounting to the kernel
o Reserve the sys_prctl() numbers for and add the stub for allowing
programs to select whether they use statistical time accounting
Eran Mann:
o [VLAN]: Fix OOPS on module removal
Fran?ois Romieu:
o Clean up missing spin_unlock_irqrestore from rrunner driver
o [IRDA]: style: Separate data from code in irlan_print_filter()
Fruhwirth Clemens:
o Fix cryptoloop ECB mode
o Fix cryptoloop disk corruption under CBC mode
Geert Uytterhoeven:
o Make SELinux security module compile on m68k
Gerd Knorr:
o v4l: remove stale CONFIG_VIDEO_PROC_FS
Greg Kroah-Hartman:
o i2c: fix up "raw" printk() call
o i2c: move w83481d to top of link order due to chip address takeover
ability
o USB: fix usb serial port release problem by untieing it from the
usb_serial structure
o USB: fix up usb-serial drivers now that port[] is an array of
pointers
o PCI: add PCI_DEVICE() macro to make pci_device_id tables easier to
read
o USB: fix usb class device sysfs representation
o I2C: fix up the wording for the pii4x bugfix
o USB: handle overloading of usb-serial functions in a much cleaner
manner
o Driver Core: remove struct device.name as it is not needed
o Remove .name usage from floppy driver
o Remove usage of struct device.name from ide core
o Remove usage of struct device.name from pcmcia layer
o Remove usage of struct device.name from bttv driver
o Remove usage of struct device.name from scsi core
o Driver Core: add warnings if .release functions are not set for
objects
o I2C: add adapter and client name files as the driver core no longer
provides them
o Fix Driver Core fixes Firewire
o PCI: add PCI_DEVICE_CLASS() macro to match PCI_DEVICE() macro
o PCI: remove #include <linux/miscdevice.h> from some pci hotplug
drivers
o PCI: add PCI_NAME_SIZE instead of using DEVICE_NAME_SIZE
o Video: fix broken saa7111.c driver due to i2c structure changes
o FB: fix broken tridentfb.c driver due to device.name change
o PCI: added the pci_pretty_name() macro to pci.h as 2 arches already
had it
Herbert Xu:
o [XFRM_USER]: Add inner family field to all SAs and templates
o [IPSEC]: Use xfrm_rcv for xfrm tunnel packets
o Fix usb interface change in hisax st5481_*
o [IPSEC]: Fix oops when destroying stillborn states
Hideaki Yoshifuji:
o [IPV6]: Fix typo in linux/ipv6.h
o [IPV4]: Fix IPVS build with IP_VS_PROTO_TCP disabled
o [IPV6]: strategy handler for net.ipv6.conf.* forwarding
o [SCTP]: Fix typo in Kconfig
Hirofumi Ogawa:
o thread coredump oops fix
o don't export add_timer
Hollis Blanchard:
o spelling fix
Ingo Molnar:
o More timer race fixes
Ion Badulescu:
o [netdrvr tulip] add pci id for 3com 3CSOHO100B-TX
Ivan Kokshaysky:
o PCI: undo recent pci_setup_bridge() change
James Bottomley:
o cciss scsi: fix use before check of possible null pointer
o Kill highmem_io flag in SCSI
o SCSI: Introduce dma_boundary parameter
o Correct email address in MAINTAINERS list
o qla1280 driver update
o Reintegrate qla1280 fixes
o revert dc395x changes Cset exclude:
[email protected]|ChangeSet|20030802141539|54778
o some left highmem_io instances
o Qla1280 update to 3.23.24
o oops in sd_shutdown
o Add fastfail to SCSI
o ips 1/4: lindent ips.c
o ips 2/4: 2.4 resync
o ips 3/4: use pci_dma APIs and remove GFP abuse
o merge hch/gregkh scsi changes
o remove generic device name field from parisc SCSI devices
o scsi.h uses "u8" which isn't defined
o Fix MCA for driver core update
James Morris:
o [CRYPTO]: Documentation bugfix
Jamie Lenehan:
o dc395x - 1/3 remove-static-eeprom-struct
o dc395x - 2/3 remove-static-adapter-list
o dc395x - 3/3 fix-failures
o dc395x - list handling cleanups
Jamie Lokier:
o Fix protocol bugs with NFS and nanoseconds
o use simple_strtoul for unsigned kernel parameters
o make NFS lockd port numbers assignable at run time
Jan Oravec:
o [NET]: Set NLM_F_MULTI in answer of RTM_GETADDR dump answer
Janice Girouard:
o PCI: testing for probe errors in pci-driver.c
Jaroslav Kysela:
o ALSA added support for rev 50 cards.
o ALSA Fixed 192kHz support
o ALSA added quirk type AC97_TUNE_AD_SHARING.
o ALSA improved the probe/resume function.
o ALSA added use_pm to the kernel boot parameter.
o ALSA Fixed typos (GRP->GPR)
o ALSA fixed typos.
o ALSA rewritten the pm whitelist as a static list.
o ALSA fixed corruption of stream linked list in the interrupt handler.
o ALSA more descriptions for vx drivers.
o ALSA removed buggy copy callback.
o ALSA removed unused functions.
o ALSA hopefully fixed the capture.
o ALSA Removed bob_lock spinlock
o ALSA fix mixed up vendor/device ID's for Asus P4P800
o ALSA fix typos
o ALSA fixed uninitialized spin_lock.
o ALSA fixed missing spin_lock_init().
o ALSA register dump in the proc file.
o ALSA fixed the wrong order of object destruction
o ALSA fix by James Courtier-Dutton <[email protected]>
o ALSA Fixed open for O_RDWR when capture is not available
o ALSA Synced USB audio driver with the latest 2.6 code
o ALSA update
Javier Achirica:
o [wireless airo] Turns on spy code in wireless extensions v16
o [wireless airo] Fix PCI unregister code
Jean Delvare:
o i2c: user/kernel bug and memory leak in i2c-dev
Jeff Garzik:
o [netdrvr] add ethtool_ops to struct net_device, and associated
infrastructure
o [netdrvr tg3] convert to using ethtool_ops
o [netdrvr] add SET_ETHTOOL_OPS back-compat hook
o [hw_random] update documentation to reflect reality
o 2.6: fix X86_VENDOR_ID offset in head.S
o [netdrvr] clean up driver object name removal breakage
o [arcnet com20020] check_region removal, ->name removal breakage fix
o [arcnet com20020] misc fixes
o [arcnet com90io] replace check_region with temporary
request_region, in probe phase.
o [netdrvr] add sis190 gigabit ethernet driver (note: needs work)
o [netdrvr sis190] Lindent sis190. zero code changes
o [netdrvr sis190] manually clean up formatting a bit more
o [netdrvr sis190] allocate RX/TX descriptors using PCI DMA API
o add missing export-symbol lines for ethtool_ops
o another ethtool_ops quickie
o [ia32] Note that X86_VENDOR_ID offset in head.S is dependent
o [netdrvr 8139too] add adapter to supported list, in docs
o [netdrvr de2104x] fix Kconfig help text to reflect reality
o fix ioapic build breakage
o remove mount_root_failed_msg()
Jeroen Vreeken:
o [NETROM]: Fix sysctl initializers
o [NETROM]: Expire sockets faster on close
o [NETROM]: Free buffers in write queue on socket destroy
o [NETROM]: Reserve space in socket header for AX25 header
o [NETROM]: Lock sockets while doing protocol processing
o [NETROM]: Better control over the AX25 devices
o [NETROM]: Use hlist for the routing table information
o [AX25]: Fix ax25_cb locking
o [AX25]: Use ->hard_header_len instead of some predicted worse case
o [AX25]: Fix list usage and list locking in ax25_iface.c
o [NETROM]: Update wrt. ax25_cb refcounting changes
Jes Sorensen:
o qla3.23.34
Jesse Barnes:
o ia64: is_headless_node fix
John Levon:
o Document mounting of binfmt_misc
o OProfile: reduce allocations of MSR structs
o OProfile: export kernel pointer size in oprofilefs
o OProfile: add a useful statistic
o OProfile: don't assume MSRs stay the same across CPU models
Kai Germaschewski:
o kbuild: Move generation of vmlinux.lds.s into arch/.../kernel
Kai Makisara:
o SCSI tape fix for oops in read with wrong block size
o Email address update
Karol Kozimor:
o [netdrvr 8139too] fix resume behavior
Kartikey Mahendra Bhatt:
o [CRYPTO]: Add cast5, integration by [email protected]
o [CRYPTO]: Add CAST6 (CAST-256) algorithm
Kazunori Miyazawa:
o [IPV6]: Fix clearing in ah6 input
o [IPV6]: Fix authentication error with TCP, with help from Joy
Latten ([email protected])
Kyle McMartin:
o [IPSEC]: Add support for Twofish and Serpent
Len Brown:
o update acpi= and acpismp= in kernel-parameters.txt
o ACPI from 2.4
o ACPI: this delta should have been included in previous cset
o ACPI -- CONFIG_ACPI_HT
o ACPI -- CONFIG_ACPI_HT -- this delta should have been in previous
cset
o ACPI: merge andy-2.6 into lenb-2.6
o ACPI dmi_scan.c: delete some incomplete code that broke !SMP + APIC
build; add ACPI blacklist comment, move __i386__ out of do_mounts.c
and into create mount_root_failed_msg()
o ACPI now honors "noapic" cmdline option config tweaks from Dominik
Brodowski
Linus Torvalds:
o Mark CLONE_DETACHED as being irrelevant: it must match CLONE_THREAD
o DRI CVS update: document r128 and radeon version numbers
o DRI CVS update: bump i810 driver to 1.4
o Don't add noisy "deprecated" things to PM
o Fix "no_idt" usage in reboot code, noticed by better asm
typechecking in gcc-3.3.1.
o Make <scsi/scsi.h> include the right headers and use the right
types
o Fix incomplete EISA device "name" conversion
o Fix "make clean" in scripts/genksyms
o More EISA/MCA fixups for removal of 'name' member in device struct
o Fix compile warning in AFS by passing around "const" types properly
o Fix up ad1848 OSS driver for PnP 'name' move
o Update scx200 i2c driver for 'name' move
o Fix up riscom8 driver to use work queues instead of task queueing
o Fix up esp driver for task_queue -> work abstraction
o Switch specialix driver from task-queues to work queues
o Fix AGP device ID's - make them static, and fix bad ATI name
confusion
o Update isicom driver to work queue abstraction
o Fix more drivers that broke due to losing the 'name' entry
o Add proper header file for fewer warnings in blkmtd.c
o Add CONFIG_BROKEN (default 'n') to hide known-broken drivers
o Make BLKMTD and MTD_PCMCIA broken. They are. Maybe somebody will
stand up and un-break them.
o Fix broken x86_64 ioport code
o Update x86 defconfig
o The default ARCH_SI_BAND_T should be "int", since that is what
Linux historically has had. Only x86-64 uses anything else, so make
the special case be _there_.
o Update the 32-bit Ninja SCSI driver from YOKOTA Hiroshi
o Update the PCMCIA driver for the NinjaSCSI-3 by YOKOTA Hiroshi
o Update the newly merged Ninja-SCSI PCMCIA driver to recent cleanups
(removal of link release timer and the STALE_CONFIG crud).
o Fix up DIGI driver for work-queue abstraction
o Fix up various small compile warnings in an effort at getting rid
of the simple stuff that hides the serious things.
o Fix video drivers for i2c 'name' move
o Fix jiffy handling: they are "unsigned long"
o Fix irda vlsi_ir.c for PCI device 'name' changes
o Fix smctr.c warning for unused label
o net/wan/sbni.c totally misused "pci_request_region()", thinking it
was the same as the old request_region(). Not so.
o Fix "jiffies" comparison in seeq8005.c: it's an unsigned long
o aacraid: fix "flags" save value
o aha1740: work around 'name' field removal
o ultrastor.c: fix bitmap operation type
o USB serial console: fix compile warning
o NCR5380: don't play games with NCR5380_proc_info() - just mark it
static unconditionally, to allow multiple built-in modules.
o Fix tridentfd for 'name' move, and avoid compile warnings
o The Intel Instruction set manual is wrong on how to test for a
valid SEP bit. The errata has it right: you have to have at least
model 3, stepping 3. Not "model >= 3 or stepping >= 3".
o VT requires INPUT support: make it be automatically included
o Make USB storage select SCSI support automatically, instead
o Linux 2.6.0-test4
Maciej Soltysiak:
o C99 initialisers for sound/oss
Marc Zyngier:
o EISA bus update
Mark M. Hoffman:
o I2C: i2c nforce2.c fixes
Mark W. McClelland:
o USB: ov511 sysfs conversion (1/3)
o USB: ov511 sysfs conversion (2/3)
o USB: ov511 sysfs conversion (3/3)
Matt Wilson:
o zap_other_threads() detaches thread group leader
Matthew Natalier:
o [netdrvr 8139cp] fix h/w vlan offload
Matthew Wilcox:
o Start cleaning up sym2
o Convert sym2 to be hotplug-capable
Michel Daenzer:
o [NET]: Make sure interval member of struct tc_estimator is signed
Mikael Pettersson:
o Disable APIC on reboot
Mikael Ylikoski:
o [IPSEC]: Fix oops using null ciper in CBC mode
Mike Anderson:
o recovered error forward port
o scsi host / scsi device ref counting take 2 [1/3]
o scsi host / scsi device ref counting take 2 [2/3]
o scsi host / scsi device ref counting take 2 [3/3]
o Correct removal of procfs host enteries [1/2]
o Correct removal of procfs host enteries [2/2]
Mike Christie:
o fixes compile errors in cpqfc driver
Mitchell Blank Jr.:
o [NET]: Small loopback.c cleanups
Muli Ben-Yehuda:
o fix trident.c lockup on module load 2.6.0-test2
Nathan Scott:
o [XFS] Fix a logic error allowing pages to marked uptodate when not
all attached buffers were uptodate
o [XFS] Use xfs_dev_t size rather than dev_t size in xfs_attr_fork
initialization
o [XFS] Fix up the default ACL inherit case, in the presence of
failure during applying the default ACL (eg. from ENOSPC)
o [XFS] Fix a race condition in async pagebuf IO completion, by
moving blk queue manipulation down into pagebuf.
Neil Brown:
o Disable buggy raid5 handling of read-ahead
o Fix bug in sunrpc/server code
o kNFSd: Make sure nothing happens to a dead rpc/tcp socket
o kNFSd: Make sure nfsd replies from the address the request was sent
to
o kNFSd: Release udp socket for next nfs request to arrive earlier
Oliver Neukum:
o USB: ttusb_dec.c: another case of GFP_KERNEL in interrupt
o USB: return to old timeout handling
o USB: correct error handling in usb_driver_claim_interface()
o USB: correct error handling in usb_driver_claim_interface() -
comment
o USB: error check for claiming second interface in usbnet
o USB: genelink_tx_fixup fails to check for memory allocation failure
Patrick Mansfield:
o add sysfs attributes to scan and delete scsi_devices
Patrick Mochel:
o [power] Fix compilation error when CONFIG_PREEMPT=y
o [power] Fix some incorrect comments
o [power] Fix #ifdef in ACPI sleep code
o [power] Move pm.c and mark functions depcrecated
o [power] Split device PM functions
o [sysfs] Add attribute groups
o [power] Add PM info structure to struct device and PM registration
functions
o [power] Improve device suspend/resume sequence
o [power] Get rid of internal spinlock
o [power] Add PM usage counting
o [sysfs] Convert struct attribute_group to take array of pointers
o [sysfs] Mark some arguments const
o [driver model] Change class functions to const arguments
o [driver model] Check for probing errors in drivers/base/bus.c
o [power] Add hooks for runtime device power control
o [power] Begin to add sysfs files for controlling device power
states
o [power] Check device_suspend() return value in swsusp
o [power] Minor cleanups
o [swsusp] Remove two panic()s
o [power] Various swsusp cleanups
o [sysfs] Don't add ->d_fsdata until dentrys are created
o [power] Make sure CONFIG_ACPI_SLEEP depends on CONFIG_PM
o [driver model] Allow per-device shutdown or suspend on driver
detach
o [driver model] Remove 'power' file in favor of 'power' directory
o [power] Register PM subsystem, and create power/ directory in sysfs
o [power] Make sure we explicitly initialize pm_users
o [power] Improve suspend functions
o [power] Improve suspend sequence
o [acpi] Fix broken Kconfig dependency
o [acpi] Remove procfs sleep interface
o [acpi] Convert sleep code to new PM infrastructure
o [power] Make sure we only have one CPU running before suspending
o [acpi] Update comments, copyright, and license in
drivers/acpi/sleep/main.c
o [power] Add flag to control suspend-to-disk behavior
o [acpi] Always handle requests for entering S4, not just for S4bios
o [power] Add initial support for suspend-to-disk
o [acpi] Fix compilation when CONFIG_SMP=n
o [x86] Kill warning in dmi_scan.c
o [power] Adapt swsusp to new PM core. Clean up heavily
o [power] Further swsusp cleanups
o [power] Update device handling
o [power] Move suspend()/resume() methods
o [power] Update PCI to set PM methods in bus_type
o [power] Update IDE to set suspend/resume methods in bus_type
o [acpi] Fix HT Kconfig option one last time
o [power] Update documentation
o [power] Fixup device suspend/resume function names
o [power] Make sure MTRR uses right methods in sysdev_driver
o [dmi] Ugh, fixup broken merge once and for all
o [power] Make swsusp-only mm functions available when CONFIG_PM=y
o [acpi] Make a dummy mp_congig_ioapic_for_sci() function
o [power] Fix locking in device_{suspend,resume}
o [power] Update documentation
o [power] Fix typo
o [apm] Fix calls to device_{suspend,resume}
o [cpufreq] Update resume method
Paul Mackerras:
o [PPP]: Fix two bugs wrt. compression/decompression
o PPC32: Fix compile error on SMP - asm-ppc/smp.h needs
linux/threads.h
Peter Chubb:
o ia64: Kill warnings in sys_ia32.c
Petr Vandrovec:
o Recent i2c changes broke matroxfb
Randy Dunlap:
o [NET]: Fixing kfree() in SLIP driver
o janitor: scsi/gdth error handling
o janitor: scsi/qlogicfc error handling
o janitor: scsi ioctl error handling
o janitor: use -Evalues in cpufreq/speedstep
o janitor: [sound] don't init statics to 0
o janitor: remove bogus locking
o janitor: ad1816: don't init statics to 0
o janitor: ite8172: don't init statics to 0
o janitor: use pci_name in emu10k1
o janitor: i810_audio: balance pci_alloc/free_consistent
o janitor: es1370: pci_alloc_consistent error handling
o janitor: input cleanups
o janitor: input/evdev fix copy_user fault
o janitor: handle locking in joydump same as in tmdc
o janitor: add static/exit to some modules
o janitor: audit RTC
o janitor: dvb: return register_chrdev value
o janitor: floppy: use register_blkdev return value
o janitor: use request_module()
o ppa needs to scsi_unregister(host)
o [netdrvr hydra] janitor cleanups
Richard Henderson:
o [ALPHA] Disable some printks in bootp
o [ALPHA] Make sure the bridge COMMAND register is correctly set
after assigning resources.
o [ALPHA] Fix whitespace
o [ALPHA] Tidy debugging of pci resources
o [ALPHA] Corrected testing for peer PCI bus root
o [ALPHA] Forward port SRM restore code from 2.4
o [ALPHA] Convert DEBUG_MCHECK define to runtime variable
o [ALPHA] Fix stxncpy zapping bytes outside the string
o [EISA] Update for moving "name" out of struct device
o [ALPHA] Update for "name" out of struct device
Rob Landley:
o [docbook] Fix kernel-api reference to kernel/power/pm.c
Rob Radez:
o [SPARC64]: Delete fop->read stub in riowatchdog driver
Robert Olsson:
o [NET]: Make pktgen depend on procfs
Ronald Bultje:
o Big zoran driver update
Russell King:
o [ARM] Add ARMv6 definitions
o [ARM] Add ARMv6 MMU context handling
o [ARM] Add ARMv6 TLB handling
o [ARM] Add ARMv6 memory type table initialisation tweaks
o Make modules work on ARM
o [ARM] Remove struct device .name usage
o [ARM] Fix cpu-sa1110.c gcc3 build error (multi-line asm statement)
o [ARM] Add Integrator IM/PD-1 module support for Integrator PP/2
o Fix Acorn Eesox partition handling build
o [ARM] Remove redundant CONFIG_DEBUG_INFO
o [ARM] Add missing show_stack()
o [ARM] Add missing IM-PD1 header file
Rusty Lynch:
o I2C: bugfix for initialization bug in adm1021 driver
Rusty Russell:
o [NETFILTER]: Fix masquerade routing check
o /proc/kallsyms problem
Sam Ravnborg:
o Move config tasks to kconfig/Makefile
o fix make xconfig
Simon Evans:
o blkmtd for 2.6
Simon Kelley:
o [wireless atmel] minor updates
Stephen Hemminger:
o [NET]: Add unlikely tag to skb_pull()
o [TUN]: Driver not cleaning up on module remove
o [NET]: Fix tun driver to use private linked lists
o [NET]: Update bpqether for 2.6
o [NET]: Add missing rcu_read_lock to bpqether
o [NET]: Make lapbether work on 2.6.0-test3
o [NETROM]: Make lists and locks static since they are only used in
one file
o [NETROM]: Convert to alloc_netdev()
o [NETROM]: Convert /proc interface to seq_file
o [NETROM]: Fix use after free in socket close
o [NET]: Convert YAM driver to dynamic net_device
o [NET]: Convert YAM driver to seq_file
o [NET]: ibmtr - get rid of MOD_INC/DEC
o [NET]: Network device renaming sysfs fix
o [IPV6]: Set owner on /proc/net/rt6_stats
o [IPV6]: Fix build with CONFIG_XFRM disabled
o [NET]: net-sysfs misc fixes
o [NET]: net-sysfs - use attribute group instead of kobject for
statistics
o [NET]: Move code inline if short and used once
o [NET]: Add wireless statistics to sysfs
o [IRDA]: Get rid of useless hashbin in irtty
o [IRDA]: Fix irtty line disc and module semantics
o [IRDA]: irda_device_setup should match ether_setup
o [IRDA]: irlap_open should take const string
o [IRDA]: irlap hashbin can be private
o Make z8530.c build on 2.6
o [NET]: free_netdev - free network device on last class_device_usage
o [NET]: free_netdev - update documentation
o [NET]: free_netdev - drivers/net/* changes
o [NET]: free_netdev - tokenring changes
o [NET]: free_netdev - pcmcia drivers
o [NET]: free_netdev - misc drivers
o [NET]: free_netdev - net/* drivers
o [NET]: free_netdev - destructors
o [NET]: free_netdev - fix leaky drivers
o [NET]: free_netdev - define HAVE_FREE_NETDEV in linux/netdevice.h
o [NET]: Document ->stop() method netdevice semantics
o [NET]: Kill unused first argument in dev_get_idx()
o [IRDA]: Kill old irtty driver, as suggested by Jean and Jeff
o [NET]: update STRIP driver
o [IRDA]: ircomm - set owner get rid of MOD_INC/MOD_DEC
o [IRDA]: Set owner field on /proc/net/irda sub entries
o [IRDA]: Remove unused function prototype in irda_device.c
o [IRDA]: Remove hashbin from irlan
o [IRDA]: Convert irlan to use alloc_netdev()
o [IRDA]: Remove duplicate of irlan_state
o [IRDA]: Convert irlan to seq_file interface
o [NET]: Convert 802/tr to seq_file
o [TOKENRING]: Get rid of egregious typedef
o [TOKENRING]: spin_lock consistency
o [TOKENRING]: mcast_addr need not be on stack
o [TOKENRING]: better hash function
o [TOKENRING]: fix the seq_file next operation
o [TOKENRING]: expire timer improvements
Stephen Lord:
o [XFS] get version 1 directories back into action
o [XFS] clean up the flush logic some more, make the inode flush path
less lossy since we now depend on it. Add a sync_fs callout which
waits for flush to be done.
o [XFS] fix 64bit build
o [XFS] Add versioning to the on disk inode which we increment on
each flush call. This is used during recovery to avoid replaying an
o [XFS] use the 2.5 version of the arguments on sync_fs
o [XFS] remove an impossible code path from mkdir and link paths,
spotted by Al Viro.
Steve French:
o add missing cifs quota support part 1
o blocksize getting overwritten in construct dentry
o Fix rename open file to better match standard unix semantics
o fix rename of open files
o fix incorrect length in rename by file handle frame
o TotalDataCount field not getting set properly on the transact2
SetFileInfo rename network operation
o fix white space
o retry socket write on EAGAIN. Fix oops in write when tcp session
dead
o remove spurious logging of message on "create if file does not
exist" case (without O_EXCL) when file exists
o Add missing CIFS VFS entry to maintainers list
Suresh B. Siddha:
o ia64: cleanup inline assembly
Thomas Molina:
o Re: Linux 2.6.0-test3: logo patch
Tom Rini:
o I2C: Fix for i2c-piix4 with on some boards
o PPC32: Restrict when we enable IBM405_ERR{77,51}
Tommi Virtanen:
o [NET]: Flush hw header caches on NETDEV_CHANGEADDR events
Trond Myklebust:
o Support dentry revalidation under open(".")
o Various RPC client fixes
o If an RPC request has to be resent due to a timeout, it turns out
that call_encode() may cause rq_rcv_buf to be reset despite the
fact that a reply might be delivered at any moment by a softirq.
o Back out some congestion control changes that were causing trouble,
among other things, for the "soft" mount option.
o Increase the minimum RTO timer value to 1/10 second. This is more
in line with what is done for TCP.
o A request cannot be used as part of the RTO estimation if it gets
resent since you don't know whether the server is replying to the
first or the second transmission. However we're currently setting
the cutoff point to be the timeout of the first transmission.
o Fix a problem whereby READDIRPLUS was causing lookups to result in
ESTALE errors.
o Fix problem with open(O_EXCL) not creating hashed dentries
o Fix compiler warning about using a wrong type as the argument for
nfsroot_mount().
Ville Nuorvala:
o [IPV6]: Fix bugs in ip6ip6_tnl_xmit()
o [IPV6]: Fix ip6_dst_lookup() route corruption
o [IPV6]: Fix leaks of rt6_cow()d routes in route.c
o [IPV6]: Fix tunnel encap limit handling as per RFC2473
o [IPV6]: Fix target address for (proxy/anycast) NA
o [IPV6]: Protect proxied addresses against DAD
Wensong Zhang:
o [IPV4] IPVS: fix the dependence of IP_VS_FTP in Kconfig
William Lee Irwin III:
o Fix APIC ID handling
Wim Van Sebroeck:
o [WATCHDOG] sbc60xxwdt.c patch
o [WATCHDOG] sbc60xxwdt patch2
o [WATCHDOG] sbc60xxwdt patch3
o [WATCHDOG] sbc60xxwdt patch4
o [WATCHDOG] sbc60xxwdt.c patch5
o [WATCHDOG] advantechwdt.c patch2
o [WATCHDOG] w83877f_wdt patch
o [WATCHDOG] w83877f_wdt.c patch2
o [WATCHDOG] w83877f_wdt.c patch3 (add timeout features)
o [WATCHDOG] sbc60xxwdt.c patch6
o [WATCHDOG] sc520_wdt.c patch
o [WATCHDOG] sc520_wdt.c patch2
o [WATCHDOG] sc520_wdt.c patch3
o [WATCHDOG] alim7101_wdt.c patch
o [WATCHDOG] alim7101_wdt.c patch2
o [WATCHDOG] alim7101_wdt.c patch3
Yoshinori Sato:
o h8300 support fix (1/2)
o h8300 support fix (2/2)
In both 2.4 and in 2.6, error handling for bad cdrom media is
wrong. And it is my fault I'm afraid, since I botched an earlier
fix for the problem by putting the fix in the wrong spot.
My kids have a "Jumpstart Toddlers" cd they have long since
completely killed, which makes a great test disc. Without this
fix, the best time projection I can get for completing a dd type
sector copy is about 2 years... Most of that is spent thrashing
about in kernel space trying to re-read sectors we already know
are not correctable.... After the fix, I was able to rip a copy
the CD (or rather muddle through it getting lots of EIO errors)
in about 15 minutes.
Attached is the fix for 2.6.x,
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
--- linux-2.6.0-test3/drivers/ide/ide-cd.c.orig 2003-08-22 19:04:36.000000000 -0600
+++ linux-2.6.0-test3/drivers/ide/ide-cd.c 2003-08-22 19:04:49.000000000 -0600
@@ -794,16 +794,16 @@
request or data protect error.*/
ide_dump_status (drive, "command error", stat);
do_end_request = 1;
- } else if ((err & ~ABRT_ERR) != 0) {
- /* Go to the default handler
- for other errors. */
- DRIVER(drive)->error(drive, "cdrom_decode_status",stat);
- return 1;
} else if (sense_key == MEDIUM_ERROR) {
/* No point in re-trying a zillion times on a bad
* sector... If we got here the error is not correctable */
ide_dump_status (drive, "media error (bad sector)", stat);
do_end_request = 1;
+ } else if ((err & ~ABRT_ERR) != 0) {
+ /* Go to the default handler
+ for other errors. */
+ DRIVER(drive)->error(drive, "cdrom_decode_status",stat);
+ return 1;
} else if ((++rq->errors > ERROR_MAX)) {
/* We've racked up too many retries. Abort. */
do_end_request = 1;
Getting this compile problem during modules_install, will paste in .config
after the depmod errors:
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.0-test4; fi
depmod: *** Unresolved symbols in
/lib/modules/2.6.0-test4/kernel/drivers/block/cryptoloop.ko
depmod: loop_register_transfer
depmod: loop_unregister_transfer
depmod: *** Unresolved symbols in
/lib/modules/2.6.0-test4/kernel/sound/oss/ac97_plugin_ad1980.ko
depmod: ac97_unregister_driver
depmod: ac97_register_driver
depmod: *** Unresolved symbols in
/lib/modules/2.6.0-test4/kernel/sound/oss/ad1889.ko
depmod: ac97_probe_codec
depmod: ac97_alloc_codec
depmod: ac97_read_proc
depmod: ac97_release_codec
depmod: *** Unresolved symbols in
/lib/modules/2.6.0-test4/kernel/sound/oss/ali5455.ko
depmod: ac97_probe_codec
depmod: ac97_alloc_codec
depmod: ac97_set_dac_rate
depmod: ac97_set_adc_rate
depmod: ac97_release_codec
depmod: *** Unresolved symbols in
/lib/modules/2.6.0-test4/kernel/sound/oss/forte.ko
depmod: ac97_probe_codec
depmod: ac97_alloc_codec
depmod: ac97_read_proc
depmod: ac97_release_codec
.config:
#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_BROKEN is not set
#
# General setup
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y
#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
CONFIG_M586MMX=y
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_PPRO_FENCE=y
CONFIG_X86_F00F_BUG=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_EDD=y
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y
#
# Power management options (ACPI, APM)
#
# CONFIG_PM is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI_HT=y
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
# CONFIG_HOTPLUG is not set
#
# Executable file formats
#
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y
#
# Generic Driver Options
#
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
# CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
#
# Plug and Play support
#
CONFIG_PNP=y
CONFIG_PNP_DEBUG=y
#
# Protocols
#
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set
#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_SIZE=7777
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_LBD=y
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_IDEDISK_STROKE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=y
CONFIG_IDE_TASK_IOCTL=y
CONFIG_IDE_TASKFILE_IO=y
#
# IDE chipset support/bugfixes
#
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDE_TCQ is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_IDEDMA_PCI_WIP is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_DMA_NONPCI is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_SCSI=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_REPORT_LUNS=y
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=64
CONFIG_AIC7XXX_RESET_DELAY_MS=2000
# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_SYM53C8XX is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SYM53C416 is not set
CONFIG_SCSI_DC395x=m
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
#
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
CONFIG_INET_IPCOMP=m
# CONFIG_IPV6 is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_NETFILTER is not set
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IPV6_SCTP__=y
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_LLC is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
# CONFIG_NET_SB1000 is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
CONFIG_EEPRO100=y
# CONFIG_EEPRO100_PIO is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_NET_POCKET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PLIP=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPPOE=y
CONFIG_SLIP=y
CONFIG_SLIP_COMPRESSED=y
# CONFIG_SLIP_SMART is not set
# CONFIG_SLIP_MODE_SLIP6 is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring devices (depends on LLC=y)
#
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# ISDN subsystem
#
# CONFIG_ISDN_BOOL is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
CONFIG_SERIO_PCIPS2=m
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
CONFIG_SERIAL_8250_ACPI=y
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_PRINTER=y
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# I2C Hardware Sensors Mainboard support
#
#
# I2C Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_QIC02_TAPE is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=y
# CONFIG_RTC is not set
# CONFIG_GEN_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=y
CONFIG_AGP_ALI=y
CONFIG_AGP_ATI=y
CONFIG_AGP_AMD=y
# CONFIG_AGP_AMD_8151 is not set
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
CONFIG_AGP_SIS=y
CONFIG_AGP_SWORKS=y
CONFIG_AGP_VIA=y
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HANGCHECK_TIMER=m
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=y
CONFIG_REISERFS_CHECK=y
CONFIG_REISERFS_PROC_INFO=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_QUOTA=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=y
CONFIG_NTFS_DEBUG=y
# CONFIG_NTFS_RW is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
CONFIG_UFS_FS=y
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set
CONFIG_NFSD=y
# CONFIG_NFSD_V3 is not set
# CONFIG_NFSD_TCP is not set
CONFIG_LOCKD=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_GSS is not set
CONFIG_SMB_FS=y
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
CONFIG_CIFS=y
CONFIG_NCP_FS=y
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_MINIX_SUBPARTITION is not set
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
CONFIG_SMB_NLS=y
CONFIG_NLS=y
#
# Native Language Support
#
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=m
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
#
# Graphics support
#
# CONFIG_FB is not set
# CONFIG_VIDEO_SELECT is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
#
# ISA devices
#
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_WAVEFRONT is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
#
# PCI devices
#
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
CONFIG_SND_INTEL8X0=y
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VX222 is not set
#
# ALSA USB devices
#
# CONFIG_SND_USB_AUDIO is not set
#
# Open Sound System
#
CONFIG_SOUND_PRIME=y
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1371 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_VIA82CXXX is not set
CONFIG_SOUND_OSS=y
# CONFIG_SOUND_TRACEINIT is not set
# CONFIG_SOUND_DMAP is not set
CONFIG_SOUND_AD1816=y
CONFIG_SOUND_AD1889=m
# CONFIG_SOUND_SGALAXY is not set
# CONFIG_SOUND_ADLIB is not set
# CONFIG_SOUND_ACI_MIXER is not set
# CONFIG_SOUND_CS4232 is not set
# CONFIG_SOUND_SSCAPE is not set
# CONFIG_SOUND_GUS is not set
# CONFIG_SOUND_VMIDI is not set
# CONFIG_SOUND_TRIX is not set
# CONFIG_SOUND_MSS is not set
# CONFIG_SOUND_MPU401 is not set
# CONFIG_SOUND_NM256 is not set
# CONFIG_SOUND_MAD16 is not set
# CONFIG_SOUND_PAS is not set
# CONFIG_SOUND_PSS is not set
# CONFIG_SOUND_SB is not set
# CONFIG_SOUND_AWE32_SYNTH is not set
# CONFIG_SOUND_WAVEFRONT is not set
# CONFIG_SOUND_MAUI is not set
# CONFIG_SOUND_YM3812 is not set
# CONFIG_SOUND_OPL3SA1 is not set
# CONFIG_SOUND_OPL3SA2 is not set
# CONFIG_SOUND_YMFPCI is not set
# CONFIG_SOUND_UART6850 is not set
# CONFIG_SOUND_AEDSP16 is not set
CONFIG_SOUND_ALI5455=m
CONFIG_SOUND_FORTE=m
CONFIG_SOUND_AD1980=m
#
# USB support
#
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
# CONFIG_USB_DYNAMIC_MINORS is not set
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=y
#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
#
# USB Human Interface Devices (HID)
#
# CONFIG_USB_HID is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_XPAD is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_SCANNER is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
CONFIG_USB_AX8817X=m
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_TIGL is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_GADGET is not set
#
# Bluetooth support
#
# CONFIG_BT is not set
#
# Profiling support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
#
# Kernel hacking
#
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_FRAME_POINTER=y
#
# Security options
#
CONFIG_SECURITY=y
# CONFIG_SECURITY_NETWORK is not set
CONFIG_SECURITY_CAPABILITIES=y
CONFIG_SECURITY_ROOTPLUG=y
# CONFIG_SECURITY_SELINUX is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_TEST=m
#
# Library routines
#
CONFIG_CRC32=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_X86_BIOS_REBOOT=y
--
/"\ / For information and quotes, email us at
\ / ASCII RIBBON CAMPAIGN / [email protected]
X AGAINST HTML MAIL / http://www.lrsehosting.com/
/ \ AND POSTINGS / [email protected]
-------------------------------------------------------------------------
-----Original Message-----
From: [email protected]
[mailto:[email protected]]On Behalf Of Linus Torvalds
Sent: Friday, August 22, 2003 7:49 PM
To: Kernel Mailing List
Subject: Linux 2.6.0-test4
There should be a lot of compile fixes here, along with updates for ia64,
and the (painful) move of the 'name' entry out of the "struct device" that
helps avoid unnecessary memory waste.
> On Sat, Aug 23, 2003 at 07:26:45AM -0500, [email protected] wrote:
>> Getting this compile problem during modules_install, will paste in
>> .config after the depmod errors:
>
> Looks like you need new modutils...
>
> Jeff
I just updated them, when test3 came out. Was there another release?
-----------------------------------------
This email was sent using SquirrelMail.
"Webmail for nuts!"
http://squirrelmail.org/
On Sat, Aug 23, 2003 at 07:26:45AM -0500, [email protected] wrote:
> Getting this compile problem during modules_install, will paste in .config
> after the depmod errors:
Looks like you need new modutils...
Jeff
On Fri, 22 Aug 2003, Linus Torvalds wrote:
> Javier Achirica:
> o [wireless airo] Fix PCI unregister code
This patch causes a regression: if CONFIG_PCI is not set, it doesn't compile
anymore. Here's a fix. I also killed a dead variable and its corresponding
warning:
--- linux-2.6.0-test4/drivers/net/wireless/airo.c Sun Aug 24 09:49:30 2003
+++ linux-m68k-2.6.0-test4/drivers/net/wireless/airo.c Sun Aug 24 13:03:56 2003
@@ -4156,7 +4156,7 @@
static int __init airo_init_module( void )
{
- int i, rc = 0, have_isa_dev = 0;
+ int i, have_isa_dev = 0;
airo_entry = create_proc_entry("aironet",
S_IFDIR | airo_perm,
@@ -4174,7 +4174,7 @@
#ifdef CONFIG_PCI
printk( KERN_INFO "airo: Probing for PCI adapters\n" );
- rc = pci_module_init(&airo_driver);
+ pci_module_init(&airo_driver);
printk( KERN_INFO "airo: Finished probing for PCI adapters\n" );
#endif
@@ -4197,8 +4197,11 @@
}
remove_proc_entry("aironet", proc_root_driver);
- if (is_pci)
+ if (is_pci) {
+#ifdef CONFIG_PCI
pci_unregister_driver(&airo_driver);
+#endif
+ }
}
#ifdef WIRELESS_EXT
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Fri, 22 Aug 2003, Linus Torvalds wrote:
> Bartlomiej Zolnierkiewicz:
> o ide: disk geometry/capacity cleanups
> o ide: always store disk capacity in u64
You forgot to update the Macintosh IDE driver:
--- linux-2.6.0-test4/drivers/ide/legacy/macide.c Tue Feb 25 10:21:12 2003
+++ linux-m68k-2.6.0-test4/drivers/ide/legacy/macide.c Sun Aug 24 12:37:06 2003
@@ -126,7 +126,7 @@
/* probing the drive which freezes a 190. */
ide_drive_t *drive = &ide_hwifs[index].drives[0];
- drive->capacity = drive->cyl*drive->head*drive->sect;
+ drive->capacity64 = drive->cyl*drive->head*drive->sect;
#ifdef CONFIG_BLK_DEV_MAC_MEDIABAY
request_irq(IRQ_BABOON_2, macide_mediabay_interrupt,
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Sun, Aug 24, 2003 at 01:51:20PM +0200, Geert Uytterhoeven wrote:
> On Fri, 22 Aug 2003, Linus Torvalds wrote:
> > Bartlomiej Zolnierkiewicz:
> > o ide: disk geometry/capacity cleanups
> > o ide: always store disk capacity in u64
>
> You forgot to update the Macintosh IDE driver:
Btw, what's the state of mac68k (and the other m68k subarches) on
2.6?
On Fri, 22 Aug 2003, Linus Torvalds wrote:
> Kai Germaschewski:
> o kbuild: Move generation of vmlinux.lds.s into arch/.../kernel
You forgot to move two files:
mv arch/m68k/vmlinux-std.lds arch/m68k/kernel
mv arch/m68k/vmlinux-sun3.lds arch/m68k/kernel
Or apply this patch:
--- linux-2.6.0-test4/arch/m68k/vmlinux-std.lds Sun Jun 15 09:37:32 2003
+++ linux-m68k-2.6.0-test4/arch/m68k/vmlinux-std.lds Tue Jun 24 14:30:53 2003
@@ -1,97 +0,0 @@
-/* ld script to make m68k Linux kernel */
-
-#include <asm-generic/vmlinux.lds.h>
-
-OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
-OUTPUT_ARCH(m68k)
-ENTRY(_start)
-jiffies = jiffies_64 + 4;
-SECTIONS
-{
- . = 0x1000;
- _text = .; /* Text and read-only data */
- .text : {
- *(.text)
- *(.fixup)
- *(.gnu.warning)
- } = 0x4e75
-
- . = ALIGN(16); /* Exception table */
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- RODATA
-
- _etext = .; /* End of text section */
-
- .data : { /* Data */
- *(.data)
- CONSTRUCTORS
- }
-
- .bss : { *(.bss) } /* BSS */
-
- . = ALIGN(16);
- .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
- _edata = .; /* End of data section */
-
- /* will be freed after init */
- . = ALIGN(4096); /* Init code and data */
- __init_begin = .;
- .init.text : {
- _sinittext = .;
- *(.init.text)
- _einittext = .;
- }
- .init.data : { *(.init.data) }
- . = ALIGN(16);
- __setup_start = .;
- .init.setup : { *(.init.setup) }
- __setup_end = .;
- __start___param = .;
- __param : { *(__param) }
- __stop___param = .;
- __initcall_start = .;
- .initcall.init : {
- *(.initcall1.init)
- *(.initcall2.init)
- *(.initcall3.init)
- *(.initcall4.init)
- *(.initcall5.init)
- *(.initcall6.init)
- *(.initcall7.init)
- }
- __initcall_end = .;
- __con_initcall_start = .;
- .con_initcall.init : { *(.con_initcall.init) }
- __con_initcall_end = .;
- SECURITY_INIT
- . = ALIGN(8192);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
- __initramfs_end = .;
- . = ALIGN(8192);
- __init_end = .;
-
- .data.init_task : { *(.data.init_task) } /* The initial task and kernel stack */
-
- _end = . ;
-
- /* Sections to be discarded */
- /DISCARD/ : {
- *(.exit.text)
- *(.exit.data)
- *(.exitcall.exit)
- }
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
-}
--- linux-2.6.0-test4/arch/m68k/vmlinux-sun3.lds Sun Jun 15 09:37:32 2003
+++ linux-m68k-2.6.0-test4/arch/m68k/vmlinux-sun3.lds Tue Jun 24 14:30:53 2003
@@ -1,97 +0,0 @@
-/* ld script to make m68k Linux kernel */
-
-#include <asm-generic/vmlinux.lds.h>
-
-OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
-OUTPUT_ARCH(m68k)
-ENTRY(_start)
-jiffies = jiffies_64 + 4;
-SECTIONS
-{
- . = 0xE004000;
- _text = .; /* Text and read-only data */
- .text : {
- *(.head)
- *(.text)
- *(.fixup)
- *(.gnu.warning)
- } = 0x4e75
- RODATA
-
- _etext = .; /* End of text section */
-
- .data : { /* Data */
- *(.data)
- CONSTRUCTORS
- . = ALIGN(16); /* Exception table */
- __start___ex_table = .;
- *(__ex_table)
- __stop___ex_table = .;
- }
- /* End of data goes *here* so that freeing init code works properly. */
- _edata = .;
-
- /* will be freed after init */
- . = ALIGN(8192); /* Init code and data */
-__init_begin = .;
- .init.text : {
- _sinittext = .;
- *(.init.text)
- _einittext = .;
- }
- .init.data : { *(.init.data) }
- . = ALIGN(16);
- __setup_start = .;
- .init.setup : { *(.init.setup) }
- __setup_end = .;
- __start___param = .;
- __param : { *(__param) }
- __stop___param = .;
- __initcall_start = .;
- .initcall.init : {
- *(.initcall1.init)
- *(.initcall2.init)
- *(.initcall3.init)
- *(.initcall4.init)
- *(.initcall5.init)
- *(.initcall6.init)
- *(.initcall7.init)
- }
- __initcall_end = .;
- __con_initcall_start = .;
- .con_initcall.init : { *(.con_initcall.init) }
- __con_initcall_end = .;
- SECURITY_INIT
- . = ALIGN(8192);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
- __initramfs_end = .;
- . = ALIGN(8192);
- __init_end = .;
- .init.task : { *(init_task) }
-
-
- .bss : { *(.bss) } /* BSS */
-
- _end = . ;
-
- /* Sections to be discarded */
- /DISCARD/ : {
- *(.exit.text)
- *(.exit.data)
- *(.exitcall.exit)
- }
-
- .crap : {
- /* Stabs debugging sections. */
- *(.stab)
- *(.stabstr)
- *(.stab.excl)
- *(.stab.exclstr)
- *(.stab.index)
- *(.stab.indexstr)
- *(.comment)
- *(.note)
- }
-
-}
--- linux-2.6.0-test4/arch/m68k/kernel/vmlinux-std.lds Tue Jun 24 14:30:53 2003
+++ linux-m68k-2.6.0-test4/arch/m68k/kernel/vmlinux-std.lds Sun Jun 15 10:46:43 2003
@@ -0,0 +1,97 @@
+/* ld script to make m68k Linux kernel */
+
+#include <asm-generic/vmlinux.lds.h>
+
+OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
+OUTPUT_ARCH(m68k)
+ENTRY(_start)
+jiffies = jiffies_64 + 4;
+SECTIONS
+{
+ . = 0x1000;
+ _text = .; /* Text and read-only data */
+ .text : {
+ *(.text)
+ *(.fixup)
+ *(.gnu.warning)
+ } = 0x4e75
+
+ . = ALIGN(16); /* Exception table */
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ RODATA
+
+ _etext = .; /* End of text section */
+
+ .data : { /* Data */
+ *(.data)
+ CONSTRUCTORS
+ }
+
+ .bss : { *(.bss) } /* BSS */
+
+ . = ALIGN(16);
+ .data.cacheline_aligned : { *(.data.cacheline_aligned) }
+
+ _edata = .; /* End of data section */
+
+ /* will be freed after init */
+ . = ALIGN(4096); /* Init code and data */
+ __init_begin = .;
+ .init.text : {
+ _sinittext = .;
+ *(.init.text)
+ _einittext = .;
+ }
+ .init.data : { *(.init.data) }
+ . = ALIGN(16);
+ __setup_start = .;
+ .init.setup : { *(.init.setup) }
+ __setup_end = .;
+ __start___param = .;
+ __param : { *(__param) }
+ __stop___param = .;
+ __initcall_start = .;
+ .initcall.init : {
+ *(.initcall1.init)
+ *(.initcall2.init)
+ *(.initcall3.init)
+ *(.initcall4.init)
+ *(.initcall5.init)
+ *(.initcall6.init)
+ *(.initcall7.init)
+ }
+ __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
+ SECURITY_INIT
+ . = ALIGN(8192);
+ __initramfs_start = .;
+ .init.ramfs : { *(.init.ramfs) }
+ __initramfs_end = .;
+ . = ALIGN(8192);
+ __init_end = .;
+
+ .data.init_task : { *(.data.init_task) } /* The initial task and kernel stack */
+
+ _end = . ;
+
+ /* Sections to be discarded */
+ /DISCARD/ : {
+ *(.exit.text)
+ *(.exit.data)
+ *(.exitcall.exit)
+ }
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+}
--- linux-2.6.0-test4/arch/m68k/kernel/vmlinux-sun3.lds Tue Jun 24 14:30:53 2003
+++ linux-m68k-2.6.0-test4/arch/m68k/kernel/vmlinux-sun3.lds Sun Jun 15 10:46:43 2003
@@ -0,0 +1,97 @@
+/* ld script to make m68k Linux kernel */
+
+#include <asm-generic/vmlinux.lds.h>
+
+OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
+OUTPUT_ARCH(m68k)
+ENTRY(_start)
+jiffies = jiffies_64 + 4;
+SECTIONS
+{
+ . = 0xE004000;
+ _text = .; /* Text and read-only data */
+ .text : {
+ *(.head)
+ *(.text)
+ *(.fixup)
+ *(.gnu.warning)
+ } = 0x4e75
+ RODATA
+
+ _etext = .; /* End of text section */
+
+ .data : { /* Data */
+ *(.data)
+ CONSTRUCTORS
+ . = ALIGN(16); /* Exception table */
+ __start___ex_table = .;
+ *(__ex_table)
+ __stop___ex_table = .;
+ }
+ /* End of data goes *here* so that freeing init code works properly. */
+ _edata = .;
+
+ /* will be freed after init */
+ . = ALIGN(8192); /* Init code and data */
+__init_begin = .;
+ .init.text : {
+ _sinittext = .;
+ *(.init.text)
+ _einittext = .;
+ }
+ .init.data : { *(.init.data) }
+ . = ALIGN(16);
+ __setup_start = .;
+ .init.setup : { *(.init.setup) }
+ __setup_end = .;
+ __start___param = .;
+ __param : { *(__param) }
+ __stop___param = .;
+ __initcall_start = .;
+ .initcall.init : {
+ *(.initcall1.init)
+ *(.initcall2.init)
+ *(.initcall3.init)
+ *(.initcall4.init)
+ *(.initcall5.init)
+ *(.initcall6.init)
+ *(.initcall7.init)
+ }
+ __initcall_end = .;
+ __con_initcall_start = .;
+ .con_initcall.init : { *(.con_initcall.init) }
+ __con_initcall_end = .;
+ SECURITY_INIT
+ . = ALIGN(8192);
+ __initramfs_start = .;
+ .init.ramfs : { *(.init.ramfs) }
+ __initramfs_end = .;
+ . = ALIGN(8192);
+ __init_end = .;
+ .init.task : { *(init_task) }
+
+
+ .bss : { *(.bss) } /* BSS */
+
+ _end = . ;
+
+ /* Sections to be discarded */
+ /DISCARD/ : {
+ *(.exit.text)
+ *(.exit.data)
+ *(.exitcall.exit)
+ }
+
+ .crap : {
+ /* Stabs debugging sections. */
+ *(.stab)
+ *(.stabstr)
+ *(.stab.excl)
+ *(.stab.exclstr)
+ *(.stab.index)
+ *(.stab.indexstr)
+ *(.comment)
+ *(.note)
+ }
+
+}
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Sun, 24 Aug 2003, Christoph Hellwig wrote:
> On Sun, Aug 24, 2003 at 01:51:20PM +0200, Geert Uytterhoeven wrote:
> > On Fri, 22 Aug 2003, Linus Torvalds wrote:
> > > Bartlomiej Zolnierkiewicz:
> > > o ide: disk geometry/capacity cleanups
> > > o ide: always store disk capacity in u64
> >
> > You forgot to update the Macintosh IDE driver:
>
> Btw, what's the state of mac68k (and the other m68k subarches) on
> 2.6?
Amiga, Sun-3/3x and probably Q40/Q60 are working, except for some SCSI drivers.
Other subarches are in a worse shape.
In general, 2.6.0-test4 on m68k isn't that far from 2.4.22-rc3, except for some
SCSI breakage.
You can check out the status at http://linux-m68k-cvs.apia.dhs.org/~geert/.
The patch pages are usually up-to-date, the feature status pages aren't (e.g.
basic m68k support got fixed a few weeks ago).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Thank you. There's also another small PCI bug. I'll submit a patch to
Jeff.
Javier Achirica
On Sun, 24 Aug 2003, Geert Uytterhoeven wrote:
> On Fri, 22 Aug 2003, Linus Torvalds wrote:
> > Javier Achirica:
> > o [wireless airo] Fix PCI unregister code
>
> This patch causes a regression: if CONFIG_PCI is not set, it doesn't compile
> anymore. Here's a fix. I also killed a dead variable and its corresponding
> warning:
>
> --- linux-2.6.0-test4/drivers/net/wireless/airo.c Sun Aug 24 09:49:30 2003
> +++ linux-m68k-2.6.0-test4/drivers/net/wireless/airo.c Sun Aug 24 13:03:56 2003
> @@ -4156,7 +4156,7 @@
>
> static int __init airo_init_module( void )
> {
> - int i, rc = 0, have_isa_dev = 0;
> + int i, have_isa_dev = 0;
>
> airo_entry = create_proc_entry("aironet",
> S_IFDIR | airo_perm,
> @@ -4174,7 +4174,7 @@
>
> #ifdef CONFIG_PCI
> printk( KERN_INFO "airo: Probing for PCI adapters\n" );
> - rc = pci_module_init(&airo_driver);
> + pci_module_init(&airo_driver);
> printk( KERN_INFO "airo: Finished probing for PCI adapters\n" );
> #endif
>
> @@ -4197,8 +4197,11 @@
> }
> remove_proc_entry("aironet", proc_root_driver);
>
> - if (is_pci)
> + if (is_pci) {
> +#ifdef CONFIG_PCI
> pci_unregister_driver(&airo_driver);
> +#endif
> + }
> }
>
> #ifdef WIRELESS_EXT
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
>
>
>
>
As a follow up to this, I downloaded and installed modutils and module init
tools, the latest versions available on kernel.org, did:
./configure
make all install
And I still get the same error as I was getting before. Is there somewhere
else I'm supposed to be looking, or did I miss a step building modutils and
module init tools?
Scott
--
-----Original Message-----
From: Jeff Garzik [mailto:[email protected]]
Sent: Saturday, August 23, 2003 10:32 AM
To: [email protected]
Cc: 'Linus Torvalds'; 'Kernel Mailing List'
Subject: Re: Linux 2.6.0-test4
On Sat, Aug 23, 2003 at 07:26:45AM -0500, [email protected] wrote:
> Getting this compile problem during modules_install, will paste in .config
> after the depmod errors:
Looks like you need new modutils...
Jeff
On Fri, Aug 22, 2003 at 05:48:56PM -0700, Linus Torvalds wrote:
>...
> Summary of changes from v2.6.0-test3 to v2.6.0-test4
> ============================================
>...
> Jeff Garzik:
>...
> o [netdrvr] add sis190 gigabit ethernet driver (note: needs work)
>...
The following is needed to fix the compilation of sis190 with gcc 2.95:
--- linux-2.6.0-test4-mm1/drivers/net/sis190.c.old 2003-08-25 20:03:04.000000000 +0200
+++ linux-2.6.0-test4-mm1/drivers/net/sis190.c 2003-08-25 20:03:45.000000000 +0200
@@ -536,6 +536,7 @@
static int printed_version = 0;
int i, rc;
u16 reg31;
+ int val;
assert(pdev != NULL);
assert(ent != NULL);
@@ -620,7 +621,7 @@
dev->dev_addr[2], dev->dev_addr[3],
dev->dev_addr[4], dev->dev_addr[5], dev->irq);
- int val = smdio_read(ioaddr, PHY_AUTO_NEGO_REG);
+ val = smdio_read(ioaddr, PHY_AUTO_NEGO_REG);
printk(KERN_INFO "%s: Auto-negotiation Enabled.\n", dev->name);
cu
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
> o [arcnet com90io] replace check_region with temporary
> request_region, in probe phase.
check_region() is deprecated because it is racy.
Replacing it with request_region in probe:
int probe() {
if(!request_region(...))
return 0;
/* probe */
release_region(...);
}
int init() {
request_region(...);
}
only removes 'deprecated' warning. Race remains.
--
vda
On Tuesday 26 August 2003 00:20, insecure wrote:
> > o [arcnet com90io] replace check_region with temporary
> > request_region, in probe phase.
>
> check_region() is deprecated because it is racy.
> Replacing it with request_region in probe:
>
> int probe() {
> if(!request_region(...))
> return 0;
> /* probe */
> release_region(...);
> }
>
> int init() {
> request_region(...);
> }
>
> only removes 'deprecated' warning. Race remains.
Corrected com90io.c patch is below.
--
vda
--- linux-2.6.0-test4/drivers/net/arcnet/com90io.c.orig Sat Aug 23 02:53:52 2003
+++ linux-2.6.0-test4/drivers/net/arcnet/com90io.c Tue Aug 26 00:22:51 2003
@@ -158,7 +158,7 @@
"must specify the base address!\n");
return -ENODEV;
}
- if (!request_region(ioaddr, ARCNET_TOTAL_SIZE, "com90io probe")) {
+ if (!request_region(ioaddr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)")) {
BUGMSG(D_INIT_REASONS, "IO check_region %x-%x failed.\n",
ioaddr, ioaddr + ARCNET_TOTAL_SIZE - 1);
return -ENXIO;
@@ -218,7 +218,6 @@
goto err_out;
}
}
- release_region(ioaddr, ARCNET_TOTAL_SIZE); /* end of probing */
return com90io_found(dev);
err_out:
@@ -237,13 +236,9 @@
/* Reserve the irq */
if (request_irq(dev->irq, &arcnet_interrupt, 0, "arcnet (COM90xx-IO)", dev)) {
+ release_region(dev->base_addr, ARCNET_TOTAL_SIZE);
BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
return -ENODEV;
- }
- /* Reserve the I/O region - guaranteed to work by check_region */
- if (!request_region(dev->base_addr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)")) {
- free_irq(dev->irq, dev);
- return -EBUSY;
}
/* Initialize the rest of the device structure. */
Is it a race if noone cares? :)
The code does
if (!request_region(...))
fail
touch hardware
release_region
if (!request_region(...))
fail
If the HIGHLY UNLIKELY event of another ISA driver claiming this region
occurs, the system continues working just fine.
At the time, I was thinking that any further touching of the code should
be converting it to a more pnp-like structure.
Jeff
Compile statistics: 2.6.0-test4
Compiler: gcc 3.2.2
Script: http://developer.osdl.org/~cherry/compile/compregress.sh
bzImage bzImage modules
(defconfig) (allmodconfig) (allmodconfig)
2.6.0-test4 0 warnings 3 warnings 1016 warnings
0 errors 0 errors 34 errors
2.6.0-test3 0 warnings 7 warnings 984 warnings
0 errors 9 errors 42 errors
2.6.0-test2 0 warnings 7 warnings 1201 warnings
0 errors 9 errors 43 errors
2.6.0-test1 0 warnings 8 warnings 1319 warnings
0 errors 9 errors 38 errors
Compile statistics for 2.5 kernels and 2.6 kernels are at:
http://developer.osdl.org/~cherry/compile/
Failure summary:
drivers/block: 2 warnings, 1 errors
drivers/isdn: 257 warnings, 6 errors
drivers/media: 5 warnings, 5 errors
drivers/mtd: 25 warnings, 1 errors
drivers/net: 208 warnings, 8 errors
drivers/net: 36 warnings, 8 errors
drivers/scsi/aic7xxx: 0 warnings, 3 errors
drivers/scsi: 97 warnings, 7 errors
drivers/video: 8 warnings, 3 errors
sound/oss: 49 warnings, 1 errors
sound/pcmcia: 0 warnings, 2 errors
sound: 0 warnings, 3 errors
Warning summary:
drivers/atm: 12 warnings, 0 errors
drivers/cdrom: 26 warnings, 0 errors
drivers/char: 244 warnings, 0 errors
drivers/i2c: 3 warnings, 0 errors
drivers/ide: 30 warnings, 0 errors
drivers/md: 2 warnings, 0 errors
drivers/message: 1 warnings, 0 errors
drivers/pcmcia: 3 warnings, 0 errors
drivers/scsi/pcmcia: 4 warnings, 0 errors
drivers/scsi/sym53c8xx_2: 2 warnings, 0 errors
drivers/serial: 1 warnings, 0 errors
drivers/telephony: 5 warnings, 0 errors
drivers/usb: 5 warnings, 0 errors
drivers/video/aty: 3 warnings, 0 errors
drivers/video/console: 2 warnings, 0 errors
drivers/video/matrox: 5 warnings, 0 errors
drivers/video/sis: 1 warnings, 0 errors
fs/afs: 2 warnings, 0 errors
fs/intermezzo: 1 warnings, 0 errors
fs/smbfs: 2 warnings, 0 errors
net: 13 warnings, 0 errors
sound/isa: 3 warnings, 0 errors
John
[de-cc'ing Linus]
On Tuesday 26 August 2003 00:59, Jeff Garzik wrote:
> Is it a race if noone cares? :)
>
> The code does
>
> if (!request_region(...))
> fail
> touch hardware
> release_region
> if (!request_region(...))
> fail
>
> If the HIGHLY UNLIKELY event of another ISA driver claiming this region
> occurs, the system continues working just fine.
Yes, this particular driver is fine. My patch just eliminate back-to-back
release_region(...)
if (!request_region(...)) fail;
pair.
I just have a feeling that if I am going to replace check_region with
request_region, I can close race window altogether.
BTW, it all started when I tried to get rid of check_region in de4x5.c.
That's a bit worse. For example:
barrier();
request_region(iobase, (lp->bus == PCI ? DE4X5_PCI_TOTAL_SIZE :
DE4X5_EISA_TOTAL_SIZE),
lp->adapter_name);
lp->rxRingSize = NUM_RX_DESC;
--
vda
* Linus Torvalds <[email protected]>:
>
> There should be a lot of compile fixes here, along with updates for ia64,
> and the (painful) move of the 'name' entry out of the "struct device" that
> helps avoid unnecessary memory waste.
>
> It's a lot of small stuff all over: nothing really stands out in diffstat,
> except the big update of the Zoran video capture driver, and the blkmtd
> driver - both updated from their respective development trees (and the ips
> scsi driver, but that was due to massive whitespace fixing).
>
> Normal merges with Andrew and arch maintainers (x86-64, ia64, sparc64,
> arm), and AGP updates (notably the merging of the ATI IGP). And network
> driver updates, ACPI and power management infrastructure.
This one is actually usable on my laptop (Sattelite Pro 6100 by
Toshiba). ACPI works, ALSA work, and it seems to work in general.
I still have issues with the keyboard -- sometimes when typing in the
frambuffer console I get an "unknown scancode" and after that the CTRL
key is stuck forever, which forces me to reboot.
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
> I still have issues with the keyboard -- sometimes when typing in the
> frambuffer console I get an "unknown scancode" and after that the CTRL
> key is stuck forever, which forces me to reboot.
Please post the full error message. Does the error message always
contain the same scancode?
My guess is you can get out of that without a reboot. Next time it
happens, try this:
1. Press and release each Ctrl key. (This makes sure the key_down
array is correct.)
2. Switch to another console and back again. (This executes the
compute_shiftstate function, which recalculates the shift
state from the key_down array.)
Chris
* Chris Heath <[email protected]>:
> > I still have issues with the keyboard -- sometimes when typing in the
> > frambuffer console I get an "unknown scancode" and after that the CTRL
> > key is stuck forever, which forces me to reboot.
>
> Please post the full error message. Does the error message always
> contain the same scancode?
I'll do that.
Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Basically, CTRL was stuck. Even when I switched to X11.
> My guess is you can get out of that without a reboot. Next time it
> happens, try this:
> 1. Press and release each Ctrl key. (This makes sure the key_down
> array is correct.)
> 2. Switch to another console and back again. (This executes the
> compute_shiftstate function, which recalculates the shift
> state from the key_down array.)
Ah, good idea.
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
> Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
>
> Basically, CTRL was stuck. Even when I switched to X11.
Well, this completely baffles me. I thought X11 maintains its own
keydown array.
Anyway, I've included a patch that should hopefully give us better
debugging information. When you get an unknown key error, it will also
dump the last 16 bytes that were sent from the keyboard. Be careful
with this one. If you post any errors to the list, make sure it doesn't
contain any sensitive passwords. :-)
Chris
--- a/drivers/input/serio/i8042.c 2003-08-09 11:58:10.000000000 -0400
+++ b/drivers/input/serio/i8042.c 2003-08-31 10:16:55.000000000 -0400
@@ -62,6 +62,7 @@
static unsigned char i8042_last_release;
static unsigned char i8042_mux_open;
struct timer_list i8042_timer;
+unsigned char i8042_history[16];
/*
* Shared IRQ's require a device pointer, but this driver doesn't support
@@ -334,6 +335,14 @@
static char i8042_mux_short[4][16];
static char i8042_mux_phys[4][32];
+void dump_i8042_history(void) {
+ int i;
+ printk(KERN_WARNING "i8042 history: ");
+ for (i=0; i<sizeof(i8042_history); i++)
+ printk("%02x ", i8042_history[i]);
+ printk("\n");
+}
+
/*
* i8042_interrupt() is the most important function in this driver -
* it handles the interrupts from the i8042, and sends incoming bytes
@@ -405,6 +414,8 @@
continue;
}
+ memmove(i8042_history, &i8042_history[1], sizeof(i8042_history)-1);
+ i8042_history[sizeof(i8042_history)-1] = data;
if (data > 0x7f) {
unsigned char index = (data & 0x7f) | (i8042_last_e0 << 7);
/* work around hardware that doubles key releases */
--- a/drivers/input/keyboard/atkbd.c 2003-06-22 18:45:06.000000000 -0400
+++ b/drivers/input/keyboard/atkbd.c 2003-08-31 10:11:51.000000000 -0400
@@ -131,6 +131,7 @@
* atkbd_interrupt(). Here takes place processing of data received from
* the keyboard into events.
*/
+void dump_i8042_history(void);
static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
unsigned int flags, struct pt_regs *regs)
@@ -193,6 +194,7 @@
case ATKBD_KEY_UNKNOWN:
printk(KERN_WARNING "atkbd.c: Unknown key (set %d, scancode %#x, on %s) %s.\n",
atkbd->set, code, serio->phys, atkbd->release ? "released" : "pressed");
+ dump_i8042_history();
break;
default:
input_regs(&atkbd->dev, regs);
* Chris Heath <[email protected]>:
> > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> >
> > Basically, CTRL was stuck. Even when I switched to X11.
>
> Well, this completely baffles me. I thought X11 maintains its own
> keydown array.
>
> Anyway, I've included a patch that should hopefully give us better
> debugging information. When you get an unknown key error, it will also
> dump the last 16 bytes that were sent from the keyboard. Be careful
> with this one. If you post any errors to the list, make sure it doesn't
> contain any sensitive passwords. :-)
I applied your patch, and alas:
Sep 1 16:12:19 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 1 16:12:19 hummus2 kernel: i8042 history: ae 9d e0 48 e0 c8 e0 38 56 d6 e0 b8 e0 b8 39 b9
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
[I changed the subject to be slightly more indicative of contents.]
On Mon, Sep 01, 2003 at 06:01:25PM +0200, Ralf Hildebrandt wrote:
> * Chris Heath <[email protected]>:
> > > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > >
> > > Basically, CTRL was stuck. Even when I switched to X11.
> >
> > Well, this completely baffles me. I thought X11 maintains its own
> > keydown array.
It can do that only when it gets uncontaminated data.
> I applied your patch, and alas:
>
> Sep 1 16:12:19 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> Sep 1 16:12:19 hummus2 kernel: i8042 history: ae 9d e0 48 e0 c8 e0 38 56 d6 e0 b8 e0 b8 39 b9
I don't know why you say "alas". I read (two key releases, then)
press UpArrow, release UpArrow, RAlt, some key, release some key, release RAlt,
funny: again release RAlt, press space bar, release space bar.
So, nothing "Unknown" about this 0xb9 key - it is the spacebar release.
But i8042.c will do an unxlate when it thinks the key is down, so it
did not think so. But we saw the key down a moment ago. Apparently
the line
set_bit(data | (i8042_last_e0 << 7), i8042_unxlate_seen);
did not set i8042_unxlate_seen for data = 0x39. And it is clear why:
The sequence e0 b8 e0 b8 is a repetition, the second e0 sets i8042_last_e0,
but after the second b8 we bail out without clearing i8042_last_e0 again.
*BUG*.
Conclusion: in the skipped double release case we must clear i8042_last_e0.
Andries
Vojtech: Note: 1 line should be added in i8042.c:i8042_interrupt().
[A stopgap - in fact all this i8042_unxlate_seen stuff should be ripped out.]
--- serio/i8042.c~ Sat Aug 9 22:16:42 2003
+++ serio/i8042.c Tue Sep 2 03:09:12 2003
@@ -410,6 +410,7 @@
/* work around hardware that doubles key releases */
if (index == i8042_last_release) {
dbg("i8042 skipped double release (%d)\n", index);
+ i8042_last_e0 = 0;
continue;
}
if (index == 0xaa || index == 0xb6)
* Andries Brouwer <[email protected]>:
> > * Chris Heath <[email protected]>:
> > > > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > > > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > > > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > > > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > > >
> > > > Basically, CTRL was stuck. Even when I switched to X11.
> > >
> > > Well, this completely baffles me. I thought X11 maintains its own
> > > keydown array.
>
> It can do that only when it gets uncontaminated data.
>
> > I applied your patch, and alas:
> >
> > Sep 1 16:12:19 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > Sep 1 16:12:19 hummus2 kernel: i8042 history: ae 9d e0 48 e0 c8 e0 38 56 d6 e0 b8 e0 b8 39 b9
>
> I don't know why you say "alas". I read (two key releases, then)
> press UpArrow, release UpArrow, RAlt, some key, release some key, release RAlt,
> funny: again release RAlt, press space bar, release space bar.
This must a known bug of this particular keyboard.
> So, nothing "Unknown" about this 0xb9 key - it is the spacebar release.
>
> But i8042.c will do an unxlate when it thinks the key is down, so it
> did not think so. But we saw the key down a moment ago. Apparently
> the line
>
> set_bit(data | (i8042_last_e0 << 7), i8042_unxlate_seen);
>
> did not set i8042_unxlate_seen for data = 0x39. And it is clear why:
> The sequence e0 b8 e0 b8 is a repetition, the second e0 sets i8042_last_e0,
> but after the second b8 we bail out without clearing i8042_last_e0 again.
> *BUG*.
>
> Conclusion: in the skipped double release case we must clear i8042_last_e0.
>
> Andries
>
> Vojtech: Note: 1 line should be added in i8042.c:i8042_interrupt().
> [A stopgap - in fact all this i8042_unxlate_seen stuff should be ripped out.]
>
> --- serio/i8042.c~ Sat Aug 9 22:16:42 2003
> +++ serio/i8042.c Tue Sep 2 03:09:12 2003
> @@ -410,6 +410,7 @@
> /* work around hardware that doubles key releases */
> if (index == i8042_last_release) {
> dbg("i8042 skipped double release (%d)\n", index);
> + i8042_last_e0 = 0;
> continue;
> }
> if (index == 0xaa || index == 0xb6)
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
* Chris Heath <[email protected]>:
> > Aug 27 18:53:41 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 27 19:15:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> > Aug 27 19:42:50 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> > Aug 28 10:14:14 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> >
> > Basically, CTRL was stuck. Even when I switched to X11.
>
> Well, this completely baffles me. I thought X11 maintains its own
> keydown array.
>
> Anyway, I've included a patch that should hopefully give us better
> debugging information. When you get an unknown key error, it will also
> dump the last 16 bytes that were sent from the keyboard. Be careful
> with this one. If you post any errors to the list, make sure it doesn't
> contain any sensitive passwords. :-)
I got some more events, and today I even was able to reproduc the
"CTRL-is-stuck" problem.
I was able to get the key unstuck by switching back and forth between
dirrerent FB consoles and by pushing and releaseing CTRL in them...
Sep 2 09:10:01 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
Sep 2 09:10:01 hummus2 kernel: i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
Sep 2 09:10:06 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xa0, on isa0060/serio0) pressed.
Sep 2 09:10:06 hummus2 kernel: i8042 history: 1c 9c 1c 9c e0 50 e0 d0 e0 50 e0 d0 e0 d0 20 a0
Sep 2 09:14:54 hummus2 kernel: input: AT Set 2 keyboard on isa0060/serio0
Sep 2 09:25:44 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
Sep 2 09:25:44 hummus2 kernel: i8042 history: e0 50 e0 d0 e0 50 e0 d0 e0 d0 1d 2d ad 1f 9f 9d
Sep 2 09:30:34 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 2 09:30:34 hummus2 kernel: i8042 history: e0 48 e0 c8 39 b9 e0 38 56 d6 e0 b8 e0 b8 39 b9
Sep 2 09:35:51 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
Sep 2 09:35:51 hummus2 kernel: i8042 history: a0 20 a0 9d e0 4d e0 cd e0 4d e0 cd e0 cd 39 b9
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
On Tue, Sep 02, 2003 at 10:07:33AM +0200, Ralf Hildebrandt wrote:
> I got some more events, and today I even was able to reproduc the
> "CTRL-is-stuck" problem.
>
> I was able to get the key unstuck by switching back and forth between
> dirrerent FB consoles and by pushing and releaseing CTRL in them...
Yesterday's data sufficed, and I suppose the patch I gave solves
this problem. Now that you send this, we can verify that each time
there is a problem we have had a double release just before, and
that release was an e0 xx combination.
> atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
> i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
>
> atkbd.c: Unknown key (set 2, scancode 0xa0, on isa0060/serio0) pressed.
> i8042 history: 1c 9c 1c 9c e0 50 e0 d0 e0 50 e0 d0 e0 d0 20 a0
>
> atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed.
> i8042 history: e0 50 e0 d0 e0 50 e0 d0 e0 d0 1d 2d ad 1f 9f 9d
>
> atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> i8042 history: e0 48 e0 c8 39 b9 e0 38 56 d6 e0 b8 e0 b8 39 b9
>
> atkbd.c: Unknown key (set 2, scancode 0xb9, on isa0060/serio0) pressed.
> i8042 history: a0 20 a0 9d e0 4d e0 cd e0 4d e0 cd e0 cd 39 b9
And indeed, we see e0 d0 e0 d0, e0 b8 e0 b8, e0 cd e0 cd.
This bug is understood.
* Andries Brouwer <[email protected]>:
> Yesterday's data sufficed, and I suppose the patch I gave solves
> this problem.
Nope. I applied the patch and rebuilt the kernel and rebooted.
Linux version 2.6.0-test4-bk2 (root@hummus2) (gcc version 3.2.3 (Debian)) #1 Tue Sep 2 11:45:23 CEST 2003
shows that the kernel I build this moring is actually running.
Right now, my CTRL key is totally "stuck" on the fbconsole. I can't
release it, not even by switching between the consoles and/or X11.
But now I don't get any messages like the one below (yes, the special
code generating this output is still active...)
> > atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
> > i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
* Andries Brouwer <[email protected]>:
> On Tue, Sep 02, 2003 at 10:07:33AM +0200, Ralf Hildebrandt wrote:
>
> > I got some more events, and today I even was able to reproduc the
> > "CTRL-is-stuck" problem.
> >
> > I was able to get the key unstuck by switching back and forth between
> > dirrerent FB consoles and by pushing and releaseing CTRL in them...
>
> Yesterday's data sufficed, and I suppose the patch I gave solves
> this problem. Now that you send this, we can verify that each time
> there is a problem we have had a double release just before, and
> that release was an e0 xx combination.
Excellent. I rebuild my kernel including your patch; I shall reboot
soon :)
> This bug is understood.
I'll get back to you once I verify that the problem doesn't occur
anymore.
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
On Tue, Sep 02, 2003 at 02:32:52PM +0200, Ralf Hildebrandt wrote:
> > Yesterday's data sufficed, and I suppose the patch I gave solves
> > this problem.
>
> Nope. I applied the patch and rebuilt the kernel and rebooted.
>
> Right now, my CTRL key is totally "stuck" on the fbconsole. I can't
> release it, not even by switching between the consoles and/or X11.
>
> But now I don't get any messages like the one below (yes, the special
> code generating this output is still active...)
>
> > > atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
> > > i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
Well, that shows that this particular problem was solved, but there are
more problems. No doubt we'll understand everything eventually.
(Unless we remove this i8042_unxlate_seen before understanding all problems.
It is really very ugly to have two different arrays that both keep the
"key down" status of the keys, and that can get out of sync.)
Again, of course, I would like to see the past few dozen scancodes, like you
gave before, up to the moment the problem arises.
(If you cannot think of something better, just log every incoming scancode.)
Andries
* Andries Brouwer <[email protected]>:
> > > > atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
> > > > i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
>
> Well, that shows that this particular problem was solved, but there are
> more problems. No doubt we'll understand everything eventually.
Thanks. And I'm happy to apply your patches to my shitty laptop :)
> (Unless we remove this i8042_unxlate_seen before understanding all problems.
> It is really very ugly to have two different arrays that both keep the
> "key down" status of the keys, and that can get out of sync.)
>
> Again, of course, I would like to see the past few dozen scancodes, like you
> gave before, up to the moment the problem arises.
> (If you cannot think of something better, just log every incoming scancode.)
Right now I keep running the laptop with your patch and the keycode
history patch.
Anything in particular that I should do?
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
* Andries Brouwer <[email protected]>:
> Well, that shows that this particular problem was solved, but there are
> more problems. No doubt we'll understand everything eventually.
>
> (Unless we remove this i8042_unxlate_seen before understanding all problems.
> It is really very ugly to have two different arrays that both keep the
> "key down" status of the keys, and that can get out of sync.)
>
> Again, of course, I would like to see the past few dozen scancodes, like you
> gave before, up to the moment the problem arises.
> (If you cannot think of something better, just log every incoming scancode.)
Right now I'm building 2.6.0-test4-bk5 (which has "the patch" in it)
and added the keycode history patch. I'll let you know how it goes.
--
Ralf Hildebrandt (Im Auftrag des Referat V a) [email protected]
Charite Campus Mitte Tel. +49 (0)30-450 570-155
Referat V a - Kommunikationsnetze - Fax. +49 (0)30-450 570-916
AIM: ralfpostfix
> > Right now, my CTRL key is totally "stuck" on the fbconsole. I can't
> > release it, not even by switching between the consoles and/or X11.
> >
> > > > atkbd.c: Unknown key (set 2, scancode 0x9c, on isa0060/serio0) pressed.
> > > > i8042 history: e0 d0 1c 9c 2e ae 10 90 e0 50 e0 d0 e0 d0 1c 9c
>
> Well, that shows that this particular problem was solved, but there are
> more problems. No doubt we'll understand everything eventually.
Quite right. When we get a repeated key release, say e0 d0 e0 d0, we
were ignoring the last d0, whereas actually we should have ignored the
second e0 too. As you can imagine, this caused stuck CTRL keys among
other things.
> > But now I don't get any messages like the one below (yes, the special
> > code generating this output is still active...)
Since then, Ralf has reported to me in a private email that he got the
following (rather troubling) error:
Sep 2 14:43:51 hummus2 kernel: atkbd.c: Unknown key (set 2, scancode 0xb2, on isa0060/serio0) pressed.
Sep 2 14:43:51 hummus2 kernel: i8042 history: e0 48 e0 c8 22 a2 13 93 93 17 97 32 31 b2 b1 b2
So it seems it is occasionally possible to have a repeated key release
(b2) with another key release (b1) in between. Ouch!
The patch below is supposed to solve both these problems. It makes some
assumptions, which I have listed below. (It probably wouldn't be hard to
remove any of these assumptions, but I don't feel like hacking this
code any more than I have to.)
1. I assume it is OK to defer processing the code e0 until the following
byte arrives. Are there any keyboards out there with e0 in the keyboard
ID? This could break the atkbd probe for such keyboards. (The
alternative would be to pass the repeated key releases through to atkbd,
and let that layer remove the duplicates.)
2. The event that appears between two repeated key releases is always a
key release and not a key press.
3. There will only be at most one key event in between two repeated key
releases.
Chris
--- linux-2.6.0-test4-bk5/drivers/input/serio/i8042.c 2003-08-09 11:58:10.000000000 -0400
+++ linux-2.6.0-test4-cdh1/drivers/input/serio/i8042.c 2003-09-03 22:30:52.000000000 -0400
@@ -59,7 +59,7 @@
static unsigned char i8042_initial_ctr;
static unsigned char i8042_ctr;
static unsigned char i8042_last_e0;
-static unsigned char i8042_last_release;
+static unsigned char i8042_last_release[2];
static unsigned char i8042_mux_open;
struct timer_list i8042_timer;
@@ -343,7 +343,7 @@
static irqreturn_t i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
unsigned long flags;
- unsigned char str, data;
+ unsigned char str, data, index;
unsigned int dfl;
struct {
int data;
@@ -405,30 +405,39 @@
continue;
}
+ index = (data & 0x7f) | (i8042_last_e0 << 7);
+
+ /* work around hardware that doubles key releases */
+ if (data > 0x7f && (index == i8042_last_release[0]
+ || index == i8042_last_release[1])) {
+ dbg("i8042 skipped double release (%d)\n", index);
+ i8042_last_e0 = 0;
+ continue;
+ }
+
+ if (i8042_last_e0)
+ serio_interrupt(&i8042_kbd_port, 0xe0, dfl, regs);
if (data > 0x7f) {
- unsigned char index = (data & 0x7f) | (i8042_last_e0 << 7);
- /* work around hardware that doubles key releases */
- if (index == i8042_last_release) {
- dbg("i8042 skipped double release (%d)\n", index);
- i8042_last_e0 = 0;
- continue;
- }
if (index == 0xaa || index == 0xb6)
set_bit(index, i8042_unxlate_seen);
if (test_and_clear_bit(index, i8042_unxlate_seen)) {
serio_interrupt(&i8042_kbd_port, 0xf0, dfl, regs);
data = i8042_unxlate_table[data & 0x7f];
- i8042_last_release = index;
+ i8042_last_release[1] = i8042_last_release[0];
+ i8042_last_release[0] = index;
}
} else {
- set_bit(data | (i8042_last_e0 << 7), i8042_unxlate_seen);
+ set_bit(index, i8042_unxlate_seen);
data = i8042_unxlate_table[data];
- i8042_last_release = 0;
+ i8042_last_release[1] = 0;
+ i8042_last_release[0] = 0;
}
i8042_last_e0 = (data == 0xe0);
- serio_interrupt(&i8042_kbd_port, data, dfl, regs);
+ /* defer sending e0 in case it's part of a double key release */
+ if (!i8042_last_e0)
+ serio_interrupt(&i8042_kbd_port, data, dfl, regs);
}
/* FIXME - was it really ours? */
Chris Heath wrote:
> 1. I assume it is OK to defer processing the code e0 until the following
> byte arrives. Are there any keyboards out there with e0 in the keyboard
> ID? This could break the atkbd probe for such keyboards. (The
> alternative would be to pass the repeated key releases through to atkbd,
> and let that layer remove the duplicates.)
>
> 2. The event that appears between two repeated key releases is always a
> key release and not a key press.
>
> 3. There will only be at most one key event in between two repeated key
> releases.
Why so many complicated assumptions? Just maintain a bitmap if key
up/down states (initialised to up), and if you receive a release event
when the key is in the up state, ignore the event.
-- Jamie
On Thu, Sep 04, 2003 at 09:48:16PM +0100, Jamie Lokier wrote:
> Why so many complicated assumptions? Just maintain a bitmap if key
> up/down states (initialised to up), and if you receive a release event
> when the key is in the up state, ignore the event.
Ha! We maintain two such bitmaps. And they get out of sync too.
You talk too easily. "If you receive a release event".
But one does not receive release events, one receives bytes.
The interpretation of those bytes belongs to the keyboard driver.
But i8042.c needs to know whether scancodes are releases
in order to do its massaging of the scancodes before giving
them to the keyboard driver.
I regard i8042.c as fundamentally broken.
On the other hand, it almost works.
Andries
Andries Brouwer wrote:
> Ha! We maintain two such bitmaps. And they get out of sync too.
>
> You talk too easily. "If you receive a release event".
> But one does not receive release events, one receives bytes.
> The interpretation of those bytes belongs to the keyboard driver.
>
> But i8042.c needs to know whether scancodes are releases
> in order to do its massaging of the scancodes before giving
> them to the keyboard driver.
Are you saying that it isn't possible for i8042.c to simply pass all
events (including duplicates) to the keyboard driver to sanitise?
-- Jamie
On Fri, Sep 05, 2003 at 12:00:55AM +0100, Jamie Lokier wrote:
> Are you saying that it isn't possible for i8042.c to simply pass all
> events (including duplicates) to the keyboard driver to sanitise?
I am saying that I would like nothing better than that.
But it is a fundamental change of setup.
> > Are you saying that it isn't possible for i8042.c to simply pass all
> > events (including duplicates) to the keyboard driver to sanitise?
>
> I am saying that I would like nothing better than that.
> But it is a fundamental change of setup.
Well... I think the overall design is the right one. The atkbd driver
expects to be talking to an AT keyboard, usually using Set 2.
However, the bytes that come from the i8042 are a mixture of Set 1 and
Set 2. Set 1 because the key releases have their 8th bits set, and Set
2 because we get the non-XT keys escaped with E0. I guess the keyboard
is sending Set 2 and the BIOS is translating the set 2 codes to set 1
for "compatibility with XT software".
So the i8042 layer is IMHO the right place to untranslate this mess back
into normal Set 2. The problem is that the BIOS translation is not
invertible, so we have to hack the untranslation as best we can. The
current algorithm is to untranslate all bytes 0x00-0x7f, and to
untranslate the others only if there was a previous key press. This
means the i8042 layer has to know about scancodes, knowledge which
probably only belongs in the atkbd layer.
Probably, now that I think about it, the sanitization of duplicate key
releases should rightfully be part of the atkbd layer, because those
codes are actually being sent from the keyboard.
But either way, the problem remains to find a good untranslate
hack^Walgorithm. Because we are getting duplicate key releases, we have
to make sure they they are either untranslated or removed. Sending them
through unchanged, as we were in -test1 causes lots of grief to the
atkbd layer.
At this late stage, I don't think it is a good idea to completely
rewrite the untranslate algorithm. So we continue to hack it and hack
it until it works. :-/
Chris
Although I don't have time to keep up with the list, I saw this posting from
"Chris Heath" <[email protected]>. Reordered by importance:
> At this late stage, I don't think it is a good idea to completely
> rewrite the untranslate algorithm. So we continue to hack it and hack
> it until it works. :-/
Surely not. Some keyboards which worked since 2.0 and probably 1.something
are broken in 2.6. Other keyboards which worked before 2.2.something
(without USB drivers but with BIOS emulation) and resumed working since
2.4.something (with fixed USB dirvers) are broken in 2.6. Haven't some
lessons been learned from a 2.4.something-dontuse and a few other
2.4.somethings which also should have been -dontuse? If 2.6.0-dontuse gets
released, Linux will really be as bad as some other famous operating
systems. Surely it is better to rewrite the untranslate algorithm.
Of course there's some power management and other problems which are in the
same situation. The keyboard is not the only reason why it would be foolish
to release 2.6.0 before it starts working.
> However, the bytes that come from the i8042 are a mixture of Set 1 and
> Set 2. Set 1 because the key releases have their 8th bits set, and Set
> 2 because we get the non-XT keys escaped with E0.
I wonder if it's really that simple. Though today I experimented on a
desktop machine which might have a real i8042 maybe. Under a combination of
2.6.0-test4 and X11, showkey -s produced the same results which showkey -s
used to produce under 2.4.something on a plain text console. Maybe this
proves that X11 still accesses the keyboard at a sufficiently low level that
it doesn't suffer from the breakage that was added in 2.6.0-test4 keyboard
drivers.
> I guess the keyboard is sending Set 2 and the BIOS is translating the set
> 2 codes to set 1 for "compatibility with XT software".
I'm pretty sure that this isn't that simple. The BIOS fails to translate
some keys. I hacked grub enough to make it possible to type from a Japanese
keyboard into grub. Fortunately grub doesn't use every key that the BIOS
understands, so I was able to swap some scan codes in grub's interrupt
handler, let the BIOS translate the ones it likes, and then translate the
results again in grub's higher-level translator.
(Now why does such ugly stuff make people want to puke on their keyboards
when it's really the BIOS's fault :-?)
> > At this late stage, I don't think it is a good idea to completely
> > rewrite the untranslate algorithm. So we continue to hack it and hack
> > it until it works. :-/
>
> Surely not. Some keyboards which worked since 2.0 and probably 1.something
> are broken in 2.6.
Aren't we over-complicating this?
The vast majority of keyboards are usable with translated Set 2, and
no workarounds. Some workarounds may break other keyboards, possibly
ones we don't even know about yet.
There are advantages to using untranslated Set 2, and Set 3, and some
keyboards need to be used in those modes them to work correctly.
So, why not:
* Default to translated Set 2 with no work arounds, unless the
keyboard is known to work fine in Set 3.
Either:
1. It works perfectly.
2. It doesn't.
In case 1, if the user is happy with translated Set 2, there is no
problem. If they are interested in seeing whether the technically
neater untranslated Set 2, or Set 3 work for them they can test them
and see.
In case 2, the user can boot with a kernel parameter enabling
workarounds for broken keyboards. Conflicting workarounds can be
moved in to different sets, I.E. boot with inputworkarounds=1 for the
most common ones, and inputworkarounds=2 for the less common ones.
This should get almost all keyboards working by default. Most of
those that don't work due to critical errors such as keys bouncing and
excessive auto-repeat, and those that don't work fully, should work
fully with workarounds enabled.
My keyboard which requires Set 3 to operate fully sends a distinctive
ID, so can be identified, and set to Set 3 automatically.
John.
On Thu, Sep 04, 2003 at 11:41:38PM -0400, Chris Heath wrote:
> Well... I think the overall design is the right one. The atkbd driver
> expects to be talking to an AT keyboard, usually using Set 2.
Always be precise: there are six modes, namely
translated/untranslated Set 1/2/3.
By default every recent keyboard comes up in translated Set 2.
atkbd.c is broken, because it expects what the keyboard does not send,
namely untranslated Set 2.
{and here "send" is not defined as what bits are on some cable,
that is invisible for the programmer and varies between systems,
but as what bits get read by the kernel}
> However, the bytes that come from the i8042 are a mixture of Set 1 and
> Set 2. Set 1 because the key releases have their 8th bits set, and Set
> 2 because we get the non-XT keys escaped with E0. I guess the keyboard
> is sending Set 2 and the BIOS is translating the set 2 codes to set 1
> for "compatibility with XT software".
There are several misunderstandings in this paragraph.
No, the BIOS is not involved - Linux does not use the BIOS,
except possibly at boot time.
Both translated and untranslated Set 2 use E0 prefixes,
and E0 is translated to E0.
The translation is done by the keyboard controller.
On many laptops the strange construction of a keyboard that sends
the wrong codes, which then are translated by a separate microprocessor,
is thrown out, and the keyboard directly produces the desired codes,
namely translated Set 2, and no translation happens.
Also the compatibility mode of USB only knows about translated Set 2.
> So the i8042 layer is IMHO the right place to untranslate this mess back
> into normal Set 2.
There is nothing normal about this untranslated Set 2.
It is a figment of the imagination.
Laptop hardware doesnt know anything about it.
> The problem is that the translation is not invertible
Yes, indeed, so we introduce some small bugs by doing this silly
untranslation.
> The current algorithm is to untranslate all bytes 0x00-0x7f, and to
> untranslate the others only if there was a previous key press. This
> means the i8042 layer has to know about scancodes, knowledge which
> probably only belongs in the atkbd layer.
Yes, precisely.
> Probably, now that I think about it, the sanitization of duplicate key
> releases should rightfully be part of the atkbd layer, because those
> codes are actually being sent from the keyboard.
Yes, precisely.
And indeed, no sanitization is needed at all.
> But either way, the problem remains to find a good untranslate
> hack^Walgorithm. Because we are getting duplicate key releases, we have
> to make sure they they are either untranslated or removed. Sending them
> through unchanged, as we were in -test1 causes lots of grief to the
> atkbd layer.
But that is a bug in atkbd.
Andries
On Fri, Sep 05, 2003 at 03:57:57PM +0100, John Bradford wrote:
> My keyboard which requires Set 3 to operate fully sends a distinctive
> ID, so can be identified, and set to Set 3 automatically.
Aha - maybe you told me but then I failed to extract that bit of information.
What ID does your keyboard send?
Andries
http://www.win.tue.nl/~aeb/linux/kbd/scancodes-6.html#ss6.3