9 years agovfs: be even more careful about dentry RCU name lookups
Linus Torvalds [Mon, 21 May 2012 23:14:04 +0000]
vfs: be even more careful about dentry RCU name lookups

Miklos Szeredi points out that we need to also worry about memory
odering when doing the dentry name comparison asynchronously with RCU.

In particular, doing a rename can do a memcpy() of one dentry name over
another, and we want to make sure that any unlocked reader will always
see the proper terminating NUL character, so that it won't ever run off
the allocation.

Rather than having to be extra careful with the name copy or at lookup
time for each character, this resolves the issue by making sure that all
names that are inlined in the dentry always have a NUL character at the
end of the name allocation.  If we do that at dentry allocation time, we
know that no future name copy will ever change that final NUL to
anything else, so there are no memory ordering issues.

So even if a concurrent rename ends up overwriting the NUL character
that terminates the original name, we always know that there is one
final NUL at the end, and there is no worry about the lockless RCU
lookup traversing the name too far.

The out-of-line allocations are never copied over, so we can just make
sure that we write the name (with terminating NULL) and do a write
barrier before we expose the name to anything else by setting it in the
dentry.

Reported-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Nick Piggin <npiggin@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

9 years agovfs: make AIO use the proper rw_verify_area() area helpers
Linus Torvalds [Mon, 21 May 2012 23:06:20 +0000]
vfs: make AIO use the proper rw_verify_area() area helpers

We had for some reason overlooked the AIO interface, and it didn't use
the proper rw_verify_area() helper function that checks (for example)
mandatory locking on the file, and that the size of the access doesn't
cause us to overflow the provided offset limits etc.

Instead, AIO did just the security_file_permission() thing (that
rw_verify_area() also does) directly.

This fixes it to do all the proper helper functions, which not only
means that now mandatory file locking works with AIO too, we can
actually remove lines of code.

Reported-by: Manish Honap <manish_honap_vit@yahoo.co.in>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

9 years agoMerge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
Linus Torvalds [Mon, 21 May 2012 23:01:50 +0000]
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm

Pull core ARM updates from Russell King:
 "This is the bulk of the core ARM updates for this merge window.
  Included in here is a different way to handle the VIVT cache flushing
  on context switch, which should allow scheduler folk to remove a
  special case in their core code.

  We have architectured timer support here, which is a set of timers
  specified by the ARM architecture for future SoCs.  So we should see
  less variability in timer design going forward.

  The last big thing here is my cleanup to the way we handle PCI across
  ARM, fixing some oddities in some platforms which hadn't realised
  there was a way to deal with their private data already built in to
  our PCI backend.

  I've also removed support for the ARMv3 architecture; it hasn't worked
  properly for years so it seems pointless to keep it around."

* 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (47 commits)
  ARM: PCI: remove per-pci_hw list of buses
  ARM: PCI: dove/kirkwood/mv78xx0: use sys->private_data
  ARM: PCI: provide a default bus scan implementation
  ARM: PCI: get rid of pci_std_swizzle()
  ARM: PCI: versatile: fix PCI interrupt setup
  ARM: PCI: integrator: use common PCI swizzle
  ARM: 7416/1: LPAE: Remove unused L_PTE_(BUFFERABLE|CACHEABLE) macros
  ARM: 7415/1: vfp: convert printk's to pr_*'s
  ARM: decompressor: avoid speculative prefetch from non-RAM areas
  ARM: Remove ARMv3 support from decompressor
  ARM: 7413/1: move read_{boot,persistent}_clock to the architecture level
  ARM: Remove support for ARMv3 ARM610 and ARM710 CPUs
  ARM: 7363/1: DEBUG_LL: limit early mapping to the minimum
  ARM: 7391/1: versatile: add some auxdata for device trees
  ARM: 7389/2: plat-versatile: modernize FPGA IRQ controller
  AMBA: get rid of last two uses of NO_IRQ
  ARM: 7408/1: cacheflush: return error to userspace when flushing syscall fails
  ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held
  ARM: 7404/1: cmpxchg64: use atomic64 and local64 routines for cmpxchg64
  ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode
  ...

9 years agoMerge branch 'clkdev' of git://git.linaro.org/people/rmk/linux-arm
Linus Torvalds [Mon, 21 May 2012 22:59:46 +0000]
Merge branch 'clkdev' of git://git.linaro.org/people/rmk/linux-arm

Pull clkdev updates from Russell King:
 "This supplements clkdev with a device-managed API, allowing drivers
  cleanup paths to be simplified.  We also optimize clk_find() so that
  it exits as soon as it finds a perfect match, and we provide a way to
  minimise the amount of code platforms need to register clkdev entries.

  Some of the code in arm-soc depends on these changes."

* 'clkdev' of git://git.linaro.org/people/rmk/linux-arm:
  CLKDEV: provide helpers for common clock framework
  ARM: 7392/1: CLKDEV: Optimize clk_find()
  ARM: 7376/1: clkdev: Implement managed clk_get()

9 years agoFix blocking allocations called very early during bootup
Linus Torvalds [Mon, 21 May 2012 19:52:42 +0000]
Fix blocking allocations called very early during bootup

During early boot, when the scheduler hasn't really been fully set up,
we really can't do blocking allocations because with certain (dubious)
configurations the "might_resched()" calls can actually result in
scheduling events.

We could just make such users always use GFP_ATOMIC, but quite often the
code that does the allocation isn't really aware of the fact that the
scheduler isn't up yet, and forcing that kind of random knowledge on the
initialization code is just annoying and not good for anybody.

And we actually have a the 'gfp_allowed_mask' exactly for this reason:
it's just that the kernel init sequence happens to set it to allow
blocking allocations much too early.

So move the 'gfp_allowed_mask' initialization from 'start_kernel()'
(which is some of the earliest init code, and runs with preemption
disabled for good reasons) into 'kernel_init()'.  kernel_init() is run
in the newly created thread that will become the 'init' process, as
opposed to the early startup code that runs within the context of what
will be the first idle thread.

So by the time we reach 'kernel_init()', we know that the scheduler must
be at least limping along, because we've already scheduled from the idle
thread into the init thread.

