08 Jan, 2008

1 commit

  • This was writeable in 2.6.23 but the cpuidle merge made it read-only. But
    some people's scripts (ie: Mark's) were writing to it.

    As an unhappy compromise, make max_cstate writeable again if the kernel was
    configured without CONFIG_CPU_IDLE.

    http://bugzilla.kernel.org/show_bug.cgi?id=9683

    Signed-off-by: Venkatesh Pallipadi
    Cc: Mark Lord
    Cc: Arjan van de Ven
    Cc: Ingo Molnar
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Venki Pallipadi
     

07 Jan, 2008

1 commit

  • This reverts commit ac40532ef0b8649e6f7f83859ea0de1c4ed08a19, which gets
    us back the original cleanup of 6f5391c283d7fdcf24bf40786ea79061919d1e1d.

    It turns out that the bug that was triggered by that commit was
    apparently not actually triggered by that commit at all, and just the
    testing conditions had changed enough to make it appear to be due to it.

    The real problem seems to have been found by Peter Osterlund:

    "pktcdvd sets it [block device size] when opening the /dev/pktcdvd
    device, but when the drive is later opened as /dev/scd0, there is
    nothing that sets it back. (Btw, 40944 is possible if the disk is a
    CDRW that was formatted with "cdrwtool -m 10236".)

    The problem is that pktcdvd opens the cd device in non-blocking mode
    when pktsetup is run, and doesn't close it again until pktsetup -d is
    run. The effect is that if you meanwhile open the cd device,
    blkdev.c:do_open() doesn't call bd_set_size() because
    bdev->bd_openers is non-zero."

    In particular, to repeat the bug (regardless of whether commit
    6f5391c283d7fdcf24bf40786ea79061919d1e1d is applied or not):

    " 1. Start with an empty drive.
    2. pktsetup 0 /dev/scd0
    3. Insert a CD containing an isofs filesystem.
    4. mount /dev/pktcdvd/0 /mnt/tmp
    5. umount /mnt/tmp
    6. Press the eject button.
    7. Insert a DVD containing a non-writable filesystem.
    8. mount /dev/scd0 /mnt/tmp
    9. find /mnt/tmp -type f -print0 | xargs -0 sha1sum >/dev/null
    10. If the DVD contains data beyond the physical size of a CD, you
    get I/O errors in the terminal, and dmesg reports lots of
    "attempt to access beyond end of device" errors."

    which in turn is because the nested open after the media change won't
    cause the size to be set properly (because the original open still holds
    the block device, and we only do the bd_set_size() when we don't have
    other people holding the device open).

    The proper fix for that is probably to just do something like

    bdev->bd_inode->i_size = (loff_t)get_capacity(disk)<
    Cc: James Bottomley
    Cc: Matthew Wilcox
    Cc: Ingo Molnar
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

05 Jan, 2008

1 commit

  • The SCSI SRP transport class currently iterates over all children
    devices of the host that is being removed in srp_remove_host(). However,
    not all of those children were created by the SRP transport, and
    removing them will cause corruption and an oops when their creator tries
    to remove them.

    Signed-off-by: David Dillow
    Acked-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    Dave Dillow
     

04 Jan, 2008

