09 Jun, 2009

7 commits


08 Jun, 2009

9 commits


07 Jun, 2009

7 commits


06 Jun, 2009

13 commits

  • OK, that's probably the easiest way to do that, as much as I don't like it...
    Since iget() et.al. will not accept I_FREEING (will wait to go away
    and restart), and since we'd better have serialization between new/free
    on fs data structures anyway, we can afford simply skipping I_FREEING
    et.al. in insert_inode_locked().

    We do that from new_inode, so it won't race with free_inode in any interesting
    ways and it won't race with iget (of any origin; nfsd or in case of fs
    corruption a lookup) since both still will wait for I_LOCK.

    Reviewed-by: "Theodore Ts'o"
    Acked-by: Jan Kara
    Tested-by: David Watson
    Signed-off-by: Al Viro

    Al Viro
     
  • The nobh_truncate_page() function is used by ext2, exofs, and jfs. Of
    these three, only ext2 and jfs's get_block() function pays attention
    to bh->b_size --- which is normally always the filesystem blocksize
    except when the get_block() function is called by either
    mpage_readpage(), mpage_readpages(), or the direct I/O routines in
    fs/direct_io.c.

    Unfortunately, nobh_truncate_page() does not initialize map_bh before
    calling the filesystem-supplied get_block() function. So ext2 and jfs
    will try to calculate the number of blocks to map by taking stack
    garbage and shifting it left by inode->i_blkbits. This should be
    *mostly* harmless (except the filesystem will do some unnneeded work)
    unless the stack garbage is less than filesystem's blocksize, in which
    case maxblocks will be zero, and the attempt to find out whether or
    not the filesystem has a hole at a given logical block will fail, and
    the page cache entry might not get zero'ed out.

    Also if the stack garbage in in map_bh->state happens to have the
    BH_Mapped bit set, there could be an attempt to call readpage() on a
    non-existent page, which could cause nobh_truncate_page() to return an
    error when it should not.

    Fix this by initializing map_bh->state and map_bh->size.

    Fortunately, it's probably fairly unlikely that ext2 and jfs users
    mount with nobh these days.

    Signed-off-by: "Theodore Ts'o"
    Cc: Dave Kleikamp
    Cc: linux-fsdevel@vger.kernel.org
    Signed-off-by: Al Viro

    Theodore Ts'o
     
  • Some ALi devices report simplex if they have been disabled and re-enabled, and
    restoring the byte does not work. Ignore it - the needed supporting logic is
    already present for the SATA ULi ports.

    Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: Fix oops and use after free during space balancing
    Btrfs: set device->total_disk_bytes when adding new device

    Linus Torvalds
     
  • DaVinci clock support has been updated in mainline.
    Update clock names accordingly.

    Signed-off-by: Kevin Hilman
    Acked-by: David Brownell
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse
    Signed-off-by: Linus Torvalds

    Kevin Hilman
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    ata_piix: Add HP Compaq nc6000 to the broken poweroff list
    ahci: add warning messages for hp laptops with broken suspend
    pata_efar: fix PIO2 underclocking
    pata_legacy: wait for async probing

    Linus Torvalds
     
  • HP Compaq nc6000 suffers from the double disk spindown issue.
    Add it to the broken poweroff DMI list.

    Signed-off-by: Ville Syrjala
    Signed-off-by: Jeff Garzik

    Ville Syrjala
     
  • Harddisks on HP dv[4-6] and HDX18 fail to come online after resume on
    earlier BIOSen. Fortunately, HP recently released BIOS updates for
    all machines to fix the issue. Detect old BIOSen, warn the user to
    update BIOS on boot and suspend attempts and fail suspend.

    Kudos to all the bug reporters.

    Signed-off-by: Tejun Heo
    Cc: kernel.org@epperson.homelinux.net
    Cc: emisca@gmail.com
    Cc: Gadi Cohen
    Cc: Paul Swanson
    Cc: s@ourada.org
    Cc: Trevor Davenport
    Cc: corruptor1972
    Cc: Victoria Wilson
    Cc: khiraly
    Cc: Sean
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Fix the PIO mode 2 using mode 0 timings -- this driver should enable the
    fast timing bank starting with PIO2, just like the PIIX/ICH drivers do.
    Also, fix/rephrase some comments while at it.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylyov
     
  • The basic problem here that pata_legacy attaches the host, sees if it found
    any devices and detaches it if none were found. With async probing, it's not
    waiting until discovery is finished before deciding it has no devices and
    trying the detach leading to this warning:

    ata1: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
    ------------[ cut here ]------------
    WARNING: at drivers/ata/libata-core.c:6222 ata_host_detach+0x75/0x90()
    Modules linked in:
    Pid: 1, comm: swapper Not tainted 2.6.30-rc7 #1
    Call Trace:
    [] ? ata_host_detach+0x75/0x90
    [] ? ata_host_detach+0x75/0x90
    [] ? warn_slowpath_common+0x45/0x80
    [] ? warn_slowpath_null+0xa/0x10
    [] ? ata_host_detach+0x75/0x90
    [] ? legacy_init+0x44e/0x87f
    [] ? legacy_init+0x0/0x87f
    [] ? _stext+0x21/0x140
    [] ? proc_register+0x2f/0x190
    [] ? create_proc_entry+0x5c/0xc0
    [] ? register_irq_proc+0x6e/0x90
    [] ? kernel_init+0x6e/0xbf
    [] ? kernel_init+0x0/0xbf
    [] ? kernel_thread_helper+0x7/0x10
    ---[ end trace ef1ee36e873ae3a0 ]---

    Because it detaches before the probe is complete.

    One way to fix it would be to put an async_synchronize_full() before looking
    for devices, which this patch does. A better way might be to separate libata
    into its own domain and only wait for that.

    Reported-by: Mikael Pettersson
    Signed-off-by: James Bottomley
    Signed-off-by: Jeff Garzik

    James Bottomley
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] powernow-k8: check space_id of _PCT registers to be FFH

    Linus Torvalds
     
  • The powernow-k8 driver checks to see that the Performance Control/Status
    Registers are declared as FFH (functional fixed hardware) by the BIOS.
    However, this check got broken in the commit:
    0e64a0c982c06a6b8f5e2a7f29eb108fdf257b2f
    [CPUFREQ] checkpatch cleanups for powernow-k8

    Fix based on an original patch from Naga Chumbalkar.

    Signed-off-by: Naga Chumbalkar
    Cc: Mark Langsdorf
    Signed-off-by: Dave Jones

    Dave Jones
     
  • This reverts commit 6c51d1cfa0a370b48a157163340190cf5fd2346b, which
    apparently causes DRI initialization failures on Radeons.

    Reported-by: Markus Trippelsdorf
    Requested-by: Dave Airlie
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

