27 Aug, 2006

1 commit


25 Aug, 2006

1 commit


24 Aug, 2006

1 commit


20 Aug, 2006

1 commit


16 Aug, 2006

2 commits


10 Aug, 2006

1 commit


09 Aug, 2006

1 commit

  • The request queue flush function of the dasd driver has to dequeue
    the requests first and then call the end request function. Otherwise
    a kernel bug in ll_rw_block.c might get triggered.

    Signed-off-by: Horst Hummel
    Signed-off-by: Martin Schwidefsky

    Horst Hummel
     

08 Aug, 2006

1 commit

  • Remove system device class for xpram. It creates the directory hierarchy
    under /sys/devices/system/xpram/xpram0. The xpram0 directory is empty and
    it is always created while xpram1 and following devices are always missing,
    independent if the devices exist or not. Since the xpram devices are
    listed in /proc/partitions and /sys/block/ as slram the system device
    class for xpram is meaningless.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

07 Aug, 2006

7 commits

  • I/O on a CCW device may stall if a channel path to that device is
    logicaly varied off/on. A user I/O interrupt can get misinterpreted
    as interrupt for an internal path verification operation due to a
    missing check and is therefore never reported to the device driver.

    Correct check for pending interruptions before starting path
    verification.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky

    Peter Oberparleiter
     
  • Do a retry of read device characteristics / read configuration
    data when a deferred condition code 1 is encountered in
    ccw_device_wake_up().

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

    Cornelia Huck
     
  • Without this patch register_tape_dev() will always fail, but might
    return a value that is not an error number. This will lead to accesses
    to already freed memory areas...

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

    Heiko Carstens
     
  • Conflicts:

    arch/ia64/hp/sim/simscsi.c

    Stylistic differences in two separate fixes for buffer->request_buffer
    problem.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • New version number fo zfcp driver.

    Signed-off-by: Andreas Herrmann
    Signed-off-by: James Bottomley

    Andreas Herrmann
     
  • Bug fixes for zfcp's erp:
    - trigger adapter reopen if do_QDIO fails
    - avoid erp deadlock if registration of scsi target or remote port hang
    - do not treat as error if exchange port data fails
    - decrease timeout for target reset and aborts
    - mark unit failed if slave_destroy is called

    Additionally some code cleanup was done:
    - made some functions void when retval is not of interest
    - shortened initialization of zfcp's host_template
    - corrected some comments

    Signed-off-by: Andreas Herrmann
    Signed-off-by: James Bottomley

    Andreas Herrmann
     
  • Improve request handling. Use hash table to manage request IDs.

    Signed-off-by: Volker Sameske
    Signed-off-by: Andreas Herrmann
    Signed-off-by: James Bottomley

    Volker Sameske
     

27 Jul, 2006

2 commits


18 Jul, 2006

1 commit


17 Jul, 2006

2 commits


12 Jul, 2006

4 commits

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

    Heiko Carstens
     
  • 1. Multipath devices for which SetPGID is not supported are not handled well.
    Use NOP ccws for path verification (sans path grouping) when SetPGID is not
    supported.
    2. Check for PGIDs already set with SensePGID on _all_ paths (not just the
    first one) and try to find a common one. Moan if no common PGID can be
    found (and use NOP verification). If no PGIDs have been set, use the css
    global PGID (as before). (Rationale: SetPGID will get a command reject if
    the PGID it tries to set does not match the already set PGID.)
    3. Immediately before reboot, issue RESET CHANNEL PATH (rcp) on all chpids. This
    will remove the old PGIDs. rcp will generate solicited CRWs which can be
    savely ignored by the machine check handler (all other actions create
    unsolicited CRWs).

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

    Cornelia Huck
     
  • The module parameters for xpram are not or in a wrong way parsed.
    The xpram module uses the module_param_array directive with an int
    parameter which causes the kernel to automatically parse the passed
    numbers. This will cause errors if arguments are omitted or cause
    wrong results if arguments have size qualifiers.
    Use module_param_array with charp and parse the arguments later.

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

    Heiko Carstens
     
  • Add a reg_mutex to prevent unregistering a subchannel before it has been
    registered. Since 2.6.17, we've seen oopses in kslowcrw when a device is
    found to be not operational during sense id when doing initial device
    recognition; it is not clear yet why that particular problem was not (yet)
    observed with earlier kernels...

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

    Cornelia Huck
     

11 Jul, 2006

3 commits


09 Jul, 2006

1 commit

  • This patch adds the wrapper function skb_is_gso which can be used instead
    of directly testing skb_shinfo(skb)->gso_size. This makes things a little
    nicer and allows us to change the primary key for indicating whether an skb
    is GSO (if we ever want to do that).

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

    Herbert Xu
     