Reported-by: Steven Rostedt <rostedt@goodmis.org>
Cc: David Rientjes <rientjes@google.com>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

9 years agonet: drop NET dependency from HAVE_BPF_JIT
Sam Ravnborg [Mon, 21 May 2012 18:45:37 +0000]
net: drop NET dependency from HAVE_BPF_JIT

There is no point having the NET dependency on the select target, as it
forces all users to depend on NET to tell they support BPF_JIT.  Move
the config option to the bottom of the file - this could be a nice place
also for future "selectable" config symbols.

Fix up all users to drop the dependency on NET now that it is not
required to supress warnings for non-NET builds.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: David Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

9 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo...
Linus Torvalds [Mon, 21 May 2012 19:47:53 +0000]
Merge branch 'for-linus' of git://git./linux/kernel/git/lliubbo/blackfin

Pull blackfin changes from Bob Liu:
 "The biggest change was added an new processor(bf60x series).

  Bf60x series processor of blackfin can up to 1GHz with Hardware
  Support for HD Video Analytics, it use the same blackfin ISA but with
  some changes on system buses, interrupt controller and peripheral
  devices.

  Added dir arch/blackfin/mach-bf609/ and did some changes to the
  framework made linux working fine on the reference board bf609-ezkit
  now."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lliubbo/blackfin: (41 commits)
  blackfin: fix build after add bf60x mach/pm.h
  blackfin: twi: include linux/i2c.h
  blackfin: bf60x: add head file for crc controller
  blackfin: bf60x: twi: work around temporary anomaly 0501001
  blackfin: twi: Move TWI MMR access macro to twi head file
  blackfin: twi: Move TWI peripheral pin request array to platform data
  blackfin: bf60x: anomaly: Add a temporary anomaly 0501001
  blackfin: bf60x: Rename the DDR controller macro
  blackfin: mach-bf609: pm: cleanup bfin_deepsleep
  blackfin: bf60x: cleanup get clock code
  blackfin: bf60x: pm: Add a debug option to calculate kernel wakeup time.
  blackfin: bf60x: add wakeup source select
  blackfin: bf60x: make clock changeable in kernel menuconfig
  blackfin:mach-bf609: fix norflash for bf609-ezkit
  blackfin: mach-bf609: add can_wakeup to ethernet device
  blackfin: remove redundant CONFIG_BF60x macro
  blackfin: rotary: Add pm_wakeup flag to platform data structure.
  bfin_gpio: fix bf548-ezkit kernel fail to boot
  bfin_dma: fix initcall return error in proc_dma_init()
  Blackfin: delete fork func
  ...

9 years agoMerge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming
Linus Torvalds [Mon, 21 May 2012 19:46:48 +0000]
Merge tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming

Pull c6x updates from Mark Salter:
 "Clean up some c6x Kconfig items and add support for Elf FDPIC loader."

* tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
  C6X: remove unused config items
  C6X: add support to build with BINFMT_ELF_FDPIC
  C6X: change main arch kbuild symbol

9 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux...
Linus Torvalds [Mon, 21 May 2012 19:43:54 +0000]
Merge branch 'for-linus' of git://git./linux/kernel/git/geert/linux-m68k

Pull m68k updates from Geert Uytterhoeven.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: Setup CROSS_COMPILE at the top
  m68k: Correct the Atari ALLOWINT definition
  m68k/video: Create <asm/vga.h>
  m68k: Make sure {read,write}s[bwl]() are always defined
  m68k/mm: Port OOM changes to do_page_fault()
  scsi/atari: Make more functions static
  scsi/atari: Revive "atascsi=" setup option
  net/ariadne: Improve debug prints
  m68k/atari: Change VME irq numbers from unsigned long to unsigned int
  m68k/amiga: Use arch_initcall() for registering platform devices
  m68k/amiga: Add error checks when registering platform devices
  m68k/amiga: Mark z_dev_present() __init
  m68k: Remove unused MAX_NOINT_IPL definition

9 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Linus Torvalds [Mon, 21 May 2012 19:41:17 +0000]
Merge branch 'for-linus' of git://git./linux/kernel/git/s390/linux

Pull s390 updates from Martin Schwidefsky:
 "Just a random collection of bug-fixes and cleanups, nothing new in
  this merge request."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
  s390/ap: Fix wrong or missing comments
  s390/ap: move receive callback to message struct
  s390/dasd: re-prioritize partition detection message
  s390/qeth: reshuffle initialization
  s390/qeth: cleanup drv attr usage
  s390/claw: cleanup drv attr usage
  s390/lcs: cleanup drv attr usage
  s390/ctc: cleanup drv attr usage
  s390/ccwgroup: remove ccwgroup_create_from_string
  s390/qeth: stop using struct ccwgroup driver for discipline callbacks
  s390/qeth: switch to ccwgroup_create_dev
  s390/claw: switch to ccwgroup_create_dev
  s390/lcs: switch to ccwgroup_create_dev
  s390/ctcm: switch to ccwgroup_create_dev
  s390/ccwgroup: exploit ccwdev_by_dev_id
  s390/ccwgroup: introduce ccwgroup_create_dev
  s390: fix race on TIF_MCCK_PENDING
  s390/barrier: make use of fast-bcr facility
  s390/barrier: cleanup barrier functions
  s390/claw: remove "eieio" calls
  ...

9 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
Linus Torvalds [Mon, 21 May 2012 17:32:01 +0000]
Merge git://git./linux/kernel/git/davem/sparc-next

Pull sparc updates from David Miller:

1) Kill off support for sun4c and Cypress sun4m chips.

   And as a result we were able to also kill off that ugly btfixup thing
   that required multi-stage links of the final vmlinux image in the
   Kbuild system.  This should make the kbuild maintainers really happy.

   Thanks a lot to Sam Ravnborg for his tireless efforts to get this
   going.

2) Convert sparc64 to nobootmem.  I suspect now with sparc32 being a lot
   cleaner, it should be able to fall in line and modernize in this area
   too.

3) Make sparc32 use generic clockevents, from Tkhai Kirill.

