12 Jun, 2008

1 commit

  • * 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
    KVM: MMU: Fix is_empty_shadow_page() check
    KVM: MMU: Fix printk() format string
    KVM: IOAPIC: only set remote_irr if interrupt was injected
    KVM: MMU: reschedule during shadow teardown
    KVM: VMX: Clear CR4.VMXE in hardware_disable
    KVM: migrate PIT timer
    KVM: ppc: Report bad GFNs
    KVM: ppc: Use a read lock around MMU operations, and release it on error
    KVM: ppc: Remove unmatched kunmap() call
    KVM: ppc: add lwzx/stwz emulation
    KVM: ppc: Remove duplicate function
    KVM: s390: Fix race condition in kvm_s390_handle_wait
    KVM: s390: Send program check on access error
    KVM: s390: fix interrupt delivery
    KVM: s390: handle machine checks when guest is running
    KVM: s390: fix locking order problem in enable_sie
    KVM: s390: use yield instead of schedule to implement diag 0x44
    KVM: x86 emulator: fix hypercall return value on AMD
    KVM: ia64: fix zero extending for mmio ld1/2/4 emulation in KVM

    Linus Torvalds
     

11 Jun, 2008

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    net: Fix routing tables with id > 255 for legacy software
    sky2: Hold RTNL while calling dev_close()
    s2io iomem annotations
    atl1: fix suspend regression
    qeth: start dev queue after tx drop error
    qeth: Prepare-function to call s390dbf was wrong
    qeth: reduce number of kernel messages
    qeth: Use ccw_device_get_id().
    qeth: layer 3 Oops in ip event handler
    virtio: use callback on empty in virtio_net
    virtio: virtio_net free transmit skbs in a timer
    virtio: Fix typo in virtio_net_hdr comments
    virtio_net: Fix skb->csum_start computation
    ehea: set mac address fix
    sfc: Recover from RX queue flush failure
    add missing lance_* exports
    ixgbe: fix typo
    forcedeth: msi interrupts
    ipsec: pfkey should ignore events when no listeners
    pppoe: Unshare skb before anything else
    ...

    Linus Torvalds
     
  • In case the xmit function drop out with an error, we have to wake
    the netdevice queue to start another xmit.

    Signed-off-by: Frank Blaschka
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Jeff Garzik

    Frank Blaschka
     
  • Prepare-function to call s390dbf was wrong handling variable arguments.
    This worked as macro but not as function any more.
    Now using va_list processing.

    Signed-off-by: Peter Tiedemann
    Signed-off-by: Frank Blaschka
    Signed-off-by: Jeff Garzik

    Peter Tiedemann
     
  • Remove unnecessary messages. Write important debug information to
    s390dbf.

    Signed-off-by: Frank Blaschka
    Signed-off-by: Jeff Garzik

    Frank Blaschka
     
  • Get the devno from the ccw device via ccw_device_get_id() instead
    of parsing the bus_id.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Frank Blaschka
    Signed-off-by: Jeff Garzik

    Cornelia Huck
     
  • The ip event handler may present us non qeth network interfaces.
    Add qeth card pointer check.

    Signed-off-by: Frank Blaschka
    Signed-off-by: Jeff Garzik

    Frank Blaschka
     

10 Jun, 2008