04 Jul, 2006

5 commits

  • =================================
    [ INFO: inconsistent lock state ]
    ---------------------------------
    inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
    swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
    (&adapter->fsf_req_list_lock){++..}, at: [] zfcp_qdio_reqid_check+0x46/0x178
    {in-hardirq-W} state was registered at:
    [] __lock_acquire+0xad8/0xed0
    [] lock_acquire+0x9a/0xc8
    [] _spin_lock+0x4e/0x68
    [] zfcp_qdio_reqid_check+0x46/0x178
    [] zfcp_qdio_response_handler+0xe6/0x430
    [] tiqdio_thinint_handler+0xd20/0x213c
    [] do_adapter_IO+0xb2/0xc0
    [] do_IRQ+0x136/0x16c
    [] io_no_vtime+0x16/0x1c
    [] cpu_idle+0x222/0x250
    irq event stamp: 129220
    hardirqs last enabled at (129220): [] tasklet_hi_action+0x5a/0x19c
    hardirqs last disabled at (129219): [] tasklet_hi_action+0x34/0x19c
    softirqs last enabled at (129212): [] __do_softirq+0x13a/0x180
    softirqs last disabled at (129217): [] do_softirq+0xec/0xf0

    other info that might help us debug this:
    no locks held by swapper/0.

    stack backtrace:
    00000000012bb670 0000000000000002 0000000000000000 00000000012bb780
    00000000012bb6e8 0000000000399122 0000000000399122 0000000000016b0a
    0000000000000000 0000000000000000 0000000000000000 00000000004660e8
    0000000000000000 000000000000000d 00000000012bb6e0 00000000012bb758
    0000000000368b90 0000000000016b0a 00000000012bb6e0 00000000012bb730
    Call Trace:
    ([] show_trace+0x76/0xdc)
    [] show_stack+0xa0/0xd0
    [] dump_stack+0x2e/0x3c
    [] print_usage_bug+0x27e/0x290
    [] mark_lock+0x6b0/0x6c0
    [] __lock_acquire+0x30a/0xed0
    [] lock_acquire+0x9a/0xc8
    [] _spin_lock+0x4e/0x68
    [] zfcp_qdio_reqid_check+0x46/0x178
    [] zfcp_qdio_response_handler+0xe6/0x430
    [] tiqdio_tl+0xd02/0x2120
    [] tasklet_hi_action+0xae/0x19c
    [] __do_softirq+0xbc/0x180
    [] do_softirq+0xec/0xf0
    [] irq_exit+0x90/0xa8
    [] do_IRQ+0x144/0x16c
    [] io_no_vtime+0x16/0x1c
    [] cpu_idle+0x222/0x250
    ([] cpu_idle+0x206/0x250)
    [] rest_init+0x5a/0x68
    [] start_kernel+0x39c/0x3dc
    [] _stext+0x46/0x1000

    Fix incorrect usage of fsf_req_list_lock. It's used in tasklet context
    (irqs on) as well as in irq context. Therefore use the spin_lock_irqsave
    variant to avoid deadlocks.

    Acked-by: Andreas Herrmann
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • =================================
    [ INFO: inconsistent lock state ]
    ---------------------------------
    inconsistent {hardirq-on-W} -> {in-hardirq-W} usage.
    swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
    (&adapter->erp_lock){+-..}, at: [] zfcp_erp_async_handler+0x3c/0x70
    {hardirq-on-W} state was registered at:
    [] __lock_acquire+0x30a/0xed0
    [] lock_acquire+0x9a/0xc8
    [] _write_lock+0x4e/0x68
    [] zfcp_erp_adapter_strategy_generic+0x286/0xd94
    [] zfcp_erp_strategy_do_action+0x91e/0x1a94
    [] zfcp_erp_thread+0x21a/0x1568
    [] kernel_thread_starter+0x6/0xc
    [] kernel_thread_starter+0x0/0xc
    irq event stamp: 12078
    hardirqs last enabled at (12077): [] cpu_idle+0x206/0x250
    hardirqs last disabled at (12078): [] io_no_vtime+0xc/0x1c
    softirqs last enabled at (12072): [] __do_softirq+0x13a/0x180
    softirqs last disabled at (12059): [] do_softirq+0xec/0xf0

    other info that might help us debug this:
    no locks held by swapper/0.

    stack backtrace:
    00000000012bb648 0000000000000002 0000000000000000 00000000012bb758
    00000000012bb6c0 0000000000399122 0000000000399122 0000000000016b0a
    0000000000000000 0000000000000001 0000000000000000 00000000004660e8
    0000000000000000 000000000000000d 00000000012bb6b8 00000000012bb730
    0000000000368b90 0000000000016b0a 00000000012bb6b8 00000000012bb708
    Call Trace:
    ([] show_trace+0x76/0xdc)
    [] show_stack+0xa0/0xd0
    [] dump_stack+0x2e/0x3c
    [] print_usage_bug+0x27e/0x290
    [] mark_lock+0x548/0x6c0
    [] __lock_acquire+0xad8/0xed0
    [] lock_acquire+0x9a/0xc8
    [] _write_lock_irqsave+0x62/0x80
    [] zfcp_erp_async_handler+0x3c/0x70
    [] zfcp_fsf_req_dispatch+0xd8/0x1fa8
    [] zfcp_fsf_req_complete+0x104/0xe4c
    [] zfcp_qdio_reqid_check+0xf4/0x178
    [] zfcp_qdio_response_handler+0xe6/0x430
    [] tiqdio_thinint_handler+0xd20/0x213c
    [] do_adapter_IO+0xb2/0xc0
    [] do_IRQ+0x136/0x16c
    [] io_no_vtime+0x16/0x1c
    [] cpu_idle+0x222/0x250
    ([] cpu_idle+0x206/0x250)
    [] rest_init+0x5a/0x68
    [] start_kernel+0x39c/0x3dc
    [] _stext+0x46/0x1000

    Fix incorrect usage of erp_lock. Using the write_lock() variant is wrong,
    since this might lead to deadlocks.

    Acked-by: Andreas Herrmann
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Annotate the qeth driver which uses a private skb-queue-head that is safely
    used in hardirq context too.

    Has no effect on non-lockdep kernels.

    Signed-off-by: Heiko Carstens
    Acked-by: Ingo Molnar
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Machine checks on s390 are always enabled (except in the machine check handler
    itself). Therefore use lockdep_off()/on() in the machine check handler to
    avoid deadlocks in the lock validator.

    Signed-off-by: Heiko Carstens
    Acked-by: Ingo Molnar
    Cc: Martin Schwidefsky
    Cc: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • irqtrace support for s390.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Ingo Molnar
    Cc: Martin Schwidefsky
    Cc: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     