[ I fixed up the BPF rules, and tried to clean up the build rules too.
  But I don't have - or want - a sparc cross-build environment, so the
  BPF rule bug and the related build cleanup was all done with just a
  bare "make -n" pseudo-test.      - Linus ]

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next: (110 commits)
  sparc32: use flushi when run-time patching in per_cpu_patch
  sparc32: fix cpuid_patch run-time patching
  sparc32: drop unused inline functions in srmmu.c
  sparc32: drop unused functions in pgtsrmmu.h
  sparc32,leon: move leon mmu functions to leon_mm.c
  sparc32,leon: remove duplicate definitions in leon.h
  sparc32,leon: remove duplicate UART register definitions
  sparc32,leon: move leon ASI definitions to asi.h
  sparc32: move trap table to a separate file
  sparc64: renamed ttable.S to ttable_64.S
  sparc32: Remove asm/sysen.h header.
  sparc32: Delete asm/smpprim.h
  sparc32: Remove unused empty_bad_page{,_table} declarations.
  sparc32: Kill boot_cpu_id4
  sparc32: Move GET_PROCESSOR*_ID() out of asm/asmmacro.h
  sparc32: Remove completely unused code from asm/cache.h
  sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
  sparc32: add ucmpdi2
  sparc: introduce arch/sparc/Kbuild
  sparc: remove obsolete documentation
  ...

9 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Linus Torvalds [Mon, 21 May 2012 17:03:46 +0000]
Merge git://git./linux/kernel/git/davem/net-next

Pull networking changes from David Miller:

 1) Get rid of the error prone NLA_PUT*() macros that used an embedded
    goto.

 2) Kill off the token-ring and MCA networking drivers, from Paul
    Gortmaker.

 3) Reduce high-order allocations made by datagram AF_UNIX sockets, from
    Eric Dumazet.

 4) Add PTP hardware clock support to IGB and IXGBE, from Richard
    Cochran and Jacob Keller.

 5) Allow users to query timestamping capabilities of a card via
    ethtool, from Richard Cochran.

 6) Add loadbalance mode to the teaming driver, from Jiri Pirko.  Part
    of this is that we can now have BPF filters not attached to sockets,
    and the loadbalancing function is calculated using one.

 7) Francois Romieu went through the network drivers removing gratuitous
    uses of netdev->base_addr, perhaps some day we can remove it
    completely but it's used for ISA probing still.

 8) Add a BPF JIT for sparc.  I know, who cares, right? :-)

 9) Move networking sysctl registry away from using the compatability
    mode interfaces in the sysctl code.  From Eric W Biederman.

10) Pavel Emelyanov added a way to save and restore TCP socket state via
    TCP_REPAIR, TCP_REPAIR_QUEUE, and TCP_QUEUE_SEQ socket options as
    well as a way to forcefully bind a socket to a port via the
    sk->sk_reuse value SK_FORCE_REUSE.  There is also a
    TCP_REPAIR_OPTIONS which allows to reinstante the TCP options
    enabled on the connection.

11) Several enhancements from Eric Dumazet that, in particular, can
    enhance splice performance on TCP sockets significantly.

     a) Reset the offset of the per-socket sendmsg page when we know
        we're the only use of the page in linear_to_page().

     b) Add facilities such that skb->data can be backed a page rather
        than SLAB kmalloc'd memory.  In particular devices which were
        receiving into linear RX buffers can now end up providing paged
        data.

    The big result is that code like splice and GRO do not have to copy
    any more.

12) Allow a pure sender to more gracefully handle ACK backlogs in TCP.
    What can happen at high rates is that the sender hasn't grown his
    receive buffer limits at all (he's not receiving data so really
    doesn't need to), but the non-data ACKs consume receive buffer
    space.

    sk_add_backlog() is too aggressive in dropping frames in this case,
    so relax it's requirements by using the receive buffer plus the send
    buffer limit as the backlog limit instead of just the former.

    Also from Eric Dumazet.

13) Add ipv6 support to L2TP, from Benjamin LaHaise, James Chapman, and
    Chris Elston.

14) Implement TCP early retransmit (RFC 5827), from Yuchung Cheng.
    Basically, we can start fast retransmit before hiting the dupack
    threshold under certain conditions.

15) New CODEL active queue management packet scheduler, from Eric
    Dumazet based upon initial work by Dave Taht.

    Basically, the big feature is that packets are dropped (or ECN bits
    are set) based upon how long packets live in the queue, rather than
    the queue length (which is what RED uses).

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1341 commits)
  drivers/net/stmmac: seq_file fix memory leak
  ipv6/exthdrs: strict Pad1 and PadN check
  USB: qmi_wwan: Add ZTE (Vodafone) K3520-Z
  USB: qmi_wwan: Add ZTE (Vodafone) K3765-Z
  USB: qmi_wwan: Make forced int 4 whitelist generic
  net/ipv4: replace simple_strtoul with kstrtoul
  net/ipv4/ipconfig: neaten __setup placement
  net: qmi_wwan: Add Vodafone/Huawei K5005 support
  net: cdc_ether: Add ZTE WWAN matches before generic Ethernet
  ipv6: use skb coalescing in reassembly
  ipv4: use skb coalescing in defragmentation
  net: introduce skb_try_coalesce()
  net:ipv6:fixed space issues relating to operators.
  net:ipv6:fixed a trailing white space issue.
  ipv6: disable GSO on sockets hitting dst_allfrag
  tg3: use netdev_alloc_frag() API
  net: napi_frags_skb() is static
  ppp: avoid false drop_monitor false positives
  ipv6: bool/const conversions phase2
  ipx: Remove spurious NULL checking in ipx_ioctl().
  ...

9 years agoMerge branch 'dentry-cleanups' (dcache access cleanups and optimizations)
Linus Torvalds [Mon, 21 May 2012 15:50:57 +0000]
Merge branch 'dentry-cleanups' (dcache access cleanups and optimizations)

This branch simplifies and clarifies the dcache lookup, and allows us to
do certain nice optimizations when comparing dentries.  It also cleans
up the interface to __d_lookup_rcu(), especially around passing the
inode information around.

