]> Git Repo - linux.git/log
linux.git
13 years ago[S390] smp: add __noreturn attribute to cpu_die()
Heiko Carstens [Mon, 23 May 2011 08:24:33 +0000 (10:24 +0200)]
[S390] smp: add __noreturn attribute to cpu_die()

Add missing __noreturn attribute to cpu_die():

arch/s390/kernel/smp.c:691:6: error: symbol 'cpu_die' redeclared with different type

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] percpu: implement arch specific irqsafe_cpu_ops
Heiko Carstens [Mon, 23 May 2011 08:24:32 +0000 (10:24 +0200)]
[S390] percpu: implement arch specific irqsafe_cpu_ops

Implement arch specific irqsafe_cpu ops. The arch specific ops do not
disable/enable interrupts since that is an expensive operation. Instead
we disable preemption and perform a compare and swap loop.
Since on server distros (the ones we care about) preemption is disabled
the preempt_disable()/preempt_enable() pair is a nop.
In the end this code should be faster than the generic one.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] vdso: disable gcov profiling
Peter Oberparleiter [Mon, 23 May 2011 08:24:31 +0000 (10:24 +0200)]
[S390] vdso: disable gcov profiling

The concepts of VDSO and gcov-based profiling don't mix: the former
includes kernel-provided code running in userspace, the latter adds
instructions that modify counters in kernel data segments. On s390
this has not been a problem so far due to VDSO code being written in
all-assembler which is exempt from gcov-based profiling. This could
change in the future, so disable profiling excplicitly for VDSO code.

Signed-off-by: Peter Oberparleiter <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] ap: skip device registration on type probe failure
Holger Dengler [Mon, 23 May 2011 08:24:30 +0000 (10:24 +0200)]
[S390] ap: skip device registration on type probe failure

The registration of an ap device will be skipped, if the device type
probing fails.
Add names of current crypto adapters to the Kconfig help.

Signed-off-by: Holger Dengler <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] extmem: get rid of compile warning
Heiko Carstens [Mon, 23 May 2011 08:24:29 +0000 (10:24 +0200)]
[S390] extmem: get rid of compile warning

Get rid of these:

arch/s390/mm/extmem.c: In function 'segment_modify_shared':
arch/s390/mm/extmem.c:622:3: warning: 'end_addr' may be used uninitialized in this function [-Wuninitialized]
arch/s390/mm/extmem.c:627:18: warning: 'start_addr' may be used uninitialized in this function [-Wuninitialized]
arch/s390/mm/extmem.c: In function 'segment_load':
arch/s390/mm/extmem.c:481:11: warning: 'end_addr' may be used uninitialized in this function [-Wuninitialized]
arch/s390/mm/extmem.c:480:18: warning: 'start_addr' may be used uninitialized in this function [-Wuninitialized]

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] tape: remove unused/not handled return codes
Heiko Carstens [Mon, 23 May 2011 08:24:28 +0000 (10:24 +0200)]
[S390] tape: remove unused/not handled return codes

Return codes are on purpose not handled or used. So remove them.

Acked-by: Michael Holzheu <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] monwriter: fix return code handling
Heiko Carstens [Mon, 23 May 2011 08:24:27 +0000 (10:24 +0200)]
[S390] monwriter: fix return code handling

Fix return code handling within monwrite_new_hdr(). Return code handling
is everwhere implemented, the return code of the diagnose function was
just not passed.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] dasd: fix return code handling
Heiko Carstens [Mon, 23 May 2011 08:24:26 +0000 (10:24 +0200)]
[S390] dasd: fix return code handling

Check return value of itcw_add_dcw() for error code and return it.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] get rid of unused variables
Heiko Carstens [Mon, 23 May 2011 08:24:25 +0000 (10:24 +0200)]
[S390] get rid of unused variables

Remove trivially unused variables as detected with -Wunused-but-set-variable.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] Remove tape block device driver.
Heiko Carstens [Mon, 23 May 2011 08:24:24 +0000 (10:24 +0200)]
[S390] Remove tape block device driver.

Remove the tape block device driver. It's not of real use but has
already created some confusion when users wanted to access tape devices
and used the block device nodes instead of the character device nodes.

Also remove the whole tape documentation since it's completely outdated
and we have the device drivers book which is the place where everything
is properly documented.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] Remove data execution protection
Martin Schwidefsky [Mon, 23 May 2011 08:24:23 +0000 (10:24 +0200)]
[S390] Remove data execution protection

The noexec support on s390 does not rely on a bit in the page table
entry but utilizes the secondary space mode to distinguish between
memory accesses for instructions vs. data. The noexec code relies
on the assumption that the cpu will always use the secondary space
page table for data accesses while it is running in the secondary
space mode. Up to the z9-109 class machines this has been the case.
Unfortunately this is not true anymore with z10 and later machines.
The load-relative-long instructions lrl, lgrl and lgfrl access the
memory operand using the same addressing-space mode that has been
used to fetch the instruction.
This breaks the noexec mode for all user space binaries compiled
with march=z10 or later. The only option is to remove the current
noexec support.

Signed-off-by: Martin Schwidefsky <[email protected]>
13 years ago[S390] cio: fix unreg race in set_online path
Sebastian Ott [Mon, 23 May 2011 08:23:32 +0000 (10:23 +0200)]
[S390] cio: fix unreg race in set_online path

In ccw_device_set_online we basically start path verification and
wait for the device to reach a final state. If it turns out that the
device has no useable path we schedule the deregistration of the
device (which is still in an non-final state) and wake up the waiting
process. The deregistration process will set a final state, but if
the wake up happens to be prior to this, the device will hang forever
in ccw_device_set_online.

To fix this just set the final NOT_OPER state prior to the scheduled
deregistration of the device.

Signed-off-by: Sebastian Ott <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
13 years agosh: Ignore R_SH_NONE module relocations.
Paul Mundt [Mon, 23 May 2011 08:09:30 +0000 (17:09 +0900)]
sh: Ignore R_SH_NONE module relocations.

Some modules may end up with R_SH_NONE relocs with the right combination
of compiler/kernel config (specifically dwarf unwinder), so simply trap
and ignore them instead of letting them get down to the error path.

Reported-by: Carmelo AMOROSO <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoSH: SE7751: Fix pcibios_map_platform_irq prototype.
Ralf Baechle [Fri, 13 May 2011 12:17:46 +0000 (12:17 +0000)]
SH: SE7751: Fix pcibios_map_platform_irq prototype.

