12 Feb, 2007

40 commits

  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] signal: do not inline handle_signal()
    [MIPS] signal: do not use save_static_function() anymore
    [MIPS] signal32: no need to save c0_status register in setup_sigcontext32()
    [MIPS] signal32: reduce {setup,restore}_sigcontext32 sizes
    [MIPS] signal: factorize debug code
    [MIPS] signal: test return value of install_sigtramp()
    [MIPS] signal32: remove duplicate code
    [MIPS] signal: clean up sigframe structure
    [MIPS] signal: do not inline functions in signal-common.h
    [MIPS] signals: reduce {setup,restore}_sigcontext sizes
    [MIPS] Fix warning in get_user when fetching pointer object from userspace.
    [MIPS] Fix eth2 platform device id for jaguar_atx and ocelot_3 platforms
    [MIPS] JMR3927 and RBTX49x7 support little endian
    [MIPS] RBTX49x7: declare prom_getcmdline()
    [MIPS] RTLX: Sprinkle device model code into code to make udev happier.
    [MIPS] VPE: Sprinkle device model code into code to make udev happier.

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: Update defconfig.
    [SPARC64]: Add PCI MSI support on Niagara.
    [SPARC64] IRQ: Use irq_desc->chip_data instead of irq_desc->handler_data
    [SPARC64]: Add obppath sysfs attribute for SBUS and PCI devices.
    [PARTITION]: Add whole_disk attribute.

    Linus Torvalds
     
  • Martin Schwidefsky wrote:
    "s390 does not even need (in|out)b(_p|). I wondered what else from
    io.h do we not need. The answer is: almost nothing. With the devres
    patch from Al and the dma-mapping patch from Heiko we can get rid of
    iomem and all associated definitions."

    So we'll just need to replace NO_IOPORT with NO_IOMEM in Kconfig and
    kill arch/s390/mm/ioremap.c.

    BTW, there's an annoying bit of junk in there - IO_SPACE_LIMIT. We
    only need it for /proc/ioports, which AFAICS shouldn't even be there
    on s390 (or uml). OTOH, removing that thing would mean a user-visible
    change - we go from "empty file in /proc" to "no such file in /proc"...

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • * Split the implementation-agnostic stuff in separate files.
    * Make sure that targets using non-default request_irq() pull
    kernel/irq/devres.o
    * Introduce new symbols (HAS_IOPORT and HAS_IOMEM) defaulting to positive;
    allow architectures to turn them off (we needed these symbols anyway for
    dependencies of quite a few drivers).
    * protect the ioport-related parts of lib/devres.o with CONFIG_HAS_IOPORT.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Catch illegally nested kmap_atomic()s even if the page that is mapped by
    the 'inner' instance is from lowmem.

    This avoids spuriously zapped kmap-atomic ptes and turns hard to find
    crashes into clear asserts at the bug site.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Extend the set of "__attribute__" shortcut macros, and remove identical
    (and now superfluous) definitions from a couple of source files.

    based on a page at robert love's blog:

    http://rlove.org/log/2005102601

    extend the set of shortcut macros defined in compiler-gcc.h with the
    following:

    #define __packed __attribute__((packed))
    #define __weak __attribute__((weak))
    #define __naked __attribute__((naked))
    #define __noreturn __attribute__((noreturn))
    #define __pure __attribute__((pure))
    #define __aligned(x) __attribute__((aligned(x)))
    #define __printf(a,b) __attribute__((format(printf,a,b)))

    Once these are in place, it's up to subsystem maintainers to decide if they
    want to take advantage of them. there is already a strong precedent for
    using shortcuts like this in the source tree.

    The ones that might give people pause are "__aligned" and "__printf", but
    shortcuts for both of those are already in use, and in some ways very
    confusingly. note the two very different definitions for a macro named
    "ALIGNED":

    drivers/net/sgiseeq.c:#define ALIGNED(x) ((((unsigned long)(x)) + 0xf) & ~(0xf))
    drivers/scsi/ultrastor.c:#define ALIGNED(x) __attribute__((aligned(x)))

    also:

    include/acpi/platform/acgcc.h:
    #define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))

    Given the precedent, then, it seems logical to at least standardize on a
    consistent set of these macros.

    Signed-off-by: Robert P. J. Day
    Acked-by: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     
  • Part of long forgotten patch
    http://groups.google.com/group/fa.linux.kernel/msg/e98e941ce1cf29f6?dmode=source
    Since then, m32r grabbed two copies.

    Leave s390 copy because of important absence of CONFIG_VT, but remove
    references to non-existent timerlist_lock. ia64 also loses timerlist_lock.

    Signed-off-by: Alexey Dobriyan
    Acked-by: Martin Schwidefsky
    Cc: Andi Kleen
    Cc: "Luck, Tony"
    Cc: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill Korotaev
     
  • fix-rmmod-read-write-races-in-proc-entries.patch doesn't want dynamically
    allocated ->proc_fops, because it will set it to NULL at module unload time.

    Regardless of module status, switch to statically allocated ->proc_fops which
    leads to simpler code without wrappers.

    AFAICS, also fix the following bug: "sn_force_interrupt" proc entry set
    ->write for itself, but was created with 0444 permissions. Change to 0644.

    Signed-off-by: Alexey Dobriyan
    Cc: Al Viro
    Cc: "Eric W. Biederman"
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • I noticed that almost all architectures implemented exactly the same
    sys32_sysinfo... except parisc, where a bug was to be found in handling of
    the uptime. So let's remove a whole whack of code for fun and profit.
    Cribbed compat_sys_sysinfo from x86_64's implementation, since I figured it
    would be the best tested.

    This patch incorporates Arnd's suggestion of not using set_fs/get_fs, but
    instead extracting out the common code from sys_sysinfo.

    Cc: Christoph Hellwig
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     
  • Bug: pnx8550 code creates directory but resets ->nlink to 1.

    create_proc_entry() et al will correctly set ->nlink for you.

    Signed-off-by: Alexey Dobriyan
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Jeff Dike
    Cc: Corey Minyard
    Cc: Alan Cox
    Cc: Kyle McMartin
    Cc: Martin Schwidefsky
    Cc: Greg KH
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Delete the few remaining unnecessary calls to memset(0) after a call to
    kzalloc().

    Signed-off-by: Robert P. J. Day
    Cc: Andi Kleen
    Cc: Dmitry Torokhov
    Cc: Adam Belay
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     
  • Use attribute(weak).

    Signed-off-by: Alexey Dobriyan
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Replace appropriate pairs of "kmem_cache_alloc()" + "memset(0)" with the
    corresponding "kmem_cache_zalloc()" call.

    Signed-off-by: Robert P. J. Day
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Cc: Roland McGrath
    Cc: James Bottomley
    Cc: Greg KH
    Acked-by: Joel Becker
    Cc: Steven Whitehouse
    Cc: Jan Kara
    Cc: Michael Halcrow
    Cc: "David S. Miller"
    Cc: Stephen Smalley
    Cc: James Morris
    Cc: Chris Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     
  • The line discipline numbers N_* are currently defined for each architecture
    individually, but (except for a seeming mistake) identically, in
    asm/termios.h. There is no obvious reason why these numbers should be
    architecture specific, nor any apparent relationship with the termios
    structure. The total number of these, NR_LDISCS, is defined in linux/tty.h
    anyway. So I propose the following patch which moves the definitions of
    the individual line disciplines to linux/tty.h too.

    Three of these numbers (N_MASC, N_PROFIBUS_FDL, and N_SMSBLOCK) are unused
    in the current kernel, but the patch still keeps the complete set in case
    there are plans to use them yet.

    Signed-off-by: Tilman Schmidt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tilman Schmidt
     
  • 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
    Cc: Al Viro
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean-Paul Saman
     
  • Use ARRAY_SIZE macro already defined in linux/kernel.h

    Signed-off-by: Ahmed S. Darwish
    Cc: Miles Bader
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ahmed S. Darwish
     
  • This patch fixes some missing ptrace bits on x86_64. PTRACE_ARCH_PRCTL is
    hooked up and implemented. This required generalizing arch_prctl_skas
    slightly to take a task_struct to modify. Previously, it always operated on
    current.

    Reading and writing the debug registers is also enabled by un-ifdefing the
    code that implements that. It turns out that x86_64 is identical to i386, so
    the same code can be used.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • x86_64 needs some TLS fixes. What was missing was remembering the child
    thread id during clone and stuffing it into the child during each context
    switch.

    The %fs value is stored separately in the thread structure since the host
    controls what effect it has on the actual register file. The host also needs
    to store it in its own thread struct, so we need the value kept outside the
    register file.

    arch_prctl_skas was fixed to call PTRACE_ARCH_PRCTL appropriately. There is
    some saving and restoring of registers in the ARCH_SET_* cases so that the
    correct set of registers are changed on the host and restored to the process
    when it runs again.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • The startup code panics a lot if anything goes wrong early on. This is wrong
    for several reasons, like the kernel isn't running, so you can't really be
    calling into it yet, but the harm comes from useful error messages being
    trapped in the printk ring where no one will ever see them.

    This patch changes these panics to perror and printf in wrappers which also
    exit. Normal, informational, prints are also wrapped so that fflush(stdout)
    is called after each one. This is so the output appears in the correct
    sequence in the event of an error.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Comment the lack of locking of data that's set up once at boot time.

    Also fixed a couple of bogus printks.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Formatting fixes in the register handling code.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Comment the lack of locking of the elf data extracted from the ELF headers
    passed to UML.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Add an error message when two umids are put on the command line.

    umid.h is kind of pointless since it only declares one thing, and that
    is already declared in os.h.

    Commented the lack of locking of some data in os-Linux/umid.h.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Fix formatting in the sigio code.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Comment the use of a mysterious-looking lock.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Tidying the irq code -
    make a variable static
    activate_fd can call kmalloc directly since it's now kernel code
    added a no-locking comment
    fixed a style violation

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Fix a bunch of style violations in mem.c.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • We shouldn't be using the os wrappers from os code - we can use libc directly.
    This patch replaces wrapper calls with libc calls.

    It turns out that os_sigio_async had only one caller, which was in startup.c,
    so that function is moved there and its name changed.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Some style fixes in startup.c.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Add a couple of comments about some non-locked data.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Locking comments and emacs comment removal in the low-level memory and
    temp file code.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Some small locking and formatting fixes in the ubd driver.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Replace global queue and lock with per-device queues and locks. Mostly a
    straightforward replacement of ubd_io_lock with dev->lock and ubd_queue with
    dev->queue.

    Complications -
    There was no way to get a request struct (and queue) from the
    structure sent to the io_thread, so a pointer to the request was
    added. This is needed in ubd_handler in order to kick do_ubd_request
    to process another request.
    Queue initialization is moved from ubd_init to ubd_add.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • CONFIG_HOST_TASK_SIZE doesn't exist any more.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • kstack_depth_to_print can be made const.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • A bunch of the signal handlers can be made static.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • syscall_index and next_syscall_index turn out not to be used.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • It turns out that resource.c isn't needed.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • prev_nsecs and delta need to be arrays, and indexed by CPU number.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • We need to initialize lists properly.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike