31 Mar, 2011

1 commit


24 Mar, 2010

1 commit

  • This macro worked only when applied to variables named 'kobj'.
    While this could have been fixed by simply renaming the macro argument,
    a more type-safe replacement by an inline function would be preferred.
    However, nobody uses this macro, so it's simpler to just remove it.

    Signed-off-by: Ferenc Wagner
    Signed-off-by: Jens Axboe

    Ferenc Wagner
     

26 Feb, 2010

1 commit


17 Oct, 2008

1 commit

  • The I2O ioctls assume 32bits. In itself that is fine as they are old
    cards and nobody uses 64bit. However on LKML it was noted this
    assumption is also made for allocated memory and is unsafe on 64bit
    systems.

    Fixing this is a mess. It turns out there is tons of crap buried in a
    header file that does racy 32/64bit filtering on the masks.

    So we:
    - Verify all callers of the racy code can sleep (i2o_dma_[re]alloc)
    - Move the code into a new i2o/memory.c file
    - Remove the gfp_mask argument so nobody can try and misuse the function
    - Wrap a mutex around the problem area (a single mutex is easy to do and
    none of this is performance relevant)
    - Switch the remaining problem kmalloc holdout to use i2o_dma_alloc

    Cc: Markus Lidel
    Cc: Vasily Averin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     

27 Jul, 2008

1 commit

  • Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
    architecture does:

    This enables us to cleanly fix the Calgary IOMMU issue that some devices
    are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).

    I think that per-device dma_mapping_ops support would be also helpful for
    KVM people to support PCI passthrough but Andi thinks that this makes it
    difficult to support the PCI passthrough (see the above thread). So I
    CC'ed this to KVM camp. Comments are appreciated.

    A pointer to dma_mapping_ops to struct dev_archdata is added. If the
    pointer is non NULL, DMA operations in asm/dma-mapping.h use it. If it's
    NULL, the system-wide dma_ops pointer is used as before.

    If it's useful for KVM people, I plan to implement a mechanism to register
    a hook called when a new pci (or dma capable) device is created (it works
    with hot plugging). It enables IOMMUs to set up an appropriate
    dma_mapping_ops per device.

    The major obstacle is that dma_mapping_error doesn't take a pointer to the
    device unlike other DMA operations. So x86 can't have dma_mapping_ops per
    device. Note all the POWER IOMMUs use the same dma_mapping_error function
    so this is not a problem for POWER but x86 IOMMUs use different
    dma_mapping_error functions.

    The first patch adds the device argument to dma_mapping_error. The patch
    is trivial but large since it touches lots of drivers and dma-mapping.h in
    all the architecture.

    This patch:

    dma_mapping_error() doesn't take a pointer to the device unlike other DMA
    operations. So we can't have dma_mapping_ops per device.

    Note that POWER already has dma_mapping_ops per device but all the POWER
    IOMMUs use the same dma_mapping_error function. x86 IOMMUs use device
    argument.

    [akpm@linux-foundation.org: fix sge]
    [akpm@linux-foundation.org: fix svc_rdma]
    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix bnx2x]
    [akpm@linux-foundation.org: fix s2io]
    [akpm@linux-foundation.org: fix pasemi_mac]
    [akpm@linux-foundation.org: fix sdhci]
    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix sparc]
    [akpm@linux-foundation.org: fix ibmvscsi]
    Signed-off-by: FUJITA Tomonori
    Cc: Muli Ben-Yehuda
    Cc: Andi Kleen
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     

30 Apr, 2008

1 commit


28 Apr, 2008

1 commit


19 Apr, 2008

1 commit


16 Oct, 2007

1 commit


20 Jul, 2007

1 commit

  • Slab destructors were no longer supported after Christoph's
    c59def9f222d44bb7e2f0a559f2906191a0862d7 change. They've been
    BUGs for both slab and slub, and slob never supported them
    either.

    This rips out support for the dtor pointer from kmem_cache_create()
    completely and fixes up every single callsite in the kernel (there were
    about 224, not including the slab allocator definitions themselves,
    or the documentation references).

    Signed-off-by: Paul Mundt

    Paul Mundt
     

17 Jul, 2007

1 commit


08 Dec, 2006

2 commits

  • Correct lots of typos, kernel-doc warnings, & kernel-doc usage in fusion and
    i2o drivers.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Replace all uses of kmem_cache_t with struct kmem_cache.

    The patch was generated using the following script:

    #!/bin/sh
    #
    # Replace one string by another in all the kernel sources.
    #

    set -e

    for file in `find * -name "*.c" -o -name "*.h"|xargs grep -l $1`; do
    quilt add $file
    sed -e "1,\$s/$1/$2/g" $file >/tmp/$$
    mv /tmp/$$ $file
    quilt refresh
    done

    The script was run like this

    sh replace kmem_cache_t "struct kmem_cache"

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

22 Nov, 2006

1 commit


11 Jun, 2006

1 commit

  • From: Markus Lidel

    - Fixed locking of struct i2o_exec_wait in Executive-OSM

    - Removed LCT Notify in i2o_exec_probe() which caused freeing memory and
    accessing freed memory during first enumeration of I2O devices

    - Added missing locking in i2o_exec_lct_notify()

    - removed put_device() of I2O controller in i2o_iop_remove() which caused
    the controller structure get freed to early

    - Fixed size of mempool in i2o_iop_alloc()

    - Fixed access to freed memory in i2o_msg_get()

    See http://bugzilla.kernel.org/show_bug.cgi?id=6561

    Signed-off-by: Markus Lidel
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     

27 Mar, 2006

1 commit

  • Modify well over a dozen mempool users to call mempool_create_slab_pool()
    rather than calling mempool_create() with extra arguments, saving about 30
    lines of code and increasing readability.

    Signed-off-by: Matthew Dobson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Dobson
     