* dentry-cleanups:
  vfs: make it possible to access the dentry hash/len as one 64-bit entry
  vfs: move dentry name length comparison from dentry_cmp() into callers
  vfs: do the careful dentry name access for all dentry_cmp cases
  vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu
  vfs: clean up __d_lookup_rcu() and dentry_cmp() interfaces

9 years agoMerge branch 'vfs-cleanups' (random vfs cleanups)
Linus Torvalds [Mon, 21 May 2012 15:46:08 +0000]
Merge branch 'vfs-cleanups' (random vfs cleanups)

This teaches vfs_fstat() to use the appropriate f[get|put]_light
functions, allowing it to avoid some unnecessary locking for the common
case.

More noticeably, it also cleans up and simplifies the "getname_flags()"
function, which now relies on the architecture strncpy_from_user() doing
all the user access checks properly, instead of hacking around the fact
that on x86 it didn't use to do it right (see commit 92ae03f2ef99: "x86:
merge 32/64-bit versions of 'strncpy_from_user()' and speed it up").

* vfs-cleanups:
  VFS: make vfs_fstat() use f[get|put]_light()
  VFS: clean up and simplify getname_flags()
  x86: make word-at-a-time strncpy_from_user clear bytes at the end

9 years agoMerge branch 'stat-cleanups' (clean up copying of stat info to user space)
Linus Torvalds [Mon, 21 May 2012 15:41:38 +0000]
Merge branch 'stat-cleanups' (clean up copying of stat info to user space)

This makes cp_new_stat() a bit more readable, and avoids having to
memset() the whole structure just to fill in a couple of padding fields.

This is another result of me looking at code generation of functions
that show up high on certain kernel profiles, and just going "Oh, let's
just clean that up".

Architectures that don't supply the #define to fill just the padding
fields will still fall back to memset().

* stat-cleanups:
  vfs: don't force a big memset of stat data just to clear padding fields
  vfs: de-crapify "cp_new_stat()" function

9 years agoMerge branch 'vm-cleanups' (unmap_vma() interface cleanup)
Linus Torvalds [Mon, 21 May 2012 15:37:07 +0000]
Merge branch 'vm-cleanups' (unmap_vma() interface cleanup)