13 commits

  • The DLE handling in i4l-audio seems to be broken.

    It produces spurious DLEs so asterisk 1.2.24 with chan_modem_i4l
    gets irritated, the error message is:
    "chan_modem_i4l.c:450 i4l_read: Value of escape is ^ (17)".
    -> There shouldn't be a DLE-^.
    If a spurious DLE-ETX occurs, the audio connection even dies.
    I use a "AVM Fritz!PCI" isdn card.

    I found two issues that only appear if ISDN_AUDIO_SKB_DLECOUNT(skb) > 0:
    - The loop in isdn_tty.c:isdn_tty_try_read() doesn't escape a DLE if it's
    the last character.

    - The loop in isdn_common.c:isdn_readbchan_tty() doesn't copy its characters,
    it only remembers the last one ("last = *p;").

    Compare it with the loop in isdn_common.c:isdn_readbchan(), that *does*
    copy them ("*cp++ = *p;") correctly.
    The special handling of the "last" character made it more difficult.
    I compared it to linux-2.4.19: There was no "last"-handling and both loops
    did escape and copy all characters correctly.

    Signed-off-by: Matthias Goebl
    Signed-off-by: David S. Miller

    Matthias Goebl
     
  • The ISDN tty layer doesn't produce a 'NO CARRIER' message after hangup.

    I suppose it broke when tty_buffer_flush() has been added to
    tty_ldisc_flush() in the commit below.

    For isdn_tty_modem_result(RESULT_NO_CARRIER..) the
    message inserted via isdn_tty_at_cout() -> tty_insert_flip_char()
    is flushed immediately by tty_ldisc_flush() -> tty_buffer_flush().
    More annoyingly, the audio abort sequence DLE-ETX is also lost.

    This patch fixes only active audio connections, because I assume that nobody
    changes the line discipline for audio.

    For non-audio connections the problem remains.
    Maybe we can remove the tty_ldisc_flush() in isdn_tty_modem_result()
    at all because it's done at tty_close?

    On Mon, May 07, 2007 at 04:05:57PM -0500, Paul Fulghum wrote:
    > Flush the tty flip buffer when the line discipline
    > input queue is flushed, including the user call
    > tcflush(TCIFLUSH/TCIOFLUSH). This prevents unexpected
    > stale data after a user application calls tcflush().
    >
    > Cc: Alan Cox
    > Cc: Antonino Ingargiola
    > Signed-off-by: Paul Fulghum
    >
    > --- a/drivers/char/tty_io.c 2007-05-04 05:46:55.000000000 -0500
    > +++ b/drivers/char/tty_io.c 2007-05-05 03:23:46.000000000 -0500
    > @@ -1240,6 +1263,7 @@ void tty_ldisc_flush(struct tty_struct *
    > ld->flush_buffer(tty);
    > tty_ldisc_deref(ld);
    > }
    > + tty_buffer_flush(tty);
    [..]

    Signed-off-by: Matthias Goebl
    Signed-off-by: David S. Miller

    Matthias Goebl
     
  • Error code should be set to EINVAL instead of ENODEV if !queue_work().
    There's another call of queue_work() which may set err to EINVAL.

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • 1) close should do napi_disable() not napi_enable
    2) remove unused local var 'todo'

    Signed-off-by: David S. Miller

    David S. Miller
     
  • skb->truesize was not being incremented at all to
    reflect the page based data added to RX SKBs.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • This reverts changeset fa4f0774d7c6cccb4d1fda76b91dd8eddcb2dd6a
    ([CASSINI]: dont touch page_count) because it breaks the driver.

    The local page counting added by this changeset did not account
    for the asynchronous page count changes done by kfree_skb()
    and friends.

    The change adds extra atomics and on top of it all appears to be
    totally unnecessary as well.

    Signed-off-by: David S. Miller
    Acked-by: Nick Piggin

    David S. Miller
     
  • Here's proposed fix for RX checksum handling in cassini; it affects
    little-endian working with half-duplex gigabit, but obviously needs
    testing on big-endian too.

    The problem is, we need to convert checksum to fixed-endian *before*
    correcting for (unstripped) FCS. On big-endian it won't matter
    (conversion is no-op), on little-endian it will, but only if FCS is
    not stripped by hardware; i.e. in half-duplex gigabit mode when
    ->crc_size is set.

    cassini.c part is that fix, cassini.h one consists of trivial
    endianness annotations. With that applied the sucker is endian-clean,
    according to sparse.

    Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/srp: Fix list corruption/oops on module reload

    Linus Torvalds
     
  • * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
    hwmon: (w83627ehf) Be more careful when changing VID input level

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] scsi_sysfs: restore prep_fn when ULD is removed

    Linus Torvalds
     
  • Add a missing call to srp_remove_host() in srp_remove_one() so that we
    don't leak SRP transport class list entries.

    Tested-by: David Dillow
    Acked-by: FUJITA Tomonori
    Signed-off-by: Roland Dreier

    David Dillow
     

03 Jan, 2008