04 Feb, 2006

1 commit

  • - This controller violates the I2O spec for the I/O registers. The patch
    contains a workaround which moves the registers to the proper location.
    (originally author: Matthew Starzewski)

    - If a message frame is beyond the mapped address range a error is
    returned.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     

07 Jan, 2006

3 commits

  • - Removed some kmalloc's with __GFP_ZERO and replace it with memset()
    because it didn't work properly.

    - Fixed returned message frame in i2o_cfg_passthru() which caused raidutils
    to display wrong error message in case a disk was missing.

    - Fixed size of printk() in i2o_scsi.c.

    - Fixed get_device() and put_device() in probing of the I2O controller.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Removed wrong I2O device class, which was only needed to add sysfs attributes.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changed the I2O API to create I2O messages first in kernel memory and then
    transfer it at once over the PCI bus instead of sending each quad-word over
    the PCI bus.

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     

31 Oct, 2005

1 commit

  • I recently picked up my older work to remove unnecessary #includes of
    sched.h, starting from a patch by Dave Jones to not include sched.h
    from module.h. This reduces the number of indirect includes of sched.h
    by ~300. Another ~400 pointless direct includes can be removed after
    this disentangling (patch to follow later).
    However, quite a few indirect includes need to be fixed up for this.

    In order to feed the patches through -mm with as little disturbance as
    possible, I've split out the fixes I accumulated up to now (complete for
    i386 and x86_64, more archs to follow later) and post them before the real
    patch. This way this large part of the patch is kept simple with only
    adding #includes, and all hunks are independent of each other. So if any
    hunk rejects or gets in the way of other patches, just drop it. My scripts
    will pick it up again in the next round.

    Signed-off-by: Tim Schmielau
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

29 Oct, 2005

3 commits


28 Oct, 2005

1 commit


24 Jun, 2005

6 commits

  • Lindent run and replaced printk() through the corresponding osm_*() function

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changes:
    - Added header "core.h" for i2o_core.ko internal definitions
    - More sparse fixes
    - Changed display of TID's in sysfs attributes from XXX to 0xXXX
    - Use the right functions for accessing I/O and normal memory
    - Removed error handling of SCSI device errors and let the SCSI layer
    take care of it
    - Added new device / removed device handling to SCSI-OSM
    - Make status access volatile
    - Cleaned up activation of I2O controller
    - Removed unnecessary wmb() and rmb() calls
    - Use own struct i2o_io for I/O memory instead of struct i2o_dma

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changes:
    - Provide SG_IO access to BLOCK and EXECUTIVE class on Adaptec
    controllers
    - Use PRIVATE messages in SCSI-OSM because on some controllers normal
    SCSI class commands like READ or READ CAPACITY cause errors
    - Use new DMA and SG list creation function
    - Added workaround to limit sectors per request for Adaptec 2400A
    controllers

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changes:
    - Added Bus-OSM which could be used by user space programs to reset a
    channel on the controller
    - Make ioctl's in Config-OSM obsolete in prefer for sysfs attributes and
    move those to its own file
    - Added sysfs attribute for firmware read and write access for I2O
    controllers
    - Added special handling of firmware read and write access for Adaptec
    controllers
    - Added vendor id and product id as sysfs-attribute to Executive classes
    - Added automatic notification of LCT change handling to Exec-OSM
    - Added flushing function to Block-OSM for later barrier implementation
    - Use PRIVATE messages for Block access on Adaptec controllers, which are
    faster then BLOCK class access
    - Cleaned up support for Promise controller
    - New messages are now detected using the IRQ status register as
    suggested by the I2O spec
    - Added i2o_dma_high() and i2o_dma_low() functions
    - Added facility for SG tablesize calculation when using 32-bit and
    64-bit DMA addresses
    - Added i2o_dma_map_single() and i2o_dma_map_sg() which could build the
    SG list for 32-bit as well as 64-bit DMA addresses

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changes:

    - Removed unnecessary checking of NULL before calling kfree()
    - Make some functions static
    - Changed pr_debug() into osm_debug()
    - Use i2o_msg_in_to_virt() for getting a pointer to the message frame
    - Cleaned up some comments
    - Changed some le32_to_cpu() into readl() where necessary
    - Make error messages of OSM's look the same
    - Cleaned up error handling in i2o_block_end_request()
    - Removed unused error handling of failed messages in Block-OSM, which
    are not allowed by the I2O spec
    - Corrected the blocksize detection in i2o_block
    - Added hrt and lct sysfs-attribute to controller
    - Call done() function in SCSI-OSM after freeing DMA buffers
    - Removed unneeded variable for message size calculation in
    i2o_scsi_queuecommand()
    - Make some changes to remove sparse warnings
    - Reordered some functions
    - Cleaned up controller initialization
    - Replaced some magic numbers by defines
    - Removed unnecessary dma_sync_single_for_cpu() call on coherent DMA
    - Removed some unused fields in i2o_controller and removed some unused
    functions

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     
  • Changes:

    - Fixed sysfs bug where user and parent links where added to the I2O
    device itself
    - Fixed bug when calculating TID for the event handler and cleaned up the
    workflow of i2o_driver_dispatch()
    - Fixed oops when no I2O device could be found for an event delivered to
    Exec-OSM
    - Fixed initialization of spinlock in Exec-OSM
    - Fixed memory leak in i2o_cfg_passthru() and i2o_cfg_passthru()
    - Removed MTRR support
    - Added PCI ID of Promise SX6000 with firmware >= 1.20.x.x
    - Turn of caching for ioremapped memory of in_queue
    - Added initialization sequence for Promise controllers
    - Moved definition of u8 / u16 / u32 for raidutils before first use

    Signed-off-by: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Markus Lidel
     

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