1. 08 Feb, 2008 40 commits
    • Jesper Nilsson's avatar
      CRIS v32: Fixup kernel Makefile. · 0f229504
      Jesper Nilsson authored
      - Remove CRISv32 common arbiter, dma, io and pinmux files,
        they are now defined in machine dependent directories.
      - Add cache and cacheflush files for working around cache problems
        in CRISv32 chips.
      0f229504
    • Jesper Nilsson's avatar
      CRIS v32: Update entry.S to working order. · ffc8b00d
      Jesper Nilsson authored
      - Remove oldset parameter.
      - Utilise delay-slot for parameter moving.
      - Add kernel_execve as break 13.
      - Add new kernel syscalls.
      ffc8b00d
    • Jesper Nilsson's avatar
    • Jesper Nilsson's avatar
    • Jesper Nilsson's avatar
      CRIS: Minor generic kernel/traps.c changes. · 1ddba025
      Jesper Nilsson authored
      - Collect extern declarations at top of file.
      - Change raw_printk to printk, use oops_in_progress instead.
      - Fix formatting and whitespace.
      - Allow the watchdog to be disabled during oops.
      1ddba025
    • Jesper Nilsson's avatar
      CRIS: Minor fixes to mm/fault.c · 3e1fdc4e
      Jesper Nilsson authored
      - Only disallow oops if we're in_interrupt context (was in_atomic before)
      - Use the generic oops_in_progress instead of the raw_printk hack.
      - Fix whitespace/formatting.
      - Remove CVS log entries.
      3e1fdc4e
    • Jesper Nilsson's avatar
      75e52b27
    • Jesper Nilsson's avatar
      CRIS v32: Add prototypes for cache flushing · 738af38b
      Jesper Nilsson authored
      We need these to work around some cache bugs in CRISv32 chips.
      738af38b
    • Jesper Nilsson's avatar
      642d4ea0
    • Jesper Nilsson's avatar
      CRIS v32: Update asm-cris/arch-v32/irq.h for ETRAX FS and ARTPEC-3 · 1e5915b1
      Jesper Nilsson authored
      - Correct include to use <>
      - Rework calculation of number of IRQs and exceptions we have.
      - Remove useless "mask" argument to BUILD_IRQ macro
      1e5915b1
    • Jesper Nilsson's avatar
      CRIS: Merge axisflashmap.h with Axis internal changes. · 0c2efc48
      Jesper Nilsson authored
      - Add partition table struct to be used to parse partition table in flash.
      - Add JFFS2 as a type, and add readoly flag.
      - Improve some comments.
      - Lindent has been run, fixing whitespace and formatting issues.
      0c2efc48
    • Jesper Nilsson's avatar
      CRIS v32: Update synchronous serial driver. · e908dfc3
      Jesper Nilsson authored
      Now uses a DMA descriptor ring, which should avoid any unnecessary
      pauses in the streams.
      e908dfc3
    • Jesper Nilsson's avatar
      ca91d5b0
    • Jesper Nilsson's avatar
      f74c31d5
    • Jesper Nilsson's avatar
      CRIS v32: Add hardware dependent include files and defconfigs for ETRAX FS and ARTPEC-3 chips. · 58d08319
      Jesper Nilsson authored
      The header files describe the hardware registers available in both
      these chips, note that most of this documentation is automatically
      generated from the hardware implementation.
      58d08319
    • Jesper Nilsson's avatar
      CRIS v32: Add new machine dependent files for Etrax-FS and Artpec-3. · 035e111f
      Jesper Nilsson authored
      The two chips are somewhat different, and needs different handling.
      Adds handing of the dma, dram initialization, hardware settings, io,
      memory arbiter and pinmux
      
      Also moves the dma, dram initialization and io from CRIS v32 common files.
      035e111f
    • Jesper Nilsson's avatar
      CRIS v32: Add new driver files for Etrax-FS · 6107c61f
      Jesper Nilsson authored
      Adds gpio and nandflash handling for Etrax-FS
      6107c61f
    • Jesper Nilsson's avatar
      CRIS v32: Add new driver files for Artpec-3. · 18a1e013
      Jesper Nilsson authored
      Adds gpio and nandflash handling for Artpec-3.
      18a1e013
    • Jesper Nilsson's avatar
      CRIS: Rearrange Kconfigs for v10 and v32 to allow compilation without warnings. · 923dd2a4
      Jesper Nilsson authored
      - Remove some unneeded configs and add some new ones.
      - Merge common config items to common file instead of duplicating them.
      - Pull in standard Kconfig.preempt.
      - Remove some unneeded Kconfigs for subsystems not (yet) available on CRIS
        (md, scsi, ieee1394, i2o, isdn, telephony, media, pcmcia, pci)
      - Rename CRISv32 config items which had different types from CRISv10.
        (ETRAX_LED2G, ETRAX_LED2R, ETRAX_LED3G, ETRAX_LED3R, ETRAX_I2C_DATA_PORT,
        ETRAX_I2C_CLK_PORT)
      923dd2a4
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm · a4ffc0a0
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (44 commits)
        dm raid1: report fault status
        dm raid1: handle read failures
        dm raid1: fix EIO after log failure
        dm raid1: handle recovery failures
        dm raid1: handle write failures
        dm snapshot: combine consecutive exceptions in memory
        dm: stripe enhanced status return
        dm: stripe trigger event on failure
        dm log: auto load modules
        dm: move deferred bio flushing to workqueue
        dm crypt: use async crypto
        dm crypt: prepare async callback fn
        dm crypt: add completion for async
        dm crypt: add async request mempool
        dm crypt: extract scatterlist processing
        dm crypt: tidy io ref counting
        dm crypt: introduce crypt_write_io_loop
        dm crypt: abstract crypt_write_done
        dm crypt: store sector mapping in dm_crypt_io
        dm crypt: move queue functions
        ...
      a4ffc0a0
    • Linus Torvalds's avatar
      Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 · d7511ec8
      Linus Torvalds authored
      * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: (59 commits)
        hwmon: (lm80) Add individual alarm files
        hwmon: (lm80) De-macro the sysfs callbacks
        hwmon: (lm80) Various cleanups
        hwmon: (w83627hf) Refactor beep enable handling
        hwmon: (w83627hf) Add individual alarm and beep files
        hwmon: (w83627hf) Enable VBAT monitoring
        hwmon: (w83627ehf) The W83627DHG has 8 VID pins
        hwmon: (asb100) Add individual alarm files
        hwmon: (asb100) De-macro the sysfs callbacks
        hwmon: (asb100) Various cleanups
        hwmon: VRM is not written to registers
        hwmon: (dme1737) fix Super-IO device ID override
        hwmon: (dme1737) fix divide-by-0
        hwmon: (abituguru3) Add AUX4 fan input for Abit IP35 Pro
        hwmon: Add support for Texas Instruments/Burr-Brown ADS7828
        hwmon: (adm9240) Add individual alarm files
        hwmon: (lm77) Add individual alarm files
        hwmon: Discard useless I2C driver IDs
        hwmon: (lm85) Make the pwmN_enable files writable
        hwmon: (lm85) Return standard values in pwmN_enable
        ...
      d7511ec8
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 · 0b61a2ba
      Linus Torvalds authored
      * 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6: (62 commits)
        [XFS] add __init/__exit mark to specific init/cleanup functions
        [XFS] Fix oops in xfs_file_readdir()
        [XFS] kill xfs_root
        [XFS] keep i_nlink updated and use proper accessors
        [XFS] stop updating inode->i_blocks
        [XFS] Make xfs_ail_check check less by default
        [XFS] Move AIL pushing into it's own thread
        [XFS] use generic_permission
        [XFS] stop re-checking permissions in xfs_swapext
        [XFS] clean up xfs_swapext
        [XFS] remove permission check from xfs_change_file_space
        [XFS] prevent panic during log recovery due to bogus op_hdr length
        [XFS] Cleanup various fid related bits:
        [XFS] Fix xfs_lowbit64
        [XFS] Remove CFORK macros and use code directly in IFORK and DFORK macros.
        [XFS] kill superflous buffer locking (2nd attempt)
        [XFS] Use kernel-supplied "roundup_pow_of_two" for simplicity
        [XFS] Remove the BPCSHIFT and NB* based macros from XFS.
        [XFS] Remove bogus assert
        [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config
        ...
      0b61a2ba
    • Nick Piggin's avatar
      Convert SG from nopage to fault. · a13ff0bb
      Nick Piggin authored
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Cc: Douglas Gilbert <dougg@torque.net>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a13ff0bb
    • Linus Torvalds's avatar
      Merge branch 'slub-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm · c00f08d7
      Linus Torvalds authored
      * 'slub-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:
        SLUB: fix checkpatch warnings
        Use non atomic unlock
        SLUB: Support for performance statistics
        SLUB: Alternate fast paths using cmpxchg_local
        SLUB: Use unique end pointer for each slab page.
        SLUB: Deal with annoying gcc warning on kfree()
      c00f08d7
    • Jonathan Brassow's avatar
      dm raid1: report fault status · af195ac8
      Jonathan Brassow authored
      This patch adds extra information to the mirror status output, so that
      it can be determined which device(s) have failed.  For each mirror device,
      a character is printed indicating the most severe error encountered.  The
      characters are:
       *    A => Alive - No failures
       *    D => Dead - A write failure occurred leaving mirror out-of-sync
       *    S => Sync - A sychronization failure occurred, mirror out-of-sync
       *    R => Read - A read failure occurred, mirror data unaffected
      This allows userspace to properly reconfigure the mirror set.
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      af195ac8
    • Jonathan Brassow's avatar
      dm raid1: handle read failures · 06386bbf
      Jonathan Brassow authored
      This patch gives the ability to respond-to/record device failures
      that happen during read operations.  It also adds the ability to
      read from mirror devices that are not the primary if they are
      in-sync.
      
      There are essentially two read paths in mirroring; the direct path
      and the queued path.  When a read request is mapped, if the region
      is 'in-sync' the direct path is taken; otherwise the queued path
      is taken.
      
      If the direct path is taken, we must record bio information so that
      if the read fails we can retry it.  We then discover the status of
      a direct read through mirror_end_io.  If the read has failed, we will
      mark the device from which the read was attempted as failed (so we
      don't try to read from it again), restore the bio and try again.
      
      If the queued path is taken, we discover the results of the read
      from 'read_callback'.  If the device failed, we will mark the device
      as failed and attempt the read again if there is another device
      where this region is known to be 'in-sync'.
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      06386bbf
    • Jonathan Brassow's avatar
      dm raid1: fix EIO after log failure · b80aa7a0
      Jonathan Brassow authored
      This patch adds the ability to requeue write I/O to
      core device-mapper when there is a log device failure.
      
      If a write to the log produces and error, the pending writes are
      put on the "failures" list.  Since the log is marked as failed,
      they will stay on the failures list until a suspend happens.
      
      Suspends come in two phases, presuspend and postsuspend.  We must
      make sure that all the writes on the failures list are requeued
      in the presuspend phase (a requirement of dm core).  This means
      that recovery must be complete (because writes may be delayed
      behind it) and the failures list must be requeued before we
      return from presuspend.
      
      The mechanisms to ensure recovery is complete (or stopped) was
      already in place, but needed to be moved from postsuspend to
      presuspend.  We rely on 'flush_workqueue' to ensure that the
      mirror thread is complete and therefore, has requeued all writes
      in the failures list.
      
      Because we are using flush_workqueue, we must ensure that no
      additional 'queue_work' calls will produce additional I/O
      that we need to requeue (because once we return from
      presuspend, we are unable to do anything about it).  'queue_work'
      is called in response to the following functions:
      - complete_resync_work = NA, recovery is stopped
      - rh_dec (mirror_end_io) = NA, only calls 'queue_work' if it
                                 is ready to recover the region
                                 (recovery is stopped) or it needs
                                 to clear the region in the log*
                                 **this doesn't get called while
                                 suspending**
      - rh_recovery_end = NA, recovery is stopped
      - rh_recovery_start = NA, recovery is stopped
      - write_callback = 1) Writes w/o failures simply call
                         bio_endio -> mirror_end_io -> rh_dec
                         (see rh_dec above)
                         2) Writes with failures are put on
                         the failures list and queue_work is
                         called**
                         ** write_callbacks don't happen
                         during suspend **
      - do_failures = NA, 'queue_work' not called if suspending
      - add_mirror (initialization) = NA, only done on mirror creation
      - queue_bio = NA, 1) delayed I/O scheduled before flush_workqueue
                    is called.  2) No more I/Os are being issued.
                    3) Re-attempted READs can still be handled.
                    (Write completions are handled through rh_dec/
                    write_callback - mention above - and do not
                    use queue_bio.)
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      b80aa7a0
    • Jonathan Brassow's avatar
      dm raid1: handle recovery failures · 8f0205b7
      Jonathan Brassow authored
      This patch adds the calls to 'fail_mirror' if an error occurs during
      mirror recovery (aka resynchronization).  'fail_mirror' is responsible
      for recording the type of error by mirror device and ensuring an event
      gets raised for the purpose of notifying userspace.
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      8f0205b7
    • Jonathan Brassow's avatar
      dm raid1: handle write failures · 72f4b314
      Jonathan Brassow authored
      This patch gives mirror the ability to handle device failures
      during normal write operations.
      
      The 'write_callback' function is called when a write completes.
      If all the writes failed or succeeded, we report failure or
      success respectively.  If some of the writes failed, we call
      fail_mirror; which increments the error count for the device, notes
      the type of error encountered (DM_RAID1_WRITE_ERROR),  and
      selects a new primary (if necessary).  Note that the primary
      device can never change while the mirror is not in-sync (IOW,
      while recovery is happening.)  This means that the scenario
      where a failed write changes the primary and gives
      recovery_complete a chance to misread the primary never happens.
      The fact that the primary can change has necessitated the change
      to the default_mirror field.  We need to protect against reading
      garbage while the primary changes.  We then add the bio to a new
      list in the mirror set, 'failures'.  For every bio in the 'failures'
      list, we call a new function, '__bio_mark_nosync', where we mark
      the region 'not-in-sync' in the log and properly set the region
      state as, RH_NOSYNC.  Userspace must also be notified of the
      failure.  This is done by 'raising an event' (dm_table_event()).
      If fail_mirror is called in process context the event can be raised
      right away.  If in interrupt context, the event is deferred to the
      kmirrord thread - which raises the event if 'event_waiting' is set.
      
      Backwards compatibility is maintained by ignoring errors if
      the DM_FEATURES_HANDLE_ERRORS flag is not present.
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      72f4b314
    • Milan Broz's avatar
      dm snapshot: combine consecutive exceptions in memory · d74f81f8
      Milan Broz authored
      Provided sector_t is 64 bits, reduce the in-memory footprint of the
      snapshot exception table by the simple method of using unused bits of
      the chunk number to combine consecutive entries.
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      d74f81f8
    • Brian Wood's avatar
      dm: stripe enhanced status return · 4f7f5c67
      Brian Wood authored
      This patch adds additional information to the status line. It is added at the
      end of the returned text so it will not interfere with existing
      implementations using this data. The addition of this information will allow
      for a common return interface to match that returned with the dm-raid1.c
      status line (with Jonathan Brassow's patches).
      
      Here is a sample of what is returned with a mirror "status" call:
      isw_eeaaabgfg_mirror: 0 488390920 mirror 2 8:16 8:32 3727/3727 1 AA 1 core
      
      Here's what's returned with this patch for a stripe "status" call:
      isw_dheeijjdej_stripe: 0 976783872 striped 2 8:16 8:32 1 AA
      Signed-off-by: default avatarBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      4f7f5c67
    • Brian Wood's avatar
      dm: stripe trigger event on failure · a25eb944
      Brian Wood authored
      This patch adds the stripe_end_io function to process errors that might
      occur after an IO operation. As part of this there are a number of
      enhancements made to record and trigger events:
      
      - New atomic variable in struct stripe to record the number of
      errors each stripe volume device has experienced (could be used
      later with uevents to report back directly to userspace)
      
      - New workqueue/work struct setup to process the trigger_event function
      
      - New end_io function. It is here that testing for BIO error conditions
      take place. It determines the exact stripe that cause the error,
      records this in the new atomic variable, and calls the queue_work() function
      
      - New trigger_event function to process failure events. This
      calls dm_table_event()
      Signed-off-by: default avatarBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      a25eb944
    • Jonathan Brassow's avatar
      dm log: auto load modules · fb8b2848
      Jonathan Brassow authored
      If the log type is not recognised, attempt to load the module
      'dm-log-<type>.ko'.
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      fb8b2848
    • Milan Broz's avatar
      dm: move deferred bio flushing to workqueue · 304f3f6a
      Milan Broz authored
      Add a single-thread workqueue for each mapped device
      and move flushing of the lists of pushback and deferred bios
      to this new workqueue.
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      304f3f6a
    • Milan Broz's avatar
      dm crypt: use async crypto · 3a7f6c99
      Milan Broz authored
      dm-crypt: Use crypto ablkcipher interface
      
      Move encrypt/decrypt core to async crypto call.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      3a7f6c99
    • Milan Broz's avatar
      dm crypt: prepare async callback fn · 95497a96
      Milan Broz authored
      dm-crypt: Use crypto ablkcipher interface
      
      Prepare callback function for async crypto operation.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      95497a96
    • Milan Broz's avatar
      dm crypt: add completion for async · 43d69034
      Milan Broz authored
      dm-crypt: Use crypto ablkcipher interface
      Prepare completion for async crypto request.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      43d69034
    • Milan Broz's avatar
      dm crypt: add async request mempool · ddd42edf
      Milan Broz authored
      dm-crypt: Use crypto ablkcipher interface
      
      Introduce mempool for async crypto requests.
      
      cc->req is used mainly during synchronous operations
      (to prevent allocation and deallocation of the same object).
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      ddd42edf
    • Milan Broz's avatar
      dm crypt: extract scatterlist processing · 01482b76
      Milan Broz authored
      dm-crypt: Use crypto ablkcipher interface
      
      Move scatterlists to separate dm_crypt_struct and
      pick out block processing from crypt_convert.
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      01482b76
    • Milan Broz's avatar
      dm crypt: tidy io ref counting · 899c95d3
      Milan Broz authored
      Make io reference counting more obvious.
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      899c95d3