Signed-off-by: Ralf Baechle <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke...
Linus Torvalds [Mon, 23 May 2011 05:43:01 +0000 (22:43 -0700)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
  nilfs2: use mark_buffer_dirty to mark btnode or meta data dirty
  nilfs2: always set back pointer to host inode in mapping->host
  nilfs2: get rid of NILFS_I_NILFS
  nilfs2: use list_first_entry
  nilfs2: use empty_aops for gc-inodes
  nilfs2: implement resize ioctl
  nilfs2: add truncation routine of segment usage file
  nilfs2: add routine to move secondary super block
  nilfs2: add ioctl which limits range of segment to be allocated
  nilfs2: zero fill unused portion of super root block
  nilfs2: super root size should change depending on inode size
  nilfs2: get rid of private page allocator
  nilfs2: merge list_del()/list_add_tail() to list_move_tail()

13 years agosh: remove warning and warning_symbol from struct stacktrace_ops
Richard Weinberger [Thu, 12 May 2011 13:11:11 +0000 (13:11 +0000)]
sh: remove warning and warning_symbol from struct stacktrace_ops

Both warning and warning_symbol are nowhere used.
Let's get rid of them.

Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agosh: wire up sys_sendmmsg.
Paul Mundt [Mon, 23 May 2011 05:41:32 +0000 (14:41 +0900)]
sh: wire up sys_sendmmsg.

Signed-off-by: Paul Mundt <[email protected]>
13 years agoclocksource: sh_tmu: Runtime PM support
Magnus Damm [Mon, 25 Apr 2011 13:40:26 +0000 (22:40 +0900)]
clocksource: sh_tmu: Runtime PM support

Add Runtime PM support to the TMU driver.

The hardware device is enabled as long as the clocksource
or the clockevent portion of the driver is used.

Signed-off-by: Magnus Damm <[email protected]>
Acked-by: John Stultz <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoclocksource: sh_tmu: __clocksource_updatefreq_hz() update
Magnus Damm [Mon, 25 Apr 2011 13:38:37 +0000 (22:38 +0900)]
clocksource: sh_tmu: __clocksource_updatefreq_hz() update

This patch updates the clocksource part of the TMU driver
to make use of the __clocksource_updatefreq_hz() function.

Without this patch the old code uses clocksource_register()
together with a hack that assumes a never changing clock rate
(see clk_enable(), clk_get_rate() and clk_disable()).

The patch uses clocksource_register_hz() with 1 Hz as initial
value, then lets the ->enable() callback update the value
with __clocksource_updatefreq_hz() once the struct clk has
been enabled and the frequency is stable.

Signed-off-by: Magnus Damm <[email protected]>
Acked-by: John Stultz <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoclocksource: sh_cmt: Runtime PM support
Magnus Damm [Mon, 25 Apr 2011 13:36:10 +0000 (22:36 +0900)]
clocksource: sh_cmt: Runtime PM support

Add Runtime PM support to the CMT driver.

The hardware device is enabled as long as the clocksource
or the clockevent portion of the driver is used.

Signed-off-by: Magnus Damm <[email protected]>
Acked-by: John Stultz <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoclocksource: sh_cmt: __clocksource_updatefreq_hz() update
Magnus Damm [Mon, 25 Apr 2011 13:32:11 +0000 (22:32 +0900)]
clocksource: sh_cmt: __clocksource_updatefreq_hz() update

This patch updates the clocksource part of the CMT driver
to make use of the __clocksource_updatefreq_hz() function.

Without this patch the old code uses clocksource_register()
together with a hack that assumes a never changing clock rate
(see clk_enable(), clk_get_rate() and clk_disable()).

The patch uses clocksource_register_hz() with 1 Hz as initial
value, then lets the ->enable() callback update the value
with __clocksource_updatefreq_hz() once the struct clk has
been enabled and the frequency is stable.

Signed-off-by: Magnus Damm <[email protected]>
Acked-by: John Stultz <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoUBIFS: switch to dynamic printks
Artem Bityutskiy [Tue, 17 May 2011 12:15:30 +0000 (15:15 +0300)]
UBIFS: switch to dynamic printks

Switch to debugging using dynamic printk (pr_debug()). There is no good reason
to carry custom debugging prints if there is so cool and powerful generic
dynamic printk infrastructure, see Documentation/dynamic-debug-howto.txt. With
dynamic printks we can switch on/of individual prints, per-file, per-function
and per format messages. This means that instead of doing old-fashioned

echo 1 > /sys/module/ubifs/parameters/debug_msgs

to enable general messages, we can do:

echo 'format "UBIFS DBG gen" +ptlf' > control

to enable general messages and additionally ask the dynamic printk
infrastructure to print process ID, line number and function name. So there is
no reason to keep UBIFS-specific crud if there is more powerful generic thing.

Signed-off-by: Artem Bityutskiy <[email protected]>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6
Linus Torvalds [Mon, 23 May 2011 05:08:32 +0000 (22:08 -0700)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
  ide/ide-scan-pci.c: Use for_each_pci_dev().
  ide: Use linux/mutex.h
  IDE: ide-floppy, remove unnecessary NULL check
  drivers/ide/pmac.c: Remove unnecessary casts of pci_get_drvdata
  ide: fix use after free in ide-acpi

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6
Linus Torvalds [Mon, 23 May 2011 05:06:24 +0000 (22:06 -0700)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6: (28 commits)
  sparc32: fix build, fix missing cpu_relax declaration
  SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI
  sparc32,leon: Remove unnecessary page_address calls in LEON DMA API.
  sparc: convert old cpumask API into new one
  sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines
  sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines
  sparc32,leon: Implemented SMP IPIs for LEON CPU
  sparc32: implement SMP IPIs using the generic functions
  sparc32,leon: SMP power down implementation
  sparc32,leon: added some SMP comments
  sparc: add {read,write}*_be routines
  sparc32,leon: don't rely on bootloader to mask IRQs
  sparc32,leon: operate on boot-cpu IRQ controller registers
  sparc32: always define boot_cpu_id
  sparc32: removed unused code, implemented by generic code
  sparc32: avoid build warning at mm/percpu.c:1647
  sparc32: always register a PROM based early console
  sparc32: probe for cpu info only during startup
  sparc: consolidate show_cpuinfo in cpu.c
  sparc32,leon: implement genirq CPU affinity
  ...

13 years agoMerge branch 'for-linus' of git://neil.brown.name/md
Linus Torvalds [Mon, 23 May 2011 05:03:03 +0000 (22:03 -0700)]
Merge branch 'for-linus' of git://neil.brown.name/md

* 'for-linus' of git://neil.brown.name/md:
  md: allow resync_start to be set while an array is active.
  md/raid10:  reformat some loops with less indenting.
  md/raid10: remove unused variable.
  md/raid10: make more use of 'slot' in raid10d.
  md/raid10: some tidying up in fix_read_error
  md/raid1: improve handling of pages allocated for write-behind.
  md/raid1: try fix_sync_read_error before process_checks.
  md/raid1: tidy up new functions: process_checks and fix_sync_read_error.
  md/raid1: split out two sub-functions from sync_request_write
  md: make error_handler functions more uniform and correct.
  md/multipath: discard ->working_disks in favour of ->degraded
  md/raid1: clean up read_balance.
  md: simplify raid10 read_balance
  md/bitmap: fix saving of events_cleared and other state.
  md: reject a re-add request that cannot be honoured.
  md: Fix race when creating a new md device.

13 years agowireless: fix fatal kernel-doc error + warning in mac80211.h
Randy Dunlap [Mon, 23 May 2011 00:22:45 +0000 (17:22 -0700)]
wireless: fix fatal kernel-doc error + warning in mac80211.h

Fix new kernel-doc Error and Warning in <net/mac80211.h>:

  Error(linux-2.6.39-git5/include/net/mac80211.h:550): cannot understand prototype: 'struct ieee80211_sched_scan_ies '
  Warning(linux-2.6.39-git5/include/net/mac80211.h:2289): No description found for parameter 'sta'

Signed-off-by: Randy Dunlap <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
13 years agox86: setup_smep needs to be __cpuinit
Linus Torvalds [Mon, 23 May 2011 04:37:01 +0000 (21:37 -0700)]
x86: setup_smep needs to be __cpuinit

The setup_smep function gets calle at resume time too, and is thus not a
pure __init function.  When marked as __init, it gets thrown out after
the kernel has initialized, and when the kernel is suspended and
resumed, the code will no longer be around, and we'll get a nice "kernel
tried to execute NX-protected page" oops because the page is no longer
marked executable.

Reported-and-tested-by: Parag Warudkar <[email protected]>
Cc: Fenghua Yu <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Cc: Ingo Molnar <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
13 years agoRemove prefetch() from <linux/skbuff.h> and "netlabel_addrlist.h"
Linus Torvalds [Sun, 22 May 2011 23:51:43 +0000 (16:51 -0700)]
Remove prefetch() from <linux/skbuff.h> and "netlabel_addrlist.h"

Commit e66eed651fd1 ("list: remove prefetching from regular list
iterators") removed the include of prefetch.h from list.h.  The skbuff
list traversal still had them.

Quoth David Miller:
  "Please just remove the prefetches.

  Those are modelled after list.h as I intend to eventually convert
  SKB list handling to "struct list_head" but we're not there yet.

  Therefore if we kill prefetches from list.h we should kill it from
  these things in skbuff.h too."

Requested-by: David Miller <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
13 years agoAdd appropriate <linux/prefetch.h> include for prefetch users
Paul Gortmaker [Sun, 22 May 2011 20:47:17 +0000 (16:47 -0400)]
Add appropriate <linux/prefetch.h> include for prefetch users

After discovering that wide use of prefetch on modern CPUs
could be a net loss instead of a win, net drivers which were
relying on the implicit inclusion of prefetch.h via the list
headers showed up in the resulting cleanup fallout.  Give
them an explicit include via the following $0.02 script.

 =========================================
 #!/bin/bash
 MANUAL=""
 for i in `git grep -l 'prefetch(.*)' .` ; do
  grep -q '<linux/prefetch.h>' $i
  if [ $? = 0 ] ; then
  continue
  fi

  ( echo '?^#include <linux/?a'
  echo '#include <linux/prefetch.h>'
  echo .
  echo w
  echo q
  ) | ed -s $i > /dev/null 2>&1
  if [ $? != 0 ]; then
  echo $i needs manual fixup
  MANUAL="$i $MANUAL"
  fi
 done
 echo ------------------- 8\<----------------------
 echo vi $MANUAL
 =========================================

Signed-off-by: Paul <[email protected]>
[ Fixed up some incorrect #include placements, and added some
  non-network drivers and the fib_trie.c case    - Linus ]
Signed-off-by: Linus Torvalds <[email protected]>
13 years agosparc32: fix build, fix missing cpu_relax declaration
Sam Ravnborg [Sat, 21 May 2011 20:55:17 +0000 (22:55 +0200)]
sparc32: fix build, fix missing cpu_relax declaration

Fix following sparc (32 bit) build error:

  CC      arch/sparc/kernel/asm-offsets.s
In file included from include/linux/seqlock.h:29:0,
                 from include/linux/time.h:8,
                 from include/linux/timex.h:56,
                 from include/linux/sched.h:57,
                 from arch/sparc/kernel/asm-offsets.c:13:
include/linux/spinlock.h: In function 'spin_unlock_wait':
include/linux/spinlock.h:360:2: error: implicit declaration of function 'cpu_relax'

Most likely caused by commit e66eed651fd1 ("list: remove
prefetching from regular list iterators") due to include
changes.

Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agodmaengine: shdma: synchronize RCU before freeing, simplify spinlock
Guennadi Liakhovetski [Mon, 2 May 2011 07:59:02 +0000 (07:59 +0000)]
dmaengine: shdma: synchronize RCU before freeing, simplify spinlock

List elements, deleted using list_del_rcu(), cannot be freed without
synchronising RCU. Further, the spinlock, used to protect the RCU
writer, is called in process context, so, we don't have to save flags.

Signed-off-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agodmaengine: shdma: add runtime- and system-level power management
Guennadi Liakhovetski [Fri, 29 Apr 2011 17:09:25 +0000 (17:09 +0000)]
dmaengine: shdma: add runtime- and system-level power management

This patch extends and fixes runtime power management in the shdma
driver to support powering down the DMA controller and adds support
for system-level suspend and resume.

Signed-off-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agodmaengine: shdma: fix locking
Guennadi Liakhovetski [Fri, 29 Apr 2011 17:09:21 +0000 (17:09 +0000)]
dmaengine: shdma: fix locking

Close multiple theoretical races, especially the one in
.device_free_chan_resources().

Signed-off-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agosh: sh-sci: sh7377 and sh73a0 build fixes
Magnus Damm [Thu, 28 Apr 2011 03:10:35 +0000 (03:10 +0000)]
sh: sh-sci: sh7377 and sh73a0 build fixes

Fix sh7377 and sh73a0 build failure:

drivers/tty/serial/sh-sci.c: In function 'scif_txfill':
drivers/tty/serial/sh-sci.c:338: error: implicit declaration of function 'sci_SCTFDR_in'
drivers/tty/serial/sh-sci.c: In function 'scif_rxfill':
drivers/tty/serial/sh-sci.c:351: error: implicit declaration of function 'sci_SCRFDR_in'
make[3]: *** [drivers/tty/serial/sh-sci.o] Error 1
make[2]: *** [drivers/tty/serial] Error 2
make[1]: *** [drivers/tty] Error 2
make: *** [drivers] Error 2

Signed-off-by: Magnus Damm <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agosh: cosmetic improvement: use an existing pointer
Guennadi Liakhovetski [Fri, 15 Apr 2011 18:05:27 +0000 (18:05 +0000)]
sh: cosmetic improvement: use an existing pointer

Use an existing local variable, instead of calculating the pointer
multiple times explicitly.

Signed-off-by: Guennadi Liakhovetski <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: Magnus Damm <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoserial: sh-sci: suspend/resume wakeup support V2
Magnus Damm [Thu, 21 Apr 2011 13:08:46 +0000 (13:08 +0000)]
serial: sh-sci: suspend/resume wakeup support V2

This patch adds wakeup support to the sh-sci driver. The serial
core deals with all details but defaults to wakeup disabled. So
to make use of this feature enable wakeup in sysfs:

echo enabled > /sys/class/tty/ttySC0/power/wakeup

Signed-off-by: Magnus Damm <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoserial: sh-sci: Runtime PM support
Magnus Damm [Tue, 19 Apr 2011 10:38:25 +0000 (10:38 +0000)]
serial: sh-sci: Runtime PM support

Add support for Runtime PM in the sh-sci driver.

Signed-off-by: Magnus Damm <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
13 years agoMerge branch 'sh/genirq-threading' into sh-latest
Paul Mundt [Mon, 23 May 2011 02:36:14 +0000 (11:36 +0900)]
Merge branch 'sh/genirq-threading' into sh-latest

13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux...
Paul Mundt [Mon, 23 May 2011 02:35:33 +0000 (11:35 +0900)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh-latest

13 years agobnx2x: allow device properly initialize after hotplug
Dmitry Kravkov [Sun, 22 May 2011 10:11:26 +0000 (10:11 +0000)]
bnx2x: allow device properly initialize after hotplug

Signed-off-by: Dmitry Kravkov <[email protected]>
Signed-off-by: Eilon Greenstein <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobnx2x: fix DMAE timeout according to hw specifications
Dmitry Kravkov [Sun, 22 May 2011 10:09:19 +0000 (10:09 +0000)]
bnx2x: fix DMAE timeout according to hw specifications

Signed-off-by: Dmitry Kravkov <[email protected]>
Signed-off-by: Eilon Greenstein <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobnx2x: properly handle CFC DEL in cnic flow
Vladislav Zolotarov [Sun, 22 May 2011 10:08:09 +0000 (10:08 +0000)]
bnx2x: properly handle CFC DEL in cnic flow

Signed-off-by: Dmitry Kravkov <[email protected]>
Signed-off-by: Eilon Greenstein <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobnx2x: call dev_kfree_skb_any instead of dev_kfree_skb
Vladislav Zolotarov [Sun, 22 May 2011 10:06:58 +0000 (10:06 +0000)]
bnx2x: call dev_kfree_skb_any instead of dev_kfree_skb

replace function calls when possible call in both irq/non-irq contexts

Signed-off-by: Dmitry Kravkov <[email protected]>
Signed-off-by: Eilon Greenstein <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: filter: move forward declarations to avoid compile warnings
Heiko Carstens [Sun, 22 May 2011 07:08:11 +0000 (07:08 +0000)]
net: filter: move forward declarations to avoid compile warnings

Get rid of this compile warning:

In file included from arch/s390/kernel/compat_linux.c:37:0:
include/linux/filter.h:139:23: warning: 'struct sk_buff' declared inside parameter list

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agopktgen: refactor pg_init() code
WANG Cong [Sun, 22 May 2011 00:52:08 +0000 (00:52 +0000)]
pktgen: refactor pg_init() code

This also shrinks the object size a little.

   text    data     bss     dec     hex filename
  28834     186       8   29028    7164 net/core/pktgen.o
  28816     186       8   29010    7152 net/core/pktgen.o.AFTER

Signed-off-by: WANG Cong <[email protected]>
Cc: "David Miller" <[email protected]>,
Signed-off-by: David S. Miller <[email protected]>
13 years agopktgen: use vzalloc_node() instead of vmalloc_node() + memset()
WANG Cong [Sun, 22 May 2011 00:17:11 +0000 (00:17 +0000)]
pktgen: use vzalloc_node() instead of vmalloc_node() + memset()

Signed-off-by: WANG Cong <[email protected]>
Cc: "David S. Miller" <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: skb_trim explicitely check the linearity instead of data_len
Emmanuel Grumbach [Sat, 21 May 2011 19:46:09 +0000 (19:46 +0000)]
net: skb_trim explicitely check the linearity instead of data_len

The purpose of the check on data_len is to check linearity, so use the inline
helper for this. No overhead and more explicit.

Signed-off-by: Emmanuel Grumbach <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoipv4: Give backtrace in ip_rt_bug().
Dave Jones [Sat, 21 May 2011 07:16:42 +0000 (07:16 +0000)]
ipv4: Give backtrace in ip_rt_bug().

Add a stack backtrace to the ip_rt_bug path for debugging

Signed-off-by: Dave Jones <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: avoid synchronize_rcu() in dev_deactivate_many
Eric Dumazet [Thu, 19 May 2011 23:42:09 +0000 (23:42 +0000)]
net: avoid synchronize_rcu() in dev_deactivate_many

dev_deactivate_many() issues one synchronize_rcu() call after qdiscs set
to noop_qdisc.

This call is here to make sure they are no outstanding qdisc-less
dev_queue_xmit calls before returning to caller.

But in dismantle phase, we dont have to wait, because we wont activate
again the device, and we are going to wait one rcu grace period later in
rollback_registered_many().

After this patch, device dismantle uses one synchronize_net() and one
rcu_barrier() call only, so we have a ~30% speedup and a smaller RTNL
latency.

Signed-off-by: Eric Dumazet <[email protected]>
CC: Patrick McHardy <[email protected]>,
CC: Ben Greear <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: remove synchronize_net() from netdev_set_master()
Eric Dumazet [Thu, 19 May 2011 19:37:40 +0000 (19:37 +0000)]
net: remove synchronize_net() from netdev_set_master()

In the old days, we used to access dev->master in __netif_receive_skb()
in a rcu_read_lock section.

So one synchronize_net() call was needed in netdev_set_master() to make
sure another cpu could not use old master while/after we release it.

We now use netdev_rx_handler infrastructure and added one
synchronize_net() call in bond_release()/bond_release_all()

Remove the obsolete synchronize_net() from netdev_set_master() and add
one in bridge del_nbp() after its netdev_rx_handler_unregister() call.

This makes enslave -d a bit faster.

Signed-off-by: Eric Dumazet <[email protected]>
CC: Jiri Pirko <[email protected]>
CC: Stephen Hemminger <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agortnetlink: ignore NETDEV_RELEASE and NETDEV_JOIN event
Amerigo Wang [Thu, 19 May 2011 23:06:32 +0000 (23:06 +0000)]
rtnetlink: ignore NETDEV_RELEASE and NETDEV_JOIN event

These two events are not expected to be caught by userspace.

Signed-off-by: WANG Cong <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASE
Amerigo Wang [Thu, 19 May 2011 21:39:12 +0000 (21:39 +0000)]
net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASE

s/NETDEV_BONDING_DESLAVE/NETDEV_RELEASE/ as Andy suggested.

Signed-off-by: WANG Cong <[email protected]>
Cc: Andy Gospodarek <[email protected]>
Cc: Neil Horman <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobridge: call NETDEV_JOIN notifiers when add a slave
Amerigo Wang [Thu, 19 May 2011 21:39:11 +0000 (21:39 +0000)]
bridge: call NETDEV_JOIN notifiers when add a slave

In the previous patch I added NETDEV_JOIN, now
we can notify netconsole when adding a device to a bridge too.

Signed-off-by: WANG Cong <[email protected]>
Cc: Neil Horman <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonetpoll: disable netpoll when enslave a device
Amerigo Wang [Thu, 19 May 2011 21:39:10 +0000 (21:39 +0000)]
netpoll: disable netpoll when enslave a device

V3: rename NETDEV_ENSLAVE to NETDEV_JOIN

Currently we do nothing when we enslave a net device which is running netconsole.
Neil pointed out that we may get weird results in such case, so let's disable
netpoll on the device being enslaved. I think it is too harsh to prevent
the device being ensalved if it is running netconsole.

By the way, this patch also removes the NETDEV_GOING_DOWN from netconsole
netdev notifier, because netpoll will check if the device is running or not
and we don't handle NETDEV_PRE_UP neither.

This patch is based on net-next-2.6.

Signed-off-by: WANG Cong <[email protected]>
Cc: Neil Horman <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agomacvlan: Forward unicast frames in bridge mode to lowerdev
David Ward [Thu, 19 May 2011 02:53:20 +0000 (02:53 +0000)]
macvlan: Forward unicast frames in bridge mode to lowerdev

Unicast frames between macvlan interfaces in bridge mode are not otherwise
sent to network taps on the lowerdev (as all other macvlan frames are), so
forward the frames to the receive queue of the lowerdev first.

Signed-off-by: David Ward <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: Remove linux/prefetch.h include from linux/skbuff.h
David S. Miller [Mon, 23 May 2011 00:54:11 +0000 (20:54 -0400)]
net: Remove linux/prefetch.h include from linux/skbuff.h

No longer needed.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipv4: Include linux/prefetch.h in fib_trie.c
David S. Miller [Mon, 23 May 2011 00:53:43 +0000 (20:53 -0400)]
ipv4: Include linux/prefetch.h in fib_trie.c

Signed-off-by: David S. Miller <[email protected]>
13 years agonetlabel: Remove prefetches from list handlers.
David S. Miller [Mon, 23 May 2011 00:42:10 +0000 (20:42 -0400)]
netlabel: Remove prefetches from list handlers.

Signed-off-by: David S. Miller <[email protected]>
13 years agodrivers/net: add prefetch header for prefetch users
Paul Gortmaker [Sun, 22 May 2011 11:02:08 +0000 (11:02 +0000)]
drivers/net: add prefetch header for prefetch users

After discovering that wide use of prefetch on modern CPUs
could be a net loss instead of a win, net drivers which were
relying on the implicit inclusion of prefetch.h via the list
headers showed up in the resulting cleanup fallout.  Give
them an explicit include via the following $0.02 script.

 =========================================
 #!/bin/bash
 MANUAL=""
 for i in `git grep -l 'prefetch(.*)' .` ; do
  grep -q '<linux/prefetch.h>' $i
  if [ $? = 0 ] ; then
  continue
  fi

  ( echo '?^#include <linux/?a'
  echo '#include <linux/prefetch.h>'
  echo .
  echo w
  echo q
  ) | ed -s $i > /dev/null 2>&1
  if [ $? != 0 ]; then
  echo $i needs manual fixup
  MANUAL="$i $MANUAL"
  fi
 done
 echo ------------------- 8\<----------------------
 echo vi $MANUAL
 =========================================

Signed-off-by: Paul <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agorionet: Remove pointless printk of skb pointer.
David S. Miller [Mon, 23 May 2011 00:35:54 +0000 (20:35 -0400)]
rionet: Remove pointless printk of skb pointer.

Casting to u32 warns anyways.

Signed-off-by: David S. Miller <[email protected]>
13 years agonet: Remove prefetches from SKB list handlers.
David S. Miller [Mon, 23 May 2011 00:35:29 +0000 (20:35 -0400)]
net: Remove prefetches from SKB list handlers.

Noticed by Linus.

Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Plug memory leak for checksum error
[email protected] [Sun, 22 May 2011 11:18:54 +0000 (11:18 +0000)]
caif: Plug memory leak for checksum error

In case of checksum error, the framing layer returns -EILSEQ, but
does not free the packet. Plug this hole by freeing the packet if
-EILSEQ is returned.

Signed-off-by: Sjur Brændeland <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Update documentation of CAIF transmit and receive functions.
[email protected] [Sun, 22 May 2011 11:18:53 +0000 (11:18 +0000)]
caif: Update documentation of CAIF transmit and receive functions.

Trivial patch updating documentation in header files only.
Error handling of CAIF transmit errors was changed by commit:
      caif: Don't resend if dev_queue_xmit fails.
This patch updates the documentation accordingly.

Signed-off-by: Sjur Brændeland <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Fix freezes when running CAIF loopback device
[email protected] [Sun, 22 May 2011 11:18:52 +0000 (11:18 +0000)]
caif: Fix freezes when running CAIF loopback device

Fix spinlock bugs when running out of link-ids in loopback tests and
avoid allocating link-id when error is set in link-setup-response.

Signed-off-by: Sjur Brændeland <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Fixes freeze on Link layer removal.
[email protected] [Sun, 22 May 2011 11:18:51 +0000 (11:18 +0000)]
caif: Fixes freeze on Link layer removal.

CAIF Socket layer - caif_socket.c:
- Plug mem-leak at reconnect.
- Always call disconnect to cleanup CAIF stack.
- Disconnect will always report success.

CAIF configuration layer - cfcnfg.c
- Disconnect must dismantle the caif stack correctly
- Protect against faulty removals (check on id zero)

CAIF mux layer - cfmuxl.c
- When inserting new service layer in the MUX remove
  any old entries with the same ID.
- When removing CAIF Link layer, remove the associated
  service layers before notifying service layers.

Signed-off-by: Sjur Brændeland <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Bugfix add check NULL pointer before calling functions.
[email protected] [Sun, 22 May 2011 11:18:50 +0000 (11:18 +0000)]
caif: Bugfix add check NULL pointer before calling functions.

Add check on layer->dn != NULL before calling functions in
layer below.

Signed-off-by: Sjur Brændeland <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoGive up on pushing CC_OPTIMIZE_FOR_SIZE
Linus Torvalds [Sun, 22 May 2011 21:30:36 +0000 (14:30 -0700)]
Give up on pushing CC_OPTIMIZE_FOR_SIZE

I still happen to believe that I$ miss costs are a major thing, but
sadly, -Os doesn't seem to be the solution.  With or without it, gcc
will miss some obvious code size improvements, and with it enabled gcc
will sometimes make choices that aren't good even with high I$ miss
ratios.

For example, with -Os, gcc on x86 will turn a 20-byte constant memcpy
into a "rep movsl".  While I sincerely hope that x86 CPU's will some day
do a good job at that, they certainly don't do it yet, and the cost is
higher than a L1 I$ miss would be.

Some day I hope we can re-enable this.

Signed-off-by: Linus Torvalds <[email protected]>
13 years agoMerge branch 'viafb-next' of git://github.com/schandinat/linux-2.6
Linus Torvalds [Sun, 22 May 2011 19:39:58 +0000 (12:39 -0700)]
Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6

* 'viafb-next' of git://github.com/schandinat/linux-2.6: (24 commits)
  viafb: Automatic OLPC XO-1.5 configuration
  viafb: remove unused CEA mode
  viafb: try to map less memory in case of failure
  viafb: use write combining for video ram
  viafb: add X server compatibility mode
  viafb: reduce OLPC refresh a bit
  viafb: fix OLPC XO 1.5 device connection
  viafb: fix OLPC DCON refresh rate
  viafb: delete clock and PLL initialization
  viafb: replace custom return values
  viafb: some small cleanup for global variables
  viafb: gather common good, old VGA initialization in one place
  viafb: add engine clock support
  viafb: add VIA slapping capability
  viafb: split clock and PLL code to an extra file
  viafb: add primary/secondary clock on/off switches
  viafb: add clock source selection and PLL power management support
  viafb: prepare for PLL separation
  viafb: call viafb_get_clk_value only in viafb_set_vclock
  viafb: remove unused max_hres/vres
  ...

13 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6
Linus Torvalds [Sun, 22 May 2011 19:38:40 +0000 (12:38 -0700)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
  [PARISC] wire up syncfs syscall
  [PARISC] wire up the fhandle syscalls
  [PARISC] wire up clock_adjtime syscall
  [PARISC] wire up fanotify syscalls
  [PARISC] prevent speculative re-read on cache flush
  [PARISC] only make executable areas executable
  [PARISC] fix pacache .size with new binutils

13 years agofs: add missing prefetch.h include
Heiko Carstens [Sun, 22 May 2011 16:54:21 +0000 (18:54 +0200)]
fs: add missing prefetch.h include

Fixes this build error on s390 and probably other archs as well:

  fs/inode.c: In function 'new_inode':
  fs/inode.c:894:2: error: implicit declaration of function 'spin_lock_prefetch'

Signed-off-by: Heiko Carstens <[email protected]>
[ Happens on architectures that don't define their own prefetch
  functions in <asm/processor.h>, and instead rely on the default
  ones in <linux/prefetch.h>   - Linus]
Signed-off-by: Linus Torvalds <[email protected]>
13 years agonet: add missing prefetch.h include
Heiko Carstens [Sun, 22 May 2011 16:55:10 +0000 (18:55 +0200)]
net: add missing prefetch.h include

Fixes build errors on s390 and probably other archs as well:

  In file included from net/ipv4/ip_forward.c:32:0:
  include/net/udp.h: In function 'udp_csum_outgoing':
  include/net/udp.h:141:2: error: implicit declaration of function 'prefetch'

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
13 years agoKVM: MMU: Use ptep_user for cmpxchg_gpte()
Takuya Yoshikawa [Sun, 1 May 2011 05:33:07 +0000 (14:33 +0900)]
KVM: MMU: Use ptep_user for cmpxchg_gpte()

The address of the gpte was already calculated and stored in ptep_user
before entering cmpxchg_gpte().

This patch makes cmpxchg_gpte() to use that to make it clear that we
are using the same address during walk_addr_generic().

Note that the unlikely annotations are used to show that the conditions
are something unusual rather than for performance.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Marcelo Tosatti <[email protected]>
13 years agoKVM: Fix kvm mmu_notifier initialization order
OGAWA Hirofumi [Wed, 11 May 2011 00:28:28 +0000 (09:28 +0900)]
KVM: Fix kvm mmu_notifier initialization order

Like the following, mmu_notifier can be called after registering
immediately. So, kvm have to initialize kvm->mmu_lock before it.

BUG: spinlock bad magic on CPU#0, kswapd0/342
 lock: ffff8800af8c4000, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
Pid: 342, comm: kswapd0 Not tainted 2.6.39-rc5+ #1
Call Trace:
 [<ffffffff8118ce61>] spin_bug+0x9c/0xa3
 [<ffffffff8118ce91>] do_raw_spin_lock+0x29/0x13c
 [<ffffffff81024923>] ? flush_tlb_others_ipi+0xaf/0xfd
 [<ffffffff812e22f3>] _raw_spin_lock+0x9/0xb
 [<ffffffffa0582325>] kvm_mmu_notifier_clear_flush_young+0x2c/0x66 [kvm]
 [<ffffffff810d3ff3>] __mmu_notifier_clear_flush_young+0x2b/0x57
 [<ffffffff810c8761>] page_referenced_one+0x88/0xea
 [<ffffffff810c89bf>] page_referenced+0x1fc/0x256
 [<ffffffff810b2771>] shrink_page_list+0x187/0x53a
 [<ffffffff810b2ed7>] shrink_inactive_list+0x1e0/0x33d
 [<ffffffff810acf95>] ? determine_dirtyable_memory+0x15/0x27
 [<ffffffff812e90ee>] ? call_function_single_interrupt+0xe/0x20
 [<ffffffff810b3356>] shrink_zone+0x322/0x3de
 [<ffffffff810a9587>] ? zone_watermark_ok_safe+0xe2/0xf1
 [<ffffffff810b3928>] kswapd+0x516/0x818
 [<ffffffff810b3412>] ? shrink_zone+0x3de/0x3de
 [<ffffffff81053d17>] kthread+0x7d/0x85
 [<ffffffff812e9394>] kernel_thread_helper+0x4/0x10
 [<ffffffff81053c9a>] ? __init_kthread_worker+0x37/0x37
 [<ffffffff812e9390>] ? gs_change+0xb/0xb

Signed-off-by: OGAWA Hirofumi <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: Add documentation for KVM_CAP_NR_VCPUS
Pekka Enberg [Mon, 9 May 2011 19:48:54 +0000 (22:48 +0300)]
KVM: Add documentation for KVM_CAP_NR_VCPUS

Document KVM_CAP_NR_VCPUS that can be used by the userspace to determine
maximum number of VCPUs it can create with the KVM_CREATE_VCPU ioctl.

Cc: Avi Kivity <[email protected]>
Cc: Marcelo Tosatti <[email protected]>
Cc: Jan Kiszka <[email protected]>
Signed-off-by: Pekka Enberg <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: make guest mode entry to be rcu quiescent state
Gleb Natapov [Wed, 4 May 2011 13:31:04 +0000 (16:31 +0300)]
KVM: make guest mode entry to be rcu quiescent state

KVM does not hold any references to rcu protected data when it switches
CPU into a guest mode. In fact switching to a guest mode is very similar
to exiting to userspase from rcu point of view. In addition CPU may stay
in a guest mode for quite a long time (up to one time slice). Lets treat
guest mode as quiescent state, just like we do with user-mode execution.

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoMerge commit '29ce831000081dd757d3116bf774aafffc4b6b20' into next
Avi Kivity [Wed, 11 May 2011 09:56:53 +0000 (05:56 -0400)]
Merge commit '29ce831000081dd757d3116bf774aafffc4b6b20' into next

* commit '29ce831000081dd757d3116bf774aafffc4b6b20': (34 commits)
  rcu: provide rcu_virt_note_context_switch() function.
  rcu: get rid of signed overflow in check_cpu_stall()
  rcu: optimize rcutiny
  rcu: prevent call_rcu() from diving into rcu core if irqs disabled
  rcu: further lower priority in rcu_yield()
  rcu: introduce kfree_rcu()
  rcu: fix spelling
  rcu: call __rcu_read_unlock() in exit_rcu for tree RCU
  rcu: Converge TINY_RCU expedited and normal boosting
  rcu: remove useless ->boosted_this_gp field
  rcu: code cleanups in TINY_RCU priority boosting.
  rcu: Switch to this_cpu() primitives
  rcu: Use WARN_ON_ONCE for DEBUG_OBJECTS_RCU_HEAD warnings
  rcu: mark rcutorture boosting callback as being on-stack
  rcu: add DEBUG_OBJECTS_RCU_HEAD check for alignment
  rcu: Enable DEBUG_OBJECTS_RCU_HEAD from !PREEMPT
  rcu: Add forward-progress diagnostic for per-CPU kthreads
  rcu: add grace-period age and more kthread state to tracing
  rcu: fix tracing bug thinko on boost-balk attribution
  rcu: update tracing documentation for new rcutorture and rcuboost
  ...

Pulling in rcu_virt_note_context_switch().

Signed-off-by: Avi Kivity <[email protected]>
* commit '29ce831000081dd757d3116bf774aafffc4b6b20': (34 commits)
  rcu: provide rcu_virt_note_context_switch() function.
  rcu: get rid of signed overflow in check_cpu_stall()
  rcu: optimize rcutiny
  rcu: prevent call_rcu() from diving into rcu core if irqs disabled
  rcu: further lower priority in rcu_yield()
  rcu: introduce kfree_rcu()
  rcu: fix spelling
  rcu: call __rcu_read_unlock() in exit_rcu for tree RCU
  rcu: Converge TINY_RCU expedited and normal boosting
  rcu: remove useless ->boosted_this_gp field
  rcu: code cleanups in TINY_RCU priority boosting.
  rcu: Switch to this_cpu() primitives
  rcu: Use WARN_ON_ONCE for DEBUG_OBJECTS_RCU_HEAD warnings
  rcu: mark rcutorture boosting callback as being on-stack
  rcu: add DEBUG_OBJECTS_RCU_HEAD check for alignment
  rcu: Enable DEBUG_OBJECTS_RCU_HEAD from !PREEMPT
  rcu: Add forward-progress diagnostic for per-CPU kthreads
  rcu: add grace-period age and more kthread state to tracing
  rcu: fix tracing bug thinko on boost-balk attribution
  rcu: update tracing documentation for new rcutorture and rcuboost
  ...

13 years agoKVM: x86 emulator: Make jmp far emulation into a separate function
Takuya Yoshikawa [Sun, 1 May 2011 17:30:48 +0000 (02:30 +0900)]
KVM: x86 emulator: Make jmp far emulation into a separate function

We introduce em_jmp_far().

We also call this from em_grp45() to stop treating modrm_reg == 5 case
separately in the group 5 emulation.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: Rename emulate_grpX() to em_grpX()
Takuya Yoshikawa [Sun, 1 May 2011 17:29:17 +0000 (02:29 +0900)]
KVM: x86 emulator: Rename emulate_grpX() to em_grpX()

The prototypes are changed appropriately.

We also replaces "goto grp45;" with simple em_grp45() call.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: Remove unused arg from emulate_pop()
Takuya Yoshikawa [Sun, 1 May 2011 17:27:55 +0000 (02:27 +0900)]
KVM: x86 emulator: Remove unused arg from emulate_pop()

The opt of emulate_grp1a() is also removed.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: Remove unused arg from writeback()
Takuya Yoshikawa [Sun, 1 May 2011 17:26:23 +0000 (02:26 +0900)]
KVM: x86 emulator: Remove unused arg from writeback()

Remove inline at this chance.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: Remove unused arg from read_descriptor()
Takuya Yoshikawa [Sun, 1 May 2011 17:25:07 +0000 (02:25 +0900)]
KVM: x86 emulator: Remove unused arg from read_descriptor()

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: Remove unused arg from seg_override()
Takuya Yoshikawa [Sun, 1 May 2011 17:23:13 +0000 (02:23 +0900)]
KVM: x86 emulator: Remove unused arg from seg_override()

In addition, one comma at the end of a statement is replaced with a
semicolon.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: Validate userspace_addr of memslot when registered
Takuya Yoshikawa [Sat, 7 May 2011 07:35:38 +0000 (16:35 +0900)]
KVM: Validate userspace_addr of memslot when registered

This way, we can avoid checking the user space address many times when
we read the guest memory.

Although we can do the same for write if we check which slots are
writable, we do not care write now: reading the guest memory happens
more often than writing.

[avi: change VERIFY_READ to VERIFY_WRITE]

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: MMU: Clean up gpte reading with copy_from_user()
Takuya Yoshikawa [Sat, 7 May 2011 07:31:36 +0000 (16:31 +0900)]
KVM: MMU: Clean up gpte reading with copy_from_user()

When we optimized walk_addr_generic() by not using the generic guest
memory reader, we replaced copy_from_user() with get_user():

  commit e30d2a170506830d5eef5e9d7990c5aedf1b0a51
  KVM: MMU: Optimize guest page table walk

  commit 15e2ac9a43d4d7d08088e404fddf2533a8e7d52e
  KVM: MMU: Fix 64-bit paging breakage on x86_32

But as Andi pointed out later, copy_from_user() does the same as
get_user() as long as we give a constant size to it.

So we use copy_from_user() to clean up the code.

The only, noticeable, regression introduced by this is 64-bit gpte
reading on x86_32 hosts needed for PAE guests.

But this can be mitigated by implementing 8-byte get_user() for x86_32,
if needed.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: PPC: booke: add sregs support
Scott Wood [Wed, 27 Apr 2011 22:24:21 +0000 (17:24 -0500)]
KVM: PPC: booke: add sregs support

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
13 years agoKVM: PPC: booke: save/restore VRSAVE (a.k.a. USPRG0)
Scott Wood [Wed, 27 Apr 2011 22:24:10 +0000 (17:24 -0500)]
KVM: PPC: booke: save/restore VRSAVE (a.k.a. USPRG0)

Linux doesn't use USPRG0 (now renamed VRSAVE in the architecture, even
when Altivec isn't involved), but a guest might.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
13 years agoKVM: PPC: use ticks, not usecs, for exit timing
Stuart Yoder [Mon, 28 Mar 2011 20:01:56 +0000 (15:01 -0500)]
KVM: PPC: use ticks, not usecs, for exit timing

Convert to microseconds when displaying
(with fix from Bharat Bhushan <[email protected]>).

This reduces rounding error with large quantities of short exits.

Signed-off-by: Stuart Yoder <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
13 years agoKVM: PPC: fix exit accounting for SPRs, tlbwe, tlbsx
Scott Wood [Mon, 28 Mar 2011 20:01:24 +0000 (15:01 -0500)]
KVM: PPC: fix exit accounting for SPRs, tlbwe, tlbsx

The exit type setting for mfspr/mtspr is moved from 44x to toplevel SPR
emulation.  This enables it on e500, and makes sure that all SPRs
are covered.

Exit accounting for tlbwe and tlbsx is added to e500.

Signed-off-by: Stuart Yoder <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
13 years agoKVM: PPC: e500: emulate SVR
Scott Wood [Tue, 29 Mar 2011 21:49:10 +0000 (16:49 -0500)]
KVM: PPC: e500: emulate SVR

Return the actual host SVR for now, as we already do for PVR.  Eventually
we may support Qemu overriding PVR/SVR if the situation is appropriate,
once we implement KVM_SET_SREGS on e500.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
13 years agoKVM: VMX: Cache vmcs segment fields
Avi Kivity [Wed, 27 Apr 2011 16:42:18 +0000 (19:42 +0300)]
KVM: VMX: Cache vmcs segment fields

Since the emulator now checks segment limits and access rights, it
generates a lot more accesses to the vmcs segment fields.  Undo some
of the performance hit by cacheing those fields in a read-only cache
(the entire cache is invalidated on any write, or on guest exit).

Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: x86 emulator: consolidate segment accessors
Avi Kivity [Wed, 27 Apr 2011 10:20:30 +0000 (13:20 +0300)]
KVM: x86 emulator: consolidate segment accessors

Instead of separate accessors for the segment selector and cached descriptor,
use one accessor for both.  This simplifies the code somewhat.

Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: VMX: Avoid reading %rip unnecessarily when handling exceptions
Avi Kivity [Thu, 28 Apr 2011 12:59:33 +0000 (15:59 +0300)]
KVM: VMX: Avoid reading %rip unnecessarily when handling exceptions

Avoids a VMREAD.

Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: SVM: Make dump_vmcb static, reduce text
Joe Perches [Mon, 25 Apr 2011 05:00:50 +0000 (22:00 -0700)]
KVM: SVM: Make dump_vmcb static, reduce text

dump_vmcb isn't used outside this module, make it static.
Shrink text and object by ~1% by standardizing formats.

$ size arch/x86/kvm/svm.o*
   text    data     bss     dec     hex filename
  52910     580   10072   63562    f84a arch/x86/kvm/svm.o.new
  53563     580   10072   64215    fad7 arch/x86/kvm/svm.o.old

Signed-off-by: Joe Perches <[email protected]>
Acked-by: Joerg Roedel <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: MMU: Fix 64-bit paging breakage on x86_32
Takuya Yoshikawa [Wed, 27 Apr 2011 22:08:36 +0000 (07:08 +0900)]
KVM: MMU: Fix 64-bit paging breakage on x86_32

Fix regression introduced by
  commit e30d2a170506830d5eef5e9d7990c5aedf1b0a51
  KVM: MMU: Optimize guest page table walk

On x86_32, get_user() does not support 64-bit values and we fail to
build KVM at the point of 64-bit paging.

This patch fixes this by using get_user() twice for that condition.

Signed-off-by: Takuya Yoshikawa <[email protected]>
Reported-by: Jan Kiszka <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: ia64: fix sparse warnings
Jeff Mahoney [Wed, 27 Apr 2011 18:06:07 +0000 (14:06 -0400)]
KVM: ia64: fix sparse warnings

This patch fixes some sparse warning about "dubious one-bit signed bitfield."

Signed-off-by: Jeff Mahoney <[email protected]>
Originally-by: Jan Blunck <[email protected]>
Signed-off-by: Jan Blunck <[email protected]>
Acked-by: Xiantao Zhang <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: Add CPUID support for VIA CPU
[email protected] [Mon, 25 Apr 2011 05:55:15 +0000 (13:55 +0800)]
KVM: Add CPUID support for VIA CPU

The CPUIDs for Centaur are added, and then the features of
PadLock hardware engine on VIA CPU, such as "ace", "ace_en"
and so on, can be passed into the kvm guest.

Signed-off-by: Brilly Wu <[email protected]>
Signed-off-by: Kary Jin <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: call cache_all_regs() only once during instruction emulation
Gleb Natapov [Tue, 12 Apr 2011 09:36:25 +0000 (12:36 +0300)]
KVM: call cache_all_regs() only once during instruction emulation

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: Fix compound mmio
Gleb Natapov [Tue, 12 Apr 2011 09:36:24 +0000 (12:36 +0300)]
KVM: Fix compound mmio

mmio_index should be taken into account when copying data from
userspace.

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: emulator: Propagate fault in far jump emulation
Gleb Natapov [Tue, 12 Apr 2011 09:36:23 +0000 (12:36 +0300)]
KVM: emulator: Propagate fault in far jump emulation

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoKVM: mmio_fault_cr2 is not used
Gleb Natapov [Tue, 12 Apr 2011 09:36:21 +0000 (12:36 +0300)]
KVM: mmio_fault_cr2 is not used

Remove unused variable mmio_fault_cr2.

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
This page took 0.108969 seconds and 4 git commands to generate.