05 Jun, 2009

4 commits

  • The ivtv stream buffers may be for receive or for send but the attached
    sg handle is always destined cpu->device. We flush it correctly but the
    allocation is wrongly done with the same type as the buffers.

    See bug: http://bugzilla.kernel.org/show_bug.cgi?id=13385

    (Note this doesn't close the bug - it fixes the ivtv part and in turn
    the logging next shows up some rather alarming DMA sg list warnings in
    libata)

    Signed-off-by: Alan Cox
    Acked-by: Hans Verkuil
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Commit 95a3540da9c81a5987be810e1d9a83640a366bd5 ("ptrace_detach: the wrong
    wakeup breaks the ERESTARTxxx logic") removed the "extra"
    wake_up_process() from ptrace_detach(), but as Jan pointed out this breaks
    the compatibility.

    I believe the changelog is right and this wake_up() is wrong in many
    ways, but GDB assumes that ptrace(PTRACE_DETACH, child, 0, 0) always
    wakes up the tracee.

    Despite the fact this breaks SIGNAL_STOP_STOPPED/group_stop_count logic,
    and despite the fact this wake_up_process() can break another
    assumption: PTRACE_DETACH with SIGSTOP should leave the tracee in
    TASK_STOPPED case. Because the untraced child can dequeue SIGSTOP and
    call do_signal_stop() before ptrace_detach() calls wake_up_process().

    Revert this change for now. We need some fixes even if we we want to keep
    the current behaviour, but these fixes are not for 2.6.30.

    Signed-off-by: Oleg Nesterov
    Acked-by: Roland McGrath
    Cc: Jan Kratochvil
    Cc: Denys Vlasenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • The checking of CONFIG_FRAME_WARN in the top level Makefile forgot to
    actually derefence the variable thus leading to an always true check.

    Signed-off-by: Mike Frysinger
    Cc: Andi Kleen
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • The "trace || CLONE_PTRACE" check in tracehook_report_clone() is not right,

    - If the untraced task does clone(CLONE_PTRACE) the new child is not traced,
    we must not queue SIGSTOP.

    - If we forked the traced task, but the tracer exits and untraces both the
    forking task and the new child (after copy_process() drops tasklist_lock),
    we should not queue SIGSTOP too.

    Change the code to check task_ptrace() != 0 instead. This is still racy, but
    the race is harmless.

    We can race with another tracer attaching to this child, or the tracer can
    exit and detach in parallel. But giwen that we didn't do wake_up_new_task()
    yet, the child must have the pending SIGSTOP anyway.

    Signed-off-by: Oleg Nesterov
    Acked-by: Roland McGrath
    Cc: Christoph Hellwig
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov