1. 08 Jun, 2007 14 commits
    • Jens Axboe's avatar
      splice: __generic_file_splice_read: fix read/truncate race · 620a324b
      Jens Axboe authored
      Original patch and description from Neil Brown <neilb@suse.de>,
      merged and adapted to splice branch by me. Neils text follows:
      
      __generic_file_splice_read() currently samples the i_size at the start
      and doesn't do so again unless it needs to call ->readpage to load
      a page.  After ->readpage it has to re-sample i_size as a truncate
      may have caused that page to be filled with zeros, and the read()
      call should not see these.
      
      However there are other activities that might cause ->readpage to be
      called on a page between the time that __generic_file_splice_read()
      samples i_size and when it finds that it has an uptodate page. These
      include at least read-ahead and possibly another thread performing a
      read
      
      So we must sample i_size *after* it has an uptodate page.  Thus the
      current sampling at the start and after a read can be replaced with a
      sampling before page addition into spd.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      620a324b
    • Hugh Dickins's avatar
      splice: __generic_file_splice_read: fix i_size_read() length checks · 475ecade
      Hugh Dickins authored
      __generic_file_splice_read's partial page check, at eof after readpage,
      not only got its calculations wrong, but also reused the loff variable:
      causing data corruption when splicing from a non-0 offset in the file's
      last page (revealed by ext2 -b 1024 testing on a loop of a tmpfs file).
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      475ecade
    • Jens Axboe's avatar
      splice: move balance_dirty_pages_ratelimited() outside of splice actor · 20d698db
      Jens Axboe authored
      I've seen inode related deadlocks, so move this call outside of the
      actor itself, which may hold the inode lock.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      20d698db
    • Jens Axboe's avatar
      pipe: move pipe_inode_info structure decleration up before it's used · 17374ff1
      Jens Axboe authored
      There's really no reason it's below the first use of the pointer
      type, and it'll fail compilation for the network addition (for good
      reason). So move it up a bit.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      17374ff1
    • Jens Axboe's avatar
      splice: remove do_splice_direct() symbol export · 267adc3e
      Jens Axboe authored
      It's only supposed to be used by do_sendfile(), which is never
      modular. So kill the export.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      267adc3e
    • Jens Axboe's avatar
    • Bryan Wu's avatar
      RAMFS NOMMU: missed POSIX UID/GID inode attribute checking · 85f6038f
      Bryan Wu authored
      This bug was caught by LTP testcase fchmod06 on Blackfin platform.
      
      In the manpage of fchmod, "EPERM: The effective UID does not match the
      owner of the file, and the process is not privileged (Linux: it does not
      have the CAP_FOWNER capability)."
      
      But the ramfs nommu code missed the inode_change_ok POSIX UID/GID
      verification. This patch fixed this.
      Signed-off-by: default avatarBryan Wu <bryan.wu@analog.com>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      85f6038f
    • Linus Torvalds's avatar
      Merge git://git.linux-xtensa.org/kernel/xtensa-feed · c8d8170f
      Linus Torvalds authored
      * git://git.linux-xtensa.org/kernel/xtensa-feed:
        Xtensa: use asm-generic/fcntl.h
        [XTENSA] Remove non-rt signal handling
        [XTENSA] Move common sections into bss sections
        [XTENSA] clean-up header files
        [XTENSA] Use generic 64-bit division
        [XTENSA] Remove multi-exported symbols from xtensa_ksyms.c
        [XTENSA] fix sources using deprecated assembler directive
        [XTENSA] Spelling fixes in arch/xtensa
        [XTENSA] fix bit operations in bitops.h
      c8d8170f
    • Linus Torvalds's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 · 34750bb1
      Linus Torvalds authored
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver.
        [SPARC64]: Fix 2 bugs in PCI Sabre bus scanning.
      34750bb1
    • Linus Torvalds's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · df3872a9
      Linus Torvalds authored
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (24 commits)
        xfrm: Add security check before flushing SAD/SPD
        [NET_SCHED]: Fix filter double free
        [NET]: Avoid duplicate netlink notification when changing link state
        [UDP]: Revert 2-pass hashing changes.
        [AF_UNIX]: Fix stream recvmsg() race.
        [NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check
        [NETFILTER]: ip_tables: fix compat related crash
        [NETFILTER]: nf_conntrack: fix helper module unload races
        [RTNETLINK]: ifindex 0 does not exist
        [NETLINK]: Mark netlink policies const
        [TCP] tcp_probe: Attach printf attribute properly to printl().
        [TCP]: Use LIMIT_NETDEBUG in tcp_retransmit_timer().
        [NET]: Merge dst_discard_in and dst_discard_out.
        [RFKILL]: Make rfkill->name const
        [IPV4]: Restore old behaviour of default config values
        [IPV4]: Add default config support after inetdev_init
        [IPV4]: Convert IPv4 devconf to an array
        [IPV4]: Only panic if inetdev_init fails for loopback
        [TCP]: Honour sk_bound_dev_if in tcp_v4_send_ack
        [BNX2]: Update version and reldate.
        ...
      df3872a9
    • Steven Rostedt's avatar
      enable interrupts in user path of page fault. · e5e3c84b
      Steven Rostedt authored
      This is a minor fix, but what is currently there is essentially wrong.
      In do_page_fault, if the faulting address from user code happens to be
      in kernel address space (int *p = (int*)-1; p = 0xbed;)  then the
      do_page_fault handler will jump over the local_irq_enable with the
      
        goto bad_area_nosemaphore;
      
      But the first line there sees this is user code and goes through the
      process of sending a signal to send SIGSEGV to the user task. This whole
      time interrupts are disabled and the task can not be preempted by a
      higher priority task.
      
      This patch always enables interrupts in the user path of the
      bad_area_nosemaphore.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e5e3c84b
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · c52ecdab
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] pxa: fix pxa27x keyboard driver
        [ARM] Fix 4417/1: Serial: Fix AMBA drivers locking
        [ARM] 4421/1: AT91: Value of _KEY fields.
        [ARM] Solve buggy smp_processor_id() usage
        [ARM] 4422/1: Fix default value handling in gpio_direction_output (PXA)
        [ARM] 4419/1: AT91: SAM9 USB clocks check for suspending
        [ARM] 4418/1: AT91: Number of programmable clocks differs
        [ARM] 4392/2: Do not corrupt the SP register in compressed/head.S
      c52ecdab
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · dc315011
      Linus Torvalds authored
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
        [MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS
        [MIPS] Fix some minor typoes in arch/mips/Kconfig.
        [MIPS] Remove prototype for deleted function qemu_handle_int
        [MIPS] Fix some system calls with long long arguments
        [MIPS] Make dma_map_sg handle sg elements which are longer than one page
        [MIPS] Drop __ARCH_WANT_SYS_FADVISE64
        [MIPS] Fix VGA corruption on RM300C
        [MIPS] RM300: Fix MMIO problems by marking the PCI INT ACK region busy
        [MIPS] EMMA2RH: remove dead KGDB code
        [MIPS] Remove duplicate fpu enable hazard code.
        [MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler.
      dc315011
    • Peter Zijlstra's avatar
      frv: build fix · 2c750edd
      Peter Zijlstra authored
      In file included from /usr/src/linux-2.6-2/net/ipv4/ip_input.c:118:
      
        include2/asm/system.h:245: error: parse error before "__cmpxchg_32"
        include2/asm/system.h:245: error: parse error before '*' token
        include2/asm/system.h:245: warning: type defaults to `int' in declaration of `__cmpxchg_32'
        include2/asm/system.h:245: warning: function declaration isn't a prototype
        include2/asm/system.h:245: warning: data definition has no type or storage class
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2c750edd
  2. 07 Jun, 2007 26 commits