4 commits

  • The semantic match that finds the problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    @r exists@
    expression E,E1;
    statement S;
    position p1,p2,p3;
    @@

    E =@p1 \(kmalloc\|kcalloc\|kzalloc\)(...)
    ... when != E = E1
    if (E == NULL || ...) S
    ... when != E = E1
    if@p2 (...) {
    ... when != kfree(E)
    }
    ... when != E = E1
    kfree@p3(E);

    @forall@
    position r.p2;
    expression r.E;
    int E1 != 0;
    @@

    * if@p2 (...) {
    ... when != kfree(E)
    when strict
    return E1; }

    Signed-off-by: Julia Lawall
    Signed-off-by: Martin Schwidefsky

    Julia Lawall
     
  • This patch fixes a null pointer dereference during initialisation when no
    sclp event facility is available:
    sclp vt220 tty driver: could not register vt220 - sclp_register returned -5
    Unable to handle kernel paging request at virtual user address 0000000000000000
    Oops: 0004 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 Not tainted 2.6.26-rc3-kvm-bigiron-00968-gd939e93-dirty #30
    Process swapper (pid: 0, task: 0000000000600be0, ksp: 000000000064a000)
    Krnl PSW : 0400000180000000 0000000000320d8c (sclp_unregister+0x48/0x8c)
    R:0 T:1 IO:0 EX:0 Key:0 M:0 W:0 P:0 AS:0 CC:0 PM:0 EA:3
    Krnl GPRS: 0000000000000000 0000000000000000 0000000000630478 0700000000649c20
    0000000000000000 0000000000433060 000000000064a660 0000000002e26000
    00000000006db000 0000000000000000 0000000000a78578 0000000000649b80
    0000000000630dc0 000000000044fa20 0000000000320d76 0000000000649b80
    Krnl Code: 0000000000320d7c: e310c0080004 lg %r1,8(%r12)
    0000000000320d82: b9040032 lgr %r3,%r2
    0000000000320d86: c02000187b79 larl %r2,630478
    >0000000000320d8c: e34010000024 stg %r4,0(%r1)
    0000000000320d92: e31040080024 stg %r1,8(%r4)
    0000000000320d98: c01100200200 lgfi %r1,2097664
    0000000000320d9e: e310c0080024 stg %r1,8(%r12)
    0000000000320da4: c01100100100 lgfi %r1,1048832
    Call Trace:
    ([] sclp_unregister+0x32/0x8c)
    [] __sclp_vt220_cleanup+0xc4/0xe0
    [] __sclp_vt220_init+0x18c/0x1a0
    [] sclp_vt220_con_init+0x42/0x68
    [] console_init+0x4e/0x68
    [] start_kernel+0x3a2/0x4dc
    [] _stext+0x20/0x80
    INFO: lockdep is turned off.
    Last Breaking-Event-Address:
    [] _spin_lock_irqsave+0xb0/0xb4
    ---[ end trace 31fd0ba7d8756001 ]---

    The issue is caused by a list_empty() check in __sclp_vt220_cleanup, which
    usually fails on non-initialized list heads that contain {NULL,NULL} instead.

    Signed-off-by: Carsten Otte
    Signed-off-by: Martin Schwidefsky

    Carsten Otte
     
  • Priorities for I/O interruption subclasses range from 0 (highest)
    to 7 (lowest). Unfortunately, the console has been using isc 7
    instead of an isc with a higher priority than regular I/O
    subchannels (which use 3). Fix this by making the console use
    isc 1.

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

    Cornelia Huck
     
  • sparse complains about signedness:

    drivers/s390/cio/blacklist.c:132:28: warning: incorrect type in
    argument 2 (different signedness)
    drivers/s390/cio/blacklist.c:132:28: expected unsigned int *val
    drivers/s390/cio/blacklist.c:132:28: got int *cssid
    drivers/s390/cio/blacklist.c:136:28: warning: incorrect type in
    argument 2 (different signedness)
    drivers/s390/cio/blacklist.c:136:28: expected unsigned int *val
    drivers/s390/cio/blacklist.c:136:28: got int *ssid
    drivers/s390/cio/blacklist.c:140:28: warning: incorrect type in
    argument 2 (different signedness)
    drivers/s390/cio/blacklist.c:140:28: expected unsigned int *val
    drivers/s390/cio/blacklist.c:140:28: got int *devno

    cssid, ssid and devno are of course unsigned, so let's make the
    variables unsigned as well.

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

    Cornelia Huck
     

07 Jun, 2008

1 commit

  • The low-level interrupt handler on s390 checks for _TIF_WORK_INT and
    exits the guest context, if work is pending.
    TIF_WORK_INT is defined as_TIF_SIGPENDING | _TIF_NEED_RESCHED |
    _TIF_MCCK_PENDING. Currently the sie loop checks for signals and
    reschedule, but it does not check for machine checks. That means that
    we exit the guest context if a machine check is pending, but we do not
    handle the machine check.

    Signed-off-by: Christian Borntraeger
    CC: Heiko Carstens
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Christian Borntraeger
     

31 May, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    lguest: notify on empty
    virtio: force callback on empty.
    virtio_blk: fix endianess annotations
    virtio_config: fix len calculation of config elements
    virtio_net: another race with virtio_net and enable_cb
    virtio: An entropy device, as suggested by hpa.
    virtio_blk: allow read-only disks
    lguest: fix ugly in /proc/interrupts
    virtio: set device index in common code.
    virtio: virtio_pci should not set bus_id.
    virtio: bus_id for devices should contain 'virtio'
    Fix crash in virtio_blk during modprobe ; rmmod ; modprobe
    lguest: use ioremap_cache, not ioremap

    Linus Torvalds
     

30 May, 2008

