24 Mar, 2011

1 commit

  • Added new hardware device 0x28b interface for PMC-Sierra's SRC based
    controller family.

    - new src.c file for 0x28b specific functions
    - new XPORT header required
    - sync. command interface: doorbell bits shifted (SRC_ODR_SHIFT, SRC_IDR_SHIFT)
    - async. Interface: different inbound queue handling, no outbound I2O
    queue available, using doorbell ("PmDoorBellResponseSent") and
    response buffer on the host ("host_rrq") for status
    - changed AIF (adapter initiated FIBs) interface: "DoorBellAifPending"
    bit to inform about pending AIF, "AifRequest" command to read AIF,
    "NoMoreAifDataAvailable" to mark the end of the AIFs

    Signed-off-by: Mahesh Rajashekhara
    Signed-off-by: James Bottomley

    Mahesh Rajashekhara
     

18 Jan, 2010

1 commit

  • These particular problems were reported by Cisco and SAP and customers
    as well. Cisco reported on RHEL4 U6 and SAP reported on SLES9 SP4 and
    SLES10 SP2. We added these fixes on RHEL4 U6 and gave a private build
    to IBM and Cisco. Cisco and IBM tested it for more than 15 days and
    they reported that they did not see the issue so far. Before the fix,
    Cisco used to see the issue within 5 days. We generated a patch for
    SLES9 SP4 and SLES10 SP2 and submitted to Novell. Novell applied the
    patch and gave a test build to SAP. SAP tested and reported that the
    build is working properly.

    We also tested in our lab using the tools "dishogsync", which is IO
    stress tool and the tool was provided by Cisco.

    Issue1: File System going into read-only mode

    Root cause: The driver tends to not free the memory (FIB) when the
    management request exits prematurely. The accumulation of such
    un-freed memory causes the driver to fail to allocate anymore memory
    (FIB) and hence return 0x70000 value to the upper layer, which puts
    the file system into read only mode.

    Fix details: The fix makes sure to free the memory (FIB) even if the
    request exits prematurely hence ensuring the driver wouldn't run out
    of memory (FIBs).

    Issue2: False Raid Alert occurs

    When the Physical Drives and Logical drives are reported as deleted or
    added, even though there is no change done on the system

    Root cause: Driver IOCTLs is signaled with EINTR while waiting on
    response from the lower layers. Returning "EINTR" will never initiate
    internal retry.

    Fix details: The issue was fixed by replacing "EINTR" with
    "ERESTARTSYS" for mid-layer retries.

    Signed-off-by: Penchala Narasimha Reddy
    Signed-off-by: James Bottomley

    Penchala Narasimha Reddy Chilakala, ERS-HCLTech
     

30 Dec, 2008

1 commit


19 Apr, 2008

1 commit


24 Jan, 2008

1 commit

  • In experiments in the lab we managed to trigger an Adapter firmware
    panic (BlinkLED) coincidentally while several pass-through ioctl
    command from the management software were outstanding on a bug only
    present on a class of RAID Adapters that require a hardware reset
    rather than a commanded reset. The net result was an attempt to time
    out the management software command as if it came from the SCSI layer
    resulting in an OS panic.

    Adapters that use commanded reset, management commands are returned
    failed by the Adapter correctly. The adapter firmware panic that
    resulted in this condition was also resolved, and there were no
    adapters in the field with this specific firmware bug so we do not
    expect any field reports. This is a rare or unlikely corner condition,
    and no reports have ever been forwarded from the field.

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Salyzyn, Mark
     

12 Jan, 2008

1 commit

  • On Wed, Nov 07, 2007 at 01:51:44PM -0500, Salyzyn, Mark wrote:
    > Christoph Hellwig [mailto:hch@infradead.org] sez:
    > > Did anyone run the driver through sparse to see if we have
    > > more issues like this?
    >
    > There are some warnings from sparse, none like this one. I will deal
    > with the warnings ...

    Actually there are a lot of endianess warnings, fortunately most of them
    harmless. The patch below fixes all of them up (including the ones in
    the patch I replied to), except for aac_init_adapter which is really odd
    and I don't know what to do.

    [jejb fixed up rejections and checkpatch issues]

    Signed-off-by: Christoph Hellwig
    Acked-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Christoph Hellwig
     

