31 Oct, 2010

30 commits

  • This one was only used for a nasty hack in nfsd, which has recently
    been removed.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • The caller allocated it, the caller should free it.

    The only issue so far is that we could change the flp pointer even on an
    error return if the fl_change callback failed. But we can simply move
    the flp assignment after the fl_change invocation, as the callers don't
    care about the flp return value if the setlease call failed.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Commit ffe8018c3424 ("initramfs: fix initramfs size calculation") broke
    32-bit big-endian arches like (on ARAnyM):

    VFS: Cannot open root device "hda1" or unknown-block(3,1)
    Please append a correct "root=" boot option; here are the available partitions:
    fe80 1059408 nfhd8 (driver?)
    fe81 921600 nfhd8p1 00000000-0000-0000-0000-000000000nfhd8p1
    fe82 137807 nfhd8p2 00000000-0000-0000-0000-000000000nfhd8p2
    0200 3280 fd0 (driver?)
    0201 3280 fd1 (driver?)
    0300 1059408 hda driver: ide-gd
    0301 921600 hda1 00000000-0000-0000-0000-000000000hda1
    0302 137807 hda2 00000000-0000-0000-0000-000000000hda2
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,1)

    As pointed out by Kerstin Jonsson , this
    is due to CONFIG_32BIT not being defined, so the initramfs size field is
    done as a 64-bit quad. On little-endian (like x86) this doesn matter,
    but on a big-endian machine the 32-bit reads will see the (zero) high
    bits.

    Only mips, s390, and score set CONFIG_32BIT for 32-bit builds, so fix it for
    all other 32-bit arches by inverting the logic and testing for CONFIG_64BIT,
    which should be defined on all 64-bit arches.

    Signed-off-by: Geert Uytterhoeven
    [ I think we should just make it "u64" on all architectures and get
    rid of the whole #ifdef CONFIG_xxBIT - Linus ]
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    isdn: mISDN: socket: fix information leak to userland
    netdev: can: Change mail address of Hans J. Koch
    pcnet_cs: add new_id
    net: Truncate recvfrom and sendto length to INT_MAX.
    RDS: Let rds_message_alloc_sgs() return NULL
    RDS: Copy rds_iovecs into kernel memory instead of rereading from userspace
    RDS: Clean up error handling in rds_cmsg_rdma_args
    RDS: Return -EINVAL if rds_rdma_pages returns an error
    net: fix rds_iovec page count overflow
    can: pch_can: fix section mismatch warning by using a whitelisted name
    can: pch_can: fix sparse warning
    netxen_nic: Fix the tx queue manipulation bug in netxen_nic_probe
    ip_gre: fix fallback tunnel setup
    vmxnet: trivial annotation of protocol constant
    vmxnet3: remove unnecessary byteswapping in BAR writing macros
    ipv6/udp: report SndbufErrors and RcvbufErrors
    phy/marvell: rename 88ec048 to 88e1318s and fix mscr1 addr

    Linus Torvalds
     
  • The NFSv4 server was initializing the dp->dl_flock pointer by the
    somewhat ridiculous method of a locks_copy_lock callback.

    Now that setlease uses the passed-in lock instead of doing a copy,
    dl_flock no longer gets set, resulting in the lock leaking on delegation
    release, and later possible hangs (among other problems).

    So, initialize dl_flock and get rid of the callback.

    Signed-off-by: J. Bruce Fields
    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • We modified setlease to require the caller to allocate the new lease in
    the case of creating a new lease, but forgot to fix up the filesystem
    methods.

    Cc: Steven Whitehouse
    Cc: Steve French
    Cc: Trond Myklebust
    Signed-off-by: J. Bruce Fields
    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • We're depending on setlease to free the passed-in lease on failure.

    Signed-off-by: J. Bruce Fields
    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • Removing a lock shouldn't require any allocations; a failure due to
    ENOMEM leaves the caller with a choice between retrying or giving up and
    leaking an unused lease.

    Next we should split the other lease calls into add and delete cases.
    I wanted to start with just the bugfix.

    Signed-off-by: J. Bruce Fields
    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     
  • The input-large-scancode patches changed the binary search in
    drivers/media/IR/ir-keytable.c to use unsigned integers, but
    signed integers are actually necessary for the algorithm to work.

    Signed-off-by: David Härdeman
    Cc: Dmitry Torokhov
    Signed-off-by: Linus Torvalds

    David Härdeman
     
  • Structure mISDN_devinfo is copied to userland with the field "name"
    that has the last elements unitialized. It leads to leaking of
    contents of kernel stack memory.

    Signed-off-by: Vasiliy Kulikov
    Signed-off-by: David S. Miller

    Kulikov Vasiliy
     
  • My old mail address doesn't exist anymore. This changes all occurrences
    to my new address.

    Signed-off-by: Hans J. Koch
    Signed-off-by: David S. Miller

    Hans J. Koch
     
  • pcnet_cs:
    add new_id: "corega Ether CF-TD" 10Base-T PCMCIA card.

    Signed-off-by: Ken Kawasaki
    Signed-off-by: David S. Miller

    Ken Kawasaki
     
  • Signed-off-by: Linus Torvalds
    Signed-off-by: David S. Miller

    Linus Torvalds
     
  • Even with the previous fix, we still are reading the iovecs once
    to determine SGs needed, and then again later on. Preallocating
    space for sg lists as part of rds_message seemed like a good idea
    but it might be better to not do this. While working to redo that
    code, this patch attempts to protect against userspace rewriting
    the rds_iovec array between the first and second accesses.

    The consequences of this would be either a too-small or too-large
    sg list array. Too large is not an issue. This patch changes all
    callers of message_alloc_sgs to handle running out of preallocated
    sgs, and fail gracefully.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • Change rds_rdma_pages to take a passed-in rds_iovec array instead
    of doing copy_from_user itself.

    Change rds_cmsg_rdma_args to copy rds_iovec array once only. This
    eliminates the possibility of userspace changing it after our
    sanity checks.

    Implement stack-based storage for small numbers of iovecs, based
    on net/socket.c, to save an alloc in the extremely common case.

    Although this patch reduces iovec copies in cmsg_rdma_args to 1,
    we still do another one in rds_rdma_extra_size. Getting rid of
    that one will be trickier, so it'll be a separate patch.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • We don't need to set ret = 0 at the end -- it's initialized to 0.

    Also, don't increment s_send_rdma stat if we're exiting with an
    error.

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • rds_cmsg_rdma_args would still return success even if rds_rdma_pages
    returned an error (or overflowed).

    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Andy Grover
     
  • As reported by Thomas Pollet, the rdma page counting can overflow. We
    get the rdma sizes in 64-bit unsigned entities, but then limit it to
    UINT_MAX bytes and shift them down to pages (so with a possible "+1" for
    an unaligned address).

    So each individual page count fits comfortably in an 'unsigned int' (not
    even close to overflowing into signed), but as they are added up, they
    might end up resulting in a signed return value. Which would be wrong.

    Catch the case of tot_pages turning negative, and return the appropriate
    error code.

    Reported-by: Thomas Pollet
    Signed-off-by: Linus Torvalds
    Signed-off-by: Andy Grover
    Signed-off-by: David S. Miller

    Linus Torvalds
     
  • This patch fixes the following section mismatch warning:

    WARNING: drivers/net/can/pch_can.o(.data+0x18):
    Section mismatch in reference from the variable pch_can_pcidev
    to the variable .devinit.rodata:pch_pci_tbl
    The variable pch_can_pcidev references
    the variable __devinitconst pch_pci_tbl

    This is actually a false positive which is fixed by giving the offending
    variable a whitelisted name, it's renamed to "pch_can_pci_driver".
    This makes sense because the variable is of the type "struct pci_driver".

    Signed-off-by: Marc Kleine-Budde
    Acked-by: Uwe Kleine-König
    Signed-off-by: David S. Miller

    Marc Kleine-Budde
     
  • This patch fixes the following sparse warning:

    drivers/net/can/pch_can.c:231:26: warning: incorrect type in argument 1 (different address spaces)
    drivers/net/can/pch_can.c:231:26: expected unsigned int [usertype] *addr
    drivers/net/can/pch_can.c:231:26: got unsigned int [noderef] *

    Let pch_can_bit_{set,clear} first parameter be a void __iomem pointer.

    Signed-off-by: Marc Kleine-Budde
    Signed-off-by: David S. Miller

    Marc Kleine-Budde
     
  • We should not stop the egress queue during probe because it is wrong.

    Signed-off-by: Denis Kirjanov
    Signed-off-by: David S. Miller

    Denis Kirjanov
     
  • Before making the fallback tunnel visible to lookups, we should make
    sure it is completely setup, once ipgre_tunnel_init() had been called
    and tstats per_cpu pointer allocated.

    move rcu_assign_pointer(ign->tunnels_wc[0], tunnel); from
    ipgre_fb_tunnel_init() to ipgre_init_net()

    Based on a patch from Pavel Emelyanov

    Reported-by: Pavel Emelyanov
    Signed-off-by: Eric Dumazet
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Noticed by sparse:
    drivers/net/vmxnet3/vmxnet3_drv.c:876:38: warning: cast from restricted __be16
    drivers/net/vmxnet3/vmxnet3_drv.c:876:38: warning: cast from restricted __be16
    drivers/net/vmxnet3/vmxnet3_drv.c:876:24: warning: restricted __be16 degrades to integer

    Signed-off-by: Harvey Harrison
    Signed-off-by: David S. Miller

    Harvey Harrison
     
  • readl/writel swap to little-endian internally.

    Signed-off-by: Harvey Harrison
    Signed-off-by: David S. Miller

    Harvey Harrison
     
  • commit a18135eb9389 (Add UDP_MIB_{SND,RCV}BUFERRORS handling.)
    forgot to make the necessary changes in net/ipv6/proc.c to report
    additional counters in /proc/net/snmp6

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • * 'for-linus' of git://git.infradead.org/users/eparis/notify: (22 commits)
    Ensure FMODE_NONOTIFY is not set by userspace
    make fanotify_read() restartable across signals
    fsnotify: remove alignment padding from fsnotify_mark on 64 bit builds
    fs/notify/fanotify/fanotify_user.c: fix warnings
    fanotify: Fix FAN_CLOSE comments
    fanotify: do not recalculate the mask if the ignored mask changed
    fanotify: ignore events on directories unless specifically requested
    fsnotify: rename FS_IN_ISDIR to FS_ISDIR
    fanotify: do not send events for irregular files
    fanotify: limit number of listeners per user
    fanotify: allow userspace to override max marks
    fanotify: limit the number of marks in a single fanotify group
    fanotify: allow userspace to override max queue depth
    fsnotify: implement a default maximum queue depth
    fanotify: ignore fanotify ignore marks if open writers
    fanotify: allow userspace to flush all marks
    fsnotify: call fsnotify_parent in perm events
    fsnotify: correctly handle return codes from listeners
    fanotify: use __aligned_u64 in fanotify userspace metadata
    fanotify: implement fanotify listener ordering
    ...

    Linus Torvalds
     
  • …nel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    jump label: Add work around to i386 gcc asm goto bug
    x86, ftrace: Use safe noops, drop trap test
    jump_label: Fix unaligned traps on sparc.
    jump label: Make arch_jump_label_text_poke_early() optional
    jump label: Fix error with preempt disable holding mutex
    oprofile: Remove deprecated use of flush_scheduled_work()
    oprofile: Fix the hang while taking the cpu offline
    jump label: Fix deadlock b/w jump_label_mutex vs. text_mutex
    jump label: Fix module __init section race

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Check irq_remapped instead of remapping_enabled in destroy_irq()

    Linus Torvalds
     
  • In fsnotify_open() ensure that FMODE_NONOTIFY is never set by userspace.
    Also always call fsnotify_parent and fsnotify.

    Signed-off-by: Lino Sanfilippo
    Signed-off-by: Eric Paris

    Lino Sanfilippo
     
  • In fanotify_read() return -ERESTARTSYS instead of -EINTR to
    make read() restartable across signals (BSD semantic).

    Signed-off-by: Eric Paris

    Lino Sanfilippo
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (39 commits)
    Btrfs: deal with errors from updating the tree log
    Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed
    Btrfs: make SNAP_DESTROY async
    Btrfs: add SNAP_CREATE_ASYNC ioctl
    Btrfs: add START_SYNC, WAIT_SYNC ioctls
    Btrfs: async transaction commit
    Btrfs: fix deadlock in btrfs_commit_transaction
    Btrfs: fix lockdep warning on clone ioctl
    Btrfs: fix clone ioctl where range is adjacent to extent
    Btrfs: fix delalloc checks in clone ioctl
    Btrfs: drop unused variable in block_alloc_rsv
    Btrfs: cleanup warnings from gcc 4.6 (nonbugs)
    Btrfs: Fix variables set but not read (bugs found by gcc 4.6)
    Btrfs: Use ERR_CAST helpers
    Btrfs: use memdup_user helpers
    Btrfs: fix raid code for removing missing drives
    Btrfs: Switch the extent buffer rbtree into a radix tree
    Btrfs: restructure try_release_extent_buffer()
    Btrfs: use the flusher threads for delalloc throttling
    Btrfs: tune the chunk allocation to 5% of the FS as metadata
    ...

    Fix up trivial conflicts in fs/btrfs/super.c and fs/fs-writeback.c, and
    remove use of INIT_RCU_HEAD in fs/btrfs/extent_io.c (that init macro was
    useless and removed in commit 5e8067adfdba: "rcu head remove init")

    Linus Torvalds
     

30 Oct, 2010

10 commits

  • The btrfs merge looks like hell, because it changes fs-writeback.c, and
    the crazy code has this repeated "estimate number of dirty pages"
    counting that involves three different helper functions. And it's done
    in two different places.

    Just unify that whole calculation as a "get_nr_dirty_pages()" helper
    function, and the merge result will look half-way decent.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'audit.b64' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
    audit mmap
    audit: make link()/linkat() match "attribute change" predicate
    audit: Use rcu for task lookup protection
    audit: Do not send uninitialized data for AUDIT_TTY_GET
    audit: Call tty_audit_push_task() outside preempt disabled
    in untag_chunk() we need to do alloc_chunk() a bit earlier
    audit: make functions static
    Audit: add support to match lsm labels on user audit messages

    Linus Torvalds
     
  • * git://git.infradead.org/mtd-2.6: (82 commits)
    mtd: fix build error in m25p80.c
    mtd: Remove redundant mutex from mtd_blkdevs.c
    MTD: Fix wrong check register_blkdev return value
    Revert "mtd: cleanup Kconfig dependencies"
    mtd: cfi_cmdset_0002: make sector erase command variable
    mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips
    mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode
    mtd: cfi_cmdset_0001: use defined value of P_ID_INTEL_PERFORMANCE instead of hardcoded one
    block2mtd: dubious assignment
    P4080/mtd: Fix the freescale lbc issue with 36bit mode
    P4080/eLBC: Make Freescale elbc interrupt common to elbc devices
    mtd: phram: use KBUILD_MODNAME
    mtd: OneNAND: S5PC110: Fix double call suspend & resume function
    mtd: nand: fix MTD_MODE_RAW writes
    jffs2: use kmemdup
    mtd: sm_ftl: cosmetic, use bool when possible
    mtd: r852: remove useless pci powerup/down from suspend/resume routines
    mtd: blktrans: fix a race vs kthread_stop
    mtd: blktrans: kill BKL
    mtd: allow to unload the mtdtrans module if its block devices aren't open
    ...

    Fix up trivial whitespace-introduced conflict in drivers/mtd/mtdchar.c

    Linus Torvalds
     
  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (215 commits)
    ARM: memblock: setup lowmem mappings using memblock
    ARM: memblock: move meminfo into find_limits directly
    ARM: memblock: convert free_highpages() to use memblock
    ARM: move freeing of highmem pages out of mem_init()
    ARM: memblock: convert memory detail printing to use memblock
    ARM: memblock: use memblock to free memory into arm_bootmem_init()
    ARM: memblock: use memblock when initializing memory allocators
    ARM: ensure membank array is always sorted
    ARM: 6466/1: implement flush_icache_all for the rest of the CPUs
    ARM: 6464/2: fix spinlock recursion in adjust_pte()
    ARM: fix memblock breakage
    ARM: 6465/1: Fix data abort accessing proc_info from __lookup_processor_type
    ARM: 6460/1: ixp2000: fix type of ixp2000_timer_interrupt
    ARM: 6449/1: Fix for compiler warning of uninitialized variable.
    ARM: 6445/1: fixup TCM memory types
    ARM: imx: Add wake functionality to GPIO
    ARM: mx5: Add gpio-keys to mx51 babbage board
    ARM: imx: Add gpio-keys to plat-mxc
    mx31_3ds: Fix spi registration
    mx31_3ds: Fix the logic for detecting the debug board
    ...

    Linus Torvalds
     
  • The shmid_ds structure is copied to userland with shm_unused{,2,3}
    fields unitialized. It leads to leaking of contents of kernel stack
    memory.

    Signed-off-by: Vasiliy Kulikov
    Acked-by: Al Viro
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • The definition of PAGE_CACHE_MASK in is needed to use
    MAX_RW_COUNT, and on x86-64 that gets done indirectly through the
    architecture header includes. But on MIPS and s390 that doesn't happen,
    and we need to make sure that fs/compat.c includes pagemap.h explicitly.

    Introduced in commit 435f49a518c7 ("readv/writev: do the same
    MAX_RW_COUNT truncation that read/write does").

    Reported-by: Sachin Sant (S390)
    Reported-by: wu zhangjin (MIPS)
    Signed-off-by: Linus Torvalds

    wu zhangjin
     
  • Normal syscall audit doesn't catch 5th argument of syscall. It also
    doesn't catch the contents of userland structures pointed to be
    syscall argument, so for both old and new mmap(2) ABI it doesn't
    record the descriptor we are mapping. For old one it also misses
    flags.

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Protect the task lookups in audit_receive_msg() with rcu_read_lock()
    instead of tasklist_lock and use lock/unlock_sighand to protect
    against the exit race.

    Signed-off-by: Thomas Gleixner
    Cc: Al Viro
    Cc: Eric Paris
    Cc: Oleg Nesterov
    Signed-off-by: Al Viro

    Thomas Gleixner
     
  • audit_receive_msg() sends uninitialized data for AUDIT_TTY_GET when
    the task was not found.

    Send reply only when task was found.

    Signed-off-by: Thomas Gleixner
    Cc: Al Viro
    Cc: Eric Paris
    Signed-off-by: Al Viro

    Thomas Gleixner