07 Feb, 2007

11 commits

  • Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • The "typename" field was obsoleted by the "name" field.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Currently KEXEC is in "Machine selection", SECCOMP, PM, APM are in
    "Executable file formats" menu. Move KEXEC and SECCOMP to "Kernel
    type" and PM, APM to new "Power management options" menu. Also
    replace "config PM" with kernel/power/Kconfig.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • This patch has added MACINT controls.
    They are necessary for VR4133 ethernet driver.

    Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • The old code was assuming that min_low_pfn was always 0. This
    means that platforms having a big hole at their memory start
    paid the price of wasting some memory for the allocation of
    unused entries in mem_map[].

    This patch prevents this waste.

    It introduces PHYS_OFFSET define which is the start of the
    physical memory and uses it wherever needed. Specially when
    converting physical/virtual addresses into virtual/physical
    ones.

    Currently all platforms defines PHYS_OFFSET to 0.

    Signed-off-by: Franck Bui-Huu
    Signed-off-by: Ralf Baechle

    Franck Bui-Huu
     
  • This patch makes a better usage of these two globals.
    'min_low_pfn' is now correctly setup for all configs, which
    allow us to rely on it in boot memory code init.

    Signed-off-by: Franck Bui-Huu
    Signed-off-by: Ralf Baechle

    Franck Bui-Huu
     
  • The 32-bit version and 64-bit version are almost equal. Unify them.
    This makes further improvements (for example, supporting CDEX, etc.)
    easier.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Current prom_free_prom_memory() implementations are almost same as
    free_init_pages(), or no-op. Make free_init_pages() extern (again)
    and make prom_free_prom_memory() use it.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Move I8259A_IRQ_BASE from asm/i8259.h to asm/mach-generic/irq.h and
    make it really customizable. And remove I8259_IRQ_BASE declared on
    some platforms. Currently only NEC_CMBVR4133 is using custom
    I8259A_IRQ_BASE value.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • The irq_base for {mips,rm7k,rm9k}_cpu_irq_init() are constant on all
    platforms and are same value on most platforms (0 or 16, depends on
    CONFIG_I8259). Define them in asm-mips/mach-generic/irq.h and make
    them customizable. This will save a few cycle on each CPU interrupt.

    A good side effect is removing some dependencies to MALTA in generic
    SMTC code.

    Although MIPS_CPU_IRQ_BASE is customizable, this patch changes irq
    mappings on DDB5477, EMMA2RH and MIPS_SIM, since really customizing
    them might cause some header dependency problem and there seems no
    good reason to customize it. So currently only VR41XX is using custom
    MIPS_CPU_IRQ_BASE value, which is 0 regardless of CONFIG_I8259.

    Testing this patch on those platforms is greatly appreciated. Thank
    you.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • rm9k_cpu_irq_disable() is unused since commit
    1603b5aca4f15b34848fb5594d0c7b6333b99144. Remove it.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     

05 Feb, 2007

2 commits


04 Feb, 2007