29 Oct, 2007

1 commit

  • Use of ptrdiff_t in places like

    - if (!access_ok(VERIFY_WRITE, u_tmp->rx_buf, u_tmp->len))
    + if (!access_ok(VERIFY_WRITE, (u8 __user *)
    + (ptrdiff_t) u_tmp->rx_buf,
    + u_tmp->len))

    is wrong; for one thing, it's a bad C (it's what uintptr_t is for; in general
    we are not even promised that ptrdiff_t is large enough to hold a pointer,
    just enough to hold a difference between two pointers within the same object).
    For another, it confuses the fsck out of sparse.

    Use unsigned long or uintptr_t instead. There are several places misusing
    ptrdiff_t; fixed.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

06 May, 2007

2 commits

  • Inspired somewhat by Vignesh Babu patch to
    dpt_i2o.c to replace kmalloc/memset sequences with kzalloc, doing the
    same for the aacraid driver.

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Salyzyn, Mark
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (87 commits)
    [SCSI] fusion: fix domain validation loops
    [SCSI] qla2xxx: fix regression on sparc64
    [SCSI] modalias for scsi devices
    [SCSI] sg: cap reserved_size values at max_sectors
    [SCSI] BusLogic: stop using check_region
    [SCSI] tgt: fix rdma transfer bugs
    [SCSI] aacraid: fix aacraid not finding device
    [SCSI] aacraid: Correct SMC products in aacraid.txt
    [SCSI] scsi_error.c: Add EH Start Unit retry
    [SCSI] aacraid: [Fastboot] Panics for AACRAID driver during 'insmod' for kexec test.
    [SCSI] ipr: Driver version to 2.3.2
    [SCSI] ipr: Faster sg list fetch
    [SCSI] ipr: Return better qc_issue errors
    [SCSI] ipr: Disrupt device error
    [SCSI] ipr: Improve async error logging level control
    [SCSI] ipr: PCI unblock config access fix
    [SCSI] ipr: Fix for oops following SATA request sense
    [SCSI] ipr: Log error for SAS dual path switch
    [SCSI] ipr: Enable logging of debug error data for all devices
    [SCSI] ipr: Add new PCI-E IDs to device table
    ...

    Linus Torvalds
     

03 May, 2007

1 commit

  • I noticed that many source files include while they do
    not appear to need it. Here is an attempt to clean it all up.

    In order to find all possibly affected files, I searched for all
    files including but without any other occurence of "pci"
    or "PCI". I removed the include statement from all of these, then I
    compiled an allmodconfig kernel on both i386 and x86_64 and fixed the
    false positives manually.

    My tests covered 66% of the affected files, so there could be false
    positives remaining. Untested files are:

    arch/alpha/kernel/err_common.c
    arch/alpha/kernel/err_ev6.c
    arch/alpha/kernel/err_ev7.c
    arch/ia64/sn/kernel/huberror.c
    arch/ia64/sn/kernel/xpnet.c
    arch/m68knommu/kernel/dma.c
    arch/mips/lib/iomap.c
    arch/powerpc/platforms/pseries/ras.c
    arch/ppc/8260_io/enet.c
    arch/ppc/8260_io/fcc_enet.c
    arch/ppc/8xx_io/enet.c
    arch/ppc/syslib/ppc4xx_sgdma.c
    arch/sh64/mach-cayman/iomap.c
    arch/xtensa/kernel/xtensa_ksyms.c
    arch/xtensa/platform-iss/setup.c
    drivers/i2c/busses/i2c-at91.c
    drivers/i2c/busses/i2c-mpc.c
    drivers/media/video/saa711x.c
    drivers/misc/hdpuftrs/hdpu_cpustate.c
    drivers/misc/hdpuftrs/hdpu_nexus.c
    drivers/net/au1000_eth.c
    drivers/net/fec_8xx/fec_main.c
    drivers/net/fec_8xx/fec_mii.c
    drivers/net/fs_enet/fs_enet-main.c
    drivers/net/fs_enet/mac-fcc.c
    drivers/net/fs_enet/mac-fec.c
    drivers/net/fs_enet/mac-scc.c
    drivers/net/fs_enet/mii-bitbang.c
    drivers/net/fs_enet/mii-fec.c
    drivers/net/ibm_emac/ibm_emac_core.c
    drivers/net/lasi_82596.c
    drivers/parisc/hppb.c
    drivers/sbus/sbus.c
    drivers/video/g364fb.c
    drivers/video/platinumfb.c
    drivers/video/stifb.c
    drivers/video/valkyriefb.c
    include/asm-arm/arch-ixp4xx/dma.h
    sound/oss/au1550_ac97.c

    I would welcome test reports for these files. I am fine with removing
    the untested files from the patch if the general opinion is that these
    changes aren't safe. The tested part would still be nice to have.

    Note that this patch depends on another header fixup patch I submitted
    to LKML yesterday:
    [PATCH] scatterlist.h needs types.h
    http://lkml.org/lkml/2007/3/01/141

    Signed-off-by: Jean Delvare
    Cc: Badari Pulavarty
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     

