23 Aug, 2007

11 commits

  • Avoid futex_unlock_pi returning -EFAULT (which results in deadlock), by
    clearing uval before jumping to retry_locked.

    Signed-off-by: John Stultz
    Acked-by: Steven Rostedt
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    john stultz
     
  • I couldn't find any memory policy documentation in the Documentation
    directory, so here is my attempt to document it.

    There's lots more that could be written about the internal design--including
    data structures, functions, etc. However, if you agree that this is better
    that the nothing that exists now, perhaps it could be merged. This will
    provide a baseline for updates to document the many policy patches that are
    currently being worked.

    Signed-off-by: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: Andi Kleen
    Cc: Michael Kerrisk
    Acked-by: Rob Landley
    Acked-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • This patch fixes an off-by-one in a BUG_ON() spotted by the Coverity
    checker.

    Signed-off-by: Adrian Bunk
    Cc: Amy Griffis
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Fix up the maintainers info in the tpm drivers. Kylene will be out for
    some time, so copying the sourceforge list is the best way to get some
    attention.

    Cc: Marcel Selhorst
    Cc: Kylene Jo Hall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kent Yoder
     
  • Booting SPARSEMEM on NUMA systems trips a BUG in page_alloc.c:

    Initializing HighMem for node 0 (00038000:00100000)
    Initializing HighMem for node 1 (00100000:001ffe00)
    ------------[ cut here ]------------
    kernel BUG at /home/apw/git/linux-2.6/mm/page_alloc.c:456!
    [...]

    This occurs because the section to node id mapping is not being
    setup correctly during init under SPARSEMEM_STATIC, leading to an
    attempt to free pages from all nodes into the zones on node 0.

    When the zone_table[] was removed in the following commit, a new
    section to node mapping table was introduced:

    commit 89689ae7f95995723fbcd5c116c47933a3bb8b13
    [PATCH] Get rid of zone_table[]

    That conversion inadvertantly only initialised the node mapping in
    SPARSEMEM_EXTREME. Ensure we initialise the node mapping in
    SPARSEMEM_STATIC.

    [akpm@linux-foundation.org: make the stubs static inline]
    Signed-off-by: Andy Whitcroft
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • When ecryptfs_lookup() is called against special files, eCryptfs generates
    the following errors because it tries to treat them like regular eCryptfs
    files.

    Error opening lower file for lower_dentry [0xffff810233a6f150], lower_mnt [0xffff810235bb4c80], and flags [0x8000]
    Error opening lower_file to read header region
    Error attempting to read the [user.ecryptfs] xattr from the lower file; return value = [-95]
    Valid metadata not found in header region or xattr region; treating file as unencrypted

    For instance, the problem can be reproduced by the steps below.

    # mkdir /root/crypt /mnt/crypt
    # mount -t ecryptfs /root/crypt /mnt/crypt
    # mknod /mnt/crypt/c0 c 0 0
    # umount /mnt/crypt
    # mount -t ecryptfs /root/crypt /mnt/crypt
    # ls -l /mnt/crypt

    This patch fixes it by adding a check similar to directories and
    symlinks.

    Signed-off-by: Ryusuke Konishi
    Acked-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryusuke Konishi
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    [WATCHDOG] Add support for 1533 bridge to alim1535_wdt
    [WATCHDOG] Add a 00-INDEX file to Documentation/watchdog/
    [WATCHDOG] Eurotechwdt.c - clean-up comments

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC32]: Revert f642b263800e6e57c377d630be6d2a999683b579.
    [SPARC64]: Need to clobber global reg vars in switch_to().

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [IRDA] irda_nl_get_mode: always results in failure
    [PPP]: Fix output buffer size in ppp_decompress_frame().
    [IRDA]: Avoid a label defined but not used warning in irda_init()
    [IPV6]: Fix kernel panic while send SCTP data with IP fragments
    [SNAP]: Check packet length before reading
    [DCCP]: Allocation in atomic context

    Linus Torvalds
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] Change atomic_read/set to inline functions with barrier semantics.
    [S390] kprobes: fix instruction length calculation
    [S390] hypfs: inode corruption due to missing locking
    [S390] disassembler: fix b2 opcodes like srst, bsg, and others
    [S390] vmur: fix reference counting for vmur device structure
    [S390] vmur: fix diag14 exceptions with addresses > 2GB.
    [S390] qdio: Refresh buffer states for IQDIO Asynchronous output queue
    [S390] qdio: fix EQBS handling on CCQ96
    [S390] cio: change confusing message in cmf.
    [S390] cio: dont forget to set last slot to NULL in ccw_uevent().

    Linus Torvalds
     
  • Touching vmalloc memory in the middle of a lazy mode update can generate
    a kernel PDE update, which must be flushed immediately. The fix is to
    leave lazy mode when doing a vmalloc sync.

    Signed-off-by: Zachary Amsden
    Acked-by: Jeremy Fitzhardinge
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     