01 Jul, 2006

1 commit


30 Jun, 2006

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6: (22 commits)
    [PATCH] devfs: Remove it from the feature_removal.txt file
    [PATCH] devfs: Last little devfs cleanups throughout the kernel tree.
    [PATCH] devfs: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV
    [PATCH] devfs: Remove the tty_driver devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the videodevice devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the gendisk devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the miscdevice devfs_name field as it's no longer needed
    [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree
    [PATCH] devfs: Remove devfs_remove() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_bdev() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_symlink() function from the kernel tree
    [PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree
    [PATCH] devfs: Remove devfs_*_tape() functions from the kernel tree
    [PATCH] devfs: Remove devfs support from the sound subsystem
    [PATCH] devfs: Remove devfs support from the ide subsystem.
    [PATCH] devfs: Remove devfs support from the serial subsystem
    [PATCH] devfs: Remove devfs from the init code
    [PATCH] devfs: Remove devfs from the partition code
    ...

    Linus Torvalds
     

29 Jun, 2006

4 commits

  • Fixes for several channel measurement facility bugs:
    * Blocks copied from the hardware might not be consistent. Solve this
    by moving the copying into idle state and repeating the copying.
    * avg_sample_interval changed with every read, even though no new block
    was available. Solve this by storing a timestamp when the last new
    block was received.
    * Several locking issues.
    * Measurements were not reenabled after a disconnected device became
    available again.
    * Remove #defines for ioctls that were never implemented.

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

    Cornelia Huck
     
  • Add support for parallel-access-volumes to the dasd driver. This
    allows concurrent access to dasd devices with multiple channel
    programs.

    Signed-off-by: Horst Hummel
    Signed-off-by: Martin Schwidefsky

    Horst Hummel
     
  • After setting a path to a dasd offline at the SE, I/O hangs on that
    dasd for 5 minutes, then continues.
    I/O for which an interrupt will not be reported after the channel
    path has been disabled was not terminated by the common I/O layer,
    causing the dasd MIH to hit after 5 minutes.

    Be more aggressive in terminating I/O after setting a channel path
    offline. Also make sure to generate a fake irb if the device
    driver issues an I/O request after being notified of the killed
    I/O and clear residual information from the irb before trying to
    start the delayed verification.

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

    Cornelia Huck
     
  • as a deprecated kernel_thread to a kthread.

    Signed-off-by: Serge E. Hallyn
    Signed-off-by: Martin Schwidefsky

    Serge E. Hallyn