1. 24 May, 2010 36 commits
    • Alex Elder's avatar
      88e88374
    • Dave Chinner's avatar
      xfs: Ensure inode allocation buffers are fully replayed · ccf7c23f
      Dave Chinner authored
      With delayed logging, we can get inode allocation buffers in the
      same transaction inode unlink buffers. We don't currently mark inode
      allocation buffers in the log, so inode unlink buffers take
      precedence over allocation buffers.
      
      The result is that when they are combined into the same checkpoint,
      only the unlinked inode chain fields are replayed, resulting in
      uninitialised inode buffers being detected when the next inode
      modification is replayed.
      
      To fix this, we need to ensure that we do not set the inode buffer
      flag in the buffer log item format flags if the inode allocation has
      not already hit the log. To avoid requiring a change to log
      recovery, we really need to make this a modification that relies
      only on in-memory sate.
      
      We can do this by checking during buffer log formatting (while the
      CIL cannot be flushed) if we are still in the same sequence when we
      commit the unlink transaction as the inode allocation transaction.
      If we are, then we do not add the inode buffer flag to the buffer
      log format item flags. This means the entire buffer will be
      replayed, not just the unlinked fields. We do this while
      CIL flusheѕ are locked out to ensure that we don't race with the
      sequence numbers changing and hence fail to put the inode buffer
      flag in the buffer format flags when we really need to.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      ccf7c23f
    • Dave Chinner's avatar
      xfs: enable background pushing of the CIL · df806158
      Dave Chinner authored
      If we let the CIL grow without bound, it will grow large enough to violate
      recovery constraints (must be at least one complete transaction in the log at
      all times) or take forever to write out through the log buffers. Hence we need
      a check during asynchronous transactions as to whether the CIL needs to be
      pushed.
      
      We track the amount of log space the CIL consumes, so it is relatively simple
      to limit it on a pure size basis. Make the limit the minimum of just under half
      the log size (recovery constraint) or 8MB of log space (which is an awful lot
      of metadata).
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      df806158
    • Dave Chinner's avatar
      xfs: forced unmounts need to push the CIL · 9da1ab18
      Dave Chinner authored
      If the filesystem is being shut down and the there is no log error,
      the current code forces out the current log buffers. This code now needs
      to push the CIL before it forces out the log buffers to acheive the same
      result.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      9da1ab18
    • Dave Chinner's avatar
      xfs: Introduce delayed logging core code · 71e330b5
      Dave Chinner authored
      The delayed logging code only changes in-memory structures and as
      such can be enabled and disabled with a mount option. Add the mount
      option and emit a warning that this is an experimental feature that
      should not be used in production yet.
      
      We also need infrastructure to track committed items that have not
      yet been written to the log. This is what the Committed Item List
      (CIL) is for.
      
      The log item also needs to be extended to track the current log
      vector, the associated memory buffer and it's location in the Commit
      Item List. Extend the log item and log vector structures to enable
      this tracking.
      
      To maintain the current log format for transactions with delayed
      logging, we need to introduce a checkpoint transaction and a context
      for tracking each checkpoint from initiation to transaction
      completion.  This includes adding a log ticket for tracking space
      log required/used by the context checkpoint.
      
      To track all the changes we need an io vector array per log item,
      rather than a single array for the entire transaction. Using the new
      log vector structure for this requires two passes - the first to
      allocate the log vector structures and chain them together, and the
      second to fill them out.  This log vector chain can then be passed
      to the CIL for formatting, pinning and insertion into the CIL.
      
      Formatting of the log vector chain is relatively simple - it's just
      a loop over the iovecs on each log vector, but it is made slightly
      more complex because we re-write the iovec after the copy to point
      back at the memory buffer we just copied into.
      
      This code also needs to pin log items. If the log item is not
      already tracked in this checkpoint context, then it needs to be
      pinned. Otherwise it is already pinned and we don't need to pin it
      again.
      
      The only other complexity is calculating the amount of new log space
      the formatting has consumed. This needs to be accounted to the
      transaction in progress, and the accounting is made more complex
      becase we need also to steal space from it for log metadata in the
      checkpoint transaction. Calculate all this at insert time and update
      all the tickets, counters, etc correctly.
      
      Once we've formatted all the log items in the transaction, attach
      the busy extents to the checkpoint context so the busy extents live
      until checkpoint completion and can be processed at that point in
      time. Transactions can then be freed at this point in time.
      
      Now we need to issue checkpoints - we are tracking the amount of log space
      used by the items in the CIL, so we can trigger background checkpoints when the
      space usage gets to a certain threshold. Otherwise, checkpoints need ot be
      triggered when a log synchronisation point is reached - a log force event.
      
      Because the log write code already handles chained log vectors, writing the
      transaction is trivial, too. Construct a transaction header, add it
      to the head of the chain and write it into the log, then issue a
      commit record write. Then we can release the checkpoint log ticket
      and attach the context to the log buffer so it can be called during
      Io completion to complete the checkpoint.
      
      We also need to allow for synchronising multiple in-flight
      checkpoints. This is needed for two things - the first is to ensure
      that checkpoint commit records appear in the log in the correct
      sequence order (so they are replayed in the correct order). The
      second is so that xfs_log_force_lsn() operates correctly and only
      flushes and/or waits for the specific sequence it was provided with.
      
      To do this we need a wait variable and a list tracking the
      checkpoint commits in progress. We can walk this list and wait for
      the checkpoints to change state or complete easily, an this provides
      the necessary synchronisation for correct operation in both cases.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      71e330b5
    • Dave Chinner's avatar
      xfs: Delayed logging design documentation · a9a745da
      Dave Chinner authored
      Document the design of the delayed logging implementation. This
      includes assumptions made, dead ends followed, the reasoning behind
      the structuring of the code, the layout of various structures, how
      things fit together, traps and pit-falls avoided, etc. This is all
      too much to document in the code itself, so do it in a separate
      file.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      a9a745da
    • Dave Chinner's avatar
      xfs: Improve scalability of busy extent tracking · ed3b4d6c
      Dave Chinner authored
      When we free a metadata extent, we record it in the per-AG busy
      extent array so that it is not re-used before the freeing
      transaction hits the disk. This array is fixed size, so when it
      overflows we make further allocation transactions synchronous
      because we cannot track more freed extents until those transactions
      hit the disk and are completed. Under heavy mixed allocation and
      freeing workloads with large log buffers, we can overflow this array
      quite easily.
      
      Further, the array is sparsely populated, which means that inserts
      need to search for a free slot, and array searches often have to
      search many more slots that are actually used to check all the
      busy extents. Quite inefficient, really.
      
      To enable this aspect of extent freeing to scale better, we need
      a structure that can grow dynamically. While in other areas of
      XFS we have used radix trees, the extents being freed are at random
      locations on disk so are better suited to being indexed by an rbtree.
      
      So, use a per-AG rbtree indexed by block number to track busy
      extents.  This incures a memory allocation when marking an extent
      busy, but should not occur too often in low memory situations. This
      should scale to an arbitrary number of extents so should not be a
      limitation for features such as in-memory aggregation of
      transactions.
      
      However, there are still situations where we can't avoid allocating
      busy extents (such as allocation from the AGFL). To minimise the
      overhead of such occurences, we need to avoid doing a synchronous
      log force while holding the AGF locked to ensure that the previous
      transactions are safely on disk before we use the extent. We can do
      this by marking the transaction doing the allocation as synchronous
      rather issuing a log force.
      
      Because of the locking involved and the ordering of transactions,
      the synchronous transaction provides the same guarantees as a
      synchronous log force because it ensures that all the prior
      transactions are already on disk when the synchronous transaction
      hits the disk. i.e. it preserves the free->allocate order of the
      extent correctly in recovery.
      
      By doing this, we avoid holding the AGF locked while log writes are
      in progress, hence reducing the length of time the lock is held and
      therefore we increase the rate at which we can allocate and free
      from the allocation group, thereby increasing overall throughput.
      
      The only problem with this approach is that when a metadata buffer is
      marked stale (e.g. a directory block is removed), then buffer remains
      pinned and locked until the log goes to disk. The issue here is that
      if that stale buffer is reallocated in a subsequent transaction, the
      attempt to lock that buffer in the transaction will hang waiting
      the log to go to disk to unlock and unpin the buffer. Hence if
      someone tries to lock a pinned, stale, locked buffer we need to
      push on the log to get it unlocked ASAP. Effectively we are trading
      off a guaranteed log force for a much less common trigger for log
      force to occur.
      
      Ideally we should not reallocate busy extents. That is a much more
      complex fix to the problem as it involves direct intervention in the
      allocation btree searches in many places. This is left to a future
      set of modifications.
      
      Finally, now that we track busy extents in allocated memory, we
      don't need the descriptors in the transaction structure to point to
      them. We can replace the complex busy chunk infrastructure with a
      simple linked list of busy extents. This allows us to remove a large
      chunk of code, making the overall change a net reduction in code
      size.
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      ed3b4d6c
    • Dave Chinner's avatar
      xfs: make the log ticket ID available outside the log infrastructure · 955833cf
      Dave Chinner authored
      The ticket ID is needed to uniquely identify transactions when doing busy
      extent matching. Delayed logging changes the lifecycle of busy extents with
      respect to the transaction structure lifecycle. Hence we can no longer use
      the transaction structure as a means of determining the owner of the busy
      extent as it may be freed and reused while the busy extent is still active.
      
      This commit provides the infrastructure to access the xlog_tid_t held in the
      ticket from a transaction handle. This avoids the need for callers to peek
      into the transaction and log structures to find this out.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      955833cf
    • Dave Chinner's avatar
      xfs: clean up log ticket overrun debug output · 169a7b07
      Dave Chinner authored
      Push the error message output when a ticket overrun is detected
      into the ticket printing functions. Also remove the debug version
      of the code as the production version will still panic just as
      effectively on a debug kernel via the panic mask being set.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      169a7b07
    • Dave Chinner's avatar
      xfs: Clean up XFS_BLI_* flag namespace · c1155410
      Dave Chinner authored
      Clean up the buffer log format (XFS_BLI_*) flags because they have a
      polluted namespace. They XFS_BLI_ prefix is used for both in-memory
      and on-disk flag feilds, but have overlapping values for different
      flags. Rename the buffer log format flags to use the XFS_BLF_*
      prefix to avoid confusing them with the in-memory XFS_BLI_* prefixed
      flags.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      c1155410
    • Dave Chinner's avatar
      xfs: modify buffer item reference counting · 64fc35de
      Dave Chinner authored
      The buffer log item reference counts used to take referenceѕ for every
      transaction, similar to the pin counting. This is symmetric (like the
      pin/unpin) with respect to transaction completion, but with dleayed logging
      becomes assymetric as the pinning becomes assymetric w.r.t. transaction
      completion.
      
      To make both cases the same, allow the buffer pinning to take a reference to
      the buffer log item and always drop the reference the transaction has on it
      when being unlocked. This is balanced correctly because the unpin operation
      always drops a reference to the log item. Hence reference counting becomes
      symmetric w.r.t. item pinning as well as w.r.t active transactions and as a
      result the reference counting model remain consistent between normal and
      delayed logging.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      64fc35de
    • Dave Chinner's avatar
      xfs: allow log ticket allocation to take allocation flags · 3383ca57
      Dave Chinner authored
      Delayed logging currently requires ticket allocation to succeed, so
      we need to be able to sleep on allocation. It also should not allow
      memory allocation to recurse into the filesystem. hence we need to
      pass allocation flags directing the type of allocation the caller
      requires.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      3383ca57
    • Dave Chinner's avatar
      xfs: Don't reuse the same transaction ID for duplicated transactions. · 524ee36f
      Dave Chinner authored
      The transaction ID is written into the log as the unique identifier
      for transactions during recover. When duplicating a transaction, we
      reuse the log ticket, which means it has the same transaction ID as
      the previous transaction.
      
      Rather than regenerating a random transaction ID for the duplicated
      transaction, just add one to the current ID so that duplicated
      transaction can be easily spotted in the log and during recovery
      during problem diagnosis.
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
      524ee36f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6 · 7e125f7b
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
        cmd640: fix kernel oops in test_irq() method
        pdc202xx_old: ignore "FIFO empty" bit in test_irq() method
        pdc202xx_old: wire test_irq() method for PDC2026x
        IDE: pass IRQ flags to the IDE core
        ide: fix comment typo in ide.h
      7e125f7b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin · 064e297c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (30 commits)
        Blackfin: SMP: fix continuation lines
        Blackfin: acvilon: fix timeout usage for I2C
        Blackfin: fix typo in BF537 IRQ comment
        Blackfin: unify duplicate MEM_MT48LC32M8A2_75 kconfig options
        Blackfin: set ARCH_KMALLOC_MINALIGN
        Blackfin: use atomic kmalloc in L1 alloc so it too can be atomic
        Blackfin: another year of changes (update copyright in boot log)
        Blackfin: optimize strncpy a bit
        Blackfin: isram: clean up ITEST_COMMAND macro and improve the selftests
        Blackfin: move string functions to normal lib/ assembly
        Blackfin: SIC: cut down on IAR MMR reads a bit
        Blackfin: bf537-minotaur: fix build errors due to header changes
        Blackfin: kgdb: pass up the CC register instead of a 0 stub
        Blackfin: handle HW errors in the new "FAULT" printing code
        Blackfin: show the whole accumulator in the pseudo DBG insn
        Blackfin: support all possible registers in the pseudo instructions
        Blackfin: add support for the DBG (debug output) pseudo insn
        Blackfin: change the BUG opcode to an unused 16-bit opcode
        Blackfin: allow NMI watchdog to be used w/RETN as a scratch reg
        Blackfin: add support for the DBGA (debug assert) pseudo insn
        ...
      064e297c
    • Linus Torvalds's avatar
      Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing · f1377118
      Linus Torvalds authored
      * 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:
        uml: Pushdown the bkl from harddog_kern ioctl
        sunrpc: Pushdown the bkl from sunrpc cache ioctl
        sunrpc: Pushdown the bkl from ioctl
        autofs4: Pushdown the bkl from ioctl
        uml: Convert to unlocked_ioctls to remove implicit BKL
        ncpfs: BKL ioctl pushdown
        coda: Clean-up whitespace problems in pioctl.c
        coda: BKL ioctl pushdown
        drivers: Push down BKL into various drivers
        isdn: Push down BKL into ioctl functions
        scsi: Push down BKL into ioctl functions
        dvb: Push down BKL into ioctl functions
        smbfs: Push down BKL into ioctl function
        coda/psdev: Remove BKL from ioctl function
        um/mmapper: Remove BKL usage
        sn_hwperf: Kill BKL usage
        hfsplus: Push down BKL into ioctl function
      f1377118
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/battery-2.6 · 15953654
      Linus Torvalds authored
      * git://git.infradead.org/battery-2.6:
        ds2760_battery: Document ABI change
        ds2760_battery: Make charge_now and charge_full writeable
        power_supply: Add support for writeable properties
        power_supply: Use attribute groups
        power_supply: Add test_power driver
        tosa_battery: Fix build error due to direct driver_data usage
        wm97xx_battery: Quieten sparse warning (bat_set_pdata not declared)
        ds2782_battery: Get rid of magic numbers in driver_data
        ds2782_battery: Add support for ds2786 battery gas gauge
        pda_power: Add function callbacks for suspend and resume
        wm831x_power: Use genirq
        Driver for Zipit Z2 battery chip
        ds2782_battery: Fix clientdata on removal
      15953654
    • Linus Torvalds's avatar
      Merge branch 'timers-for-linus-urgent' of... · c3ed9ea4
      Linus Torvalds authored
      Merge branch 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        timers: Fix slack calculation for expired timers
        timekeeping: Fix timezone update
      c3ed9ea4
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 0fed2b5c
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (25 commits)
        sh: fix up sh7785lcr_32bit_defconfig.
        arch/sh/lib/strlen.S: Checkpatch cleanup
        sh: fix up sh7786 dmaengine build.
        sh: guard cookie consistency across termination in the DMA driver
        sh: prevent the DMA driver from unloading, while in use
        sh: fix Oops in the serial SCI driver
        sh: allow platforms to specify SD-card supported voltages
        mmc: let MFD's provide supported Vdd card voltages to tmio_mmc
        sh: disable SD-card write-protection detection on kfr2r09
        mfd: pass platform flags down to the tmio_mmc driver
        tmio: add a platform flag to disable card write-protection detection
        sh: Add SDHI DMA support to migor
        sh: Add SDHI DMA support to kfr2r09
        sh: Add SDHI DMA support to ms7724se
        sh: Add SDHI DMA support to ecovec
        mmc: add DMA support to tmio_mmc driver, when used on SuperH
        sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c
        mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell
        sh: add DMA slave definitions to sh7724
        sh: add DMA slaves for two SDHI controllers to sh7722
        ...
      0fed2b5c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd · 0163916f
      Linus Torvalds authored
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        exofs: confusion between kmap() and kmap_atomic() api
        exofs: Add default address_space_operations
      0163916f
    • Linus Torvalds's avatar
      Revert "ath9k: Group Key fix for VAPs" · a69eee49
      Linus Torvalds authored
      This reverts commit 03ceedea, since it
      breaks resume from suspend-to-ram on Rafael's Acer Ferrari One.
      NetworkManager thinks everything is ok, but it can't connect to the AP
      to get an IP address after the resume.
      
      In fact, it even breaks resume for non-ath9k chipsets: reverting it also
      fixes Rafael's Toshiba Protege R500 with the iwlagn driver.  As Johannes
      says:
      
        "Indeed, this patch needs to be reverted. That mac80211 change is wrong
         and completely unnecessary."
      Reported-and-requested-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Cc: Daniel Yingqiang Ma <yma.cool@gmail.com>
      Cc: John W. Linville <linville@tuxdriver.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a69eee49
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6 · 3e766fd4
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6:
        fat: convert to unlocked_ioctl
        fat: Cleanup nls_unload() usage
        fat: use pack_hex_byte() instead of custom one
      3e766fd4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 4fd5ec50
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        9p: Optimize TCREATE by eliminating a redundant fid clone.
        9p: cleanup: remove unneeded assignment
        9p: Add mksock support
        fs/9p: Make sure we properly instantiate dentry.
        9p: add 9P2000.L rename operation
        9p: add 9P2000.L statfs operation
        9p: VFS switches for 9p2000.L: VFS switches
        9p: VFS switches for 9p2000.L: protocol and client changes
      4fd5ec50
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 6e188240
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (59 commits)
        ceph: reuse mon subscribe message instead of allocated anew
        ceph: avoid resending queued message to monitor
        ceph: Storage class should be before const qualifier
        ceph: all allocation functions should get gfp_mask
        ceph: specify max_bytes on readdir replies
        ceph: cleanup pool op strings
        ceph: Use kzalloc
        ceph: use common helper for aborted dir request invalidation
        ceph: cope with out of order (unsafe after safe) mds reply
        ceph: save peer feature bits in connection structure
        ceph: resync headers with userland
        ceph: use ceph. prefix for virtual xattrs
        ceph: throw out dirty caps metadata, data on session teardown
        ceph: attempt mds reconnect if mds closes our session
        ceph: clean up send_mds_reconnect interface
        ceph: wait for mds OPEN reply to indicate reconnect success
        ceph: only send cap releases when mds is OPEN|HUNG
        ceph: dicard cap releases on mds restart
        ceph: make mon client statfs handling more generic
        ceph: drop src address(es) from message header [new protocol feature]
        ...
      6e188240
    • Linus Torvalds's avatar
      Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6 · 62a11ae3
      Linus Torvalds authored
      * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
        of: change of_match_device to work with struct device
        of: Remove duplicate fields from of_platform_driver
        drivercore: Add of_match_table to the common device drivers
        arch/microblaze: Move dma_mask from of_device into pdev_archdata
        arch/powerpc: Move dma_mask from of_device into pdev_archdata
        of: eliminate of_device->node and dev_archdata->{of,prom}_node
        of: Always use 'struct device.of_node' to get device node pointer.
        i2c/of: Allow device node to be passed via i2c_board_info
        driver-core: Add device node pointer to struct device
        of: protect contents of of_platform.h and of_device.h
        of/flattree: Make unflatten_device_tree() safe to call from any arch
        of/flattree: make of_fdt.h safe to unconditionally include.
      62a11ae3
    • Linus Torvalds's avatar
      Merge branch 'slab-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 · cedfb2db
      Linus Torvalds authored
      * 'slab-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        slub: Use alloc_pages_exact_node() for page allocation
        slub: __kmalloc_node_track_caller should trace kmalloc_large_node case
        slub: Potential stack overflow
        crypto: Use ARCH_KMALLOC_MINALIGN for CRYPTO_MINALIGN now that it's exposed
        mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slub_def.h>
        mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slob_def.h>
        mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slab_def.h>
        slab: Fix missing DEBUG_SLAB last user
        slab: add memory hotplug support
        slab: Fix continuation lines
      cedfb2db
    • Randy Dunlap's avatar
      Documentation: update SubmitChecklist for O=objdir and kconfig testing · 85f9642e
      Randy Dunlap authored
      Add build testing using 'O=builddir'.
      
      Add build testing with various kconfig symbols disabled, listing
      common ones that are known to cause build problems.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      85f9642e
    • Ben Hutchings's avatar
      fusion: fix kernel-doc notation · 9b8f77a1
      Ben Hutchings authored
      The function name must be followed by a space, hypen, space, and a
      short description.
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Eric Moore <Eric.Moore@lsi.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9b8f77a1
    • Randy Dunlap's avatar
      scsi_scan.c: fix/convert functions to use kernel-doc · 9f6aa575
      Randy Dunlap authored
      scsi_scan.c: fix incorrectly formatted kernel-doc notation
      & convert documentation of 2 functions into kernel-doc.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9f6aa575
    • Carlo Marcelo Arenas Belon's avatar
      Documentation/vm: use better value for MAP_HUGETLB · 89bbfb6b
      Carlo Marcelo Arenas Belon authored
      documentation: slightly more correct value for MAP_HUGETLB in map_hugetlb.c
      
      still not correct for alpha, mips, parisc or xtensa but working out of
      the box in the most common architectures without having to deal with
      complicated macros or including architecture specific headers.
      Signed-off-by: default avatarCarlo Marcelo Arenas Belon <carenas@sajinet.com.pe>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      89bbfb6b
    • Andrea Gelmini's avatar
      Documentation/timers/hpet_example: drop duplicate header files · 4164fcc2
      Andrea Gelmini authored
      Documentation/timers/hpet_example.c: fcntl.h is included more than once.
      Documentation/timers/hpet_example.c: signal.h is included more than once.
      Signed-off-by: default avatarAndrea Gelmini <andrea.gelmini@gelma.net>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4164fcc2
    • Randy Dunlap's avatar
      Documentation/development-process: add staging & mmotm info · e6a591e5
      Randy Dunlap authored
      Update explanation of mmotm.
      Add explanation of drivers/staging/.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e6a591e5
    • Randy Dunlap's avatar
      Documentation/development-process: add maintainers and git info · ef0eba47
      Randy Dunlap authored
      Add info on maintainers and persistent posting.
      Update git home page.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ef0eba47
    • H Hartley Sweeten's avatar
      docbook: make mtd nand module init static · 0af76d95
      H Hartley Sweeten authored
      In the example the module_init function should be static.
      Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0af76d95
    • Jeff Chua's avatar
      timers: Fix slack calculation for expired timers · f00e047e
      Jeff Chua authored
      commit 3bbb9ec9 (timers: Introduce the concept of timer slack for
      legacy timers) does not take the case into account when the timer is
      already expired. This broke wireless drivers.
      
      The solution is not to apply slack to already expired timers.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      f00e047e
    • Thomas Gleixner's avatar
      timekeeping: Fix timezone update · bd45b7a3
      Thomas Gleixner authored
      commit 64ce4c2f (time: Clean up warp_clock()) breaks the timezone
      update in a very subtle way. To avoid the direct access to timekeeping
      internals it adds the timezone delta to the current time with
      timespec_add_safe(). This works nicely when the timezone delta is > 0.
      If timezone delta is < 0 then the wrap check in timespec_add_safe()
      triggers and timespec_add_safe() returns TIME_MAX and screws up
      timekeeping completely. 
      
      The comment above timespec_add_safe() says:
          It's assumed that both values are valid (>= 0)
      
      Add the timezone seconds adjustment directly.
      Reported-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Tested-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarJohn Stultz <johnstul@us.ibm.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      bd45b7a3
  2. 23 May, 2010 2 commits
  3. 22 May, 2010 2 commits