16 Oct, 2006

1 commit


12 Oct, 2006

1 commit


11 Oct, 2006

4 commits


07 Oct, 2006

3 commits


06 Oct, 2006

2 commits

  • * git://git.infradead.org/~dhowells/irq-2.6:
    IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
    IRQ: Typedef the IRQ handler function type
    IRQ: Typedef the IRQ flow handler function type

    Linus Torvalds
     
  • commit 0181944fe647cae18d545ac1167df3d15d393701 adds a
    'extended_error_logging' global variable to qla2xxx which is defined by
    qla4xxx too.

    Trying to build both drivers results in the following error:

    LD drivers/scsi/built-in.o
    drivers/scsi/qla4xxx/built-in.o: In function `qla4xxx_slave_configure':
    drivers/scsi/qla4xxx/ql4_os.c:1433: multiple definition of `extended_error_logging'
    drivers/scsi/qla2xxx/built-in.o:drivers/scsi/qla2xxx/qla_os.c:2166:
    first defined here
    make[2]: *** [drivers/scsi/built-in.o] Error 1
    make[1]: *** [drivers/scsi] Error 2
    make: *** [drivers] Error 2

    The following patch simply adds a qla2_ (qla4_ respectively) prefix to
    the variable name.

    Signed-off-by: Frederik Deweerdt
    Signed-off-by: Linus Torvalds

    Frederik Deweerdt
     

05 Oct, 2006

17 commits

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (54 commits)
    [SCSI] Initial Commit of qla4xxx
    [SCSI] raid class: handle component-add errors
    [SCSI] SCSI megaraid_sas: handle thrown errors
    [SCSI] SCSI aic94xx: handle sysfs errors
    [SCSI] SCSI st: fix error handling in module init, sysfs
    [SCSI] SCSI sd: fix module init/exit error handling
    [SCSI] SCSI osst: add error handling to module init, sysfs
    [SCSI] scsi: remove hosts.h
    [SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c
    [SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog
    [SCSI] megaraid_sas: adds tasklet for cmd completion
    [SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error
    [SCSI] megaraid_sas: function pointer for disable interrupt
    [SCSI] megaraid_sas: frame count optimization
    [SCSI] megaraid_sas: FW transition and q size changes
    [SCSI] qla2xxx: Update version number to 8.01.07-k2.
    [SCSI] qla2xxx: Stall mid-layer error handlers while rport is blocked.
    [SCSI] qla2xxx: Add MODULE_FIRMWARE tags.
    [SCSI] qla2xxx: Add support for host port state FC transport attribute.
    [SCSI] qla2xxx: Add support for fabric name FC transport attribute.
    ...

    Linus Torvalds
     
  • open-iSCSI driver for Qlogic Corporation's iSCSI HBAs

    Signed-off-by: Ravi Anand
    Signed-off-by: David Somayajulu
    Signed-off-by: Doug Maxey
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    David Somayajulu
     
  • Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • - handle clear_user() error

    - handle and properly unwind from sysfs errors thrown during mod init

    - adjust order of calls in megasas_exit() to precisely match
    registration order in megasas_init()

    Signed-off-by: Jeff Garzik

    Updated for extra attribute and
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • Handle and unwind from errors returned by driver model functions.

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • - Notice and handle sysfs errors in module init, tape init

    - Properly unwind errors in module init

    - Remove bogus st_sysfs_class==NULL test, it is guaranteed !NULL at that point

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • - Properly handle and unwind errors in init_sd(). Fixes leaks on error,
    if class_register() or scsi_register_driver() failed.

    - Ensure that exit_sd() execution order is the perfect inverse of
    initialization order.

    FIXME: If some-but-not-all register_blkdev() calls fail, we wind up
    calling unregister_blkdev() for block devices we did not register.
    This was a pre-existing bug.

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • - check all sysfs-related return codes, and propagate them back to callers

    - properly unwind errors in osst_probe(), init_osst(). This fixes a
    leak that occured if scsi driver registration failed, and fixes an
    oops if sysfs creation returned an error.

    (unrelated)
    - kzalloc() cleanup in new_tape_buf()

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • Remove the obsolete hosts.h file under drivers/scsi.

    Signed-off-by: Henrik Kretzschmar
    Signed-off-by: James Bottomley

    Henne
     
  • Changes the obsolete Scsi_Cmnd to struct scsi_cmnd in aic7xxx_old.c.
    Also replacing lots of whitespaces with tabs in structures and functions
    which have been changed.

    Signed-off-by: Henrik Kretzschmar
    Signed-off-by: James Bottomley

    Henne
     
  • This patch sets timeout of max 180 seconds for ioctl completion.
    It also updates the Changelog and hikes the version to 3.05.

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     
  • This patch adds a tasklet for command completion.

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     
  • This patch adds function to print the pending frame details before returning
    failure from the reset routine. It also exposes a new variable megasas_dbg_lvl
    that allows the user to set the debug level for logging.

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     
  • This patch adds function pointer to invoke disable interrupt for
    xscale and ppc IOP based controllers. Removes old implementation that checks
    for controller type in megasas_disable_intr.

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     
  • This patch removes duplicated code in frame calculation & adds
    megasas_get_frame_count() that also takes into account the number of frames
    that can be contained in the Main frame.
    FW uses the frame count to pull sufficient number of frames from host memory.

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     
  • This patch has the following enhancements :
    a. handles new transition states of FW to support controller hotplug.
    b. It reduces by 1 the maximum cmds that the driver may send to FW.
    c. Sends "Stop Processing" cmd to FW before returning failure from reset routine
    d. Adds print in megasas_transition routine
    e. Sends "RESET" flag to FW to do a soft reset of controller
    to move from Operational to Ready state.
    f. Sending correct pointer (cmd->sense) to pci_pool_free

    Signed-off-by: Sumant Patro
    Signed-off-by: James Bottomley

    Sumant Patro
     

04 Oct, 2006

12 commits