01 Apr, 2007

1 commit

  • Unsigned long is not always the same size as a pointer, namely on 32 bit
    systems with 64 bit address space. Ptrdiff_t is the same size as a
    pointer in all configurations. By using ptrdiff_t we can mitigate the
    warning messages on these configurations. There should be no side
    effects of this patch.

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Salyzyn, Mark
     

20 Mar, 2007

2 commits

  • Received from Mark Salyzyn,

    This set of fixes improve error handling stability of the driver. A popular
    manifestation of the problems is an NULL pointer reference in the interrupt
    handler when referencing portions of the scsi command context, or in the
    scsi_done handling when an offlined device is referenced.

    The aacraid driver currently does not get notification of orphaned command
    completions due to devices going offline. The driver also fails to handle the
    commands that are finished by the error handler, and thus can complete again
    later at the hands of the adapter causing situations of completion of an
    invalid scsi command context. Test Unit Ready calls abort assuming that the
    abort was successful, but are not, and thus when the interrupt from the adapter
    occurs, they reference invalid command contexts. We add in a TIMED_OUT flag to
    inform the aacraid FIB context that the interrupt service should merely release
    the driver resources and not complete the command up. We take advantage of this
    with the abort handler as well for select abortable commands. And we detect and
    react if a command that can not be aborted is currently still outstanding to
    the controller when reissued by the retry mechanism.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn,

    This patch is to resolve a namespace issue that will result from a patch
    expected in the future that adds a new interface; rationalized as
    correcting a long term issue where hw_fib, instead of hw_fib_va, refers
    to the virtual address space and hw_fib_pa refers to the physical
    address space. A small fragment of this patch also cleans up an unused
    variable that was close to the patch fragments.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

20 Aug, 2006

1 commit

  • Received from Mark Salyzyn

    This patch allows the FSACTL_SEND_LARGE_FIB, FSACTL_SENDFIB and
    FSACTL_SEND_RAW_SRB ioctl calls into the aacraid driver to be
    interruptible. Only necessary if the adapter and/or the management
    software has gone into some sort of misbehavior and the system is being
    rebooted, thus permitting the user management software applications to
    be killed relatively cleanly. The FIB queue resource is held out of the
    free queue until the adapter finally, if ever, completes the command.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

20 Jun, 2006

1 commit


20 May, 2006

1 commit

  • Received From Mark Salyzyn

    The queue tracking is just not being used, not even for debugging. Information
    about outstanding commands can be acquired from the scsi structures.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

05 Feb, 2006

1 commit


29 Oct, 2005

1 commit


21 May, 2005

1 commit

  • This patch addresses the sparse -Wbitwise warnings that Christoph wanted
    me to eliminate. This mostly consisted of making data structure
    elements of hardware associated structures the __le* equivalent.
    Although there were a couple places where there was mixing of cpu and le
    variable math. These changes have been tested on both an x86 and ppc
    machine running bonnie++. The usage of the LE32_ALL_ONES macro has been
    eliminated.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds