Package: linux / 3.2.78-1

Metadata

Package Version Patches format
linux 3.2.78-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
debian/version.patch | (download)

Makefile | 15 14 + 1 - 0 !
arch/arm/kernel/process.c | 6 4 + 2 - 0 !
arch/ia64/kernel/process.c | 5 3 + 2 - 0 !
arch/powerpc/kernel/process.c | 6 4 + 2 - 0 !
arch/s390/kernel/traps.c | 11 7 + 4 - 0 !
arch/sh/kernel/process_32.c | 6 4 + 2 - 0 !
arch/x86/kernel/dumpstack.c | 6 4 + 2 - 0 !
arch/x86/kernel/process.c | 6 4 + 2 - 0 !
arch/x86/um/sysrq_64.c | 6 4 + 2 - 0 !
9 files changed, 48 insertions(+), 19 deletions(-)

 include package version along with kernel release in stack traces
Date: Tue, 24 Jul 2012 03:13:10 +0100

For distribution binary packages we assume
$DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION
are set.


debian/kernelvariables.patch | (download)

Makefile | 78 38 + 40 - 0 !
1 file changed, 38 insertions(+), 40 deletions(-)

 kbuild: make the toolchain variables easily overwritable
Date: Sun, 22 Feb 2009 15:39:35 +0100
debian/doc build parallel.patch | (download)

Documentation/DocBook/Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 docbook: make documentation/docbook -j clean
Date: Tue, 14 Jun 2006 00:05:06 +0200

Two concurrent calls to cmd_db2man may attempt to compress manual
pages generated by each other.  gzip can then fail due to an input
file having already been compressed and removed.

Since dh_compress will compress manual pages later, we don't need
to run gzip here at all.

debian/gitignore.patch | (download)

.gitignore | 18 7 + 11 - 0 !
1 file changed, 7 insertions(+), 11 deletions(-)

 tweak gitignore for debian pkg-kernel using git svn.

[bwh: Tweak further for pure git]


features/all/drivers media dvb usb af9005 request_firmware.patch | (download)

drivers/media/dvb/dvb-usb/Kconfig | 2 1 + 1 - 0 !
drivers/media/dvb/dvb-usb/af9005-fe.c | 66 53 + 13 - 0 !
2 files changed, 54 insertions(+), 14 deletions(-)

 [patch] af9005: use request_firmware() to load register init script

Read the register init script from the Windows driver.  This is sick
but should avoid the potential copyright infringement in distributing
a version of the script which is directly derived from the driver.

features/all/sound pci cs46xx request_firmware.patch | (download)

sound/pci/Kconfig | 3 2 + 1 - 0 !
sound/pci/cs46xx/cs46xx_lib.c | 86 72 + 14 - 0 !
sound/pci/cs46xx/cs46xx_lib.h | 4 2 + 2 - 0 !
3 files changed, 76 insertions(+), 17 deletions(-)

 cs46xx: use request_firmware() for old dsp code
    
Based on work by Kalle Olavi Niemitalo <kon@iki.fi>.

Tested by Antonio Ospite <ospite@studenti.unina.it>.
Unfortunately we cannot currently distribute the firmware.

features/all/aufs3/aufs3 base.patch | (download)

fs/namei.c | 2 1 + 1 - 0 !
fs/splice.c | 10 5 + 5 - 0 !
include/linux/namei.h | 1 1 + 0 - 0 !
include/linux/splice.h | 6 6 + 0 - 0 !
4 files changed, 13 insertions(+), 6 deletions(-)

---
features/all/aufs3/aufs3 standalone.patch | (download)

fs/file_table.c | 2 2 + 0 - 0 !
fs/inode.c | 1 1 + 0 - 0 !
fs/namei.c | 1 1 + 0 - 0 !
fs/namespace.c | 1 1 + 0 - 0 !
fs/notify/group.c | 3 3 + 0 - 0 !
fs/notify/mark.c | 4 4 + 0 - 0 !
fs/open.c | 1 1 + 0 - 0 !
fs/splice.c | 2 2 + 0 - 0 !
security/commoncap.c | 1 1 + 0 - 0 !
security/device_cgroup.c | 2 2 + 0 - 0 !
security/security.c | 10 10 + 0 - 0 !
11 files changed, 28 insertions(+)

---
features/all/aufs3/aufs3 kbuild.patch | (download)

fs/Kconfig | 1 1 + 0 - 0 !
fs/Makefile | 1 1 + 0 - 0 !
include/linux/Kbuild | 1 1 + 0 - 0 !
3 files changed, 3 insertions(+)

---
features/all/aufs3/aufs3 add.patch | (download)

Documentation/ABI/testing/debugfs-aufs | 37 37 + 0 - 0 !
Documentation/ABI/testing/sysfs-aufs | 24 24 + 0 - 0 !
Documentation/filesystems/aufs/README | 333 333 + 0 - 0 !
Documentation/filesystems/aufs/design/01intro.txt | 162 162 + 0 - 0 !
Documentation/filesystems/aufs/design/02struct.txt | 226 226 + 0 - 0 !
Documentation/filesystems/aufs/design/03lookup.txt | 106 106 + 0 - 0 !
Documentation/filesystems/aufs/design/04branch.txt | 76 76 + 0 - 0 !
Documentation/filesystems/aufs/design/05wbr_policy.txt | 65 65 + 0 - 0 !
Documentation/filesystems/aufs/design/06mmap.txt | 47 47 + 0 - 0 !
Documentation/filesystems/aufs/design/07export.txt | 59 59 + 0 - 0 !
Documentation/filesystems/aufs/design/08shwh.txt | 53 53 + 0 - 0 !
Documentation/filesystems/aufs/design/10dynop.txt | 47 47 + 0 - 0 !
Documentation/filesystems/aufs/design/99plan.txt | 96 96 + 0 - 0 !
fs/aufs/Kconfig | 203 203 + 0 - 0 !
fs/aufs/Makefile | 42 42 + 0 - 0 !
fs/aufs/aufs.h | 60 60 + 0 - 0 !
fs/aufs/branch.c | 1172 1172 + 0 - 0 !
fs/aufs/branch.h | 230 230 + 0 - 0 !
fs/aufs/conf.mk | 38 38 + 0 - 0 !
fs/aufs/cpup.c | 1079 1079 + 0 - 0 !
fs/aufs/cpup.h | 81 81 + 0 - 0 !
fs/aufs/dbgaufs.c | 334 334 + 0 - 0 !
fs/aufs/dbgaufs.h | 49 49 + 0 - 0 !
fs/aufs/dcsub.c | 243 243 + 0 - 0 !
fs/aufs/dcsub.h | 94 94 + 0 - 0 !
fs/aufs/debug.c | 489 489 + 0 - 0 !
fs/aufs/debug.h | 243 243 + 0 - 0 !
fs/aufs/dentry.c | 1140 1140 + 0 - 0 !
fs/aufs/dentry.h | 237 237 + 0 - 0 !
fs/aufs/dinfo.c | 543 543 + 0 - 0 !
fs/aufs/dir.c | 634 634 + 0 - 0 !
fs/aufs/dir.h | 137 137 + 0 - 0 !
fs/aufs/dynop.c | 377 377 + 0 - 0 !
fs/aufs/dynop.h | 76 76 + 0 - 0 !
fs/aufs/export.c | 805 805 + 0 - 0 !
fs/aufs/f_op.c | 729 729 + 0 - 0 !
fs/aufs/f_op_sp.c | 298 298 + 0 - 0 !
fs/aufs/file.c | 673 673 + 0 - 0 !
fs/aufs/file.h | 298 298 + 0 - 0 !
fs/aufs/finfo.c | 157 157 + 0 - 0 !
fs/aufs/fstype.h | 496 496 + 0 - 0 !
fs/aufs/hfsnotify.c | 260 260 + 0 - 0 !
fs/aufs/hfsplus.c | 57 57 + 0 - 0 !
fs/aufs/hnotify.c | 712 712 + 0 - 0 !
fs/aufs/i_op.c | 1004 1004 + 0 - 0 !
fs/aufs/i_op_add.c | 711 711 + 0 - 0 !
fs/aufs/i_op_del.c | 478 478 + 0 - 0 !
fs/aufs/i_op_ren.c | 1026 1026 + 0 - 0 !
fs/aufs/iinfo.c | 276 276 + 0 - 0 !
fs/aufs/inode.c | 492 492 + 0 - 0 !
fs/aufs/inode.h | 587 587 + 0 - 0 !
fs/aufs/ioctl.c | 196 196 + 0 - 0 !
fs/aufs/loop.c | 133 133 + 0 - 0 !
fs/aufs/loop.h | 50 50 + 0 - 0 !
fs/aufs/magic.mk | 54 54 + 0 - 0 !
fs/aufs/module.c | 196 196 + 0 - 0 !
fs/aufs/module.h | 105 105 + 0 - 0 !
fs/aufs/opts.c | 1677 1677 + 0 - 0 !
fs/aufs/opts.h | 209 209 + 0 - 0 !
fs/aufs/plink.c | 515 515 + 0 - 0 !
fs/aufs/poll.c | 56 56 + 0 - 0 !
fs/aufs/procfs.c | 170 170 + 0 - 0 !
fs/aufs/rdu.c | 383 383 + 0 - 0 !
fs/aufs/rwsem.h | 188 188 + 0 - 0 !
fs/aufs/sbinfo.c | 343 343 + 0 - 0 !
fs/aufs/spl.h | 62 62 + 0 - 0 !
fs/aufs/super.c | 999 999 + 0 - 0 !
fs/aufs/super.h | 546 546 + 0 - 0 !
fs/aufs/sysaufs.c | 105 105 + 0 - 0 !
fs/aufs/sysaufs.h | 104 104 + 0 - 0 !
fs/aufs/sysfs.c | 257 257 + 0 - 0 !
fs/aufs/sysrq.c | 148 148 + 0 - 0 !
fs/aufs/vdir.c | 885 885 + 0 - 0 !
fs/aufs/vfsub.c | 835 835 + 0 - 0 !
fs/aufs/vfsub.h | 232 232 + 0 - 0 !
fs/aufs/wbr_policy.c | 700 700 + 0 - 0 !
fs/aufs/whout.c | 1049 1049 + 0 - 0 !
fs/aufs/whout.h | 88 88 + 0 - 0 !
fs/aufs/wkq.c | 214 214 + 0 - 0 !
fs/aufs/wkq.h | 92 92 + 0 - 0 !
fs/aufs/xino.c | 1265 1265 + 0 - 0 !
include/linux/aufs_type.h | 233 233 + 0 - 0 !
82 files changed, 29980 insertions(+)

---
features/all/aufs3/mark as staging.patch | (download)

fs/aufs/module.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 [patch] aufs: mark as staging

I really don't want to support this.


features/all/aufs3/aufs3 fix export __devcgroup_inode_permission.patch | (download)

security/device_cgroup.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

---
bugfix/ia64/hardcode arch script output.patch | (download)

arch/ia64/Makefile | 17 2 + 15 - 0 !
1 file changed, 2 insertions(+), 15 deletions(-)

 hardcode arch script output
Date: Mon, 26 Mar 2007 16:30:51 -0600
Bug-Debian: http://bugs.debian.org/392592
bugfix/mips/disable advansys.patch | (download)

drivers/scsi/Kconfig | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 [arm, mips] disable advansys

Florian Lohoff <flo@rfc822.org> reports the following build failure on IP32:

  MODPOST 552 modules
ERROR: "free_dma" [drivers/scsi/advansys.ko] undefined!
make[5]: *** [__modpost] Error 1

But report:
http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg12773.html


debian/mips disable werror.patch | (download)

arch/mips/Kbuild | 5 0 + 5 - 0 !
1 file changed, 5 deletions(-)

 [patch] partially revert "mips: add -werror to arch/mips/kbuild"
bugfix/powerpc/lpar console.patch | (download)

drivers/tty/hvc/hvc_vio.c | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 fix console selection in powerpc lpar environment
Date: Tue, 27 Sep 2011 06:04:39 +0100
Bug-Debian: http://bugs.debian.org/492703

Do not override the preferred console set through the kernel parameter.

Original version by Bastian Blank <waldi@debian.org>.


debian/sysrq mask.patch | (download)

include/linux/sysrq.h | 2 1 + 1 - 0 !
lib/Kconfig.debug | 8 8 + 0 - 0 !
2 files changed, 9 insertions(+), 1 deletion(-)

 allow access to sensitive sysrq keys to be restricted by default
Date: Sun, 14 Feb 2010 16:11:35 +0100

Add a Kconfig variable to set the initial value of the Magic
SysRq mask (sysctl: kernel.sysrq).


debian/arch sh4 fix uimage build.patch | (download)

arch/sh/Makefile | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

---
debian/af_802154 Disable auto loading as mitigation against.patch | (download)

net/ieee802154/af_ieee802154.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 2/3] af_802154: disable auto-loading as mitigation against local exploits
debian/rds Disable auto loading as mitigation against local.patch | (download)

net/rds/af_rds.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 1/3] rds: disable auto-loading as mitigation against local exploits
debian/decnet Disable auto loading as mitigation against lo.patch | (download)

net/decnet/af_decnet.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] decnet: disable auto-loading as mitigation against local exploits
bugfix/all/dm Deal with merge_bvec_fn in component devices bett.patch | (download)

drivers/md/dm-table.c | 14 8 + 6 - 0 !
1 file changed, 8 insertions(+), 6 deletions(-)

 [patch] dm: deal with merge_bvec_fn in component devices better
Bug-Debian: http://bugs.debian.org/604457

This is analogous to commit 627a2d3c29427637f4c5d31ccc7fcbd8d312cd71,
which does the same for md-devices at the top of the stack.  The
following explanation is taken from that commit.  Thanks to Neil Brown
<neilb@suse.de> for the advice.

If a component device has a merge_bvec_fn then as we never call it
we must ensure we never need to.  Currently this is done by setting
max_sector to 1 PAGE, however this does not stop a bio being created
with several sub-page iovecs that would violate the merge_bvec_fn.

So instead set max_segments to 1 and set the segment boundary to the
same as a page boundary to ensure there is only ever one single-page
segment of IO requested at a time.

This can particularly be an issue when 'xen' is used as it is
known to submit multiple small buffers in a single bio.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

features/all/Kbuild kconfig Verbose version of listnewconfig.patch | (download)

scripts/kconfig/conf.c | 42 32 + 10 - 0 !
scripts/kconfig/confdata.c | 9 9 + 0 - 0 !
scripts/kconfig/expr.h | 2 2 + 0 - 0 !
scripts/kconfig/lkc_proto.h | 1 1 + 0 - 0 !
4 files changed, 44 insertions(+), 10 deletions(-)

 [patch] kbuild: kconfig: verbose version of --listnewconfig

If the KBUILD_VERBOSE environment variable is set to non-zero, show
the default values of new symbols and not just their names.

Based on work by Bastian Blank <waldi@debian.org> and
maximilian attems <max@stro.at>.  Simplified by Michal Marek
<mmarek@suse.cz>.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

debian/sched autogroup disabled.patch | (download)

kernel/sched_autogroup.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 sched: do not enable autogrouping by default
Date: Wed, 16 Mar 2011 03:17:06 +0000
features/all/cgroups Allow memory cgroup support to be included b.patch | (download)

Documentation/kernel-parameters.txt | 4 2 + 2 - 0 !
init/Kconfig | 8 8 + 0 - 0 !
kernel/cgroup.c | 20 16 + 4 - 0 !
mm/memcontrol.c | 3 3 + 0 - 0 !
4 files changed, 29 insertions(+), 6 deletions(-)

 [patch 1/2] cgroups: allow memory cgroup support to be included but
 disabled

Memory cgroup support has some run-time overhead, so it's useful to
include it in a distribution kernel without enabling it by default.
Add a kernel config option to disable it by default and a kernel
parameter 'cgroup_enable' as the opposite to 'cgroup_disable'.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

debian/cgroups Document the Debian memory resource controll.patch | (download)

Documentation/cgroups/memory.txt | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 [patch 2/2] cgroups: document the debian memory resource controller
 config change


features/x86/x86 Add amilo rfkill driver for some Fujitsu Siemens.patch | (download)

drivers/platform/x86/Kconfig | 7 7 + 0 - 0 !
drivers/platform/x86/Makefile | 1 1 + 0 - 0 !
drivers/platform/x86/amilo-rfkill.c | 173 173 + 0 - 0 !
3 files changed, 181 insertions(+)

 [patch] x86: add amilo-rfkill driver for some fujitsu-siemens amilo
 laptops

commit c215ab9a7530d415707430de8d51a58ca6a41808 upstream.

An rfkill driver based on the fsaa1655g and fsam7440 drivers for
Fujitsu-Siemens Amilo A1655 and M7440 models found at:

http://sourceforge.net/projects/fsaa1655g/
http://sourceforge.net/projects/fsam7440/

This adds DMI matching, replaces the procfs files with rfkill devices,
and uses the proper function to write to the i8042 safely.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

bugfix/arm/ixp4xx_iobe.patch | (download)

arch/arm/mach-ixp4xx/include/mach/io.h | 57 57 + 0 - 0 !
1 file changed, 57 insertions(+)

 ixp4xx: add io{read,write}{16,32}be functions
Date: 2011-11-13 19:27:56 +0000

Some driver are now requiring some be io functions, add noted in
commit (06901bd83412db5a31de7526e637101ed0c2c472). Otherwise, it may lead
to build errors like this one :

drivers/net/mlx4/en_tx.c: In function mlx4_en_xmit:
drivers/net/mlx4/en_tx.c:815: error: implicit declaration of function iowrite32be
make[3]: *** [drivers/net/mlx4/en_tx.o] Error 1
make[2]: *** [drivers/net/mlx4] Error 2
make[1]: *** [drivers/net] Error 2

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>

debian/bcma Do not claim PCI device IDs also claimed by brc.patch | (download)

drivers/bcma/host_pci.c | 4 3 + 1 - 0 !
drivers/net/wireless/brcm80211/Kconfig | 1 0 + 1 - 0 !
2 files changed, 3 insertions(+), 2 deletions(-)

 [patch] bcma: do not claim pci device ids also claimed by brcmsmac
bugfix/all/0004 media staging lirc_serial Fix bogus error codes.patch | (download)

drivers/staging/media/lirc/lirc_serial.c | 23 12 + 11 - 0 !
1 file changed, 12 insertions(+), 11 deletions(-)

 [patch 4/5] [media] staging: lirc_serial: fix bogus error codes

commit 9b98d60679711753e548be15c6bef5239db6ed64 upstream.

Device not found?  ENODEV, not EINVAL.
Write to read-only device?  EPERM, not EBADF.
Invalid argument?  EINVAL, not ENOSYS.
Unsupported ioctl?  ENOIOCTLCMD, not ENOSYS.
Another function returned an error code?  Use that, don't replace it.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

debian/x86 memtest WARN if bad RAM found.patch | (download)

arch/x86/mm/memtest.c | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 [patch] x86: memtest: warn if bad ram found

Since this is not a particularly thorough test, if we find any bad
bits of RAM then there is a fair chance that there are other bad bits
we fail to detect.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

bugfix/all/snapshot Implement compat_ioctl.patch | (download)

kernel/power/user.c | 64 64 + 0 - 0 !
1 file changed, 64 insertions(+)

 [patch] pm / hibernate: implement compat_ioctl for /dev/snapshot

commit c336078bf65c4d38caa9a4b8b7b7261c778e622c upstream.

This allows uswsusp built for i386 to run on an x86_64 kernel (tested
with Debian package version 1.0+20110509-2).

References: http://bugs.debian.org/502816
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

debian/ARM Remove use of possibly undefined BUILD_BUG_ON in.patch | (download)

arch/arm/include/asm/bug.h | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 [patch] arm: remove use of possibly-undefined build_bug_on in
 <asm/bug.h>

<asm/bug.h> may be included by either <linux/bug.h> or
<linux/kernel.h> but only the latter will define BUILD_BUG_ON.
Bodge it until there is a proper upstream fix.

bugfix/arm/ARM topdown mmap.patch | (download)

arch/arm/include/asm/pgtable.h | 1 1 + 0 - 0 !
arch/arm/include/asm/processor.h | 2 2 + 0 - 0 !
arch/arm/mm/mmap.c | 173 168 + 5 - 0 !
3 files changed, 171 insertions(+), 5 deletions(-)

 [patch] arm: 7169/1: topdown mmap support

commit 7dbaa466780a754154531b44c2086f6618cee3a8 upstream.

