summaryrefslogtreecommitdiffstats
path: root/arch/avr32
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] Dynamic kernel command-line: avr32Alon Bar-Lev2007-02-121-3/+3
| | | | | | | | | | 1. Rename saved_command_line into boot_command_line. 2. Set command_line as __initdata. Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com> Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] Consolidate default sched_clock()Alexey Dobriyan2007-02-111-9/+0
| | | | | | | | | Use attribute(weak). Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] disable init/initramfs.c: architecturesJean-Paul Saman2007-02-111-0/+2
| | | | | | | | | | | | Update all arch/*/kernel/vmlinux.lds.S to not include space for initramfs when CONFIG_BLK_DEV_INITRAMFS is not selected. This saves another 4 kbytes on most platfoms (some reserve PAGE_SIZE for initramfs). Signed-off-by: Jean-Paul Saman <jean-paul.saman@nxp.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [AVR32] Add missing #include <linux/module.h>Haavard Skinnemoen2007-02-091-0/+1
| | | | | | | arch/avr32/kernel/cpu.c needs THIS_MODULE, so it must include linux/module.h. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Remove last remains of libgccHaavard Skinnemoen2007-02-092-131/+0
| | | | | | | Two libgcc headers were left around even though all the actual code borrowed from libgcc is gone. Delete them. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] SPI platform code updateHaavard Skinnemoen2007-02-094-36/+51
| | | | | | | Move stuff in spi.c into ATSTK1002 board code and update SPI platform device definitions according to the new GPIO API. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Add PIOE device and reserve SDRAM pinsHaavard Skinnemoen2007-02-092-0/+33
| | | | | | | | | | | The PIOE device was left out before because it muxes SDRAM pins (and is therefore a bit dangerous to mess with) and because no existing drivers had any use for it. It is needed for CompactFlash, however, and now that we have a way to protect the SDRAM pins, it can be safely added. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Introduce at32_reserve_pin()Haavard Skinnemoen2007-02-091-1/+22
| | | | | | | | at32_reserve_pin() can be used for reserving portmux pins without altering their configuration. Useful for e.g. SDRAM pins where we really don't want to change the bootloader-provided configuration. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Don't reset PIO state at bootupHaavard Skinnemoen2007-02-091-3/+0
| | | | | | | Leave the PIO lines as the bootloader left them. This allows us to use PIOE without disturbing the SDRAM muxing. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] GPIO API implementationHaavard Skinnemoen2007-02-093-16/+221
| | | | | | | Arch-neutral GPIO calls for AVR32. GPIO IRQ support written by David Brownell. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Use ARRAY_SIZE macro when appropriateAhmed S. Darwish2007-02-091-2/+2
| | | | | | | A patch to use ARRAY_SIZE macro already defined in linux/kernel.h Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Fix incorrect invalidation of shared cachelinesDavid Brownell2007-02-091-8/+24
| | | | | | | | | | Fix bug in dma_map_single(..., DMA_FROM_DEVICE) caused by incorrect invalidation of shared cachelines at the beginning and/or end of the specified buffer. Those shared cachelines need to be flushed, since they may hold valid data (which must not be discarded). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] ext int fixesDavid Brownell2007-02-091-19/+17
| | | | | | | | | | | | | | | | | | Bugfixes for external irq handler set_irq_type(): - If set_irq_type() can't set the type, don't change anything! - It's not OK to change the flow handler as part of set_irq_type(), among other issues that violates spinlock rules. Instead, we can call the relevant handler when we demux the external interrupts. - The external irq demux has no need to grab the spinlock. And in fact grabbing it that way was wrong, since that code might be pre-empted by an irq at a different priority level, and that code might then have tried to grab that spinlock... Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] fix serial port setup on ATSTK1000David Brownell2007-02-092-5/+15
| | | | | | | | | Fixes to USART setup on the stk-1000 ... don't configure USART 2, since its TXD/RXD are used for INT-A and INT-B buttons; and configure USART 0 (for IRDA, and with corrected IRQ) iff SW2 has a non-default setting. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] /proc/interrupts displayDavid Brownell2007-02-091-0/+1
| | | | | | | | The /proc/interrupts file should also display the irq_chip associated with each irq ... e.g. INTC, EIM, GPIO. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Update ATSTK1000 defconfig: Enable macb by defaultHaavard Skinnemoen2007-01-261-12/+27
| | | | | | Enable the Atmel MACB ethernet driver by default on ATSTK1000. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [AVR32] Export clear_page symbolHaavard Skinnemoen2007-01-261-0/+1
| | | | | | | Add missing EXPORT_SYMBOL(clear_page), allowing ext3 to be compiled as a module. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32Linus Torvalds2006-12-1110-406/+287
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32: [AVR32] Add missing #include <linux/param.h> to delay.c [AVR32] Pass dev parameter to dma_cache_sync() [AVR32] Implement intc_get_pending() [AVR32] Don't include <asm/delay.h> [AVR32] Put the chip in "stop" mode when halting the system [AVR32] Set flow handler for external interrupts [AVR32] Remove unused file [AVR32] Remove mii_phy_addr and eth_addr from eth_platform_data [AVR32] Move ethernet tag parsing to board-specific code [AVR32] Add macb1 platform_device [AVR32] Portmux API update
| * [AVR32] Add missing #include <linux/param.h> to delay.cHaavard Skinnemoen2006-12-081-0/+1
| | | | | | | | | | | | __const_udelay() needs HZ, which is defined in <asm/param.h>. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Implement intc_get_pending()Haavard Skinnemoen2006-12-081-0/+4
| | | | | | | | | | | | | | | | | | intc_get_pending() returns a bitmask with pending interrupts in a interrupt controller group (irq). This is used by the upcoming oprofile implementation for avr32 and may also be useful for chained interrupt controller drivers. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Don't include <asm/delay.h>Haavard Skinnemoen2006-12-082-2/+1
| | | | | | | | | | | | Include <linux/delay.h> instead of <asm/delay.h> from a few places. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Put the chip in "stop" mode when halting the systemHaavard Skinnemoen2006-12-081-0/+7
| | | | | | | | | | | | | | | | | | Make machine_halt() execute a sleep instruction to put the chip in "stop" mode when the system is halted. This switches off all clocks except the 32 kHz oscillator, which is needed for the RTC to keep ticking. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Set flow handler for external interruptsHaavard Skinnemoen2006-12-081-2/+20
| | | | | | | | | | | | | | | | Make sure that the flow handler for external interrupts is updated whenever they type is changed. Also make sure that the defaults correspond with how the interrupt controller is configured. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Remove unused fileHaavard Skinnemoen2006-12-081-289/+0
| | | | | | | | | | | | | | Remove arch/avr32/mach-at32ap/sm.c, which is not referenced by any Makefile. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Remove mii_phy_addr and eth_addr from eth_platform_dataHaavard Skinnemoen2006-12-081-8/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The macb driver will probe for the PHY chip and read the mac address from the MACB registers, so we don't need them in eth_platform_data anymore. Since u-boot doesn't currently initialize the MACB registers with the mac addresses, the tag parsing code is kept but instead of sticking the information into eth_platform_data, it uses it to initialize the MACB registers (in case the boot loader didn't do it.) This code should be unnecessary at some point in the future. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Move ethernet tag parsing to board-specific codeHaavard Skinnemoen2006-12-082-32/+23
| | | | | | | | | | | | | | | | | | By moving the ethernet tag parsing to the board-specific code we avoid the issue of figuring out which device we're supposed to attach the information to. The board specific code knows this because it's where the actual devices are instantiated. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Add macb1 platform_deviceHaavard Skinnemoen2006-12-081-0/+38
| | | | | | | | | | | | | | Add platform_device definition and pio init code for the second ethernet controller in AT32AP7000. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| * [AVR32] Portmux API updateHaavard Skinnemoen2006-12-082-83/+146
| | | | | | | | | | | | | | Rename portmux_set_func to at32_select_periph, add at32_select_gpio and add flags parameter to specify the initial state of the pins. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* | [PATCH] LOG2: Implement a general integer log2 facility in the kernelDavid Howells2006-12-081-0/+8
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This facility provides three entry points: ilog2() Log base 2 of unsigned long ilog2_u32() Log base 2 of u32 ilog2_u64() Log base 2 of u64 These facilities can either be used inside functions on dynamic data: int do_something(long q) { ...; y = ilog2(x) ...; } Or can be used to statically initialise global variables with constant values: unsigned n = ilog2(27); When performing static initialisation, the compiler will report "error: initializer element is not constant" if asked to take a log of zero or of something not reducible to a constant. They treat negative numbers as unsigned. When not dealing with a constant, they fall back to using fls() which permits them to use arch-specific log calculation instructions - such as BSR on x86/x86_64 or SCAN on FRV - if available. [akpm@osdl.org: MMC fix] Signed-off-by: David Howells <dhowells@redhat.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: David Howells <dhowells@redhat.com> Cc: Wojtek Kaniewski <wojtekka@toxygen.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Pass struct dev pointer to dma_cache_sync()Ralf Baechle2006-12-071-1/+1
| | | | | | | | | | | | | | | | | Pass struct dev pointer to dma_cache_sync() dma_cache_sync() is ill-designed in that it does not have a struct device pointer argument which makes proper support for systems that consist of a mix of coherent and non-coherent DMA devices hard. Change dma_cache_sync to take a struct device pointer as first argument and fix all its callers to pass it. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Add include/linux/freezer.h and move definitions from sched.hNigel Cunningham2006-12-071-1/+1
| | | | | | | | | | | | | Move process freezing functions from include/linux/sched.h to freezer.h, so that modifications to the freezer or the kernel configuration don't require recompiling just about everything. [akpm@osdl.org: fix ueagle driver] Signed-off-by: Nigel Cunningham <nigel@suspend2.net> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] avr32: fixup kprobes preemption handlingPaul Mundt2006-12-071-0/+1
| | | | | | | | | | | | | | | | | While working on SH kprobes, I noticed that avr32 got the preemption handling wrong in the no probe case. The idea is that upon entry of kprobe_handler() preemption is disabled outright across the life of the kprobe, only to be re-enabled in post_kprobe_handler(). However, in the event that the probe is never activated, there's never any chance of hitting the post probe handler, which allows for the current avr32 implementation to disable preemption indefinitely, as it's currently missing a re-enable when no probe is activated. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* AVR32: Add missing return instruction in __raw_writesbHaavard Skinnemoen2006-11-061-0/+2
| | | | | | | __raw_writesb ends with a conditional branch, which is obviously wrong. It should return after the last loop terminates. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* AVR32: Wire up sys_epoll_pwaitHaavard Skinnemoen2006-11-062-0/+10
| | | | Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* AVR32: Fix thinko in generic_find_next_zero_le_bit()Haavard Skinnemoen2006-11-061-1/+2
| | | | | | | | | | | The existing implementation of this function seems to be looking for a one although it should be looking for a zero. This causes trouble for the ext2 filesystem, which tends to report -ENOSPC without this patch. Fix this by complementing each word before scanning. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* AVR32: Get rid of board_early_initHaavard Skinnemoen2006-11-062-12/+0
| | | | | | | | | | | | | board_early_init() is left over from some early prototyping work where we had to initialize the SDRAM controller ourselves. This depends on the kernel being loaded into static RAM, which just isn't possible on any commercially available products today. In order to run without a boot loader, we need to create a zImage stub or have the debugger initialize the SDRAM for us (for really low-level debugging) Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
* [PATCH] vmlinux.lds: consolidate initcall sectionsAndrew Morton2006-10-271-7/+1
| | | | | | | | | | | | | | Add a vmlinux.lds.h helper macro for defining the eight-level initcall table, teach all the architectures to use it. This is a prerequisite for a patch which performs initcall synchronisation for multithreaded-probing. Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> [ Added AVR32 as well ] Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Update defconfigHaavard Skinnemoen2006-10-251-94/+159
| | | | | | | | | Sync atstk1002_defconfig with latest git, turn off non-existent drivers and enable a few more userspace-visible options like SysV IPC and inotify support. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Use __raw MMIO access for internal peripheralsHaavard Skinnemoen2006-10-254-8/+14
| | | | | | | | | | | | | | | The read[bwl] and write[bwl] functions are meant for accessing PCI devices. How this is achieved on AVR32 is unknown, as there are no systems with a PCI bridge available yet. On-chip peripheral access, however, should not depend on how we end up implementing PCI access, so using __raw_read[bwl]/__raw_write[bwl] is the right thing to do for on-chip peripherals. This patch converts the drivers for the static memory controller, interrupt controller, PIO controller and system manager to use __raw MMIO access. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Implement and export __raw_{read,write}s[bwl]Haavard Skinnemoen2006-10-254-0/+109
| | | | | | | | Implement __raw_readsb and __raw_writesb. Export __raw_reads[bwl] and __raw_writes[bwl] for use by modules. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Don't try to iounmap P2 segment addressesHaavard Skinnemoen2006-10-251-0/+2
| | | | | | | | | | | | While ioremap() will happily map a physical address through the P2 (uncached) segment when appropriate, iounmap() doesn't know how to handle those mappings. This patch makes iounmap() do the right thing, i.e. nothing, for such mappings. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Silence some compile warningsHaavard Skinnemoen2006-10-254-5/+5
| | | | | | | | Silence a few compile warnings which are basically harmless, but easy to fix. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Minor Makefile cleanupHaavard Skinnemoen2006-10-252-11/+14
| | | | | | | | | | | Don't generate listing by default, remove unused LIBGCC variable and rename generated disassembly and listing files to vmlinux.{s,lst}. Also make sure that files generated during the build are actually removed with make clean. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] IRQ: Fix AVR32 breakageHaavard Skinnemoen2006-10-113-9/+13
| | | | | | | | Make the necessary changes to AVR32 required by the irq regs stuff. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Allow renumbering of serial devicesHaavard Skinnemoen2006-10-044-18/+24
| | | | | | | | | | | | | Allow the board to remap actual USART peripheral devices to serial devices by calling at32_map_usart(hw_id, serial_line). This ensures that even though ATSTK1002 uses USART1 as the first serial port, it will still have a ttyS0 device. This also adds a board-specific early setup hook and moves the at32_setup_serial_console() call there from the platform code. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] atmel_serial: Pass fixed register mappings through platform_dataHaavard Skinnemoen2006-10-041-6/+27
| | | | | | | | | | | | | | | | | | | | | | | | | In order to initialize the serial console early, the atmel_serial driver had to do a hack where it compared the physical address of the port with an address known to be permanently mapped, and used it as a virtual address. This got around the limitation that ioremap() isn't always available when the console is being initalized. This patch removes that hack and replaces it with a new "regs" field in struct atmel_uart_data that the board-specific code can initialize to a fixed virtual mapping for platform devices where this is possible. It also initializes the DBGU's regs field with the address the driver used to check against. On AVR32, the "regs" field is initialized from the physical base address when this it can be accessed through a permanently 1:1 mapped segment, i.e. the P4 segment. If regs is NULL, the console initialization is delayed until the "real" driver is up and running and ioremap() can be used. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] at91_serial -> atmel_serial: Public definitionsHaavard Skinnemoen2006-10-041-2/+2
| | | | | | | | | | | Rename the following public definitions: * AT91_NR_UART -> ATMEL_MAX_UART * struct at91_uart_data -> struct atmel_uart_data * at91_default_console_device -> atmel_default_console_device Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] at91_serial -> atmel_serial: Platform device nameHaavard Skinnemoen2006-10-041-20/+20
| | | | | | | | | Rename the "at91_usart" platform driver "atmel_usart" and update platform devices accordingly. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] at91_serial -> atmel_serial: Kconfig symbolsHaavard Skinnemoen2006-10-041-3/+3
| | | | | | | | | | | Rename the following Kconfig symbols: * CONFIG_SERIAL_AT91 -> CONFIG_SERIAL_ATMEL * CONFIG_SERIAL_AT91_CONSOLE -> CONFIG_SERIAL_ATMEL_CONSOLE * CONFIG_SERIAL_AT91_TTYAT -> CONFIG_SERIAL_ATMEL_TTYAT Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] AVR32: Implement kernel_execveHaavard Skinnemoen2006-10-021-0/+14
| | | | | | | | | | | | | | | Move execve() into arch/avr32/kernel/sys_avr32.c, rename it to kernel_execve() and return the syscall return value directly without setting errno. This also gets rid of the __KERNEL_SYSCALLS__ stuff from unistd.h and expands #ifdef __KERNEL__ to cover everything in unistd.h except the __NR_foo definitions. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>