1. 11 12月, 2007 3 次提交
    • J
      firewire: OHCI 1.0 Isochronous Receive support · a186b4a6
      Jarod Wilson 提交于
      Third rendition of FireWire OHCI 1.0 Isochronous Receive support, using a
      zer-copy method similar to OHCI 1.1 which puts the IR data payload directly
      into the userspace buffer. The zero-copy implementation eliminates the
      video artifacts, audio popping, and buffer underrun problems seen with
      version 1 of this patch, as well as fixing a regression in OHCI 1.1 support
      introduced by version 2 of this patch.
      
      Successfully tested in OHCI 1.1 mode on the following chipsets:
      
      - NEC uPD72847 (rev 01), OHCI 1.1 (PCI)
      - Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe)
      - Ti TSB41AB2 (rev 01), OHCI 1.1 (PCI on SB Audigy)
      - Apple UniNorth 2 (rev 81), OHCI 1.1 (PowerBook G4 onboard)
      
      Successfully tested in OHCI 1.0 mode on the following chipsets:
      
      - Agere FW323 (rev 06), OHCI 1.0 (Mac Mini onboard)
      - Agere FW323 (rev 06), OHCI 1.0 (PCI)
      - Via VT6306 (rev 46), OHCI 1.0 (PCI)
      - NEC OrangeLink (rev 01), OHCI 1.0 (PCI)
      - NEC uPD72847 (rev 01), OHCI 1.1 (PCI)
      - Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe)
      
      The bulk of testing was done in an x86_64 system, but was also successfully
      sanity-tested on other systems, including a PPC(32) PowerBook G4 and an i686
      EPIA M10k. Crude benchmarking (watching top during capture) puts the cpu
      utilization during capture on the EPIA's 1GHz Via C3 processor around 13%,
      which is down from 30% with the v1 code.
      
      Some implementation details:
      
      To maintain the same userspace API as dual-buffer mode, we set up two
      descriptors for every incoming packet. The first is an INPUT_MORE descriptor,
      pointing to a buffer large enough to hold just the packet's iso headers,
      immediately followed by an INPUT_LAST descriptor, pointing to a chunk of the
      userspace buffer big enough for the packet's data payload. With this setup,
      each incoming packet fills in these two descriptors in a manner that very
      closely emulates dual-buffer receive, to the point where the bulk of the
      handle_ir_* code is now identical between the two (and probably primed for
      some restructuring to share code between them).
      
      The only caveat I have at the moment is that neither of my OHCI 1.0 Via
      VT6307-based FireWire controllers work particularly well with this code
      for reasons I have yet to figure out.
      Signed-off-by: NJarod Wilson <jwilson@redhat.com>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      a186b4a6
    • L
      Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 · 41f81e88
      Linus Torvalds 提交于
      * 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6:
        [XFS] Fix xfs_ichgtime()s broken usage of I_SYNC
        [XFS] Make xfsbufd threads freezable
        [XFS] revert to double-buffering readdir
        [XFS] Fix broken inode cluster setup.
        [XFS] Clear XBF_READ_AHEAD flag on I/O completion.
        [XFS] Fixed a few bugs in xfs_buf_associate_memory()
        [XFS] 971064 Various fixups for xfs_bulkstat().
        [XFS] Fix dbflush panic in xfs_qm_sync.
      41f81e88
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/fix-kbuild · dc3d532a
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sam/fix-kbuild:
        kbuild: fix building with O=.. options
        kbuild: fix building with redirected output.
      dc3d532a
  2. 10 12月, 2007 11 次提交
    • L
      Revert "PCI: fix IDE legacy mode resources" · af1bff4f
      Linus Torvalds 提交于
      This reverts commit fd6e7321, which
      helped up things on MIPS, but was wrong for everything else.  As Ralf
      Baechle puts it:
      
        "It seems the whole MIPS resource managment is complicated enough (out
         of necessity) that only a few people actually grok it.  Ioports being
         actually memory mapped on MIPS only makes the confusion worse, sigh."
      Requested-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NAlan Cox <alan@redhat.com>
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      af1bff4f
    • B
      powerpc: Fix IDE legacy vs. native fixups · 6d98bda7
      Benjamin Herrenschmidt 提交于
      PowerMac and CHRP/BriQ platforms have quirks to switch some IDE
      controllers from legacy mode to fully native mode. Those quirks
      however will not work properly anymore due to a change to the
      generic code to better handle legacy IDE resources.
      
      This fixes it by moving those quirk to "early" quirks (so they
      run before resources are probed for the devices) and clearing
      all BARs after the conversion to force a reallocation of sane
      values.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6d98bda7
    • D
      [XFS] Fix xfs_ichgtime()s broken usage of I_SYNC · cf10e82b
      David Chinner 提交于
      The recent I_LOCK->I_SYNC changes mistakenly changed xfs_ichgtime to look
      at I_SYNC instead of I_LOCK. This was incorrect and prevents newly created
      inodes from moving to the dirty list. Change this to the correct check
      which is for I_NEW, not I_LOCK or I_SYNC so that behaviour is correct.
      
      SGI-PV: 974225
      SGI-Modid: xfs-linux-melb:xfs-kern:30204a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      cf10e82b
    • R
      [XFS] Make xfsbufd threads freezable · 978c7b2f
      Rafael J. Wysocki 提交于
      Fix breakage caused by commit 83144186
      that did not introduce the necessary call to set_freezable() in
      xfs/linux-2.6/xfs_buf.c .
      
      SGI-PV: 974224
      SGI-Modid: xfs-linux-melb:xfs-kern:30203a
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      978c7b2f
    • C
      [XFS] revert to double-buffering readdir · e89bc612
      Christoph Hellwig 提交于
      The current readdir implementation deadlocks on a btree buffers locks
      because nfsd calls back into ->lookup from the filldir callback. The only
      short-term fix for this is to revert to the old inefficient
      double-buffering scheme.
      
      SGI-PV: 973377
      SGI-Modid: xfs-linux-melb:xfs-kern:30201a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      e89bc612
    • D
      [XFS] Fix broken inode cluster setup. · a7430847
      David Chinner 提交于
      The radix tree based inode caches did away with the inode cluster hashes,
      replacing them with a bunch of masking and gang lookups on the radix tree.
      
      This masking got broken when moving the code to per-ag radix trees and
      indexing by agino # rather than straight inode number. The result is
      clustered inode writeback does not cluster and things can go extremely
      slowly when there are lots of inodes to write.
      
      Fix it up by comparing the agino # of the inode we just looked up to the
      index of the cluster we are looking for.
      Tested-by: NTorsten Kaiser <just.for.lkml@googlemail.com>
      
      SGI-PV: 972915
      SGI-Modid: xfs-linux-melb:xfs-kern:30033a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      a7430847
    • L
      [XFS] Clear XBF_READ_AHEAD flag on I/O completion. · 77be55a5
      Lachlan McIlroy 提交于
      SGI-PV: 972554
      SGI-Modid: xfs-linux-melb:xfs-kern:30128a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      77be55a5
    • L
      [XFS] Fixed a few bugs in xfs_buf_associate_memory() · d1afb678
      Lachlan McIlroy 提交于
      - calculation of 'page_count' was incorrect as it did not
        consider the offset of 'mem' into the first page. The
        logic to bump 'page_count' didn't work if 'len' was <=
        PAGE_CACHE_SIZE (ie offset = 3k, len = 2k).
      - setting b_buffer_length to 'len' is incorrect if 'offset'
        is > 0. Set it to the total length of the buffer.
      - I suspect that passing a non-aligned address into
        mem_to_page() for the first page may have been causing
        issues - don't know but just tidy up that code anyway.
      
      SGI-PV: 971596
      SGI-Modid: xfs-linux-melb:xfs-kern:30143a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      d1afb678
    • L
      [XFS] 971064 Various fixups for xfs_bulkstat(). · cd57e594
      Lachlan McIlroy 提交于
      - sanity check for NULL user buffer in xfs_ioc_bulkstat[_compat]()
      - remove the special case for XFS_IOC_FSBULKSTAT with count == 1. This
        special case causes bulkstat to fail because the special case uses
        xfs_bulkstat_single() instead of xfs_bulkstat() and the two functions
        have different semantics.  xfs_bulkstat() will return the next inode
        after the one supplied while skipping internal inodes (ie quota inodes).
        xfs_bulkstate_single() will only lookup the inode supplied and return
        an error if it is an internal inode.
      - in xfs_bulkstat(), need to initialise 'lastino' to the inode supplied
        so in cases were we return without examining any inodes the scan wont
        restart back at zero.
      - sanity check for valid *ubcountp values. Cannot sanity check for valid
        ubuffer here because some users of xfs_bulkstat() don't supply a buffer.
      - checks against 'ubleft' (the space left in the user's buffer) should be
        against 'statstruct_size' which is the supplied minimum object size.
        The mixture of checks against statstruct_size and 0 was one of the
        reasons we were skipping inodes.
      - if the formatter function returns BULKSTAT_RV_NOTHING and an error and
        the error is not ENOENT or EINVAL then we need to abort the scan. ENOENT
        is for inodes that are no longer valid and we just skip them. EINVAL is
        returned if we try to lookup an internal inode so we skip them too. For
        a DMF scan if the inode and DMF attribute cannot fit into the space left
        in the user's buffer it would return ERANGE. We didn't handle this error
        and skipped the inode. We would continue to skip inodes until one fitted
        into the user's buffer or we completed the scan.
      - put back the recalculation of agino (that got removed with the last fix)
        at the end of the while loop. This is because the code at the start of
        the loop expects agino to be the last inode examined if it is non-zero.
      - if we found some inodes but then encountered an error, return success
        this time and the error next time. If the formatter aborted with ENOMEM
        we will now return this error but only if we couldn't read any inodes.
        Previously if we encountered ENOMEM without reading any inodes we
        returned a zero count and no error which falsely indicated the scan was
        complete.
      
      SGI-PV: 973431
      SGI-Modid: xfs-linux-melb:xfs-kern:30089a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      cd57e594
    • D
      [XFS] Fix dbflush panic in xfs_qm_sync. · d757762b
      Donald Douwsma 提交于
      The recent behaviour layer removal dropped the check for quotas that have
      been requested at mount time but have subsequently been turned off. This
      results in a panic when accessing m_quotainfo which has been freed.
      
      This patch adds the check originally made by xfs_qm_syncall() to
      xfs_qm_sync().
      
      SGI-PV: 969769
      SGI-Modid: xfs-linux-melb:xfs-kern:29908a
      Signed-off-by: NDonald Douwsma <donaldd@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      d757762b
    • L
      Avoid double memclear() in SLOB/SLUB · 7fd27255
      Linus Torvalds 提交于
      Both slob and slub react to __GFP_ZERO by clearing the allocation, which
      means that passing the GFP_ZERO bit down to the page allocator is just
      wasteful and pointless.
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Reviewed-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7fd27255
  3. 09 12月, 2007 2 次提交
    • S
      kbuild: fix building with O=.. options · 18c32dac
      Sam Ravnborg 提交于
      The check introduced in commit:
      4f1127e2 "kbuild: fix
      infinite make recursion"
      
      caused certain external modules not to build and
      also caused 'make targz-pkg' to fail.
      This is a minimal fix so we revert to previous
      behaviour - but we do not overwrite the Makefile
      in the top-level directory.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Tested-by: NJay Cliburn <jacliburn@bellsouth.net>
      Cc: Jay Cliburn <jacliburn@bellsouth.net>
      18c32dac
    • S
      kbuild: fix building with redirected output. · 1cacc9ab
      Sam Ravnborg 提交于
      Jan Altenberg <jan.altenberg@linutronix.de> reported that
      building with redirected input like this failed:
      make O=dir oldconfig bzImage < /dev/null
      
      The problem were caused by a make silentoldconfig being
      run before oldconfig and with a non-recent .config the build
      failed because silentoldconfig requires non-redirected stdin.
      
      Silentoldconfig was run as a side-effect of having the
      top-level Makefile re-made by make.
      Introducing an empty rule for the top-level Makefile
      (and Kbuild.include) fixed the issue.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      1cacc9ab
  4. 08 12月, 2007 24 次提交