9 commits

  • That code doesn't do what its author apparently thought it would do...

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

    Al Viro
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] sd: udev accessing an uninitialized scsi_disk field results in a crash
    [SCSI] st: A MTIOCTOP/MTWEOF within the early warning will cause the file number to be incorrect
    [SCSI] qla4xxx: bug fixes
    [SCSI] Fix scsi_add_device() for async scanning

    Linus Torvalds
     
  • x86-64 is missing these:

    Signed-off-by: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     
  • The SN Altix platform does not conform to the IOSAPIC IRQ routing model.
    Add code in acpi_unregister_gsi() to check if (acpi_irq_model ==
    ACPI_IRQ_MODEL_PLATFORM) and return.

    Due to an oversight, this code was not added previously when
    similar code was added to acpi_register_gsi().

    http://marc.theaimsgroup.com/?l=linux-acpi&m=116680983430121&w=2

    Signed-off-by: John Keller
    Acked-by: Len Brown
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    John Keller
     
  • Andrew Vasquez is reporting as-iosched oopses and a 65% throughput
    slowdown due to the recent special-casing of direct-io against
    blockdevs. We don't know why either of these things are occurring.

    The patch minimally reverts us back to the 2.6.19 code for a 2.6.20
    release.

    Cc: Andrew Vasquez
    Cc: Ken Chen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • We went and named them __NR_sys_foo instead of __NR_foo.

    It may be too late to change this, but we can at least add the proper names
    now.

    Signed-off-by: Mike Frysinger
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • smc911x_phy_configure's error handling unconditionally unlocks the
    spinlock even if it wasn't locked. Patch fixes it.

    Signed-off-by: Peter Korsgaard
    Cc: Jeff Garzik
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Korsgaard
     
  • This patch fixes up ia64 kexec support for HP rx2620 hardware. It does
    this by skipping migration of already disabled irqs. This is most likely a
    problem on other ia64 platforms as well, but I've only been able to
    reproduce it on one machine so far.

    The full story is that handle_bad_irq() gets invoked before starting the
    new kernel without this patch. This seems to happen when fixup_irqs()
    calls generic_handle_irq() on already migrated (and disabled) irqs. So by
    avoiding migration of disabled irqs we stay away of handle_bad_irq().

    The code has been tested on three different ia64 machines, all with good
    results. It is possible to trigger the same bug by offlining a processor
    using echo 0 > /sys/devices/system/cpu/cpuX/online.

    More detailed information is available in the following mail thread:
    http://lists.osdl.org/pipermail/fastboot/2007-January/thread.html#5774

    Signed-off-by: Magnus Damm
    Acked-by: Simon Horman
    Acked-by: Zou, Nanhai
    Acked-by: Jay Lan
    Acked-by: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     
  • An AIO bug was reported that sleeping function is being called in softirq
    context:

    BUG: warning at kernel/mutex.c:132/__mutex_lock_common()
    Call Trace:
    [] __mutex_lock_slowpath+0x640/0x6c0
    [] mutex_lock+0x20/0x40
    [] flush_workqueue+0xb0/0x1a0
    [] __put_ioctx+0xc0/0x240
    [] aio_complete+0x2f0/0x420
    [] finished_one_bio+0x200/0x2a0
    [] dio_bio_complete+0x1c0/0x200
    [] dio_bio_end_aio+0x60/0x80
    [] bio_endio+0x110/0x1c0
    [] __end_that_request_first+0x180/0xba0
    [] end_that_request_chunk+0x30/0x60
    [] scsi_end_request+0x50/0x300 [scsi_mod]
    [] scsi_io_completion+0x200/0x8a0 [scsi_mod]
    [] sd_rw_intr+0x330/0x860 [sd_mod]
    [] scsi_finish_command+0x100/0x1c0 [scsi_mod]
    [] scsi_softirq_done+0x230/0x300 [scsi_mod]
    [] blk_done_softirq+0x160/0x1c0
    [] __do_softirq+0x200/0x240
    [] do_softirq+0x70/0xc0

    See report: http://marc.theaimsgroup.com/?l=linux-kernel&m=116599593200888&w=2

    flush_workqueue() is not allowed to be called in the softirq context.
    However, aio_complete() called from I/O interrupt can potentially call
    put_ioctx with last ref count on ioctx and triggers bug. It is simply
    incorrect to perform ioctx freeing from aio_complete.

    The bug is trigger-able from a race between io_destroy() and aio_complete().
    A possible scenario:

    cpu0 cpu1
    io_destroy aio_complete
    wait_for_all_aios { __aio_put_req
    ... ctx->reqs_active--;
    if (!ctx->reqs_active)
    return;
    }
    ...
    put_ioctx(ioctx)

    put_ioctx(ctx);
    __put_ioctx
    bam! Bug trigger!

    The real problem is that the condition check of ctx->reqs_active in
    wait_for_all_aios() is incorrect that access to reqs_active is not
    being properly protected by spin lock.

    This patch adds that protective spin lock, and at the same time removes
    all duplicate ref counting for each kiocb as reqs_active is already used
    as a ref count for each active ioctx. This also ensures that buggy call
    to flush_workqueue() in softirq context is eliminated.

    Signed-off-by: "Ken Chen"
    Cc: Zach Brown
    Cc: Suparna Bhattacharya
    Cc: Benjamin LaHaise
    Cc: Badari Pulavarty
    Cc:
    Acked-by: Jeff Moyer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ken Chen
     

03 Feb, 2007

15 commits


02 Feb, 2007

3 commits