This series sanitizes the interface to unmap_vma().  The crazy interface
annoyed me no end when I was looking at unmap_single_vma(), which we can
spend quite a lot of time in (especially with loads that have a lot of
small fork/exec's: shell scripts etc).

Moving the nr_accounted calculations to where they belong at least
clarifies things a little.  I hope to come back to look at the
performance of this later, but if/when I get back to it I at least don't
have to see the crazy interfaces any more.

* vm-cleanups:
  vm: remove 'nr_accounted' calculations from the unmap_vmas() interfaces
  vm: simplify unmap_vmas() calling convention

9 years agoMerge branch 'v3-removal' into for-linus
Russell King [Mon, 21 May 2012 14:15:33 +0000]
Merge branch 'v3-removal' into for-linus

Conflicts:
arch/arm/boot/compressed/head.S

9 years agoMerge branch 'misc' into for-linus
Russell King [Mon, 21 May 2012 14:15:24 +0000]
Merge branch 'misc' into for-linus

Conflicts:
arch/arm/kernel/ptrace.c

9 years agoMerge branches 'amba', 'devel-stable', 'fixes', 'mach-types', 'mmci', 'pci' and ...
Russell King [Mon, 21 May 2012 14:15:10 +0000]
Merge branches 'amba', 'devel-stable', 'fixes', 'mach-types', 'mmci', 'pci' and 'versatile' into for-linus

9 years agodrivers/net/stmmac: seq_file fix memory leak
Djalal Harouni [Sun, 20 May 2012 13:55:30 +0000]
drivers/net/stmmac: seq_file fix memory leak

Use single_release() instead of seq_release() to free memory allocated
by single_open().

Signed-off-by: Djalal Harouni <tixxdz@opendz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoblackfin: fix build after add bf60x mach/pm.h
Steven Miao [Wed, 16 May 2012 07:54:31 +0000]
blackfin: fix build after add bf60x mach/pm.h

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: twi: include linux/i2c.h
Sonic Zhang [Wed, 16 May 2012 10:10:27 +0000]
blackfin: twi: include linux/i2c.h

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: add head file for crc controller
Sonic Zhang [Thu, 17 May 2012 09:51:37 +0000]
blackfin: bf60x: add head file for crc controller

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: twi: work around temporary anomaly 0501001
Sonic Zhang [Tue, 15 May 2012 08:20:33 +0000]
blackfin: bf60x: twi: work around temporary anomaly 0501001

Disable IRQ when reading MMR rcv_data8 and rcv_data16.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: twi: Move TWI MMR access macro to twi head file
Sonic Zhang [Tue, 15 May 2012 07:54:26 +0000]
blackfin: twi: Move TWI MMR access macro to twi head file

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: twi: Move TWI peripheral pin request array to platform data
Sonic Zhang [Tue, 15 May 2012 07:25:50 +0000]
blackfin: twi: Move TWI peripheral pin request array to platform data

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: anomaly: Add a temporary anomaly 0501001
Sonic Zhang [Tue, 15 May 2012 06:17:35 +0000]
blackfin: bf60x: anomaly: Add a temporary anomaly 0501001

Add a temporary anomaly 0501001 for data loss in MMR reading if interrupted.
Add work around for bfin serial driver as well.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: Rename the DDR controller macro
Sonic Zhang [Tue, 15 May 2012 05:04:24 +0000]
blackfin: bf60x: Rename the DDR controller macro

Rename the DDR controller macro from DDR0 to DMC0 to avoid confustion for
bf60x.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: mach-bf609: pm: cleanup bfin_deepsleep
Steven Miao [Thu, 17 May 2012 09:38:09 +0000]
blackfin: mach-bf609: pm: cleanup bfin_deepsleep

In bfin_deepsleep(), using register instead of local variable and remove
unused dpmc register read.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: cleanup get clock code
Sonic Zhang [Thu, 17 May 2012 09:35:24 +0000]
blackfin: bf60x: cleanup get clock code

Remove redundance code for get clock.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: pm: Add a debug option to calculate kernel wakeup time.
Sonic Zhang [Thu, 17 May 2012 09:33:00 +0000]
blackfin: bf60x: pm: Add a debug option to calculate kernel wakeup time.

Display the total time when kernel resumes normal from standby or suspend to mem
mode.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: add wakeup source select
Steven Miao [Thu, 17 May 2012 09:29:54 +0000]
blackfin: bf60x: add wakeup source select

Support select the wakeup source for power management on bf60x.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: make clock changeable in kernel menuconfig
Bob Liu [Thu, 17 May 2012 09:15:40 +0000]
blackfin: bf60x: make clock changeable in kernel menuconfig

Add clock changeable support in kernel menuconfig for bf60x.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin:mach-bf609: fix norflash for bf609-ezkit
Bob Liu [Tue, 15 May 2012 05:58:56 +0000]
blackfin:mach-bf609: fix norflash for bf609-ezkit

Set smc register to async flash protocol mode and use physmap driver instead of
bfin-bf6xx.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: mach-bf609: add can_wakeup to ethernet device
Bob Liu [Wed, 9 May 2012 09:20:32 +0000]
blackfin: mach-bf609: add can_wakeup to ethernet device

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: remove redundant CONFIG_BF60x macro
Sonic Zhang [Wed, 9 May 2012 09:06:48 +0000]
blackfin: remove redundant CONFIG_BF60x macro

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: rotary: Add pm_wakeup flag to platform data structure.
Sonic Zhang [Tue, 8 May 2012 07:41:18 +0000]
blackfin: rotary: Add pm_wakeup flag to platform data structure.

Rotary can't be used as a wakeup source in all platform.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agobfin_gpio: fix bf548-ezkit kernel fail to boot
Steven Miao [Tue, 8 May 2012 05:58:46 +0000]
bfin_gpio: fix bf548-ezkit kernel fail to boot

Fix bf548-ezkit kernel fail to boot when request peripheral pins.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agobfin_dma: fix initcall return error in proc_dma_init()
Steven Miao [Thu, 3 May 2012 07:40:26 +0000]
bfin_dma: fix initcall return error in proc_dma_init()

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoBlackfin: delete fork func
Mike Frysinger [Tue, 1 May 2012 04:48:06 +0000]
Blackfin: delete fork func

We don't implement fork() since we are no-mmu, so redirect it to the
existing ENOSYS stub rather than adding a custom EINVAL one.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoBlackfin: fix unused clk var warning
Mike Frysinger [Tue, 1 May 2012 04:47:37 +0000]
Blackfin: fix unused clk var warning

This is only used on BF60x code (so this patch should get squashed into
the original one that added it).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: SMP: pda: "next" field of blackfin_pda only used in SMP kernel
Steven Miao [Sat, 28 Apr 2012 07:54:17 +0000]
blackfin: SMP: pda: "next" field of blackfin_pda only used in SMP kernel

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: GPIO: Implement more GPIO APIs
Sonic Zhang [Fri, 27 Apr 2012 10:25:16 +0000]
blackfin: GPIO: Implement more GPIO APIs

Implement more GPIO APIs in case GPIOLIB is disabled.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: mach-common: ints-priority: fix compile error
Bob Liu [Fri, 27 Apr 2012 06:13:01 +0000]
blackfin: mach-common: ints-priority: fix compile error

IRQ_PINT4/PINT5 are not defined on !CONFIG_BF60x, this patch fix it.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: bfin_uart: Add more LCR bits masks
Sonic Zhang [Thu, 26 Apr 2012 08:51:29 +0000]
blackfin: bf60x: bfin_uart: Add more LCR bits masks

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: license: Change ADI BSD license
Sonic Zhang [Thu, 17 May 2012 06:45:27 +0000]
blackfin: license: Change ADI BSD license

Change ADI BSD license to standart 3 clause BSD license for some blackfin arch
code requested by ADI Legal.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf537-stamp: update board file for platform bfin_sport device
Aaron Wu [Thu, 17 May 2012 06:30:45 +0000]
blackfin: bf537-stamp: update board file for platform bfin_sport device

Blackfin sport driver has been rewrited update board file according.

Signed-off-by: Aaron Wu <Aaron.Wu@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: cleanup mem_map macro
Steven Miao [Mon, 23 Apr 2012 10:13:39 +0000]
blackfin: bf60x: cleanup mem_map macro

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: fix compiling warning
Bob Liu [Thu, 17 May 2012 06:21:22 +0000]
blackfin: bf60x: fix compiling warning

Fix several compiling warning for bf60x.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: add power management support
Steven Miao [Wed, 16 May 2012 10:26:10 +0000]
blackfin: bf60x: add power management support

Add bf60x cpu pm callbacks and change blackfin pm framework to support bf60x.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: add l2 ecc irq handler
Bob Liu [Wed, 16 May 2012 10:18:27 +0000]
blackfin: bf60x: add l2 ecc irq handler

bf60x support l2 hardware ecc error check, add panic when double bits ecc error
happened.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: twi: move twi bit mask macro to twi head file
Sonic Zhang [Thu, 24 Nov 2011 09:40:07 +0000]
blackfin: twi: move twi bit mask macro to twi head file

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: enable gptimer clock source
Steven Miao [Wed, 16 May 2012 10:11:10 +0000]
blackfin: bf60x: enable gptimer clock source

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: add spi/sport3/ppi head file for bf60x
Scott Jiang [Wed, 16 May 2012 10:08:04 +0000]
blackfin: add spi/sport3/ppi head file for bf60x

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: cplb: add support for bf60x
Bob Liu [Wed, 16 May 2012 10:03:47 +0000]
blackfin: cplb: add support for bf60x

Bf60x support big CPLB pages, this commit enable it.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: mach-common: add sec support for bf60x
Steven Miao [Wed, 16 May 2012 09:56:51 +0000]
blackfin: mach-common: add sec support for bf60x

Add system event controller support for bf60x so that interrupt can be
handled.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: bf60x: add clock support
Steven Miao [Wed, 16 May 2012 09:49:52 +0000]
blackfin: bf60x: add clock support

Add clock support for bf60x.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: add bf60x to current framework
Bob Liu [Wed, 16 May 2012 09:37:24 +0000]
blackfin: add bf60x to current framework

This patch added bf60x to current blackfin kernel framework.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: mach-bf609: add machine files
Sonic Zhang [Wed, 16 May 2012 09:24:33 +0000]
blackfin: mach-bf609: add machine files

Add machine files for bf60x including head files, Kconfig/Makefile and board
file.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: asm: fix blackfin.h broken
Bob Liu [Sat, 28 Apr 2012 09:12:32 +0000]
blackfin: asm: fix blackfin.h broken

do{...}while makes no sense in __ASSEMBLY__ code paths.  now
kernels fail to build:
arch/blackfin/mach-bf561/atomic.S: Assembler messages:
arch/blackfin/mach-bf561/atomic.S:48: Error: syntax error. Input text
was do.
arch/blackfin/mach-bf561/atomic.S:48: Error:
arch/blackfin/mach-bf561/atomic.S:48: Error: syntax error. Input text
was }.
arch/blackfin/mach-bf561/atomic.S:48: Error:
arch/blackfin/mach-bf561/atomic.S:53: Error: syntax error. Input text
was do.
arch/blackfin/mach-bf561/atomic.S:53: Error:
arch/blackfin/mach-bf561/atomic.S:53: Error: syntax error. Input text
was }.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoblackfin: configs: add SMP support back to BF561-EZKIT-SMP_defconfig
Bob Liu [Wed, 11 Apr 2012 03:19:33 +0000]
blackfin: configs: add SMP support back to BF561-EZKIT-SMP_defconfig