Similar to other architectures, this adds topdown mmap support in user
process address space allocation policy. This allows mmap sizes greater
than 2GB. This support is largely copied from MIPS and the generic
implementations.

The address space randomization is moved into arch_pick_mmap_layout.

Tested on V-Express with ubuntu and a mmap test from here:
https://bugs.launchpad.net/bugs/861296

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
features/arm/ARM kirkwood 6282A1.patch | (download)

arch/arm/mach-kirkwood/common.c | 2 2 + 0 - 0 !
arch/arm/mach-kirkwood/include/mach/kirkwood.h | 1 1 + 0 - 0 !
2 files changed, 3 insertions(+)

 arm: kirkwood: recognize a1 revision of 6282 chip

commit a87d89e74f0a4b56eaee8c3ef74bce69277b780f upstream.

Recognize the Kirkwood 6282 revision A1 chip since products using
this chip are shipping now, such as the QNAP TS-x19P II devices.

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
features/all/Input ALPS move protocol information to Documentatio.patch | (download)

Documentation/input/alps.txt | 75 75 + 0 - 0 !
drivers/input/mouse/alps.c | 37 1 + 36 - 0 !
2 files changed, 76 insertions(+), 36 deletions(-)

 [patch 1/5] input: alps - move protocol information to documentation

commit d4b347b29b4d14647c7394f7167bf6785dc98e50 upstream.

In preparation for new protocol support, move the protocol
information currently documented in alps.c to
Documentation/input/alps.txt, where it can be expanded without
cluttering up the driver.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
features/all/Input ALPS add protocol version field in alps_model_.patch | (download)

drivers/input/mouse/alps.c | 47 23 + 24 - 0 !
drivers/input/mouse/alps.h | 4 4 + 0 - 0 !
2 files changed, 27 insertions(+), 24 deletions(-)

 [patch 2/5] input: alps - add protocol version field in
 alps_model_info

commit fa629ef5222193214da9a2b3c94369f79353bec9 upstream.

In preparation for adding support for more ALPS protocol versions,
add a field for the protocol version to the model info instead of
using a field in the flags. OLDPROTO and !OLDPROTO are now called
version 1 and version 2, repsectively.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
features/all/Input ALPS remove assumptions about packet size.patch | (download)

drivers/input/mouse/alps.c | 10 5 + 5 - 0 !
1 file changed, 5 insertions(+), 5 deletions(-)

 [patch 3/5] input: alps - remove assumptions about packet size

commit b46615fe9215214ac00e26d35fc54dbe1c510803 upstream.

In preparation for version 4 protocol support, which has 8-byte
data packets, remove all hard-coded assumptions about packet size
and use psmouse->pktsize instead.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
features/all/Input ALPS add support for protocol versions 3 and 4.patch | (download)

drivers/input/mouse/alps.c | 791 753 + 38 - 0 !
drivers/input/mouse/alps.h | 14 14 + 0 - 0 !
drivers/input/mouse/psmouse.h | 1 1 + 0 - 0 !
3 files changed, 768 insertions(+), 38 deletions(-)

 [patch 4/5] input: alps - add support for protocol versions 3 and 4

commit 25bded7cd60fa460e520e9f819bd06f4c5cb53f0 upstream.

This patch adds support for two ALPS touchpad protocols not
supported currently by the driver, which I am arbitrarily naming
version 3 and version 4. Support is single-touch only at this time,
although both protocols are capable of limited multitouch support.

Thanks to Andrew Skalski, who did the initial reverse-engineering
of the v3 protocol.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
features/all/Input ALPS add semi MT support for v3 protocol.patch | (download)

drivers/input/mouse/alps.c | 233 214 + 19 - 0 !
drivers/input/mouse/alps.h | 1 1 + 0 - 0 !
2 files changed, 215 insertions(+), 19 deletions(-)

 [patch 5/5] input: alps - add semi-mt support for v3 protocol

commit 01ce661fc83005947dc958a5739c153843af8a73 upstream.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
bugfix/x86/KVM nVMX Add KVM_REQ_IMMEDIATE_EXIT.patch | (download)

arch/x86/kvm/vmx.c | 11 7 + 4 - 0 !
arch/x86/kvm/x86.c | 7 6 + 1 - 0 !
include/linux/kvm_host.h | 1 1 + 0 - 0 !
3 files changed, 14 insertions(+), 5 deletions(-)

 [patch 1/2] kvm: nvmx: add kvm_req_immediate_exit