3 commits

  • The VID input level change has been reported to cause trouble. Be more
    careful in this respect:
    * Only change the level on the W83627EHF/EHG. The W83627DHG is more
    complex in this respect.
    * Don't change the level if the VID pins are in output mode.
    * Only set the level to TTL if VRM 9.x is used.

    Signed-off-by: Jean Delvare
    Signed-off-by: Mark M. Hoffman

    Jean Delvare
     
  • This reverts commit 6f5391c283d7fdcf24bf40786ea79061919d1e1d ("[SCSI]
    Get rid of scsi_cmnd->done") that was supposed to be a cleanup commit,
    but apparently it causes regressions:

    Bug 9370 - v2.6.24-rc2-409-g9418d5d: attempt to access beyond end of device
    http://bugzilla.kernel.org/show_bug.cgi?id=9370

    this patch should be reintroduced in a more split-up form to make
    testing of it easier.

    Signed-off-by: Ingo Molnar
    Acked-by: Matthew Wilcox
    Cc: James Bottomley
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • A recent bug report:

    http://bugzilla.kernel.org/show_bug.cgi?id=9674

    Was caused because the ULDs now set their own prep functions, but
    don't necessarily reset the prep function back to the SCSI default
    when they are removed. This leads to panics if commands are sent to
    the device after the module is removed because the prep_fn is still
    pointing to the old module code. The fix for this is to implement a
    bus remove method that resets the prep_fn pointer correctly before
    calling the ULD specific driver remove method.

    Signed-off-by: James Bottomley

    James Bottomley
     

01 Jan, 2008

2 commits


29 Dec, 2007

1 commit

  • We're exporting an __init function, oops :-)

    The core issue here is that add_preferred_console() is marked
    as __init, this makes it impossible to invoke this thing from
    a driver probe routine which is what the Sparc serial drivers
    need to do.

    There is no harm in dropping the __init marker. This code will
    actually work properly when invoked from a modular driver,
    except that init will probably not pick up the console change
    without some other support code.

    Then we can drop the __init from sunserial_console_match()
    and we're no longer exporting an __init function to modules.

    Signed-off-by: David S. Miller

    David S. Miller
     

28 Dec, 2007

3 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    [CRYPTO] padlock: Fix spurious ECB page fault

    Linus Torvalds
     
  • It appears that some PCI-E bridges do the wrong thing in the presense of
    CRS Software Visibility and MMCONFIG. In particular, it looks like an
    ATI bridge (device ID 7936) will return 0001 in the vendor ID field of
    any bridged devices indefinitely.

    Not enabling CRS SV avoids the problem, and as we currently do not
    really make good use of the feature anyway (we just time out rather than
    do any threaded discovery as suggested by the CRS specs), we're better
    off just not enabling it.

    This should fix a slew of problem reports with random devices (generally
    graphics adapters or fairly high-performance networking cards, since it
    only affected PCI-E) not getting properly recognized on these AMD systems.

    If we really want to use CRS-SV, we may end up eventually needing a
    whitelist of systems where this should be enabled, along with some kind
    of "pcibios_enable_crs()" query to call the system-specific code.

    Suggested-by: Loic Prylli
    Tested-by: Kai Ruhnau
    Cc: Matthew Wilcox
    Cc: Greg Kroah-Hartman
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The xcryptecb instruction always processes an even number of blocks so
    we need to ensure th existence of an extra block if we have to process
    an odd number of blocks.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

27 Dec, 2007

2 commits


26 Dec, 2007

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
    cmd64x: fix hwif->chipset setup
    MAINTAINERS: update ide-cd entry
    ide-cd: fix 'ireason' reporting in cdrom_pc_intr()
    ide-cd: fix error message in cdrom_pc_intr()
    ide-cd: add error message for DMA error to cdrom_read_intr()
    ide-cd: fix error messages in cdrom_write_intr()
    ide-cd: add missing 'ireason' masking to cdrom_write_intr()
    ide-cd: fix error messages in cdrom_{read,write}_check_ireason()
    ide-cd: use ide_cd_release() in ide_cd_probe()
    ide-cd: fix ACER/AOpen 24X CDROM speed reporting on big-endian machines
    ide-cd: fix SAMSUNG CD-ROM SCR-3231 quirk
    drivers/ide/: Spelling fixes

    Linus Torvalds
     

24 Dec, 2007

12 commits