SMP support was removed from BF561-EZKIT-SMP_defconfig in last commit by
mistake, this patch add it back.

Signed-off-by: Bob Liu <lliubbo@gmail.com>

9 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
David S. Miller [Mon, 21 May 2012 01:53:04 +0000]
Merge git://git./linux/kernel/git/davem/net

9 years agoLinux 3.4
Linus Torvalds [Sun, 20 May 2012 22:29:13 +0000]
Linux 3.4

9 years agoipv6/exthdrs: strict Pad1 and PadN check
Eldad Zack [Sun, 20 May 2012 01:59:33 +0000]
ipv6/exthdrs: strict Pad1 and PadN check

The following tightens the padding check from commit
c1412fce7eccae62b4de22494f6ab3ff8a90c0c6 :

* Take into account combinations of consecutive Pad1 and PadN.

* Catch the corner case of when only padding is present in the
  header, when the extention header length is 0 (i.e., 8 bytes).
  In this case, the header would have exactly 6 bytes of padding:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:  Next Header  : Hdr Ext Len=0 :                               :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
:                        Padding (Pad1 or PadN)                 :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoUSB: qmi_wwan: Add ZTE (Vodafone) K3520-Z
Andrew Bird (Sphere Systems) [Sat, 19 May 2012 22:28:38 +0000]
USB: qmi_wwan: Add ZTE (Vodafone) K3520-Z

Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoUSB: qmi_wwan: Add ZTE (Vodafone) K3765-Z
Andrew Bird (Sphere Systems) [Sat, 19 May 2012 22:28:37 +0000]
USB: qmi_wwan: Add ZTE (Vodafone) K3765-Z

Add the ZTE (Vodafone) K3765-Z to the whitelist. This requires the
previous patch to make the whitelist with forced interface 4 generic
or the device fails to initialise. After applying this patch and
loading the Option driver without usb-modeswitch's bind all
interfaces trick, a wwan0 net interface and /dev/cdc-wdm0 device
file were created. Using Bjorn Mork's perl connection script a
connection was made to a mobile network using QMI and the network
interface's IPv4 address was configured OK.

Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoUSB: qmi_wwan: Make forced int 4 whitelist generic
Andrew Bird (Sphere Systems) [Sat, 19 May 2012 22:28:36 +0000]
USB: qmi_wwan: Make forced int 4 whitelist generic

Change the forced interface 4 whitelist to use the generic shared
binder instead of the Gobi specific one. Certain ZTE devices
(K3520-Z & K3765-Z) don't work with the Gobi version, but function
quite happily with the generic. This has been tested with the following
devices:
K3520-Z
K3565-Z
K3765-Z
K4505-Z
It hasn't been tested with the ZTE MF820D, which is the only other
device that uses this whitelist at present. Although Bjorn doesn't
expect any problems, any testing with that device would be appreciated.

Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: use flushi when run-time patching in per_cpu_patch
Sam Ravnborg [Sun, 20 May 2012 15:27:53 +0000]
sparc32: use flushi when run-time patching in per_cpu_patch

Davis S. Miller wrote:
"
The way we do that now is overkill.  We only needed to use the MMU
cache ops when we had sun4c around because sun4c lacked support for
the "flush" instruction.

But all sun4m and later chips have it so we can use it
unconditionally.

So in the per_cpu_patch() code, get rid of the cache ops invocation,
and instead execute a "flush %reg" after each of the instruction patch
assignments, where %reg is set to the address of the instruction that
was stored into.

Perhaps take the flushi() definition from asm/cacheflush_64.h and
place it into asm/cacheflush.h, then you can simply use that.
"

Implemented as per suggestion.
Moved run-time patching before we call paging_init(),
so helper methods in paging_init() may utilise run-time patching too.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: fix cpuid_patch run-time patching
Sam Ravnborg [Sun, 20 May 2012 15:24:20 +0000]
sparc32: fix cpuid_patch run-time patching

We hang forever when trying to do run-time patching of instructions
identified by the cpuid_patch section

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet/ipv4: replace simple_strtoul with kstrtoul
Eldad Zack [Sat, 19 May 2012 14:13:18 +0000]
net/ipv4: replace simple_strtoul with kstrtoul

Replace simple_strtoul with kstrtoul in three similar occurrences, all setup
handlers:
* route.c: set_rhash_entries
* tcp.c: set_thash_entries
* udp.c: set_uhash_entries

Also check if the conversion failed.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet/ipv4/ipconfig: neaten __setup placement
Eldad Zack [Sat, 19 May 2012 14:04:39 +0000]
net/ipv4/ipconfig: neaten __setup placement

