1. 28 7月, 2009 2 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · c7425eb4
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        [CIFS] fix sparse warning
        cifs: fix sb->s_maxbytes so that it casts properly to a signed value
        cifs: disable serverino if server doesn't support it
      c7425eb4
    • B
      mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() · 9e1b32ca
      Benjamin Herrenschmidt 提交于
      mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
      
      Upcoming paches to support the new 64-bit "BookE" powerpc architecture
      will need to have the virtual address corresponding to PTE page when
      freeing it, due to the way the HW table walker works.
      
      Basically, the TLB can be loaded with "large" pages that cover the whole
      virtual space (well, sort-of, half of it actually) represented by a PTE
      page, and which contain an "indirect" bit indicating that this TLB entry
      RPN points to an array of PTEs from which the TLB can then create direct
      entries. Thus, in order to invalidate those when PTE pages are deleted,
      we need the virtual address to pass to tlbilx or tlbivax instructions.
      
      The old trick of sticking it somewhere in the PTE page struct page sucks
      too much, the address is almost readily available in all call sites and
      almost everybody implemets these as macros, so we may as well add the
      argument everywhere. I added it to the pmd and pud variants for consistency.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: David Howells <dhowells@redhat.com> [MN10300 & FRV]
      Acked-by: NNick Piggin <npiggin@suse.de>
      Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> [s390]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9e1b32ca
  2. 23 7月, 2009 36 次提交
  3. 22 7月, 2009 2 次提交
    • L
      fbmon: work around compiler bug in gcc-2.4.2 · 3730793d
      Linus Torvalds 提交于
      There's some odd bug in gcc-4.2 where it miscompiles a simple loop whent
      he loop counter is of type 'unsigned char' and it should count to 128.
      
      The compiler will incorrectly decide that a trivial loop like this:
      
      	unsigned char i, ...
      
      	for (i = 0; i < 128; i++) {
      		..
      
      is endless, and will compile it to a single instruction that just
      branches to itself.
      
      This was triggered by the addition of '-fno-strict-overflow', and we
      could play games with compiler versions and go back to '-fwrapv'
      instead, but the trivial way to avoid it is to just make the loop
      induction variable be an 'int' instead.
      
      Thanks to Krzysztof Oledzki for reporting and testing and to Troy Moure
      for digging through assembler differences and finding it.
      Reported-and-tested-by: NKrzysztof Oledzki <olel@ans.pl>
      Found-by: NTroy Moure <twmoure@szypr.net>
      Gcc-bug-acked-by: NIan Lance Taylor <iant@google.com>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3730793d
    • P
      softirq: introduce tasklet_hrtimer infrastructure · 9ba5f005
      Peter Zijlstra 提交于
      commit ca109491 (hrtimer: removing all ur callback modes) moved all
      hrtimer callbacks into hard interrupt context when high resolution
      timers are active. That breaks code which relied on the assumption
      that the callback happens in softirq context.
      
      Provide a generic infrastructure which combines tasklets and hrtimers
      together to provide an in-softirq hrtimer experience.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: torvalds@linux-foundation.org
      Cc: kaber@trash.net
      Cc: David Miller <davem@davemloft.net>
      LKML-Reference: <1248265724.27058.1366.camel@twins>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      9ba5f005