7 commits

  • A wait_event call with a stack local wait_queue_head_t structure that is
    used to do the wake up for the wait_event is inherently racy. After the
    wait_event finished the wake_up call might not have completed yet.
    Replace the stack local wait_queue_head_t in tape_do_io and
    tape_do_io_interruptible with a per device wait queue.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • A wait_event call with a stack local wait_queue_head_t structure that is
    used to do the wake up for the wait_event is inherently racy. After the
    wait_event finished the wake_up call might not have completed yet.
    Remove the stack local wait_queue_head_t from raw3270_start_init and
    use the global raw3270_wait_queue instead.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Use a generic wait_queue to prevent the wait_queue in dasd_sleep_on_
    functions from being referenced by callback_data while it does not
    exist any more.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • The driver incorrectly assumed that putchar will only be called from
    schedulable process context and therefore blocked and waited if no
    free output buffers where available.
    Since putchar may also be called from BH context this may lead to
    deadlocks.
    To fix this just return the number of characters accepted and let the
    upper layer handle the rest.

    The console write function will busy wait (sclp_sync_wait) until a
    buffer is available again.

    Cc: Peter Oberparleiter
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • This fixes the last remaining section mismatch warnings in s390
    architecture code. It reveals also a real bug introduced by... me
    with git commit 2069e978d5a6e7b45d58027e3de7f879b8c5e488
    ("[S390] sparsemem vmemmap: initialize memmap.")

    Calling the generic vmemmap_alloc_block() function to get initialized
    memory is a nice idea, however that function is __meminit annotated
    and therefore the function might be gone if we try to call it later.
    This can happen if a DCSS segment gets added.

    So basically revert the patch and clear the memmap explicitly to fix
    the original bug.

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

    Heiko Carstens
     
  • Due to incorrect function call sequence it can happen that a tape block
    request is finished before the request is taken from the block request queue.

    The following sequence leads to that condition:
    * tapeblock_start_request() -> start CCW program
    * Request finishes -> IO interrupt
    * tapeblock_end_request()
    * end_that_request_last()

    If blkdev_dequeue_request() has not been called before end_that_request_last(),
    a kernel bug is triggered in end_that_request_last() because the request is
    still queued. To solve that problem blkdev_dequeue_request() has to be called
    before starting the CCW program.

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

    Michael Holzheu
     
  • Anthony Liguori points out that three different transports use the virtio code,
    but each one keeps its own counter to set the virtio_device's index field. In
    theory (though not in current practice) this means that names could be
    duplicated, and that risk grows as more transports are created.

    So we move the selection of the unique virtio_device.index into the common code
    in virtio.c, which has the side-benefit of removing duplicate code.

    The only complexity is that lguest and S/390 use the index to uniquely identify
    the device in case of catastrophic failure before register_virtio_device() is
    called: now we use the offset within the descriptor page as a unique identifier
    for the printks.

    Signed-off-by: Rusty Russell
    Cc: Christian Borntraeger
    Cc: Martin Schwidefsky
    Cc: Carsten Otte
    Cc: Heiko Carstens
    Cc: Chris Lalancette
    Cc: Anthony Liguori

    Rusty Russell
     

21 May, 2008

1 commit

  • There is a race from when a device is created with device_create() and
    then the drvdata is set with a call to dev_set_drvdata() in which a
    sysfs file could be open, yet the drvdata will be NULL, causing all
    sorts of bad things to happen.

    This patch fixes the problem by using the new function,
    device_create_drvdata().

    Cc: Kay Sievers
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Cornelia Huck
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

18 May, 2008

1 commit

  • Fix kvm compile error:

    Commit c45a6816c19dee67b8f725e6646d428901a6dc24
    (virtio: explicit advertisement of driver features)
    and commit e976a2b997fc4ad70ccc53acfe62811c4aaec851
    (s390: KVM guest: virtio device support, and kvm hypercalls)
    don't like each other:

    CC drivers/s390/kvm/kvm_virtio.o
    drivers/s390/kvm/kvm_virtio.c:224: error: unknown field 'feature' specified in initializer
    drivers/s390/kvm/kvm_virtio.c:224: warning: initialization from incompatible pointer type
    make[3]: *** [drivers/s390/kvm/kvm_virtio.o] Error 1

    Cc: Adrian Bunk
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Acked-by: Christian Borntraeger
    Acked-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Heiko Carstens
     

15 May, 2008

6 commits


07 May, 2008

4 commits