commit d6185f20a0efbf175e12831d0de330e4f21725aa upstream.

This patch adds a new vcpu->requests bit, KVM_REQ_IMMEDIATE_EXIT.
This bit requests that when next entering the guest, we should run it only
for as little as possible, and exit again.

We use this new option in nested VMX: When L1 launches L2, but L0 wishes L1
to continue running so it can inject an event to it, we unfortunately cannot
just pretend to have run L2 for a little while - We must really launch L2,
otherwise certain one-off vmcs12 parameters (namely, L1 injection into L2)
will be lost. So the existing code runs L2 in this case.
But L2 could potentially run for a long time until it exits, and the
injection into L1 will be delayed. The new KVM_REQ_IMMEDIATE_EXIT allows us
to request that L2 will be entered, as necessary, but will exit as soon as
possible after entry.

Our implementation of this request uses smp_send_reschedule() to send a
self-IPI, with interrupts disabled. The interrupts remain disabled until the
guest is entered, and then, after the entry is complete (often including
processing an injection and jumping to the relevant handler), the physical
interrupt is noticed and causes an exit.

On recent Intel processors, we could have achieved the same goal by using
MTF instead of a self-IPI. Another technique worth considering in the future
is to use VM_EXIT_ACK_INTR_ON_EXIT and a highest-priority vector IPI - to
slightly improve performance by avoiding the useless interrupt handler
which ends up being called when smp_send_reschedule() is used.

Signed-off-by: Nadav Har'El <nyh@il.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>

bugfix/x86/KVM nVMX Fix warning causing idt vectoring info beha.patch | (download)

arch/x86/kvm/vmx.c | 7 4 + 3 - 0 !
1 file changed, 4 insertions(+), 3 deletions(-)

 [patch 2/2] kvm: nvmx: fix warning-causing idt-vectoring-info
 behavior

commit 51cfe38ea50aa631f58ed8c340ed6f0143c325a8 upstream.

When L0 wishes to inject an interrupt while L2 is running, it emulates an exit
to L1 with EXIT_REASON_EXTERNAL_INTERRUPT. This was explained in the original
nVMX patch 23, titled "Correct handling of interrupt injection".

Unfortunately, it is possible (though rare) that at this point there is valid
idt_vectoring_info in vmcs02. For example, L1 injected some interrupt to L2,
and when L2 tried to run this interrupt's handler, it got a page fault - so
it returns the original interrupt vector in idt_vectoring_info. The problem
is that if this is the case, we cannot exit to L1 with EXTERNAL_INTERRUPT
like we wished to, because the VMX spec guarantees that idt_vectoring_info
and exit_reason_external_interrupt can never happen together. This is not
just specified in the spec - a KVM L1 actually prints a kernel warning
"unexpected, valid vectoring info" if we violate this guarantee, and some
users noticed these warnings in L1's logs.

In order to better emulate a processor, which would never return the external
interrupt and the idt-vectoring-info together, we need to separate the two
injection steps: First, complete L1's injection into L2 (i.e., enter L2,
injecting to it the idt-vectoring-info); Second, after entry into L2 succeeds
and it exits back to L0, exit to L1 with the EXIT_REASON_EXTERNAL_INTERRUPT.
Most of this is already in the code - the only change we need is to remain
in L2 (and not exit to L1) in this case.

Note that the previous patch ensures (by using KVM_REQ_IMMEDIATE_EXIT) that
although we do enter L2 first, it will exit immediately after processing its
injection, allowing us to promptly inject to L1.

Note how we test vmcs12->idt_vectoring_info_field; This isn't really the
vmcs12 value (we haven't exited to L1 yet, so vmcs12 hasn't been updated),
but rather the place we save, at the end of vmx_vcpu_run, the vmcs02 value
of this field. This was explained in patch 25 ("Correct handling of idt
vectoring info") of the original nVMX patch series.

Thanks to Dave Allan and to Federico Simoncelli for reporting this bug,
to Abel Gordon for helping me figure out the solution, and to Avi Kivity
for helping to improve it.

Signed-off-by: Nadav Har'El <nyh@il.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>