The __setup macro should follow the corresponding setup handler.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: drop unused inline functions in srmmu.c
Sam Ravnborg [Sat, 19 May 2012 20:02:51 +0000]
sparc32: drop unused inline functions in srmmu.c

When decelared inline the compiler does not warn
about unused functions.
But they are not used so drop them.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: drop unused functions in pgtsrmmu.h
Sam Ravnborg [Sat, 19 May 2012 20:02:50 +0000]
sparc32: drop unused functions in pgtsrmmu.h

One function was only used by leon - move it to a leon specific file.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32,leon: move leon mmu functions to leon_mm.c
Sam Ravnborg [Sat, 19 May 2012 20:02:49 +0000]
sparc32,leon: move leon mmu functions to leon_mm.c

We already have a leaon specific file - so
keep all the laon stuff in one place.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32,leon: remove duplicate definitions in leon.h
Sam Ravnborg [Sat, 19 May 2012 20:02:48 +0000]
sparc32,leon: remove duplicate definitions in leon.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32,leon: remove duplicate UART register definitions
Sam Ravnborg [Sat, 19 May 2012 20:02:47 +0000]
sparc32,leon: remove duplicate UART register definitions

The registers are defined in leon_amba too.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32,leon: move leon ASI definitions to asi.h
Sam Ravnborg [Sat, 19 May 2012 20:02:46 +0000]
sparc32,leon: move leon ASI definitions to asi.h

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: move trap table to a separate file
Sam Ravnborg [Sat, 19 May 2012 20:02:45 +0000]
sparc32: move trap table to a separate file

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc64: renamed ttable.S to ttable_64.S
Sam Ravnborg [Sat, 19 May 2012 20:02:44 +0000]
sparc64: renamed ttable.S to ttable_64.S

To allow us to add ttable_32.S

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Remove asm/sysen.h header.
David S. Miller [Sun, 20 May 2012 04:55:49 +0000]
sparc32: Remove asm/sysen.h header.

Defines a sun4c register, thus completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Delete asm/smpprim.h
David S. Miller [Sun, 20 May 2012 04:51:02 +0000]
sparc32: Delete asm/smpprim.h

Completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Remove unused empty_bad_page{,_table} declarations.
David S. Miller [Sun, 20 May 2012 04:45:08 +0000]
sparc32: Remove unused empty_bad_page{,_table} declarations.

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Kill boot_cpu_id4
David S. Miller [Sun, 20 May 2012 04:40:50 +0000]
sparc32: Kill boot_cpu_id4

It is written, but never actually read.

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Move GET_PROCESSOR*_ID() out of asm/asmmacro.h
David S. Miller [Sun, 20 May 2012 04:22:11 +0000]
sparc32: Move GET_PROCESSOR*_ID() out of asm/asmmacro.h

GET_PROCESSOR4D_ID is completely unused, so delete it.

Move GET_PROCESSOR4M_ID to the sun4m specific trap code
which uses it.

We now no longer need to include asm/asi.h

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: Remove completely unused code from asm/cache.h
David S. Miller [Sun, 20 May 2012 04:15:37 +0000]
sparc32: Remove completely unused code from asm/cache.h

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet: qmi_wwan: Add Vodafone/Huawei K5005 support
Bjørn Mork [Sat, 19 May 2012 07:20:31 +0000]
net: qmi_wwan: Add Vodafone/Huawei K5005 support

Tested-by: Thomas Schäfer <tschaefer@t-online.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet: cdc_ether: Add ZTE WWAN matches before generic Ethernet
Andrew Bird (Sphere Systems) [Sat, 19 May 2012 03:56:07 +0000]
net: cdc_ether: Add ZTE WWAN matches before generic Ethernet

Some ZTE WWAN devices have generic CDC Ether descriptors. Add those
into the whitelist so that we get FLAG_WWAN on the interface

Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoipv6: use skb coalescing in reassembly
Eric Dumazet [Sat, 19 May 2012 03:02:35 +0000]
ipv6: use skb coalescing in reassembly

ip6_frag_reasm() can use skb_try_coalesce() to build optimized skb,
reducing memory used by them (truesize), and reducing number of cache
line misses and overhead for the consumer.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoipv4: use skb coalescing in defragmentation
Eric Dumazet [Sat, 19 May 2012 03:02:20 +0000]
ipv4: use skb coalescing in defragmentation

ip_frag_reasm() can use skb_try_coalesce() to build optimized skb,
reducing memory used by them (truesize), and reducing number of cache
line misses and overhead for the consumer.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet: introduce skb_try_coalesce()
Eric Dumazet [Sat, 19 May 2012 03:02:02 +0000]
net: introduce skb_try_coalesce()

Move tcp_try_coalesce() protocol independent part to
skb_try_coalesce().

skb_try_coalesce() can be used in IPv4 defrag and IPv6 reassembly,
to build optimized skbs (less sk_buff, and possibly less 'headers')

skb_try_coalesce() is zero copy, unless the copy can fit in destination
header (its a rare case)

kfree_skb_partial() is also moved to net/core/skbuff.c and exported,
because IPv6 will need it in patch (ipv6: use skb coalescing in
reassembly).

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet:ipv6:fixed space issues relating to operators.
Jeffrin Jose [Sat, 19 May 2012 01:59:04 +0000]
net:ipv6:fixed space issues relating to operators.

Fixed space issues relating to operators found by
checkpatch.pl tool in net/ipv6/udp.c

Signed-off-by: Jeffrin Jose <ahiliation@yahoo.co.in>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agonet:ipv6:fixed a trailing white space issue.
Jeffrin Jose [Sat, 19 May 2012 01:45:21 +0000]
net:ipv6:fixed a trailing white space issue.

Fixed a trailing white space issue found by
checkpatch.pl tool in net/ipv6/udp.c

Signed-off-by: Jeffrin Jose <ahiliation@yahoo.co.in>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoMerge tag 'parisc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6
Linus Torvalds [Sat, 19 May 2012 22:30:15 +0000]
Merge tag 'parisc-fixes' of git://git./linux/kernel/git/jejb/parisc-2.6

