1. 11 7月, 2009 1 次提交
    • I
      dma-debug: Fix the overlap() function to be correct and readable · f39d1b97
      Ingo Molnar 提交于
      Linus noticed how unclean and buggy the overlap() function is:
      
       - It uses convoluted (and bug-causing) positive checks for
         range overlap - instead of using a more natural negative
         check.
      
       - Even the positive checks are buggy: a positive intersection
         check has four natural cases while we checked only for three,
         missing the (addr < start && addr2 == end) case for example.
      
       - The variables are mis-named, making it non-obvious how the
         check was done.
      
       - It needlessly uses u64 instead of unsigned long. Since these
         are kernel memory pointers and we explicitly exclude highmem
         ranges anyway we cannot ever overflow 32 bits, even if we
         could. (and on 64-bit it doesnt matter anyway)
      
      All in one, this function needs a total revamp. I used Linus's
      suggestions minus the paranoid checks (we cannot overflow really
      because if we get totally bad DMA ranges passed far more things
      break in the systems than just DMA debugging). I also fixed a
      few other small details i noticed.
      Reported-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Joerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f39d1b97
  2. 25 6月, 2009 1 次提交
  3. 23 6月, 2009 1 次提交
  4. 21 6月, 2009 1 次提交
  5. 19 6月, 2009 2 次提交
    • A
      lib/checksum.c: fix endianess bug · 32a9ff9c
      Arnd Bergmann 提交于
      The new generic checksum code has a small dependency on endianess and
      worked only on big-endian systems. I could not find a nice efficient
      way to express this, so I added an #ifdef. Using
      'result += le16_to_cpu(*buff);' would have worked as well, but
      would be slightly less efficient on big-endian systems and IMHO
      would not be clearer.
      
      Also fix a bug that prevents this from working on 64-bit machines.
      If you have a 64-bit CPU and want to use the generic checksum
      code, you should probably do some more optimizations anyway, but
      at least the code should not break.
      Reported-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      32a9ff9c
    • F
      lib: add lib/gcd.c · d2829224
      Florian Fainelli 提交于
      This patch adds lib/gcd.c which contains a greatest common divider
      implementation taken from sound/core/pcm_timer.c
      
      Several usages of this new library function will be sent to subsystem
      maintainers.
      
      [akpm@linux-foundation.org: use swap() (pointed out by Joe)]
      [akpm@linux-foundation.org: just add gcd.o to obj-y, remove Kconfig changes]
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julius Volz <juliusv@google.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Patrick McHardy <kaber@trash.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d2829224
  6. 17 6月, 2009 9 次提交
  7. 16 6月, 2009 2 次提交
  8. 15 6月, 2009 5 次提交
  9. 12 6月, 2009 5 次提交
  10. 11 6月, 2009 1 次提交
  11. 09 6月, 2009 1 次提交
  12. 08 6月, 2009 5 次提交
  13. 07 6月, 2009 1 次提交
  14. 02 6月, 2009 3 次提交
  15. 29 5月, 2009 2 次提交