22 Aug, 2007

21 commits

  • After doing some tests this seems to be the best variant for s390 and
    should be correct as well. With gcc 4.2.1 we get the following kernel
    image sizes using the default configuration:

    atomic_t type volatile, atomic_read/set defines 5311824 bytes
    atomic_t type int, atomic_read/set defines 5270864 bytes
    atomic_t type int, atomic_read/set inline asm 5279056 bytes
    atomic_t type int, atomic_read/set inline barrier 5270864 bytes

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Placing a kprobe on "bc" instruction (s390/s390x) can cause an oops.
    The instruction length is encoded into the first two bits of the s390
    instruction. Kprobe is incorrectly computing the instruction length.
    The instruction length is used for determining what type of "fix-up" is
    needed for conditional branch instruction. The problem can bee seen by
    placing a kprobe on a "bc" instruction that will not branch. The
    results is that Kprobe incorrectly computes the new instruction
    pointer (psw.addr) after single stepping the instruction. The problem
    is corrected with this patch.

    Signed-off-by: David Wilder
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    David Wilder
     
  • hypfs removes the whole hypfs directory tree and creates a new one, when a
    process triggers an update by writing to the "update" attribute. When removing
    and creating files, it is necessary to lock the inode of the parent directory
    where the files live. Currently hypfs does not lock the parent inode, which
    can lead to inode corruption. This patch:
    * Introduces correct locking
    * Fixes i_nlink reference counting for inodes, when creating directories
    * Adds info printk, when hypfs filesystem has been mounted

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Michael Holzheu
     
  • The instruction table for b2 opcodes was missing an opfrag value
    for the cpya instruction. All instructions specified after cpya
    were not considered by the disassembler. The fix is simple and
    obvious - add the opfrag field to the cpya instruction.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Christian Borntraeger
     
  • When a vmur device is removed due to a detach of the device, currently the
    ur device structure is freed. Unfortunately it can happen, that there is
    still a user of the device structure, when the character device is open
    during the detach process. To fix this, reference counting for the vmur
    structure is introduced.
    In addition to that, the online, offline, probe and remove functions are
    serialized now using a global mutex.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Michael Holzheu
     
  • There are several s390 diagnose calls, which must be executed below the
    2GB memory boundary. In order to enforce this, those diagnoses must be
    compiled into the kernel. Currently diag 14 can be called within the
    vmur kernel module from addresses above 2GB. This leads to specification
    exceptions. This patch moves diag10, diag14 and diag210 into the new
    diag.c file.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Michael Holzheu
     
  • Hipersocket Multicast queue works asynchronously. When sending buffers,
    the buffer state change may happen delayed. The tasklet for checking
    changes in the outbound queue excluded IQDIO async queues from this
    process. This created either a hang situation when the queue ran full,
    or presented a hang situation a interface close time.
    The tasklet processing is changed to include IQDIO async queues when
    requesting buffer state refresh.

    Signed-off-by: Klaus D. Wacker
    Signed-off-by: Martin Schwidefsky

    Klaus D. Wacker
     
  • QDIO returned from EQBS instruction in any case after return code
    CCQ=96 was issued regardless whether buffer states for at least one
    buffer were extracted or not.
    This caused FCP devices to hang when running under z/VM and having
    QIOASSASIST=ON and having high I/O rates.
    In order to fix this qdio return code processing of EQBS instruction
    after CCQ=96 is changed that buffers are returned and if no buffers
    where extracted the instruction is repeated at once.

    Signed-off-by: Klaus D. Wacker
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Klaus D. Wacker
     
  • cmf currently prints a message that more than 4096 channels are not
    allowed in basic mode - however, this can only be enforced if cmf was
    a module (which is no longer possible). It makes much more sense to
    not check the specified number of channels and just print a message if
    the block for basic mode could not be allocated (which may happen for
    any number of specified channels).

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky

    Cornelia Huck
     
  • Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Cornelia Huck
     
  • It seems an extraneous trailing ';' has slipped in to the error handling for a
    name registration failure causing the error path to trigger unconditionally.

    Signed-off-by: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Samuel Ortiz
    Signed-off-by: David S. Miller

    Andy Whitcroft
     
  • This patch addresses the issue with "osize too small" errors in mppe
    encryption. The patch fixes the issue with wrong output buffer size
    being passed to ppp decompression routine.

    --------------------
    As pointed out by Suresh Mahalingam, the issue addressed by
    ppp-fix-osize-too-small-errors-when-decoding patch is not fully resolved yet.
    The size of allocated output buffer is correct, however it size passed to
    ppp->rcomp->decompress in ppp_generic.c if wrong. The patch fixes that.
    --------------------

    Signed-off-by: Konstantin Sharlaimov
    Signed-off-by: David S. Miller

    Konstantin Sharlaimov
     
  • Easily avoidable compiler warnings bug me.

    Building irmod without CONFIG_SYSCTL currently results in :
    net/irda/irmod.c:132: warning: label 'out_err_2' defined but not used

    But that can easily be avoided by simply moving the label inside
    the existing "#ifdef CONFIG_SYSCTL" one line above it.

    This patch moves the label and buys us one less warning with no
    ill effects.

    Signed-off-by: Jesper Juhl
    Signed-off-by: David S. Miller

    Jesper Juhl
     
  • If ICMP6 message with "Packet Too Big" is received after send SCTP DATA,
    kernel panic will occur when SCTP DATA is send again.

    This is because of a bad dest address when call to skb_copy_bits().

    The messages sequence is like this:

    Endpoint A Endpoint B

    (Packet Too Big pmtu=1280)
    ] Not tainted VLI
    EFLAGS: 00010282 (2.6.23-rc2 #1)
    EIP is at skb_copy_bits+0x4f/0x1ef
    eax: 000004d0 ebx: ce12a980 ecx: 00000134 edx: cfd5a880
    esi: c8246858 edi: 00000000 ebp: c0759b14 esp: c0759adc
    ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
    Process swapper (pid: 0, ti=c0759000 task=c06d0340 task.ti=c0713000)
    Stack: c0759b88 c0405867 ce12a980 c8bff838 c789c084 00000000 00000028 cfd5a880
    d09f1890 000005dc 0000007b ce12a980 cfd5a880 c8bff838 c0759b88 d09bc521
    000004d0 fffff96c 00000200 00000100 c0759b50 cfd5a880 00000246 c0759bd4
    Call Trace:
    [] show_trace_log_lvl+0x1a/0x2f
    [] show_stack_log_lvl+0x9b/0xa3
    [] show_registers+0x1b8/0x289
    [] die+0x113/0x246
    [] do_page_fault+0x4ad/0x57e
    [] error_code+0x72/0x78
    [] ip6_output+0x8e5/0xab2 [ipv6]
    [] ip6_xmit+0x2ea/0x3a3 [ipv6]
    [] sctp_v6_xmit+0x248/0x253 [sctp]
    [] sctp_packet_transmit+0x53f/0x5ae [sctp]
    [] sctp_outq_flush+0x555/0x587 [sctp]
    [] sctp_retransmit+0xf8/0x10f [sctp]
    [] sctp_icmp_frag_needed+0x57/0x5b [sctp]
    [] sctp_v6_err+0xcd/0x148 [sctp]
    [] icmpv6_notify+0xe6/0x167 [ipv6]
    [] icmpv6_rcv+0x7d7/0x849 [ipv6]
    [] ip6_input+0x1dc/0x310 [ipv6]
    [] ipv6_rcv+0x294/0x2df [ipv6]
    [] netif_receive_skb+0x2d2/0x335
    [] process_backlog+0x7f/0xd0
    [] net_rx_action+0x96/0x17e
    [] __do_softirq+0x64/0xcd
    [] do_softirq+0x5c/0xac
    =======================
    Code: 00 00 29 ca 89 d0 2b 45 e0 89 55 ec 85 c0 7e 35 39 45 08 8b 55 e4 0f 4e 45 08 8b 75 e0 8b 7d dc 89 c1 c1 e9 02 03 b2 a0 00 00 00 a5 89 c1 83 e1 03 74 02 f3 a4 29 45 08 0f 84 7b 01 00 00 01
    EIP: [] skb_copy_bits+0x4f/0x1ef SS:ESP 0068:c0759adc
    Kernel panic - not syncing: Fatal exception in interrupt

    Arnaldo says:
    ====================
    Thanks! I'm to blame for this one, problem was introduced in:

    b0e380b1d8a8e0aca215df97702f99815f05c094

    @@ -761,7 +762,7 @@ slow_path:
    /*
    * Copy a block of the IP datagram.
    */
    - if (skb_copy_bits(skb, ptr, frag->h.raw, len))
    + if (skb_copy_bits(skb, ptr, skb_transport_header(skb),
    len))
    BUG();
    left -= len;
    ====================

    Signed-off-by: Wei Yongjun
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • The snap_rcv code reads 5 bytes so we should make sure that
    we have 5 bytes in the head before proceeding.

    Based on diagnosis and fix by Evgeniy Polyakov, reported by
    Alan J. Wylie.

    Patch also kills the skb->sk assignment before kfree_skb
    since it's redundant.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     
  • This fixes the following bug reported in syslog:

    [ 4039.051658] BUG: sleeping function called from invalid context at /usr/src/davem-2.6/mm/slab.c:3032
    [ 4039.051668] in_atomic():1, irqs_disabled():0
    [ 4039.051670] INFO: lockdep is turned off.
    [ 4039.051674] [] show_trace_log_lvl+0x1a/0x30
    [ 4039.051687] [] show_trace+0x12/0x14
    [ 4039.051691] [] dump_stack+0x16/0x18
    [ 4039.051695] [] __might_sleep+0xaf/0xbe
    [ 4039.051700] [] __kmalloc+0xb1/0xd0
    [ 4039.051706] [] ccid2_hc_tx_alloc_seq+0x35/0xc3 [dccp_ccid2]
    [ 4039.051717] [] ccid2_hc_tx_packet_sent+0x27f/0x2d9 [dccp_ccid2]
    [ 4039.051723] [] dccp_write_xmit+0x1eb/0x338 [dccp]
    [ 4039.051741] [] dccp_sendmsg+0x113/0x18f [dccp]
    [ 4039.051750] [] inet_sendmsg+0x2e/0x4c
    [ 4039.051758] [] sock_aio_write+0xd5/0x107
    [ 4039.051766] [] do_sync_write+0xcd/0x11c
    [ 4039.051772] [] vfs_write+0x118/0x11f
    [ 4039.051840] [] sys_write+0x3d/0x64
    [ 4039.051845] [] syscall_call+0x7/0xb
    [ 4039.051848] =======================

    The problem was that GFP_KERNEL was used; fixed by using gfp_any().

    Signed-off-by: Gerrit Renker
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Gerrit Renker
     
  • Gerd Hoffmann pointed out that my patch from yesterday can lead
    to a null pointer dereference if the kernel is booted with no
    console, and no earlyprintk defined. This fixes that issue.

    Signed-off-by: Robin Getz
    Signed-off-by: Linus Torvalds

    Robin Getz
     
  • The initial user manuals for MPC8544/8533 had some issues with properly
    documenting the device IDs for MPC8544/8533. These processors are almost
    identical and both show up on the reference boards.

    Fix up the quirks for PCIe support to handle MPC8533/E.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • There are special PHY settings available on Yukon EC-U chip that
    should not get cleared. This should solve mysterious errors on some
    motherboards (like Gigabyte DS-3).

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • This fixes handling of USB ISO completion error -EXDEV and includes
    several other changes to current CVS version at isdn4linux.de (changes
    in debug flags, style of code remarks, etc)

    Signed-off-by: Martin Bachem
    Acked-by: Karsten Keil
    Signed-off-by: Linus Torvalds

    Martin Bachem
     
  • I did some testing and found quite a lot of problems (doesn't
    boot at all on non NUMA and misassigns cores on Opteron systems).

    Mark it as experimental and warn against its use for now.

    It's still default y for SUMMIT/NUMAQ because it'll presumably
    work on these systems.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

21 Aug, 2007

8 commits

  • This causes boot failures for some people.
    It looks like in fact that some SILO provided
    ramdisk images should not be KERNBASE normalized.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Otherwise the compiler can't see the things like the
    per-cpu area base register are changing.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This reverts commit 196705c9bbc03540429b0f7cf9ee35c2f928a534. It was
    reported to cause a regression by Daniel Exner, and Arjan van de Ven
    points out that we actually already have infrastructure in place for
    setting limits on acceptable DMA latency that would be the much more
    correct fix for the problem with some Broadcom EHCI controllers.

    Fixed up trivial conflicts due to the changes to support big-endian host
    controller descriptors in drivers/usb/host/{ehci-sched.c,ehci.h}.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This patch uses kzalloc to zero all of struct dio rather than manually
    trying to track which fields we rely on being zero. It passed aio+dio
    stress testing and some bug regression testing on ext3.

    This patch was introduced by Linus in the conversation that lead up to
    Badari's minimal fix to manually zero .map_bh.b_state in commit:

    6a648fa72161d1f6468dabd96c5d3c0db04f598a

    It makes the code a bit smaller. Maybe a couple fewer cachelines to
    load, if we're lucky:

    text data bss dec hex filename
    3285925 568506 1304616 5159047 4eb887 vmlinux
    3285797 568506 1304616 5158919 4eb807 vmlinux.patched

    I was unable to measure a stable difference in the number of cpu cycles
    spent in blockdev_direct_IO() when pushing aio+dio 256K reads at
    ~340MB/s.

    So the resulting intent of the patch isn't a performance gain but to
    avoid exposing ourselves to the risk of finding another field like
    .map_bh.b_state where we rely on zeroing but don't enforce it in the
    code.

    Signed-off-by: Zach Brown
    Signed-off-by: Linus Torvalds

    Zach Brown
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
    ide-disk: workaround for buggy HPA support on ST340823A (take 3)
    hpt34x: fix CONFIG_HPT34X_AUTODMA=n handling
    triflex: add missing ->dma_base check
    pdc202xx_old: add missing ->dma_base check
    pdc202xx_new: add missing ->dma_base check
    cs5530: add missing ->dma_base check
    ide: ide_config_drive_speed() bugfixes
    ide: add cable detection for early UDMA66 devices (take 3)
    ide-pmac: fix drive->init_speed reporting
    ide: config_drive_for_dma() fixes
    ide-cris: fix ->set_pio_mode method to set transfer mode on the device
    ide: fix hidden dependencies on CONFIG_IDE_GENERIC
    ide: make CONFIG_IDE_GENERIC default to N

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
    V4L/DVB (6028): Turn an unnecessary mdelay() into msleep().
    V4L/DVB (6027): Get rid of an ill-behaved msleep in i2c write
    V4L/DVB (6026): Avoid powering up the camera on resume
    V4L/DVB (6016): get_dvb_firmware: update script for new location of tda10046 firmware
    V4L/DVB (5991): dvb-pll: Set minimum and maximum frequency properly
    V4L/DVB (5969): ivtv: report ivtv version in status log
    V4L/DVB (5967): ivtv: fix VIDIOC_S_FBUF:new OSD values where never set
    V4L/DVB (5968): videodev2.h: remove superfluous FBUF GLOBAL_INV_ALPHA support

    Linus Torvalds
     
  • Commit a491486a2087ac3dfc00efb4f838c8d684afaf54 introduced a locking
    problem in JFFS2 -- we up() the alloc_sem when we weren't previously
    holding it. This leads to all kinds of fun behaviour later.

    There was a _reason_ for the
    if (1 /* alternative path needs testing */ ||
    which the above-mentioned commit removed :)

    Discovered and debugged by Giulio Fedel

    Signed-off-by: David Woodhouse
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • * 'fixes-2.6.23' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc:
    [POWERPC] Fix 8xx compile failure
    [POWERPC] Fix FSL BookE machine check reporting
    [POWERPC] Fix interrupt routing and setup of ULI M1575 on FSL boards
    [POWERPC] Add interrupt resource for RTC CMOS driver

    Linus Torvalds