1. 08 2月, 2008 40 次提交
    • J
      CRIS v10: Update and improve axisflashmap.c · 32872b20
      Jesper Nilsson 提交于
      - Add config to use mtd0 as whole flash device.
      - Fix whitespace errors.
      - Remove braces around single statement ifs.
      - Break long lines.
      - Remove unnecessary CVS log.
      32872b20
    • J
      CRIS v10: Update rescue head.s · 8c11bffa
      Jesper Nilsson 提交于
      - Correct whitespace problems.
      - Add ifdef for ETRAX_AXISFLASHMAP to avoid compile error when not set.
      8c11bffa
    • J
      CRIS v10: Update rescue Kbuild makefile. · 63e6b9a0
      Jesper Nilsson 提交于
      - Remove old specific targets, use more generic ones instead.
      - Use if_changed to avoid creating new images when no change.
        Removes a lot of cruft.
      - Use EXTRA_CFLAGS instead of CFLAGS.
      63e6b9a0
    • J
      CRIS v10: Update boot/compressed Kbuild makefile. · 1333a694
      Jesper Nilsson 提交于
      - Remove old specific targets, use more generic ones instead.
      - Use if_changed to avoid creating new images when no change.
      - Use EXTRA_CFLAGS instead of CFLAGS.
      1333a694
    • J
      CRIS v10: Update boot Kbuild makefile. · 87f5a7f7
      Jesper Nilsson 提交于
      - Remove old specific targets, use more generic ones instead.
      87f5a7f7
    • J
      CRIS: Update main Kbuild makefile. · 2c2314bf
      Jesper Nilsson 提交于
      - Remove old and non-generic targets, use generic ones instead.
      - Add sub-arch as mach-fs or mach-a3 for EtraxFS and Artpec-3 respectively.
      - Add links to sub-arch directories, and erase before trying to create them.
      - Include from sub-arch specific include directory "mach".
      - Add files to be cleaned in CLEAN_FILES instead of as archclean target.
      2c2314bf
    • J
      CRIS v32: Update and improve axisflashmap · 5fc1f312
      Jesper Nilsson 提交于
      - Use default partition table when no partition is found (for initial tests)
      - Add config ETRAX_AXISFLASHMAP_MTD0WHOLE to allow whole flash as mtd0.
      - Add config for VCS simulator connection.
      5fc1f312
    • J
      CRIS v32: New version of I2C driver. · 201ca54a
      Jesper Nilsson 提交于
      - Add i2c_write and i2c_read as functions.
      - Use spinlocks for critical regions.
      - Add config item to set I2C data and clock port.
      - Put unneeded testcode inside #if 0.
      - Remove CVS id tag.
      201ca54a
    • J
      CRIS v32: Fixup kernel Makefile. · 0f229504
      Jesper Nilsson 提交于
      - 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
    • J
      CRIS v32: Update entry.S to working order. · ffc8b00d
      Jesper Nilsson 提交于
      - Remove oldset parameter.
      - Utilise delay-slot for parameter moving.
      - Add kernel_execve as break 13.
      - Add new kernel syscalls.
      ffc8b00d
    • J
      e8a8abf2
    • J
      54ab4d72
    • J
      CRIS: Minor generic kernel/traps.c changes. · 1ddba025
      Jesper Nilsson 提交于
      - 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
    • J
      CRIS: Minor fixes to mm/fault.c · 3e1fdc4e
      Jesper Nilsson 提交于
      - 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
    • J
      75e52b27
    • J
      CRIS v32: Add prototypes for cache flushing · 738af38b
      Jesper Nilsson 提交于
      We need these to work around some cache bugs in CRISv32 chips.
      738af38b
    • J
      CRIS: Remove unnecessary CVS log from cris/mm/init.c · 642d4ea0
      Jesper Nilsson 提交于
      642d4ea0
    • J
      CRIS v32: Update asm-cris/arch-v32/irq.h for ETRAX FS and ARTPEC-3 · 1e5915b1
      Jesper Nilsson 提交于
      - Correct include to use <>
      - Rework calculation of number of IRQs and exceptions we have.
      - Remove useless "mask" argument to BUILD_IRQ macro
      1e5915b1
    • J
      CRIS: Merge axisflashmap.h with Axis internal changes. · 0c2efc48
      Jesper Nilsson 提交于
      - 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
    • J
      CRIS v32: Update synchronous serial driver. · e908dfc3
      Jesper Nilsson 提交于
      Now uses a DMA descriptor ring, which should avoid any unnecessary
      pauses in the streams.
      e908dfc3
    • J
      CRIS v32: Add SECOND_WORD_SYNC, used in sync_serial. · ca91d5b0
      Jesper Nilsson 提交于
      ca91d5b0
    • J
      CRIS v32: Add L2 cache initialization code. · f74c31d5
      Jesper Nilsson 提交于
      f74c31d5
    • J
      CRIS v32: Add hardware dependent include files and defconfigs for ETRAX FS and ARTPEC-3 chips. · 58d08319
      Jesper Nilsson 提交于
      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
    • J
      CRIS v32: Add new machine dependent files for Etrax-FS and Artpec-3. · 035e111f
      Jesper Nilsson 提交于
      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
    • J
      CRIS v32: Add new driver files for Etrax-FS · 6107c61f
      Jesper Nilsson 提交于
      Adds gpio and nandflash handling for Etrax-FS
      6107c61f
    • J
      CRIS v32: Add new driver files for Artpec-3. · 18a1e013
      Jesper Nilsson 提交于
      Adds gpio and nandflash handling for Artpec-3.
      18a1e013
    • J
      CRIS: Rearrange Kconfigs for v10 and v32 to allow compilation without warnings. · 923dd2a4
      Jesper Nilsson 提交于
      - 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
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm · a4ffc0a0
      Linus Torvalds 提交于
      * 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
    • L
      Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 · d7511ec8
      Linus Torvalds 提交于
      * '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
    • L
      Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 · 0b61a2ba
      Linus Torvalds 提交于
      * '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
    • N
      Convert SG from nopage to fault. · a13ff0bb
      Nick Piggin 提交于
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Douglas Gilbert <dougg@torque.net>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a13ff0bb
    • L
      Merge branch 'slub-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm · c00f08d7
      Linus Torvalds 提交于
      * '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
    • J
      dm raid1: report fault status · af195ac8
      Jonathan Brassow 提交于
      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: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      af195ac8
    • J
      dm raid1: handle read failures · 06386bbf
      Jonathan Brassow 提交于
      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: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      06386bbf
    • J
      dm raid1: fix EIO after log failure · b80aa7a0
      Jonathan Brassow 提交于
      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: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      b80aa7a0
    • J
      dm raid1: handle recovery failures · 8f0205b7
      Jonathan Brassow 提交于
      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: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      8f0205b7
    • J
      dm raid1: handle write failures · 72f4b314
      Jonathan Brassow 提交于
      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: NJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      72f4b314
    • M
      dm snapshot: combine consecutive exceptions in memory · d74f81f8
      Milan Broz 提交于
      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: NMilan Broz <mbroz@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      d74f81f8
    • B
      dm: stripe enhanced status return · 4f7f5c67
      Brian Wood 提交于
      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: NBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      4f7f5c67
    • B
      dm: stripe trigger event on failure · a25eb944
      Brian Wood 提交于
      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: NBrian Wood <brian.j.wood@intel.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      a25eb944