1. 19 4月, 2007 1 次提交
  2. 11 4月, 2007 2 次提交
  3. 05 4月, 2007 3 次提交
  4. 04 4月, 2007 3 次提交
  5. 03 4月, 2007 4 次提交
  6. 02 4月, 2007 3 次提交
  7. 31 3月, 2007 1 次提交
  8. 30 3月, 2007 5 次提交
  9. 29 3月, 2007 2 次提交
  10. 28 3月, 2007 8 次提交
  11. 27 3月, 2007 6 次提交
    • O
      V4L/DVB (5441): Saa7146: Fix allocation of clipping memory · 7a7cd192
      Oliver Endriss 提交于
      Olaf Hering pointed out that SAA7146_CLIPPING_MEM would become
      very large for PAGE_SIZE > 4K.
      In fact, the number of clipping windows is limited to 16,
      and calculate_clipping_registers_rect() does not use more
      than 256 bytes. SAA7146_CLIPPING_MEM adjusted accordingly.
      
      Thanks-to: Olaf Hering <olaf@aepfle.de>
      Acked-by: NMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: NOliver Endriss <o.endriss@gmx.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
      7a7cd192
    • M
      [SPARC]: sparc64 gcc-4.2.0 20070317 -Werror failure · 7945d562
      Mikael Pettersson 提交于
      Compiling 2.6.21-rc5 with gcc-4.2.0 20070317 (prerelease)
      for sparc64 fails as follows:
      
        gcc -Wp,-MD,arch/sparc64/kernel/.time.o.d  -nostdinc -isystem /home/mikpe/pkgs/linux-sparc64/gcc-4.2.0/lib/gcc/sparc64-unknown-linux-gnu/4.2.0/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -Werror   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(time)"  -D"KBUILD_MODNAME=KBUILD_STR(time)" -c -o arch/sparc64/kernel/time.o arch/sparc64/kernel/time.c
      cc1: warnings being treated as errors
      arch/sparc64/kernel/time.c: In function 'kick_start_clock':
      arch/sparc64/kernel/time.c:559: warning: overflow in implicit constant conversion
      make[1]: *** [arch/sparc64/kernel/time.o] Error 1
      make: *** [arch/sparc64/kernel] Error 2
      
      gcc gets unhappy when the MSTK_SET macro's u8 __val variable
      is updated with &= ~0xff (MSTK_YEAR_MASK). Making the constant
      unsigned fixes the problem.
      
      [ I fixed up the sparc32 side as well -DaveM ]
      Signed-off-by: NMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7945d562
    • M
      Export __splice_from_pipe() · 40bee44e
      Mark Fasheh 提交于
      Ocfs2 wants to implement it's own splice write actor so that it can better
      manage cluster / page locks. This lets us re-use the rest of splice write
      while only providing our own code where it's actually important.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      40bee44e
    • R
      [PATCH] Add const to pointer qualifiers for __chk_user_ptr and __chk_io_ptr. · 04a39523
      Russ Cox 提交于
      Change prototypes for __chk_user_ptr and __chk_io_ptr to take const
      void* instead of void*, so that code can pass "const void *" to them.
      
      (Right now sparse does not warn about passing const void* to void*
      functions, but that is a separate bug that I believe Josh is working on,
      and once sparse does check this, the changed prototypes will be
      necessary.)
      Signed-off-by: NRuss Cox <rsc@swtch.com>
      Signed-off-by: NJosh Triplett <josh@freedesktop.org>
      Acked-by: NChristopher Li <sparse@chrisli.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      04a39523
    • S
      ide: use correct IDE error recovery · 513daadd
      Suleiman Souhlal 提交于
      IDE error recovery is using IDLE IMMEDIATE if the drive is busy or has DRQ set.
      This violates the ATA spec (can only send IDLE IMMEDIATE when drive is not
      busy) and really hoses up some drives (modern drives will not be able to
      recover using this error handling).  The correct thing to do is issue a SRST
      followed by a SET FEATURES command.  This is what Western Digital recommends
      for error recovery and what Western Digital says Windows does.  It also does
      not violate the ATA spec as far as I can tell.
      
      Bart:
      * port the patch over the current tree
      * undo the recalibration code removal
      * send SET FEATURES command after checking for good drive status
      * don't check whether the current request is of REQ_TYPE_ATA_{CMD,TASK}
        type because we need to send SET FEATURES before handling any requests
      * some pre-ATA4 drives require INITIALIZE DEVICE PARAMETERS command before
        other commands (except IDENTIFY) so send SET FEATURES only if there are
        no pending drive->special requests
      * update comments and patch description
      * any bugs introduced by this patch are mine and not Suleiman's :-)
      Signed-off-by: NSuleiman Souhlal <suleiman@google.com>
      Acked-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      513daadd
    • H
      [S390] Fix TCP/UDP pseudo header checksum computation. · afbc1e99
      Heiko Carstens 提交于
      git commit f994aae1 changed the
      function declaration of csum_tcpudp_nofold. Argument types were
      changed from unsigned long to __be32 (unsigned int). Therefore we
      lost the implicit type conversion that zeroed the upper half of the
      registers that are used to pass parameters. Since the inline assembly
      relied on this we ended up adding random values and wrong checksums
      were created.
      Showed only up on machines with more than 4GB since gcc produced code
      where the registers that are used to pass 'saddr' and 'daddr' previously
      contained addresses before calling this function.
      Fix this by using 32 bit arithmetics and convert code to C, since gcc
      produces better code than these hand-optimized versions.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      afbc1e99
  12. 26 3月, 2007 2 次提交
    • D
      [IPV6]: Fix routing round-robin locking. · f11e6659
      David S. Miller 提交于
      As per RFC2461, section 6.3.6, item #2, when no routers on the
      matching list are known to be reachable or probably reachable we
      do round robin on those available routes so that we make sure
      to probe as many of them as possible to detect when one becomes
      reachable faster.
      
      Each routing table has a rwlock protecting the tree and the linked
      list of routes at each leaf.  The round robin code executes during
      lookup and thus with the rwlock taken as a reader.  A small local
      spinlock tries to provide protection but this does not work at all
      for two reasons:
      
      1) The round-robin list manipulation, as coded, goes like this (with
         read lock held):
      
      	walk routes finding head and tail
      
      	spin_lock();
      	rotate list using head and tail
      	spin_unlock();
      
         While one thread is rotating the list, another thread can
         end up with stale values of head and tail and then proceed
         to corrupt the list when it gets the lock.  This ends up causing
         the OOPS in fib6_add() later onthat many people have been hitting.
      
      2) All the other code paths that run with the rwlock held as
         a reader do not expect the list to change on them, they
         expect it to remain completely fixed while they hold the
         lock in that way.
      
      So, simply stated, it is impossible to implement this correctly using
      a manipulation of the list without violating the rwlock locking
      semantics.
      
      Reimplement using a per-fib6_node round-robin pointer.  This way we
      don't need to manipulate the list at all, and since the round-robin
      pointer can only ever point to real existing entries we don't need
      to perform any locking on the changing of the round-robin pointer
      itself.  We only need to reset the round-robin pointer to NULL when
      the entry it is pointing to is removed.
      
      The idea is from Thomas Graf and it is very similar to how this
      was implemented before the advanced router selection code when in.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f11e6659
    • A
      [NET]: Fix neighbour destructor handling. · ecbb4169
      Alexey Kuznetsov 提交于
      ->neigh_destructor() is killed (not used), replaced with
      ->neigh_cleanup(), which is called when neighbor entry goes to dead
      state. At this point everything is still valid: neigh->dev,
      neigh->parms etc.
      
      The device should guarantee that dead neighbor entries (neigh->dead !=
      0) do not get private part initialized, otherwise nobody will cleanup
      it.
      
      I think this is enough for ipoib which is the only user of this thing.
      Initialization private part of neighbor entries happens in ipib
      start_xmit routine, which is not reached when device is down.  But it
      would be better to add explicit test for neigh->dead in any case.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ecbb4169