Pull PA-RISC fixes from James Bottomley:
 "This is a set of three bug fixes that gets parisc running again on
  systems with PA1.1 processors.

  Two fix regressions introduced in 2.6.39 and one fixes a prefetch bug
  that only affects PA7300LC processors.  We also have another pending
  fix to do with the sectional arrangement of vmlinux.lds, but there's a
  query on it during testing on one particular system type, so I'll hold
  off sending it in for now."

* tag 'parisc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
  [PARISC] fix panic on prefetch(NULL) on PA7300LC
  [PARISC] fix crash in flush_icache_page_asm on PA1.1
  [PARISC] fix PA1.1 oops on boot

9 years agoMerge branch 'x86/ld-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Linus Torvalds [Sat, 19 May 2012 22:28:22 +0000]
Merge branch 'x86/ld-fix' of git://git./linux/kernel/git/tip/tip

Pull x86 linker bug workarounds from Peter Anvin.

GNU ld-2.22.52.0.[12] (*) has an unfortunate bug where it incorrectly
turns certain relocation entries absolute.  Section-relative symbols
that are part of otherwise empty sections are silently changed them to
absolute.  We rely on section-relative symbols staying section-relative,
and actually have several sections in the linker script solely for this
purpose.

See for example

   http://sourceware.org/bugzilla/show_bug.cgi?id=14052

We could just black-list the buggy linker, but it appears that it got
shipped in at least F17, and possibly other distros too, so it's sadly
not some rare unusual case.

This backports the workaround from the x86/trampoline branch, and as
Peter says: "This is not a minimal fix, not at all, but it is a tested
code base."

* 'x86/ld-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, relocs: When printing an error, say relative or absolute
  x86, relocs: Workaround for binutils 2.22.52.0.1 section bug
  x86, realmode: 16-bit real-mode code support for relocs tool

(*) That's a manly release numbering system. Stupid, sure. But manly.

9 years agosparc32: Add ucmpdi2.o to obj-y instead of lib-y.
David S. Miller [Sat, 19 May 2012 22:27:01 +0000]
sparc32: Add ucmpdi2.o to obj-y instead of lib-y.

Otherwise if no references exist in the static kernel image,
we won't export the symbol properly to modules.

Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agosparc32: add ucmpdi2
Sam Ravnborg [Sat, 19 May 2012 09:54:11 +0000]
sparc32: add ucmpdi2

Based on copy from microblaze add ucmpdi2 implementation.
This fixes build of niu driver which failed with:

drivers/built-in.o: In function `niu_get_nfc':
niu.c:(.text+0x91494): undefined reference to `__ucmpdi2'

This driver will never be used on a sparc32 system,
but patch added to fix build breakage with all*config builds.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

9 years agoMerge branch 'for-linus' of git://git.kernel.dk/linux-block
Linus Torvalds [Sat, 19 May 2012 17:12:17 +0000]
Merge branch 'for-linus' of git://git.kernel.dk/linux-block

Pull block layer fixes from Jens Axboe:
 "A few small, but important fixes.  Most of them are marked for stable
  as well

   - Fix failure to release a semaphore on error path in mtip32xx.
   - Fix crashable condition in bio_get_nr_vecs().
   - Don't mark end-of-disk buffers as mapped, limit it to i_size.
   - Fix for build problem with CONFIG_BLOCK=n on arm at least.
   - Fix for a buffer overlow on UUID partition printing.
   - Trivial removal of unused variables in dac960."

* 'for-linus' of git://git.kernel.dk/linux-block:
  block: fix buffer overflow when printing partition UUIDs
  Fix blkdev.h build errors when BLOCK=n
  bio allocation failure due to bio_get_nr_vecs()
  block: don't mark buffers beyond end of disk as mapped
  mtip32xx: release the semaphore on an error path
  dac960: Remove unused variables from DAC960_CreateProcEntries()

9 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Linus Torvalds [Sat, 19 May 2012 17:10:59 +0000]
Merge git://git./linux/kernel/git/davem/net

Pull one more networking bug-fix from David Miller:
 "One last straggler.

  Eric Dumazet's pktgen unload oops fix was not entirely complete, but
  all the cases should be handled properly now....  fingers crossed."

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
  pktgen: fix module unload for good

9 years agomemcg,thp: fix res_counter:96 regression
Hugh Dickins [Fri, 18 May 2012 18:28:34 +0000]
memcg,thp: fix res_counter:96 regression

Occasionally, testing memcg's move_charge_at_immigrate on rc7 shows
a flurry of hundreds of warnings at kernel/res_counter.c:96, where
res_counter_uncharge_locked() does WARN_ON(counter->usage < val).

The first trace of each flurry implicates __mem_cgroup_cancel_charge()
of mc.precharge, and an audit of mc.precharge handling points to
mem_cgroup_move_charge_pte_range()'s THP handling in commit 12724850e806
("memcg: avoid THP split in task migration").

Checking !mc.precharge is good everywhere else, when a single page is to
be charged; but here the "mc.precharge -= HPAGE_PMD_NR" likely to
follow, is liable to result in underflow (a lot can change since the
precharge was estimated).

Simply check against HPAGE_PMD_NR: there's probably a better
alternative, trying precharge for more, splitting if unsuccessful; but
this one-liner is safer for now - no kernel/res_counter.c:96 warnings
seen in 26 hours.

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

9 years agoipv6: disable GSO on sockets hitting dst_allfrag
Eric Dumazet [Fri, 18 May 2012 21:51:44 +0000]
ipv6: disable GSO on sockets hitting dst_allfrag

If the allfrag feature has been set on a host route (due to an ICMPv6
Packet Too Big received indicating a MTU of less than 1280), we hit a
very slow behavior in TCP stack, because all big packets are dropped and
only a retransmit timer is able to push one MSS frame every 200 ms.

One way to handle this is to disable GSO on the socket the first time a
super packet is dropped. Adding a specific dst_allfrag() in the fast
path is probably overkill since the dst_allfrag() case almost never
happen.

Result on netperf TCP_STREAM, one flow :

Before : 60 kbit/sec
After : 1.6 Gbit/sec

Reported-by: Tore Anderson <tore@fud.no>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Tested-by: Tore Anderson <tore@fud.no>
Signed-off-by: David S. Miller <davem@davemloft.net>