03 May, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6:
    [SCSI] aic94xx: fix section mismatch
    [SCSI] u14-34f: Fix 32bit only problem
    [SCSI] dpt_i2o: sysfs code
    [SCSI] dpt_i2o: 64 bit support
    [SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt to dma_alloc_coherent
    [SCSI] dpt_i2o: use standard __init / __exit code
    [SCSI] megaraid_sas: fix suspend/resume sections
    [SCSI] aacraid: Add Power Management support
    [SCSI] aacraid: Fix jbod operations scan issues
    [SCSI] aacraid: Fix warning about macro side-effects
    [SCSI] add support for variable length extended commands
    [SCSI] Let scsi_cmnd->cmnd use request->cmd buffer
    [SCSI] bsg: add large command support
    [SCSI] aacraid: Fix down_interruptible() to check the return value correctly
    [SCSI] megaraid_sas; Update the Version and Changelog
    [SCSI] ibmvscsi: Handle non SCSI error status
    [SCSI] bug fix for free list handling
    [SCSI] ipr: Rename ipr's state scsi host attribute to prevent collisions
    [SCSI] megaraid_mbox: fix Dell CERC firmware problem

    Linus Torvalds
     

02 May, 2008

1 commit

  • - struct scsi_cmnd had a 16 bytes command buffer of its own.
    This is an unnecessary duplication and copy of request's
    cmd. It is probably left overs from the time that scsi_cmnd
    could function without a request attached. So clean that up.

    - Once above is done, few places, apart from scsi-ml, needed
    adjustments due to changing the data type of scsi_cmnd->cmnd.

    - Lots of drivers still use MAX_COMMAND_SIZE. So I have left
    that #define but equate it to BLK_MAX_CDB. The way I see it
    and is reflected in the patch below is.
    MAX_COMMAND_SIZE - means: The longest fixed-length (*) SCSI CDB
    as per the SCSI standard and is not related
    to the implementation.
    BLK_MAX_CDB. - The allocated space at the request level

    - I have audit all ISA drivers and made sure none use ->cmnd in a DMA
    Operation. Same audit was done by Andi Kleen.

    (*)fixed-length here means commands that their size can be determined
    by their opcode and the CDB does not carry a length specifier, (unlike
    the VARIABLE_LENGTH_CMD(0x7f) command). This is actually not exactly
    true and the SCSI standard also defines extended commands and
    vendor specific commands that can be bigger than 16 bytes. The kernel
    will support these using the same infrastructure used for VARLEN CDB's.
    So in effect MAX_COMMAND_SIZE means the maximum size command
    scsi-ml supports without specifying a cmd_len by ULD's

    Signed-off-by: Boaz Harrosh
    Signed-off-by: James Bottomley

    Boaz Harrosh
     

30 Apr, 2008

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (53 commits)
    tcp: Overflow bug in Vegas
    [IPv4] UFO: prevent generation of chained skb destined to UFO device
    iwlwifi: move the selects to the tristate drivers
    ipv4: annotate a few functions __init in ipconfig.c
    atm: ambassador: vcc_sf semaphore to mutex
    MAINTAINERS: The socketcan-core list is subscribers-only.
    netfilter: nf_conntrack: padding breaks conntrack hash on ARM
    ipv4: Update MTU to all related cache entries in ip_rt_frag_needed()
    sch_sfq: use del_timer_sync() in sfq_destroy()
    net: Add compat support for getsockopt (MCAST_MSFILTER)
    net: Several cleanups for the setsockopt compat support.
    ipvs: fix oops in backup for fwmark conn templates
    bridge: kernel panic when unloading bridge module
    bridge: fix error handling in br_add_if()
    netfilter: {nfnetlink,ip,ip6}_queue: fix skb_over_panic when enlarging packets
    netfilter: x_tables: fix net namespace leak when reading /proc/net/xxx_tables_names
    netfilter: xt_TCPOPTSTRIP: signed tcphoff for ipv6_skip_exthdr() retval
    tcp: Limit cwnd growth when deferring for GSO
    tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled
    [netdrvr] gianfar: Determine TBIPA value dynamically
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] Update default configuration.
    [S390] use generic sys_ptrace
    [S390] Remove self ptrace IEEE_IP hack.
    [S390] Convert to SPARSEMEM & SPARSEMEM_VMEMMAP
    [S390] System z large page support.
    [S390] Convert machine feature detection code to C.
    [S390] vmemmap: use clear_table to initialise page tables.
    [S390] Move stfl to system.h and delete duplicated version.
    [S390] uaccess_mvcos: #ifdef config dependent code.
    [S390] cpu topology: Fix possible deadlock.
    [S390] Add topology_core_siblings to topology.h
    [S390] cio: Make isc handling more robust.
    [S390] remove -traditional
    [S390] Automatically detect added cpus.
    [S390] smp: Fix locking order.
    [S390] Add missing ifndef/define to include/asm-s390/sysinfo.h.
    [S390] Move show_regs to traps.c.
    [S390] cio: Use strict_strtoul() for attributes.

    Linus Torvalds
     
  • Put the changes into the drivers first. This will still compile/work but
    produce a warning if bisected so can still be debugged

    Signed-off-by: Alan Cox
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Christian Borntraeger
    Cc: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Convert s390 to SPARSEMEM and SPARSEMEM_VMEMMAP. We do a select
    of SPARSEMEM_VMEMMAP since it is configurable. This is because
    SPARSEMEM without SPARSEMEM_VMEMMAP gives us a hell of broken
    include dependencies that I don't want to fix.

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

    Heiko Carstens
     
  • Introduce an ->isc field in the subchannel to store the desired
    interruption subclass, since sch->schib.pmcw.isc may be overwritten
    by the hardware on stsch() after machine checks.

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

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

    Heiko Carstens