Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2014-11-11 09:59:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2014-10-23 14:19:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2014-11-11 09:59:25.000000000 +0100 @@ -1,0 +2,104 @@ +Fri Nov 7 16:18:21 CET 2014 - [email protected] + +- quirk for Lenovo Yoga 3: no rfkill switch (bnc#904289). +- commit bf63174 + +------------------------------------------------------------------- +Fri Nov 7 10:56:05 CET 2014 - [email protected] + +- iwlwifi: dvm: drop non VO frames when flushing (bnc#900786). +- commit de638be + +------------------------------------------------------------------- +Fri Nov 7 10:46:35 CET 2014 - [email protected] + +- Input: synaptics - add min/max quirk for Lenovo T440s + (bnc#903748). +- commit 8e9c18e + +------------------------------------------------------------------- +Wed Nov 5 16:03:40 CET 2014 - [email protected] + +- Delete patches.rpmify/chipidea-clean-up-dependencies (bnc#903986) +- commit 3788128 + +------------------------------------------------------------------- +Wed Nov 5 14:27:57 CET 2014 - [email protected] + +- [media] uvc: Fix destruction order in uvc_delete() (bnc#897736). +- commit 68ca6da + +------------------------------------------------------------------- +Wed Nov 5 10:03:28 CET 2014 - [email protected] + +- Disable patches.rpmify/chipidea-clean-up-dependencies + This rather causes a problem when building as a module. If all builds + fine, drop this later. +- commit 6b12ffb + +------------------------------------------------------------------- +Thu Oct 30 20:14:09 CET 2014 - [email protected] + +- Linux 3.17.2. +- Delete + patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch. +- commit 1afb260 + +------------------------------------------------------------------- +Wed Oct 29 14:26:03 CET 2014 - [email protected] + +- Input: psmouse - add support for detecting FocalTech PS/2 + touchpads (bnc#897112). +- Input: psmouse - add psmouse_matches_pnp_id helper function + (bnc#897112). +- commit d944251 + +------------------------------------------------------------------- +Wed Oct 29 14:12:24 CET 2014 - [email protected] + +- Delete patches.fixes/input-add-acer-aspire-5710-to-nomux.patch. + It is in 3.17 already, so it is applied twice. +- commit 14a333d + +------------------------------------------------------------------- +Wed Oct 22 15:58:03 CEST 2014 - [email protected] + +- Use fop for creating PDF files in kernel-docs package + As some files still cannot be built with the default backend. +- commit 2dca13d + +------------------------------------------------------------------- +Wed Oct 22 15:55:56 CEST 2014 - [email protected] + +- Fix build of PDF files in kernel-docs package + Double the spaces for tex, and fix buildrequires for docbook. +- commit 59505a1 + +------------------------------------------------------------------- +Mon Oct 20 18:02:41 CEST 2014 - [email protected] + +- Enable some IIO drivers for xen flavors too (bnc#898828) +- commit 6c9b613 + +------------------------------------------------------------------- +Mon Oct 20 15:44:30 CEST 2014 - [email protected] + +- Delete patches.arch/cubox-configuration.patch. + - cubox should be used via device tree now +- commit 2a9b81b + +------------------------------------------------------------------- +Mon Oct 20 14:48:00 CEST 2014 - [email protected] + +- Enable some IIO drivers on x86 for Tablet sensors (bnc#898828) + Only a limited number of drivers are enabled as of now. If more other + device-specific drivers are needed, enable appropriately later. +- commit e3b6d24 + +------------------------------------------------------------------- +Sun Oct 19 01:39:49 CEST 2014 - [email protected] + +- Revert "Btrfs: race free update of commit root for ro snapshots" +- commit fd16010 + +------------------------------------------------------------------- @@ -7,0 +112,6 @@ +Fri Oct 17 16:23:47 CEST 2014 - [email protected] + +- Update Xen patches to 3.17.1. +- commit e3f9aac + +------------------------------------------------------------------- @@ -285,0 +396,9 @@ + +------------------------------------------------------------------- +Sat Sep 6 09:55:21 CEST 2014 - [email protected] + +- config: armv7hl/lpae: Reenable support for Hugepages + This was apparently accidentally disabled, but we need + hugepages support for improved performance and stability + of the KVM build workers. +- commit 3d06ff1 kernel-default.changes: same change kernel-desktop.changes: same change kernel-docs.changes: same change kernel-ec2.changes: same change kernel-lpae.changes: same change kernel-obs-build.changes: same change kernel-obs-qa-xen.changes: same change kernel-obs-qa.changes: same change kernel-pae.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-vanilla.changes: same change kernel-xen.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 3.17 -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %define vanilla_only 0 @@ -59,11 +59,11 @@ Summary: A Debug Version of the Kernel License: GPL-2.0 Group: System/Kernel -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif Url: http://www.kernel.org/ BuildRequires: bc kernel-default.spec: same change kernel-desktop.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -16,30 +16,37 @@ # -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %include %_sourcedir/kernel-spec-macros +%define use_fop 1 + Name: kernel-docs Summary: Kernel Documentation License: GPL-2.0 Group: Documentation/Man -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif -BuildRequires: docbook-toys -BuildRequires: docbook-utils -BuildRequires: ghostscript_any BuildRequires: kernel-source%variant -BuildRequires: libjpeg-devel -BuildRequires: texlive -BuildRequires: transfig BuildRequires: xmlto -BuildRequires: xorg-x11-devel +%if %use_fop +BuildRequires: fop +%else +BuildRequires: docbook-toys +BuildRequires: docbook-utils +BuildRequires: texlive-courier +BuildRequires: texlive-dvips +BuildRequires: texlive-ec +BuildRequires: texlive-helvetic +BuildRequires: texlive-jadetex +BuildRequires: texlive-times +%endif Url: http://www.kernel.org/ Provides: %name = %version-%source_rel BuildArch: noarch @@ -53,21 +60,29 @@ %source_timestamp %prep +%if !%use_fop cp -av /etc/texmf/web2c/texmf.cnf . cat << EOF >> texmf.cnf -main_memory.pdfjadetex = 2500000 -hash_extra.pdfjadetex = 70000 -max_strings.pdfjadetex = 120000 -save_size.pdfjadetex = 10000 +main_memory.pdfjadetex = 5000000 +hash_extra.pdfjadetex = 140000 +max_strings.pdfjadetex = 240000 +save_size.pdfjadetex = 20000 EOF +%endif %setup -T -c %build +%if !%use_fop # use texmf.cnf from local source export TEXMFCNF=$RPM_BUILD_DIR +%endif export LANG=en_US make -C /usr/src/linux%variant O=$PWD -k -i mandocs %{?jobs:-j%jobs} -make -C /usr/src/linux%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs} +make \ +%if %use_fop + XMLTOFLAGS="-m /usr/src/linux%{variant}/Documentation/DocBook/stylesheet.xsl --skip-validation --with-fop" \ +%endif + -C /usr/src/linux%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs} %install rm -rf $RPM_BUILD_ROOT ++++++ kernel-ec2.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 3.17 -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %define vanilla_only 0 @@ -59,11 +59,11 @@ Summary: The Amazon EC2 Xen Kernel License: GPL-2.0 Group: System/Kernel -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif Url: http://www.kernel.org/ BuildRequires: bc kernel-lpae.spec: same change ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -45,11 +45,11 @@ Summary: package kernel and initrd for OBS VM builds License: GPL-2.0 Group: SLES -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif %description ++++++ kernel-obs-qa-xen.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -17,7 +17,7 @@ # needsrootforbuild -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -36,11 +36,11 @@ Summary: Basic QA tests for the kernel License: GPL-2.0 Group: SLES -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif %description kernel-obs-qa.spec: same change ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 3.17 -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %define vanilla_only 0 @@ -59,11 +59,11 @@ Summary: Kernel with PAE Support License: GPL-2.0 Group: System/Kernel -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif Url: http://www.kernel.org/ BuildRequires: bc ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -18,7 +18,7 @@ %define srcversion 3.17 -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %define vanilla_only 0 @@ -30,11 +30,11 @@ Summary: The Linux Kernel Sources License: GPL-2.0 Group: Development/Sources -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif Url: http://www.kernel.org/ AutoReqProv: off ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -24,12 +24,12 @@ Summary: Kernel Symbol Versions (modversions) License: GPL-2.0 Group: Development/Sources -Version: 3.17.1 +Version: 3.17.2 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif %else %define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0) ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:32.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:32.000000000 +0100 @@ -20,7 +20,7 @@ # needssslcertforbuild %define srcversion 3.17 -%define patchversion 3.17.1 +%define patchversion 3.17.2 %define variant %{nil} %define vanilla_only 0 @@ -59,11 +59,11 @@ Summary: The Standard Kernel - without any SUSE patches License: GPL-2.0 Group: System/Kernel -Version: 3.17.1 +Version: 3.17.2 %if 0%{?is_kotd} -Release: <RELEASE>.g5c4d099 +Release: <RELEASE>.gbf63174 %else -Release: <RELEASE>.g5c4d099 +Release: 0 %endif Url: http://www.kernel.org/ BuildRequires: bc kernel-xen.spec: same change ++++++ config.tar.bz2 ++++++ ++++ 3137 lines of diff (skipped) ++++++ kernel-docs.spec.in ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:33.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:33.000000000 +0100 @@ -21,6 +21,8 @@ %include %_sourcedir/kernel-spec-macros +%define use_fop 1 + Name: kernel-docs@VARIANT@ Summary: Kernel Documentation License: GPL-2.0 @@ -31,15 +33,20 @@ %else Release: @RELEASE@ %endif -BuildRequires: docbook-toys -BuildRequires: docbook-utils -BuildRequires: ghostscript_any BuildRequires: kernel-source%variant -BuildRequires: libjpeg-devel -BuildRequires: texlive -BuildRequires: transfig BuildRequires: xmlto -BuildRequires: xorg-x11-devel +%if %use_fop +BuildRequires: fop +%else +BuildRequires: docbook-toys +BuildRequires: docbook-utils +BuildRequires: texlive-courier +BuildRequires: texlive-dvips +BuildRequires: texlive-ec +BuildRequires: texlive-helvetic +BuildRequires: texlive-jadetex +BuildRequires: texlive-times +%endif Url: http://www.kernel.org/ Provides: %name = %version-%source_rel BuildArch: noarch @@ -53,21 +60,29 @@ %source_timestamp %prep +%if !%use_fop cp -av /etc/texmf/web2c/texmf.cnf . cat << EOF >> texmf.cnf -main_memory.pdfjadetex = 2500000 -hash_extra.pdfjadetex = 70000 -max_strings.pdfjadetex = 120000 -save_size.pdfjadetex = 10000 +main_memory.pdfjadetex = 5000000 +hash_extra.pdfjadetex = 140000 +max_strings.pdfjadetex = 240000 +save_size.pdfjadetex = 20000 EOF +%endif %setup -T -c %build +%if !%use_fop # use texmf.cnf from local source export TEXMFCNF=$RPM_BUILD_DIR +%endif export LANG=en_US make -C /usr/src/linux%variant O=$PWD -k -i mandocs %{?jobs:-j%jobs} -make -C /usr/src/linux%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs} +make \ +%if %use_fop + XMLTOFLAGS="-m /usr/src/linux%{variant}/Documentation/DocBook/stylesheet.xsl --skip-validation --with-fop" \ +%endif + -C /usr/src/linux%variant O=$PWD -k -i pdfdocs %{?jobs:-j%jobs} %install rm -rf $RPM_BUILD_ROOT ++++++ patches.arch.tar.bz2 ++++++ ++++ 2946 lines of diff (skipped) ++++++ patches.drivers.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/Input-psmouse-add-psmouse_matches_pnp_id-helper-func.patch new/patches.drivers/Input-psmouse-add-psmouse_matches_pnp_id-helper-func.patch --- old/patches.drivers/Input-psmouse-add-psmouse_matches_pnp_id-helper-func.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/Input-psmouse-add-psmouse_matches_pnp_id-helper-func.patch 2014-11-07 16:18:21.000000000 +0100 @@ -0,0 +1,101 @@ +From: Hans de Goede <[email protected]> +Date: Thu, 11 Sep 2014 10:14:09 -0700 +Subject: Input: psmouse - add psmouse_matches_pnp_id helper function +Git-commit: 2c75ada6250990ea859b0b5498cb0b7c2823a9d7 +Patch-mainline: v3.18-rc1 +References: bnc#897112 + +The matches_pnp_id function from the synaptics driver is useful for other +drivers too. Make it a generic psmouse helper function. + +Signed-off-by: Hans de Goede <[email protected]> +Signed-off-by: Dmitry Torokhov <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + drivers/input/mouse/psmouse-base.c | 14 ++++++++++++++ + drivers/input/mouse/psmouse.h | 1 + + drivers/input/mouse/synaptics.c | 17 +++-------------- + 3 files changed, 18 insertions(+), 14 deletions(-) + +diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c +index cff065f6261c..bc1bc2653f15 100644 +--- a/drivers/input/mouse/psmouse-base.c ++++ b/drivers/input/mouse/psmouse-base.c +@@ -462,6 +462,20 @@ static int psmouse_poll(struct psmouse *psmouse) + PSMOUSE_CMD_POLL | (psmouse->pktsize << 8)); + } + ++/* ++ * psmouse_matches_pnp_id - check if psmouse matches one of the passed in ids. ++ */ ++bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[]) ++{ ++ int i; ++ ++ if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4)) ++ for (i = 0; ids[i]; i++) ++ if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i])) ++ return true; ++ ++ return false; ++} + + /* + * Genius NetMouse magic init. +diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h +index 2f0b39d59a9b..f4cf664c7db3 100644 +--- a/drivers/input/mouse/psmouse.h ++++ b/drivers/input/mouse/psmouse.h +@@ -108,6 +108,7 @@ void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution); + psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse); + int psmouse_activate(struct psmouse *psmouse); + int psmouse_deactivate(struct psmouse *psmouse); ++bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[]); + + struct psmouse_attribute { + struct device_attribute dattr; +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index e8573c68f77e..854caca6e86e 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -185,18 +185,6 @@ static const char * const topbuttonpad_pnp_ids[] = { + NULL + }; + +-static bool matches_pnp_id(struct psmouse *psmouse, const char * const ids[]) +-{ +- int i; +- +- if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4)) +- for (i = 0; ids[i]; i++) +- if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i])) +- return true; +- +- return false; +-} +- + /***************************************************************************** + * Synaptics communications functions + ****************************************************************************/ +@@ -362,7 +350,8 @@ static int synaptics_resolution(struct psmouse *psmouse) + } + + for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) { +- if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) { ++ if (psmouse_matches_pnp_id(psmouse, ++ min_max_pnpid_table[i].pnp_ids)) { + priv->x_min = min_max_pnpid_table[i].x_min; + priv->x_max = min_max_pnpid_table[i].x_max; + priv->y_min = min_max_pnpid_table[i].y_min; +@@ -1456,7 +1445,7 @@ static void set_input_params(struct psmouse *psmouse, + + if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); +- if (matches_pnp_id(psmouse, topbuttonpad_pnp_ids)) ++ if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids)) + __set_bit(INPUT_PROP_TOPBUTTONPAD, dev->propbit); + /* Clickpads report only left button */ + __clear_bit(BTN_RIGHT, dev->keybit); +-- +2.1.2 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/Input-psmouse-add-support-for-detecting-FocalTech-PS.patch new/patches.drivers/Input-psmouse-add-support-for-detecting-FocalTech-PS.patch --- old/patches.drivers/Input-psmouse-add-support-for-detecting-FocalTech-PS.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/Input-psmouse-add-support-for-detecting-FocalTech-PS.patch 2014-11-07 16:18:21.000000000 +0100 @@ -0,0 +1,170 @@ +From: Hans de Goede <[email protected]> +Date: Fri, 12 Sep 2014 17:24:47 -0700 +Subject: Input: psmouse - add support for detecting FocalTech PS/2 touchpads +Git-commit: 3ace3686f198e656624d7ca2984d053e65f6e09d +Patch-mainline: v3.18-rc1 +References: bnc#897112 + +The Asus X450 and X550 laptops use a PS/2 touchpad from a new +manufacturer called FocalTech: + +https://bugzilla.kernel.org/show_bug.cgi?id=77391 +https://bugzilla.redhat.com/show_bug.cgi?id=1110011 + +The protocol for these devices is not known at this time, but even +without knowing the protocol they need some special handling. They get +upset by some of our other PS/2 device probing, and once upset generate +random mouse events making things unusable even with an external mouse. + +This patch adds detection of these devices based on their pnp ids, and +when they are detected, treats them as a bare ps/2 mouse. Doing things +this way they at least work in their ps/2 mouse emulation mode. + +Signed-off-by: Hans de Goede <[email protected]> +Signed-off-by: Dmitry Torokhov <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + drivers/input/mouse/Makefile | 2 +- + drivers/input/mouse/focaltech.c | 52 ++++++++++++++++++++++++++++++++++++++ + drivers/input/mouse/focaltech.h | 22 ++++++++++++++++ + drivers/input/mouse/psmouse-base.c | 16 ++++++++++++ + 4 files changed, 91 insertions(+), 1 deletion(-) + create mode 100644 drivers/input/mouse/focaltech.c + create mode 100644 drivers/input/mouse/focaltech.h + +diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile +index c25efdb3f288..dda507f8b3a2 100644 +--- a/drivers/input/mouse/Makefile ++++ b/drivers/input/mouse/Makefile +@@ -23,7 +23,7 @@ obj-$(CONFIG_MOUSE_SYNAPTICS_I2C) += synaptics_i2c.o + obj-$(CONFIG_MOUSE_SYNAPTICS_USB) += synaptics_usb.o + obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o + +-psmouse-objs := psmouse-base.o synaptics.o ++psmouse-objs := psmouse-base.o synaptics.o focaltech.o + + psmouse-$(CONFIG_MOUSE_PS2_ALPS) += alps.o + psmouse-$(CONFIG_MOUSE_PS2_ELANTECH) += elantech.o +diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c +new file mode 100644 +index 000000000000..f4d657ee1cc0 +--- /dev/null ++++ b/drivers/input/mouse/focaltech.c +@@ -0,0 +1,52 @@ ++/* ++ * Focaltech TouchPad PS/2 mouse driver ++ * ++ * Copyright (c) 2014 Red Hat Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * Red Hat authors: ++ * ++ * Hans de Goede <[email protected]> ++ */ ++ ++/* ++ * The Focaltech PS/2 touchpad protocol is unknown. This drivers deals with ++ * detection only, to avoid further detection attempts confusing the touchpad ++ * this way it at least works in PS/2 mouse compatibility mode. ++ */ ++ ++#include <linux/device.h> ++#include <linux/libps2.h> ++#include "psmouse.h" ++ ++static const char * const focaltech_pnp_ids[] = { ++ "FLT0101", ++ "FLT0102", ++ "FLT0103", ++ NULL ++}; ++ ++int focaltech_detect(struct psmouse *psmouse, bool set_properties) ++{ ++ if (!psmouse_matches_pnp_id(psmouse, focaltech_pnp_ids)) ++ return -ENODEV; ++ ++ if (set_properties) { ++ psmouse->vendor = "FocalTech"; ++ psmouse->name = "FocalTech Touchpad in mouse emulation mode"; ++ } ++ ++ return 0; ++} ++ ++int focaltech_init(struct psmouse *psmouse) ++{ ++ ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); ++ psmouse_reset(psmouse); ++ ++ return 0; ++} +diff --git a/drivers/input/mouse/focaltech.h b/drivers/input/mouse/focaltech.h +new file mode 100644 +index 000000000000..498650c61e28 +--- /dev/null ++++ b/drivers/input/mouse/focaltech.h +@@ -0,0 +1,22 @@ ++/* ++ * Focaltech TouchPad PS/2 mouse driver ++ * ++ * Copyright (c) 2014 Red Hat Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * Red Hat authors: ++ * ++ * Hans de Goede <[email protected]> ++ */ ++ ++#ifndef _FOCALTECH_H ++#define _FOCALTECH_H ++ ++int focaltech_detect(struct psmouse *psmouse, bool set_properties); ++int focaltech_init(struct psmouse *psmouse); ++ ++#endif +diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c +index bc1bc2653f15..3ab941d425ae 100644 +--- a/drivers/input/mouse/psmouse-base.c ++++ b/drivers/input/mouse/psmouse-base.c +@@ -35,6 +35,7 @@ + #include "elantech.h" + #include "sentelic.h" + #include "cypress_ps2.h" ++#include "focaltech.h" + + #define DRIVER_DESC "PS/2 mouse driver" + +@@ -720,6 +721,21 @@ static int psmouse_extensions(struct psmouse *psmouse, + { + bool synaptics_hardware = false; + ++/* Always check for focaltech, this is safe as it uses pnp-id matching */ ++ if (psmouse_do_detect(focaltech_detect, psmouse, set_properties) == 0) { ++ if (!set_properties || focaltech_init(psmouse) == 0) { ++ /* ++ * Not supported yet, use bare protocol. ++ * Note that we need to also restrict ++ * psmouse_max_proto so that psmouse_initialize() ++ * does not try to reset rate and resolution, ++ * because even that upsets the device. ++ */ ++ psmouse_max_proto = PSMOUSE_PS2; ++ return PSMOUSE_PS2; ++ } ++ } ++ + /* + * We always check for lifebook because it does not disturb mouse + * (it only checks DMI information). +-- +2.1.2 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/Input-synaptics-add-min-max-quirk-for-Lenovo-T440s new/patches.drivers/Input-synaptics-add-min-max-quirk-for-Lenovo-T440s --- old/patches.drivers/Input-synaptics-add-min-max-quirk-for-Lenovo-T440s 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/Input-synaptics-add-min-max-quirk-for-Lenovo-T440s 2014-11-07 16:18:21.000000000 +0100 @@ -0,0 +1,38 @@ +From: Takashi Iwai <[email protected]> +Subject: [PATCH] Input: synaptics - add min/max quirk for Lenovo T440s +Patch-mainline: Submitted +References: bnc#903748 + +The new Lenovo T440s laptop has a different PnP ID "LEN0039", and it +needs the similar min/max quirk to make its clickpad working. + +Buglink: https://bugzilla.opensuse.org/show_bug.cgi?id=903748 +Reported-and-tested-by: Joschi Brauchle <[email protected]> +Cc: <[email protected]> +Signed-off-by: Takashi Iwai <[email protected]> + +--- + drivers/input/mouse/synaptics.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -135,8 +135,8 @@ static const struct min_max_quirk min_ma + 1232, 5710, 1156, 4696 + }, + { +- (const char * const []){"LEN0034", "LEN0036", "LEN2002", +- "LEN2004", NULL}, ++ (const char * const []){"LEN0034", "LEN0036", "LEN0039", ++ "LEN2002", "LEN2004", NULL}, + 1024, 5112, 2024, 4832 + }, + { +@@ -163,6 +163,7 @@ static const char * const topbuttonpad_p + "LEN0036", /* T440 */ + "LEN0037", + "LEN0038", ++ "LEN0039", /* T440s */ + "LEN0041", + "LEN0042", /* Yoga */ + "LEN0045", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/quirk-for-Lenovo-Yoga-3-no-rfkill-switch new/patches.drivers/quirk-for-Lenovo-Yoga-3-no-rfkill-switch --- old/patches.drivers/quirk-for-Lenovo-Yoga-3-no-rfkill-switch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/quirk-for-Lenovo-Yoga-3-no-rfkill-switch 2014-11-07 16:18:21.000000000 +0100 @@ -0,0 +1,35 @@ +From 725c7f619e20f5051bba627fca11dc107c2a93b1 Mon Sep 17 00:00:00 2001 +From: Stephan Mueller <[email protected]> +Date: Mon, 27 Oct 2014 04:09:50 +0100 +Subject: [PATCH] quirk for Lenovo Yoga 3: no rfkill switch +Git-commit: 725c7f619e20f5051bba627fca11dc107c2a93b1 +Patch-mainline: 3.18-rc4 +References: bnc#904289 + +The Yoga 3 does not contain any physical rfkill switch. Therefore +disable the rfkill switch identically to the Yoga 2 approach. + +Signed-off-by: Stephan Mueller <[email protected]> +Signed-off-by: Darren Hart <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/platform/x86/ideapad-laptop.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/platform/x86/ideapad-laptop.c ++++ b/drivers/platform/x86/ideapad-laptop.c +@@ -837,6 +837,13 @@ static const struct dmi_system_id no_hw_ + DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Yoga 2"), + }, + }, ++ { ++ .ident = "Lenovo Yoga 3 Pro 1370", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), ++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo YOGA 3 Pro-1370"), ++ }, ++ }, + {} + }; + ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch new/patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch --- old/patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch 2014-10-19 01:36:23.000000000 +0200 +++ new/patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,126 +0,0 @@ -From: Chris Mason <[email protected]> -Date: Wed, 15 Oct 2014 13:50:56 -0700 -Patch-mainline: 3.17 -Git-commit: babe65ac4dae4598127c5700be00fd97fd06762d -Subject: [PATCH] Revert "Btrfs: race free update of commit root for ro - snapshots" - -This reverts commit 9c3b306e1c9e6be4be09e99a8fe2227d1005effc. - -(cherry picked from commit d37973082b453ba6b89ec07eb7b84305895d35e1) - -Switching only one commit root during a transaction is wrong because it -leads the fs into an inconsistent state. All commit roots should be -switched at once, at transaction commit time, otherwise backref walking -can often miss important references that were only accessible through -the old commit root. Plus, the root item for the snapshot's root wasn't -getting updated and preventing the next transaction commit to do it. - -This made several users get into random corruption issues after creation -of readonly snapshots. - -A regression test for xfstests will follow soon. - -Cc: [email protected] # 3.17 -Signed-off-by: Filipe Manana <[email protected]> -Signed-off-by: Chris Mason <[email protected]> -Signed-off-by: David Sterba <[email protected]> ---- - fs/btrfs/inode.c | 36 ------------------------------------ - fs/btrfs/ioctl.c | 33 +++++++++++++++++++++++++++++++++ - 2 files changed, 33 insertions(+), 36 deletions(-) - -diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c -index 16454b6efc55..886d8d42640d 100644 ---- a/fs/btrfs/inode.c -+++ b/fs/btrfs/inode.c -@@ -5203,42 +5203,6 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry) - iput(inode); - inode = ERR_PTR(ret); - } -- /* -- * If orphan cleanup did remove any orphans, it means the tree -- * was modified and therefore the commit root is not the same as -- * the current root anymore. This is a problem, because send -- * uses the commit root and therefore can see inode items that -- * don't exist in the current root anymore, and for example make -- * calls to btrfs_iget, which will do tree lookups based on the -- * current root and not on the commit root. Those lookups will -- * fail, returning a -ESTALE error, and making send fail with -- * that error. So make sure a send does not see any orphans we -- * have just removed, and that it will see the same inodes -- * regardless of whether a transaction commit happened before -- * it started (meaning that the commit root will be the same as -- * the current root) or not. -- */ -- if (sub_root->node != sub_root->commit_root) { -- u64 sub_flags = btrfs_root_flags(&sub_root->root_item); -- -- if (sub_flags & BTRFS_ROOT_SUBVOL_RDONLY) { -- struct extent_buffer *eb; -- -- /* -- * Assert we can't have races between dentry -- * lookup called through the snapshot creation -- * ioctl and the VFS. -- */ -- ASSERT(mutex_is_locked(&dir->i_mutex)); -- -- down_write(&root->fs_info->commit_root_sem); -- eb = sub_root->commit_root; -- sub_root->commit_root = -- btrfs_root_node(sub_root); -- up_write(&root->fs_info->commit_root_sem); -- free_extent_buffer(eb); -- } -- } - } - - return inode; -diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c -index 91269bd9ad05..b765d412cbb6 100644 ---- a/fs/btrfs/ioctl.c -+++ b/fs/btrfs/ioctl.c -@@ -714,6 +714,39 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir, - if (ret) - goto fail; - -+ ret = btrfs_orphan_cleanup(pending_snapshot->snap); -+ if (ret) -+ goto fail; -+ -+ /* -+ * If orphan cleanup did remove any orphans, it means the tree was -+ * modified and therefore the commit root is not the same as the -+ * current root anymore. This is a problem, because send uses the -+ * commit root and therefore can see inode items that don't exist -+ * in the current root anymore, and for example make calls to -+ * btrfs_iget, which will do tree lookups based on the current root -+ * and not on the commit root. Those lookups will fail, returning a -+ * -ESTALE error, and making send fail with that error. So make sure -+ * a send does not see any orphans we have just removed, and that it -+ * will see the same inodes regardless of whether a transaction -+ * commit happened before it started (meaning that the commit root -+ * will be the same as the current root) or not. -+ */ -+ if (readonly && pending_snapshot->snap->node != -+ pending_snapshot->snap->commit_root) { -+ trans = btrfs_join_transaction(pending_snapshot->snap); -+ if (IS_ERR(trans) && PTR_ERR(trans) != -ENOENT) { -+ ret = PTR_ERR(trans); -+ goto fail; -+ } -+ if (!IS_ERR(trans)) { -+ ret = btrfs_commit_transaction(trans, -+ pending_snapshot->snap); -+ if (ret) -+ goto fail; -+ } -+ } -+ - inode = btrfs_lookup_dentry(dentry->d_parent->d_inode, dentry); - if (IS_ERR(inode)) { - ret = PTR_ERR(inode); --- -2.1.1 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/input-add-acer-aspire-5710-to-nomux.patch new/patches.fixes/input-add-acer-aspire-5710-to-nomux.patch --- old/patches.fixes/input-add-acer-aspire-5710-to-nomux.patch 2014-10-19 01:36:23.000000000 +0200 +++ new/patches.fixes/input-add-acer-aspire-5710-to-nomux.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,31 +0,0 @@ -From: Jiri Kosina <[email protected]> -Subject: Input: Add Acer Aspire 5710 to nomux blacklist -References: bnc#404881 -Git-commit: 8c947e20cb1f442c704852b2ca24b81981b09493 -Patch-mainline: 3.16-rc7 - -Acer Aspire needs to be added to nomux blacklist, otherwise the touchpad -misbehaves. - -Signed-off-by: Jiri Kosina <[email protected]> - ---- - drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/drivers/input/serio/i8042-x86ia64io.h -+++ b/drivers/input/serio/i8042-x86ia64io.h -@@ -371,6 +371,13 @@ static const struct dmi_system_id __init - }, - }, - { -+ /* Acer Aspire 5710 */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710"), -+ }, -+ }, -+ { - /* Gericom Bellagio */ - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Gericom"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/iwlwifi-dvm-drop-non-VO-frames-when-flushing new/patches.fixes/iwlwifi-dvm-drop-non-VO-frames-when-flushing --- old/patches.fixes/iwlwifi-dvm-drop-non-VO-frames-when-flushing 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/iwlwifi-dvm-drop-non-VO-frames-when-flushing 2014-11-07 10:56:51.000000000 +0100 @@ -0,0 +1,94 @@ +From a0855054e59b0c5b2b00237fdb5147f7bcc18efb Mon Sep 17 00:00:00 2001 +From: Emmanuel Grumbach <[email protected]> +Date: Sun, 5 Oct 2014 09:11:14 +0300 +Subject: [PATCH] iwlwifi: dvm: drop non VO frames when flushing +Git-commit: a0855054e59b0c5b2b00237fdb5147f7bcc18efb +Patch-mainline: 3.18-rc3 +References: bnc#900786 + +When mac80211 wants to ensure that a frame is sent, it calls +the flush() callback. Until now, iwldvm implemented this by +waiting that all the frames are sent (ACKed or timeout). +In case of weak signal, this can take a significant amount +of time, delaying the next connection (in case of roaming). +Many users have reported that the flush would take too long +leading to the following error messages to be printed: + +iwlwifi 0000:03:00.0: fail to flush all tx fifo queues Q 2 +iwlwifi 0000:03:00.0: Current SW read_ptr 161 write_ptr 201 +iwl data: 00000000: 00 00 00 00 00 00 00 00 fe ff 01 00 00 00 00 00 +[snip] +iwlwifi 0000:03:00.0: FH TRBs(0) = 0x00000000 +[snip] +iwlwifi 0000:03:00.0: Q 0 is active and mapped to fifo 3 ra_tid 0x0000 [9,9] +[snip] + +Instead of waiting for these packets, simply drop them. This +significantly improves the responsiveness of the network. +Note that all the queues are flushed, but the VO one. This +is not typically used by the applications and it likely +contains management frames that are useful for connection +or roaming. + +This bug is tracked here: +https://bugzilla.kernel.org/show_bug.cgi?id=56581 + +But it is duplicated in distributions' trackers. +A simple search in Ubuntu's database led to these bugs: + +https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1270808 +https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1305406 +https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1356236 +https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1360597 +https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1361809 + +Cc: <[email protected]> +Depends-on: 77be2c54c5bd ("mac80211: add vif to flush call") +Signed-off-by: Emmanuel Grumbach <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/net/wireless/iwlwifi/dvm/mac80211.c | 24 +++++++++++++----------- + 1 file changed, 13 insertions(+), 11 deletions(-) + +--- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c ++++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c +@@ -1095,6 +1095,7 @@ static void iwlagn_mac_flush(struct ieee + u32 queues, bool drop) + { + struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); ++ u32 scd_queues; + + mutex_lock(&priv->mutex); + IWL_DEBUG_MAC80211(priv, "enter\n"); +@@ -1108,18 +1109,19 @@ static void iwlagn_mac_flush(struct ieee + goto done; + } + +- /* +- * mac80211 will not push any more frames for transmit +- * until the flush is completed +- */ +- if (drop) { +- IWL_DEBUG_MAC80211(priv, "send flush command\n"); +- if (iwlagn_txfifo_flush(priv, 0)) { +- IWL_ERR(priv, "flush request fail\n"); +- goto done; +- } ++ scd_queues = BIT(priv->cfg->base_params->num_of_queues) - 1; ++ scd_queues &= ~(BIT(IWL_IPAN_CMD_QUEUE_NUM) | ++ BIT(IWL_DEFAULT_CMD_QUEUE_NUM)); ++ ++ if (vif) ++ scd_queues &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]); ++ ++ IWL_DEBUG_TX_QUEUES(priv, "Flushing SCD queues: 0x%x\n", scd_queues); ++ if (iwlagn_txfifo_flush(priv, scd_queues)) { ++ IWL_ERR(priv, "flush request fail\n"); ++ goto done; + } +- IWL_DEBUG_MAC80211(priv, "wait transmit/flush all frames\n"); ++ IWL_DEBUG_TX_QUEUES(priv, "wait transmit/flush all frames\n"); + iwl_trans_wait_tx_queue_empty(priv->trans, 0xffffffff); + done: + mutex_unlock(&priv->mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/media-uvc-Fix-destruction-order-in-uvc_delete new/patches.fixes/media-uvc-Fix-destruction-order-in-uvc_delete --- old/patches.fixes/media-uvc-Fix-destruction-order-in-uvc_delete 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/media-uvc-Fix-destruction-order-in-uvc_delete 2014-11-07 10:56:51.000000000 +0100 @@ -0,0 +1,78 @@ +From: Takashi Iwai <[email protected]> +Subject: [PATCH] [media] uvc: Fix destruction order in uvc_delete() +References: bnc#897736 +Patch-mainline: Submitted + +We've got a bug report at disconnecting a Webcam, where the kernel +spews warnings like below: + WARNING: CPU: 0 PID: 8385 at ../fs/sysfs/group.c:219 sysfs_remove_group+0x87/0x90() + sysfs group c0b2350c not found for kobject 'event3' + CPU: 0 PID: 8385 Comm: queue2:src Not tainted 3.16.2-1.gdcee397-default #1 + Hardware name: ASUSTeK Computer INC. A7N8X-E/A7N8X-E, BIOS ASUS A7N8X-E Deluxe ACPI BIOS Rev 1013 11/12/2004 + c08d0705 ddc75cbc c0718c5b ddc75ccc c024b654 c08c6d44 ddc75ce8 000020c1 + c08d0705 000000db c03d1ec7 c03d1ec7 00000009 00000000 c0b2350c d62c9064 + ddc75cd4 c024b6a3 00000009 ddc75ccc c08c6d44 ddc75ce8 ddc75cfc c03d1ec7 + Call Trace: + [<c0205ba6>] try_stack_unwind+0x156/0x170 + [<c02046f3>] dump_trace+0x53/0x180 + [<c0205c06>] show_trace_log_lvl+0x46/0x50 + [<c0204871>] show_stack_log_lvl+0x51/0xe0 + [<c0205c67>] show_stack+0x27/0x50 + [<c0718c5b>] dump_stack+0x3e/0x4e + [<c024b654>] warn_slowpath_common+0x84/0xa0 + [<c024b6a3>] warn_slowpath_fmt+0x33/0x40 + [<c03d1ec7>] sysfs_remove_group+0x87/0x90 + [<c05a2c54>] device_del+0x34/0x180 + [<c05e3989>] evdev_disconnect+0x19/0x50 + [<c05e06fa>] __input_unregister_device+0x9a/0x140 + [<c05e0845>] input_unregister_device+0x45/0x80 + [<f854b1d6>] uvc_delete+0x26/0x110 [uvcvideo] + [<f84d66f8>] v4l2_device_release+0x98/0xc0 [videodev] + [<c05a25bb>] device_release+0x2b/0x90 + [<c04ad8bf>] kobject_cleanup+0x6f/0x1a0 + [<f84d5453>] v4l2_release+0x43/0x70 [videodev] + [<c0372f31>] __fput+0xb1/0x1b0 + [<c02650c1>] task_work_run+0x91/0xb0 + [<c024d845>] do_exit+0x265/0x910 + [<c024df64>] do_group_exit+0x34/0xa0 + [<c025a76f>] get_signal_to_deliver+0x17f/0x590 + [<c0201b6a>] do_signal+0x3a/0x960 + [<c02024f7>] do_notify_resume+0x67/0x90 + [<c071ebb5>] work_notifysig+0x30/0x3b + [<b7739e60>] 0xb7739e5f + ---[ end trace b1e56095a485b631 ]--- + +The cause is that uvc_status_cleanup() is called after usb_put_*() in +uvc_delete(). usb_put_*() removes the sysfs parent and eventually +removes the children recursively, so the later device_del() can't find +its sysfs. The fix is simply rearrange the call orders in +uvc_delete() so that the child is removed before the parent. + +Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=897736 +Reported-and-tested-by: Martin Pluskal <[email protected]> +Acked-by: Laurent Pinchart <[email protected]> +Cc: <[email protected]> +Signed-off-by: Takashi Iwai <[email protected]> + +--- + drivers/media/usb/uvc/uvc_driver.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -1623,12 +1623,12 @@ static void uvc_delete(struct uvc_device + { + struct list_head *p, *n; + +- usb_put_intf(dev->intf); +- usb_put_dev(dev->udev); +- + uvc_status_cleanup(dev); + uvc_ctrl_cleanup_device(dev); + ++ usb_put_intf(dev->intf); ++ usb_put_dev(dev->udev); ++ + if (dev->vdev.dev) + v4l2_device_unregister(&dev->vdev); + #ifdef CONFIG_MEDIA_CONTROLLER ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 8369 lines of diff (skipped) ++++++ patches.rpmify.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/chipidea-clean-up-dependencies new/patches.rpmify/chipidea-clean-up-dependencies --- old/patches.rpmify/chipidea-clean-up-dependencies 2014-04-27 20:22:13.000000000 +0200 +++ new/patches.rpmify/chipidea-clean-up-dependencies 1970-01-01 01:00:00.000000000 +0100 @@ -1,54 +0,0 @@ -From: Jeff Mahoney <[email protected]> -Subject: chipidea: Allow user to select PCI/IMX options -Patch-mainline: Submitted to LKML Aug 27 2012 - -The chipidea driver currently has needless ifneq rules in the makefile -for things that should be config options. This can be problematic, -especially in the IMX case, since the OF dependency will be met -on powerpc systems - which don't actually support the hardware via that -method. - -This patch adds _PCI and _IMX config options to allow the user to -select whether to build the modules. - -Signed-off-by: Jeff Mahoney <[email protected]> ---- - drivers/usb/chipidea/Kconfig | 11 +++++++++++ - drivers/usb/chipidea/Makefile | 11 ++--------- - 2 files changed, 13 insertions(+), 9 deletions(-) - ---- a/drivers/usb/chipidea/Kconfig -+++ b/drivers/usb/chipidea/Kconfig -@@ -30,4 +30,15 @@ config USB_CHIPIDEA_DEBUG - help - Say Y here to enable debugging output of the ChipIdea driver. - -+config USB_CHIPIDEA_PCI -+ bool "ChipIdea PCI support" -+ depends on PCI -+ help -+ This option enables ChipIdea support on PCI. -+ -+config USB_CHIPIDEA_IMX -+ bool "ChipIdea IMX support" -+ depends on OF -+ help -+ This option enables ChipIdea support on IMX. - endif ---- a/drivers/usb/chipidea/Makefile -+++ b/drivers/usb/chipidea/Makefile -@@ -10,12 +10,5 @@ ci_hdrc-$(CONFIG_USB_CHIPIDEA_DEBUG) += - - obj-$(CONFIG_USB_CHIPIDEA) += ci_hdrc_msm.o - obj-$(CONFIG_USB_CHIPIDEA) += ci_hdrc_zevio.o -- --# PCI doesn't provide stubs, need to check --ifneq ($(CONFIG_PCI),) -- obj-$(CONFIG_USB_CHIPIDEA) += ci_hdrc_pci.o --endif -- --ifneq ($(CONFIG_OF),) -- obj-$(CONFIG_USB_CHIPIDEA) += usbmisc_imx.o ci_hdrc_imx.o --endif -+obj-$(CONFIG_USB_CHIPIDEA_PCI) += ci_hdrc_pci.o -+obj-$(CONFIG_USB_CHIPIDEA_IMX) += usbmisc_imx.o ci_hdrc_imx.o ++++++ patches.xen.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen-netback-notify-multi new/patches.xen/xen-netback-notify-multi --- old/patches.xen/xen-netback-notify-multi 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen-netback-notify-multi 2014-10-17 16:23:47.000000000 +0200 @@ -389,8 +389,8 @@ } static netif_rx_response_t *make_rx_response(netif_t *netif, ---- head.orig/include/xen/evtchn.h 2014-01-15 14:32:14.000000000 +0100 -+++ head/include/xen/evtchn.h 2014-01-30 10:40:38.000000000 +0100 +--- head.orig/include/xen/evtchn.h 2014-10-13 12:12:14.000000000 +0200 ++++ head/include/xen/evtchn.h 2014-10-13 12:12:14.000000000 +0200 @@ -195,6 +195,18 @@ static inline void notify_remote_via_evt VOID(HYPERVISOR_event_channel_op(EVTCHNOP_send, &send)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen-privcmd-hcall-preemption new/patches.xen/xen-privcmd-hcall-preemption --- old/patches.xen/xen-privcmd-hcall-preemption 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen-privcmd-hcall-preemption 2014-10-17 16:23:47.000000000 +0200 @@ -56,7 +56,7 @@ CFI_ENDPROC END(do_hypervisor_callback) --- head.orig/drivers/xen/core/evtchn.c 2014-09-02 14:12:03.000000000 +0200 -+++ head/drivers/xen/core/evtchn.c 2014-05-13 10:37:40.000000000 +0200 ++++ head/drivers/xen/core/evtchn.c 2014-10-13 12:13:03.000000000 +0200 @@ -373,7 +373,14 @@ static DEFINE_PER_CPU(unsigned int, curr static DEFINE_PER_CPU(unsigned int, current_l2i); @@ -133,7 +133,7 @@ break; --- head.orig/include/xen/evtchn.h 2013-08-08 11:52:01.000000000 +0200 -+++ head/include/xen/evtchn.h 2014-01-15 14:32:14.000000000 +0100 ++++ head/include/xen/evtchn.h 2014-10-13 12:12:14.000000000 +0200 @@ -145,7 +145,13 @@ void irq_resume(void); #endif @@ -148,7 +148,7 @@ +evtchn_do_upcall(struct pt_regs *regs); /* Mark a PIRQ as unavailable for dynamic allocation. */ - void evtchn_register_pirq(int irq); + void evtchn_register_pirq(int irq, unsigned int xen_pirq); @@ -210,6 +216,8 @@ void notify_remote_via_ipi(unsigned int void clear_ipi_evtchn(void); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen-setup-gsi new/patches.xen/xen-setup-gsi --- old/patches.xen/xen-setup-gsi 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen-setup-gsi 2014-10-17 16:23:47.000000000 +0200 @@ -6,9 +6,9 @@ it needs to know trigger mode and polarity for them regardless of whether the kernel is also going to (try to) use those interrupts. ---- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2014-09-16 17:36:48.000000000 +0200 -+++ head/arch/x86/kernel/apic/io_apic-xen.c 2014-09-02 18:23:53.000000000 +0200 -@@ -1563,6 +1563,44 @@ static void setup_ioapic_irq(unsigned in +--- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2014-10-13 12:07:03.000000000 +0200 ++++ head/arch/x86/kernel/apic/io_apic-xen.c 2014-10-13 12:12:04.000000000 +0200 +@@ -1562,6 +1562,46 @@ static void setup_ioapic_irq(unsigned in if (!IO_APIC_IRQ(irq)) return; @@ -20,16 +20,18 @@ + */ + if (irq >= legacy_pic->nr_legacy_irqs + || mp_pin_info(attr->ioapic, attr->ioapic_pin)->set) { ++ unsigned int gsi = mp_pin_to_gsi(attr->ioapic, ++ attr->ioapic_pin); + struct physdev_setup_gsi setup_gsi = { -+ .gsi = irq, ++ .gsi = gsi, + .triggering = attr->trigger, + .polarity = attr->polarity + }; + struct physdev_map_pirq map_pirq = { + .domid = DOMID_SELF, + .type = MAP_PIRQ_TYPE_GSI, -+ .index = irq, -+ .pirq = irq ++ .index = gsi, ++ .pirq = gsi + }; + + switch (HYPERVISOR_physdev_op(PHYSDEVOP_setup_gsi, @@ -39,11 +41,11 @@ + break; + /* fall through */ + case 0: -+ evtchn_register_pirq(irq); ++ evtchn_register_pirq(irq, gsi); + if (HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, + &map_pirq) == 0) { + /* fake (for init_IO_APIC_traps()): */ -+ cfg->vector = irq; ++ cfg->vector = gsi; + return; + } + } @@ -53,7 +55,7 @@ if (assign_irq_vector(irq, cfg, apic->target_cpus())) return; ---- head.orig/drivers/acpi/pci_irq.c 2014-09-17 16:24:50.000000000 +0200 +--- head.orig/drivers/acpi/pci_irq.c 2014-10-13 11:53:23.000000000 +0200 +++ head/drivers/acpi/pci_irq.c 2014-09-02 14:13:16.000000000 +0200 @@ -509,3 +509,80 @@ void acpi_pci_irq_disable(struct pci_dev if (gsi >= 0 && dev->irq > 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-2.6.29 new/patches.xen/xen3-patch-2.6.29 --- old/patches.xen/xen3-patch-2.6.29 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-2.6.29 2014-10-17 16:23:47.000000000 +0200 @@ -10403,7 +10403,7 @@ + union { + int bindcount; /* for dynamic IRQs */ +#ifdef CONFIG_X86_IO_APIC -+ u8 vector; /* for physical IRQs */ ++ unsigned int vector; /* for physical IRQs */ +#endif + }; +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.12 new/patches.xen/xen3-patch-3.12 --- old/patches.xen/xen3-patch-3.12 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.12 2014-10-17 16:23:47.000000000 +0200 @@ -549,7 +549,7 @@ __apicdebuginit(void) print_IO_APIC(int ioapic_idx) { union IO_APIC_reg_00 reg_00; -@@ -3485,12 +3490,15 @@ int io_apic_setup_irq_pin_once(unsigned +@@ -3483,12 +3488,15 @@ int io_apic_setup_irq_pin_once(unsigned { unsigned int ioapic_idx = attr->ioapic, pin = attr->ioapic_pin; int ret; @@ -1070,7 +1070,7 @@ -obj-$(CONFIG_TCG_XEN) += tpm_xenu.o +obj-$(CONFIG_TCG_XEN_V1) += tpm_xenu.o tpm_xenu-y = tpm_xen.o tpm_vtpm.o ---- head.orig/drivers/char/tpm/xen-tpmfront.c 2014-03-31 05:40:15.000000000 +0200 +--- head.orig/drivers/char/tpm/xen-tpmfront.c 2014-10-13 11:53:28.000000000 +0200 +++ head/drivers/char/tpm/xen-tpmfront.c 2014-02-18 17:52:31.000000000 +0100 @@ -11,19 +11,26 @@ #include <linux/err.h> @@ -1248,7 +1248,7 @@ #endif oprofilefs_create_file(root, "buffer", &event_buffer_fops); oprofilefs_create_ulong(root, "buffer_size", &oprofile_buffer_size); ---- head.orig/drivers/pci/msi-xen.c 2014-08-29 18:21:59.000000000 +0200 +--- head.orig/drivers/pci/msi-xen.c 2014-10-06 13:21:04.000000000 +0200 +++ head/drivers/pci/msi-xen.c 2013-09-26 15:33:39.000000000 +0200 @@ -60,12 +60,10 @@ struct msi_dev_list { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.15 new/patches.xen/xen3-patch-3.15 --- old/patches.xen/xen3-patch-3.15 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.15 2014-10-17 16:23:47.000000000 +0200 @@ -54,7 +54,7 @@ unsigned int irq_hv_callback_count; #endif } ____cacheline_aligned irq_cpustat_t; ---- head.orig/arch/x86/include/asm/vdso.h 2014-09-25 09:13:14.000000000 +0200 +--- head.orig/arch/x86/include/asm/vdso.h 2014-10-13 11:53:26.000000000 +0200 +++ head/arch/x86/include/asm/vdso.h 2014-06-26 15:16:50.000000000 +0200 @@ -39,7 +39,7 @@ extern const struct vdso_image vdso_imag @@ -350,7 +350,7 @@ { unsigned vector, me; -@@ -3536,6 +3536,11 @@ int get_nr_irqs_gsi(void) +@@ -3534,6 +3534,11 @@ int get_nr_irqs_gsi(void) return nr_irqs_gsi; } @@ -418,7 +418,7 @@ { /* * Build-time sanity checks on the kernel image and module ---- head.orig/arch/x86/kernel/irq.c 2014-09-25 09:13:14.000000000 +0200 +--- head.orig/arch/x86/kernel/irq.c 2014-10-13 11:53:26.000000000 +0200 +++ head/arch/x86/kernel/irq.c 2014-05-02 15:21:37.000000000 +0200 @@ -126,7 +126,7 @@ int arch_show_interrupts(struct seq_file seq_printf(p, "%10u ", per_cpu(mce_poll_count, j)); @@ -680,7 +680,7 @@ return 0; } ---- head.orig/arch/x86/lib/msr.c 2014-09-25 09:13:14.000000000 +0200 +--- head.orig/arch/x86/lib/msr.c 2014-10-13 11:53:26.000000000 +0200 +++ head/arch/x86/lib/msr.c 2014-05-02 14:58:34.000000000 +0200 @@ -76,6 +76,16 @@ static inline int __flip_bit(u32 msr, u8 if (m1.q == m.q) @@ -2410,7 +2410,7 @@ int entry_nr; /* IN */ uint64_t table_base; ---- head.orig/mm/early_ioremap.c 2014-09-25 09:13:14.000000000 +0200 +--- head.orig/mm/early_ioremap.c 2014-10-13 11:53:26.000000000 +0200 +++ head/mm/early_ioremap.c 2014-05-02 14:05:40.000000000 +0200 @@ -164,6 +164,17 @@ void __init early_iounmap(void __iomem * enum fixed_addresses idx; @@ -2456,7 +2456,7 @@ } #else /* CONFIG_MMU */ ---- head.orig/sound/pci/hda/hda_controller.c 2014-09-25 09:13:14.000000000 +0200 +--- head.orig/sound/pci/hda/hda_controller.c 2014-10-13 11:53:26.000000000 +0200 +++ head/sound/pci/hda/hda_controller.c 2014-05-14 11:08:30.000000000 +0200 @@ -23,6 +23,7 @@ #include <linux/clocksource.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.16 new/patches.xen/xen3-patch-3.16 --- old/patches.xen/xen3-patch-3.16 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.16 2014-10-17 16:23:47.000000000 +0200 @@ -370,7 +370,7 @@ raw_spin_lock_irqsave(&ioapic_lock, flags); ret = __ioapic_set_affinity(data, mask, &dest); -@@ -3025,98 +3010,39 @@ static int __init ioapic_init_ops(void) +@@ -3023,98 +3008,39 @@ static int __init ioapic_init_ops(void) device_initcall(ioapic_init_ops); /* @@ -483,7 +483,7 @@ } /* -@@ -3184,9 +3110,11 @@ msi_set_affinity(struct irq_data *data, +@@ -3182,9 +3108,11 @@ msi_set_affinity(struct irq_data *data, struct irq_cfg *cfg = data->chip_data; struct msi_msg msg; unsigned int dest; @@ -497,7 +497,7 @@ __get_cached_msi_msg(data->msi_desc, &msg); -@@ -3245,8 +3173,8 @@ int setup_msi_irq(struct pci_dev *dev, s +@@ -3243,8 +3171,8 @@ int setup_msi_irq(struct pci_dev *dev, s int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) { @@ -507,7 +507,7 @@ int node, ret; /* Multiple MSI vectors only supported with interrupt remapping */ -@@ -3254,28 +3182,25 @@ int native_setup_msi_irqs(struct pci_dev +@@ -3252,28 +3180,25 @@ int native_setup_msi_irqs(struct pci_dev return 1; node = dev_to_node(&dev->dev); @@ -545,7 +545,7 @@ } #ifdef CONFIG_DMAR_TABLE -@@ -3286,9 +3211,11 @@ dmar_msi_set_affinity(struct irq_data *d +@@ -3284,9 +3209,11 @@ dmar_msi_set_affinity(struct irq_data *d struct irq_cfg *cfg = data->chip_data; unsigned int dest, irq = data->irq; struct msi_msg msg; @@ -559,7 +559,7 @@ dmar_msi_read(irq, &msg); -@@ -3335,9 +3262,11 @@ static int hpet_msi_set_affinity(struct +@@ -3333,9 +3260,11 @@ static int hpet_msi_set_affinity(struct struct irq_cfg *cfg = data->chip_data; struct msi_msg msg; unsigned int dest; @@ -573,7 +573,7 @@ hpet_msi_read(data->handler_data, &msg); -@@ -3405,9 +3334,11 @@ ht_set_affinity(struct irq_data *data, c +@@ -3403,9 +3332,11 @@ ht_set_affinity(struct irq_data *data, c { struct irq_cfg *cfg = data->chip_data; unsigned int dest; @@ -587,7 +587,7 @@ target_ht_irq(data->irq, dest, cfg->vector); return IRQ_SET_MASK_OK_NOCOPY; -@@ -3531,11 +3462,6 @@ static void __init probe_nr_irqs_gsi(voi +@@ -3529,11 +3460,6 @@ static void __init probe_nr_irqs_gsi(voi printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.17 new/patches.xen/xen3-patch-3.17 --- old/patches.xen/xen3-patch-3.17 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.17 2014-10-17 16:23:47.000000000 +0200 @@ -54,7 +54,7 @@ #else /* !CONFIG_X86_IO_APIC */ #define io_apic_assign_pci_irqs 0 -@@ -241,7 +239,6 @@ static inline int mp_find_ioapic(u32 gsi) { return 0; } +@@ -241,7 +239,6 @@ static inline int mp_find_ioapic(u32 gsi static inline u32 mp_pin_to_gsi(int ioapic, int pin) { return UINT_MAX; } static inline int mp_map_gsi_to_irq(u32 gsi, unsigned int flags) { return gsi; } static inline void mp_unmap_irq(int irq) { } @@ -62,7 +62,7 @@ static inline int save_ioapic_entries(void) { ---- head.orig/arch/x86/include/asm/pci_x86.h 2013-04-29 02:36:01.000000000 +0200 +--- head.orig/arch/x86/include/asm/pci_x86.h 2014-10-13 11:53:25.000000000 +0200 +++ head/arch/x86/include/asm/pci_x86.h 2014-09-16 10:32:57.000000000 +0200 @@ -93,6 +93,8 @@ extern raw_spinlock_t pci_config_lock; extern int (*pcibios_enable_irq)(struct pci_dev *dev); @@ -73,7 +73,7 @@ struct pci_raw_ops { int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn, int reg, int len, u32 *val); ---- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2014-10-07 12:22:00.000000000 +0200 +--- head.orig/arch/x86/include/mach-xen/asm/fixmap.h 2014-06-27 10:54:54.000000000 +0200 +++ head/arch/x86/include/mach-xen/asm/fixmap.h 2014-10-07 12:21:52.000000000 +0200 @@ -115,14 +115,14 @@ enum fixed_addresses { __end_of_permanent_fixed_addresses, @@ -194,7 +194,7 @@ - #endif /* _ASM_X86_VGA_H */ --- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2014-06-27 10:54:54.000000000 +0200 -+++ head/arch/x86/kernel/apic/io_apic-xen.c 2014-10-07 12:17:06.000000000 +0200 ++++ head/arch/x86/kernel/apic/io_apic-xen.c 2014-10-13 12:07:03.000000000 +0200 @@ -31,6 +31,7 @@ #include <linux/acpi.h> #include <linux/module.h> @@ -711,12 +711,12 @@ for (i = 0; i < mp_irq_entries; i++) { int lbus = mp_irqs[i].srcbus; + int ioapic_idx, found = 0; - -- for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) ++ + if (bus != lbus || mp_irqs[i].irqtype != mp_INT || + slot != ((mp_irqs[i].srcbusirq >> 2) & 0x1f)) + continue; -+ + +- for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) + for_each_ioapic(ioapic_idx) if (mpc_ioapic_id(ioapic_idx) == mp_irqs[i].dstapic || - mp_irqs[i].dstapic == MP_APIC_ALL) @@ -818,18 +818,29 @@ } /* * nonexistent IRQs are edge default -@@ -1406,105 +1599,30 @@ static void setup_ioapic_irq(unsigned in +@@ -1330,7 +1523,6 @@ static void ioapic_register_intr(unsigne + } + #else /* !CONFIG_XEN */ + #define __clear_irq_vector(irq, cfg) ((void)0) +-#define ioapic_register_intr(irq, cfg, trigger) evtchn_register_pirq(irq) + #endif - ioapic_register_intr(irq, cfg, attr->trigger); + #ifndef CONFIG_XEN +@@ -1404,107 +1596,35 @@ static void setup_ioapic_irq(unsigned in + return; + } + +- ioapic_register_intr(irq, cfg, attr->trigger); #ifndef CONFIG_XEN - if (irq < legacy_pic->nr_legacy_irqs) ++ ioapic_register_intr(irq, cfg, attr->trigger); + if (irq < nr_legacy_irqs()) legacy_pic->mask(irq); - #endif - - ioapic_write_entry(attr->ioapic, attr->ioapic_pin, entry); - } - +-#endif +- +- ioapic_write_entry(attr->ioapic, attr->ioapic_pin, entry); +-} +- -static bool __init io_apic_pin_not_connected(int idx, int ioapic_idx, int pin) -{ - if (idx != -1) @@ -859,7 +870,7 @@ -#ifdef CONFIG_XEN - if (irq < PIRQ_BASE || irq >= PIRQ_BASE + nr_pirqs) - continue; --#else + #else - /* - * Skip the timer IRQ if there's a quirk handler - * installed and if it returns 1: @@ -867,15 +878,18 @@ - if (apic->multi_timer_check && - apic->multi_timer_check(ioapic_idx, irq)) - continue; --#endif -- ++ evtchn_register_pirq(irq, mp_pin_to_gsi(attr->ioapic, ++ attr->ioapic_pin)); + #endif + - set_io_apic_irq_attr(&attr, ioapic_idx, pin, irq_trigger(idx), - irq_polarity(idx)); - - io_apic_setup_irq_pin(irq, node, &attr); - } --} -- ++ ioapic_write_entry(attr->ioapic, attr->ioapic_pin, entry); + } + static void __init setup_IO_APIC_irqs(void) { - unsigned int ioapic_idx; @@ -937,7 +951,7 @@ } #ifndef CONFIG_XEN -@@ -1673,7 +1791,7 @@ __apicdebuginit(void) print_IO_APICs(voi +@@ -1673,7 +1793,7 @@ __apicdebuginit(void) print_IO_APICs(voi struct irq_chip *chip; printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); @@ -946,7 +960,7 @@ printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n", mpc_ioapic_id(ioapic_idx), ioapics[ioapic_idx].nr_registers); -@@ -1684,7 +1802,7 @@ __apicdebuginit(void) print_IO_APICs(voi +@@ -1684,7 +1804,7 @@ __apicdebuginit(void) print_IO_APICs(voi */ printk(KERN_INFO "testing the IO APIC.......................\n"); @@ -955,7 +969,7 @@ print_IO_APIC(ioapic_idx); printk(KERN_DEBUG "IRQ to pin mappings:\n"); -@@ -1695,7 +1813,7 @@ __apicdebuginit(void) print_IO_APICs(voi +@@ -1695,7 +1815,7 @@ __apicdebuginit(void) print_IO_APICs(voi if (chip != &ioapic_chip) continue; @@ -964,7 +978,7 @@ if (!cfg) continue; entry = cfg->irq_2_pin; -@@ -1845,7 +1963,7 @@ __apicdebuginit(void) print_PIC(void) +@@ -1845,7 +1965,7 @@ __apicdebuginit(void) print_PIC(void) unsigned int v; unsigned long flags; @@ -973,7 +987,7 @@ return; printk(KERN_DEBUG "\nprinting PIC contents\n"); -@@ -1915,26 +2033,22 @@ static struct { int pin, apic; } ioapic_ +@@ -1915,26 +2035,22 @@ static struct { int pin, apic; } ioapic_ void __init enable_IO_APIC(void) { int i8259_apic, i8259_pin; @@ -1011,7 +1025,7 @@ } } found_i8259: -@@ -2006,7 +2120,7 @@ void disable_IO_APIC(void) +@@ -2006,7 +2122,7 @@ void disable_IO_APIC(void) */ clear_IO_APIC(); @@ -1020,7 +1034,7 @@ return; x86_io_apic_ops.disable(); -@@ -2037,7 +2151,7 @@ void __init setup_ioapic_ids_from_mpc_no +@@ -2037,7 +2153,7 @@ void __init setup_ioapic_ids_from_mpc_no /* * Set the IOAPIC ID to the value stored in the MPC table. */ @@ -1029,7 +1043,7 @@ /* Read the register 0 value */ raw_spin_lock_irqsave(&ioapic_lock, flags); reg_00.raw = io_apic_read(ioapic_idx, 0); -@@ -2210,7 +2324,7 @@ static unsigned int startup_ioapic_irq(s +@@ -2210,7 +2326,7 @@ static unsigned int startup_ioapic_irq(s unsigned long flags; raw_spin_lock_irqsave(&ioapic_lock, flags); @@ -1038,7 +1052,7 @@ legacy_pic->mask(irq); if (legacy_pic->irq_pending(irq)) was_pending = 1; -@@ -2312,7 +2426,7 @@ asmlinkage __visible void smp_irq_move_c +@@ -2312,7 +2428,7 @@ asmlinkage __visible void smp_irq_move_c apic->send_IPI_self(IRQ_MOVE_CLEANUP_VECTOR); goto unlock; } @@ -1047,7 +1061,7 @@ unlock: raw_spin_unlock(&desc->lock); } -@@ -2340,7 +2454,7 @@ static void irq_complete_move(struct irq +@@ -2340,7 +2456,7 @@ static void irq_complete_move(struct irq void irq_force_complete_move(int irq) { @@ -1056,7 +1070,7 @@ if (!cfg) return; -@@ -2604,30 +2718,19 @@ static inline void init_IO_APIC_traps(vo +@@ -2602,30 +2718,19 @@ static inline void init_IO_APIC_traps(vo struct irq_cfg *cfg; unsigned int irq; @@ -1089,7 +1103,7 @@ legacy_pic->make_irq(irq); else /* Strange. Oh, well.. */ -@@ -2744,8 +2847,6 @@ static int __init disable_timer_pin_setu +@@ -2742,8 +2847,6 @@ static int __init disable_timer_pin_setu } early_param("disable_timer_pin_1", disable_timer_pin_setup); @@ -1098,7 +1112,7 @@ /* * This code may look a bit paranoid, but it's supposed to cooperate with * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ -@@ -2756,7 +2857,7 @@ int timer_through_8259 __initdata; +@@ -2754,7 +2857,7 @@ int timer_through_8259 __initdata; */ static inline void __init check_timer(void) { @@ -1107,7 +1121,7 @@ int node = cpu_to_node(0); int apic1, pin1, apic2, pin2; unsigned long flags; -@@ -2850,7 +2951,6 @@ static inline void __init check_timer(vo +@@ -2848,7 +2951,6 @@ static inline void __init check_timer(vo legacy_pic->unmask(0); if (timer_irq_works()) { apic_printk(APIC_QUIET, KERN_INFO "....... works.\n"); @@ -1115,7 +1129,7 @@ goto out; } /* -@@ -2925,15 +3025,54 @@ out: +@@ -2923,15 +3025,54 @@ out: */ #define PIC_IRQS (1UL << PIC_CASCADE_IR) @@ -1171,7 +1185,7 @@ /* * Set up IO-APIC IRQ routing. */ -@@ -2944,8 +3083,10 @@ void __init setup_IO_APIC(void) +@@ -2942,8 +3083,10 @@ void __init setup_IO_APIC(void) #endif setup_IO_APIC_irqs(); init_IO_APIC_traps(); @@ -1183,7 +1197,7 @@ } /* -@@ -2989,7 +3130,7 @@ static void ioapic_resume(void) +@@ -2987,7 +3130,7 @@ static void ioapic_resume(void) { int ioapic_idx; @@ -1192,7 +1206,7 @@ resume_ioapic_id(ioapic_idx); restore_ioapic_entries(); -@@ -3035,7 +3176,7 @@ int arch_setup_hwirq(unsigned int irq, i +@@ -3033,7 +3176,7 @@ int arch_setup_hwirq(unsigned int irq, i void arch_teardown_hwirq(unsigned int irq) { @@ -1201,7 +1215,7 @@ unsigned long flags; free_remapped_irq(irq); -@@ -3162,7 +3303,7 @@ int setup_msi_irq(struct pci_dev *dev, s +@@ -3160,7 +3303,7 @@ int setup_msi_irq(struct pci_dev *dev, s if (!irq_offset) write_msi_msg(irq, &msg); @@ -1210,7 +1224,7 @@ irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge"); -@@ -3301,7 +3442,7 @@ int default_setup_hpet_msi(unsigned int +@@ -3299,7 +3442,7 @@ int default_setup_hpet_msi(unsigned int hpet_msi_write(irq_get_handler_data(irq), &msg); irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); @@ -1219,7 +1233,7 @@ irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge"); return 0; -@@ -3413,27 +3554,6 @@ io_apic_setup_irq_pin(unsigned int irq, +@@ -3411,27 +3554,6 @@ io_apic_setup_irq_pin(unsigned int irq, return ret; } @@ -1247,7 +1261,7 @@ static int __init io_apic_get_redir_entries(int ioapic) { union IO_APIC_reg_01 reg_01; -@@ -3450,23 +3570,16 @@ static int __init io_apic_get_redir_entr +@@ -3448,23 +3570,16 @@ static int __init io_apic_get_redir_entr return reg_01.bits.entries + 1; } @@ -1277,7 +1291,7 @@ int __init arch_probe_nr_irqs(void) { int nr; -@@ -3474,43 +3587,20 @@ int __init arch_probe_nr_irqs(void) +@@ -3472,43 +3587,20 @@ int __init arch_probe_nr_irqs(void) if (nr_irqs > (NR_VECTORS * nr_cpu_ids)) nr_irqs = NR_VECTORS * nr_cpu_ids; @@ -1324,7 +1338,7 @@ #ifdef CONFIG_X86_32 #ifndef CONFIG_XEN static int __init io_apic_get_unique_id(int ioapic, int apic_id) -@@ -3606,9 +3696,8 @@ static u8 __init io_apic_unique_id(u8 id +@@ -3604,9 +3696,8 @@ static u8 __init io_apic_unique_id(u8 id DECLARE_BITMAP(used, 256); bitmap_zero(used, 256); @@ -1335,7 +1349,7 @@ if (!test_bit(id, used)) return id; return find_first_zero_bit(used, 256); -@@ -3667,14 +3756,13 @@ void __init setup_ioapic_dest(void) +@@ -3665,14 +3756,13 @@ void __init setup_ioapic_dest(void) if (skip_ioapic_setup == 1) return; @@ -1353,7 +1367,7 @@ continue; idata = irq_get_irq_data(irq); -@@ -3697,29 +3785,33 @@ void __init setup_ioapic_dest(void) +@@ -3695,29 +3785,33 @@ void __init setup_ioapic_dest(void) static struct resource *ioapic_resources; @@ -1395,7 +1409,7 @@ } ioapic_resources = res; -@@ -3733,8 +3825,8 @@ void __init native_io_apic_init_mappings +@@ -3731,8 +3825,8 @@ void __init native_io_apic_init_mappings struct resource *ioapic_res; int i; @@ -1406,7 +1420,7 @@ if (smp_found_config) { ioapic_phys = mpc_ioapic_addr(i); #ifdef CONFIG_X86_32 -@@ -3765,8 +3857,6 @@ fake_ioapic_page: +@@ -3763,8 +3857,6 @@ fake_ioapic_page: ioapic_res->end = ioapic_phys + IO_APIC_SLOT_SIZE - 1; ioapic_res++; } @@ -1415,7 +1429,7 @@ } void __init ioapic_insert_resources(void) -@@ -3781,7 +3871,7 @@ void __init ioapic_insert_resources(void +@@ -3779,7 +3871,7 @@ void __init ioapic_insert_resources(void return; } @@ -1424,7 +1438,7 @@ insert_resource(&iomem_resource, r); r++; } -@@ -3790,16 +3880,15 @@ void __init ioapic_insert_resources(void +@@ -3788,16 +3880,15 @@ void __init ioapic_insert_resources(void int mp_find_ioapic(u32 gsi) { @@ -1444,7 +1458,7 @@ return i; } -@@ -3811,7 +3900,7 @@ int mp_find_ioapic_pin(int ioapic, u32 g +@@ -3809,7 +3900,7 @@ int mp_find_ioapic_pin(int ioapic, u32 g { struct mp_ioapic_gsi *gsi_cfg; @@ -1453,7 +1467,7 @@ return -1; gsi_cfg = mp_ioapic_gsi_routing(ioapic); -@@ -3854,7 +3943,8 @@ static __init int bad_ioapic_register(in +@@ -3852,7 +3943,8 @@ static __init int bad_ioapic_register(in return 0; } @@ -1463,7 +1477,7 @@ { int idx = 0; int entries; -@@ -3868,6 +3958,8 @@ void __init mp_register_ioapic(int id, u +@@ -3866,6 +3958,8 @@ void __init mp_register_ioapic(int id, u ioapics[idx].mp_config.type = MP_IOAPIC; ioapics[idx].mp_config.flags = MPC_APIC_USABLE; ioapics[idx].mp_config.apicaddr = address; @@ -1472,7 +1486,7 @@ #ifndef CONFIG_XEN set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); -@@ -3908,6 +4000,87 @@ void __init mp_register_ioapic(int id, u +@@ -3906,6 +4000,87 @@ void __init mp_register_ioapic(int id, u nr_ioapics++; } @@ -2153,7 +2167,7 @@ } static int addr_to_vsyscall_nr(unsigned long addr) ---- head.orig/arch/x86/mm/dump_pagetables-xen.c 2014-10-07 12:22:00.000000000 +0200 +--- head.orig/arch/x86/mm/dump_pagetables-xen.c 2014-06-27 10:54:54.000000000 +0200 +++ head/arch/x86/mm/dump_pagetables-xen.c 2014-10-07 12:21:52.000000000 +0200 @@ -51,7 +51,9 @@ enum address_markers_idx { LOW_KERNEL_NR, @@ -2420,6 +2434,17 @@ static void pirq_disable_irq(struct pci_dev *dev) { if (io_apic_assign_pci_irqs && !mp_should_keep_irq(&dev->dev) && +--- head.orig/arch/x86/pci/pcifront.c 2011-11-18 15:58:33.000000000 +0100 ++++ head/arch/x86/pci/pcifront.c 2014-10-13 12:07:59.000000000 +0200 +@@ -17,7 +17,7 @@ static int pcifront_enable_irq(struct pc + pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); + if (!alloc_irq_and_cfg_at(irq, numa_node_id())) + return -ENOMEM; +- evtchn_register_pirq(irq); ++ evtchn_register_pirq(irq, irq); + dev->irq = irq; + + return 0; --- head.orig/arch/x86/vdso/vdso32-setup-xen.c 2014-06-27 11:26:47.000000000 +0200 +++ head/arch/x86/vdso/vdso32-setup-xen.c 2014-09-02 12:30:19.000000000 +0200 @@ -142,23 +142,6 @@ static __init int ia32_binfmt_init(void) @@ -2447,7 +2472,7 @@ +#endif /* CONFIG_SYSCTL */ #endif /* CONFIG_X86_64 */ ---- head.orig/drivers/crypto/qat/qat_common/qat_algs.c 2014-10-05 21:23:04.000000000 +0200 +--- head.orig/drivers/crypto/qat/qat_common/qat_algs.c 2014-10-13 11:53:25.000000000 +0200 +++ head/drivers/crypto/qat/qat_common/qat_algs.c 2014-09-02 13:22:47.000000000 +0200 @@ -129,7 +129,11 @@ struct qat_alg_session_ctx { @@ -2461,7 +2486,7 @@ } static int qat_get_inter_state_size(enum icp_qat_hw_auth_algo qat_hash_alg) ---- head.orig/drivers/crypto/qat/qat_dh895xcc/adf_drv.c 2014-10-05 21:23:04.000000000 +0200 +--- head.orig/drivers/crypto/qat/qat_dh895xcc/adf_drv.c 2014-10-13 11:53:25.000000000 +0200 +++ head/drivers/crypto/qat/qat_dh895xcc/adf_drv.c 2014-09-02 13:23:12.000000000 +0200 @@ -121,6 +121,7 @@ static void adf_cleanup_accel(struct adf @@ -2665,6 +2690,25 @@ xen-evtchn-y := evtchn.o xen-gntdev-y := gntdev.o xen-gntalloc-y := gntalloc.o +--- head.orig/drivers/xen/core/evtchn.c 2014-05-13 10:03:39.000000000 +0200 ++++ head/drivers/xen/core/evtchn.c 2014-10-13 12:08:57.000000000 +0200 +@@ -1362,14 +1362,14 @@ int assign_irq_vector(int irq, struct ir + #define identity_mapped_irq(irq) (1) + #endif + +-void evtchn_register_pirq(int irq) ++void evtchn_register_pirq(int irq, unsigned int xen_pirq) + { + struct irq_cfg *cfg = irq_cfg(irq); + + BUG_ON(irq < PIRQ_BASE || irq - PIRQ_BASE >= nr_pirqs); + if (identity_mapped_irq(irq) || type_from_irq_cfg(cfg) != IRQT_UNBOUND) + return; +- cfg->info = mk_irq_info(IRQT_PIRQ, irq, 0); ++ cfg->info = mk_irq_info(IRQT_PIRQ, xen_pirq, 0); + irq_set_chip_and_handler_name(irq, &pirq_chip, handle_fasteoi_irq, + "fasteoi"); + } --- head.orig/drivers/xen/netback/interface.c 2014-06-27 12:29:09.000000000 +0200 +++ head/drivers/xen/netback/interface.c 2014-09-02 13:51:04.000000000 +0200 @@ -194,7 +194,8 @@ netif_t *netif_alloc(struct device *pare @@ -2760,6 +2804,17 @@ goto out; } +--- head.orig/include/xen/evtchn.h 2014-02-20 13:52:59.000000000 +0100 ++++ head/include/xen/evtchn.h 2014-10-13 12:08:44.000000000 +0200 +@@ -117,7 +117,7 @@ void irq_resume(void); + asmlinkage void evtchn_do_upcall(struct pt_regs *regs); + + /* Mark a PIRQ as unavailable for dynamic allocation. */ +-void evtchn_register_pirq(int irq); ++void evtchn_register_pirq(int irq, unsigned int xen_pirq); + /* Map a Xen-supplied PIRQ to a dynamically allocated one. */ + int evtchn_map_pirq(int irq, unsigned int xen_pirq, unsigned int nr); + /* Look up a Xen-supplied PIRQ for a dynamically allocated one. */ --- head.orig/include/xen/interface/platform.h 2013-06-20 15:29:44.000000000 +0200 +++ head/include/xen/interface/platform.h 2014-09-02 12:30:19.000000000 +0200 @@ -207,6 +207,7 @@ struct xenpf_efi_runtime_call { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.17.1 new/patches.xen/xen3-patch-3.17.1 --- old/patches.xen/xen3-patch-3.17.1 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.xen/xen3-patch-3.17.1 2014-10-17 16:23:47.000000000 +0200 @@ -0,0 +1,23 @@ +From: Jiri Slaby <[email protected]> +Subject: Linux 3.17.1 +Patch-mainline: 3.17.1 + +Signed-off-by: Jiri Slaby <[email protected]> +Automatically created from "patches.kernel.org/patch-3.17.1" by xen-port-patches.py + +--- head.orig/arch/x86/include/asm/irq_work.h 2014-10-17 13:49:30.000000000 +0200 ++++ head/arch/x86/include/asm/irq_work.h 2014-10-17 14:18:08.000000000 +0200 +@@ -5,7 +5,13 @@ + + static inline bool arch_irq_work_has_interrupt(void) + { ++#ifndef CONFIG_XEN + return cpu_has_apic; ++#elif defined(CONFIG_SMP) ++ return 1; ++#else ++ return 0; ++#endif + } + + #endif /* _ASM_IRQ_WORK_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.5 new/patches.xen/xen3-patch-3.5 --- old/patches.xen/xen3-patch-3.5 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.5 2014-10-17 16:23:47.000000000 +0200 @@ -71,7 +71,7 @@ orl $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET) testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) jnz cstar_tracesys ---- head.orig/arch/x86/include/asm/io_apic.h 2014-09-16 08:43:48.000000000 +0200 +--- head.orig/arch/x86/include/asm/io_apic.h 2014-10-13 11:53:33.000000000 +0200 +++ head/arch/x86/include/asm/io_apic.h 2014-09-16 09:37:58.000000000 +0200 @@ -200,6 +200,7 @@ extern void mp_save_irq(struct mpc_intsr @@ -524,7 +524,7 @@ #endif --- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2014-09-03 08:51:34.000000000 +0200 -+++ head/arch/x86/kernel/apic/io_apic-xen.c 2012-06-15 13:23:22.000000000 +0200 ++++ head/arch/x86/kernel/apic/io_apic-xen.c 2014-10-13 12:04:43.000000000 +0200 @@ -31,6 +31,7 @@ #include <linux/acpi.h> #include <linux/module.h> @@ -928,11 +928,10 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void) { unsigned vector, me; -@@ -2635,6 +2453,31 @@ static void ack_apic_edge(struct irq_dat +@@ -2635,6 +2453,29 @@ static void ack_apic_edge(struct irq_dat atomic_t irq_mis_count; #ifdef CONFIG_GENERIC_PENDING_IRQ -+#ifndef CONFIG_XEN +static bool io_apic_level_ack_pending(struct irq_cfg *cfg) +{ + struct irq_pin_list *entry; @@ -955,12 +954,11 @@ + + return false; +} -+#endif + static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg) { /* If we are moving the irq we need to mask it */ -@@ -2782,7 +2625,7 @@ static void irq_remap_modify_chip_defaul +@@ -2782,7 +2623,7 @@ static void irq_remap_modify_chip_defaul chip->irq_eoi = ir_ack_apic_level; #ifdef CONFIG_SMP @@ -969,7 +967,7 @@ #endif } #endif /* CONFIG_IRQ_REMAP */ -@@ -3001,7 +2844,7 @@ static inline void __init check_timer(vo +@@ -3001,7 +2842,7 @@ static inline void __init check_timer(vo * 8259A. */ if (pin1 == -1) { @@ -978,7 +976,7 @@ panic("BIOS bug: timer not connected to IO-APIC"); pin1 = pin2; apic1 = apic2; -@@ -3034,7 +2877,7 @@ static inline void __init check_timer(vo +@@ -3034,7 +2875,7 @@ static inline void __init check_timer(vo clear_IO_APIC_pin(0, pin1); goto out; } @@ -987,7 +985,7 @@ panic("timer doesn't work through Interrupt-remapped IO-APIC"); local_irq_disable(); clear_IO_APIC_pin(apic1, pin1); -@@ -3272,7 +3115,7 @@ void destroy_irq(unsigned int irq) +@@ -3272,7 +3113,7 @@ void destroy_irq(unsigned int irq) irq_set_status_flags(irq, IRQ_NOREQUEST|IRQ_NOPROBE); if (irq_remapped(cfg)) @@ -996,7 +994,7 @@ raw_spin_lock_irqsave(&vector_lock, flags); __clear_irq_vector(irq, cfg); raw_spin_unlock_irqrestore(&vector_lock, flags); -@@ -3302,54 +3145,34 @@ static int msi_compose_msg(struct pci_de +@@ -3302,54 +3143,34 @@ static int msi_compose_msg(struct pci_de dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); if (irq_remapped(cfg)) { @@ -1076,7 +1074,7 @@ return err; } -@@ -3392,33 +3215,6 @@ static struct irq_chip msi_chip = { +@@ -3392,33 +3213,6 @@ static struct irq_chip msi_chip = { .irq_retrigger = ioapic_retrigger_irq, }; @@ -1110,7 +1108,7 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq) { struct irq_chip *chip = &msi_chip; -@@ -3449,7 +3245,6 @@ int native_setup_msi_irqs(struct pci_dev +@@ -3449,7 +3243,6 @@ int native_setup_msi_irqs(struct pci_dev int node, ret, sub_handle, index = 0; unsigned int irq, irq_want; struct msi_desc *msidesc; @@ -1118,7 +1116,7 @@ /* x86 doesn't support multiple MSI yet */ if (type == PCI_CAP_ID_MSI && nvec > 1) -@@ -3463,7 +3258,7 @@ int native_setup_msi_irqs(struct pci_dev +@@ -3463,7 +3256,7 @@ int native_setup_msi_irqs(struct pci_dev if (irq == 0) return -1; irq_want = irq + 1; @@ -1127,7 +1125,7 @@ goto no_ir; if (!sub_handle) { -@@ -3471,23 +3266,16 @@ int native_setup_msi_irqs(struct pci_dev +@@ -3471,23 +3264,16 @@ int native_setup_msi_irqs(struct pci_dev * allocate the consecutive block of IRTE's * for 'nvec' */ @@ -1155,7 +1153,7 @@ } no_ir: ret = setup_msi_irq(dev, msidesc, irq); -@@ -3605,15 +3393,8 @@ int arch_setup_hpet_msi(unsigned int irq +@@ -3605,15 +3391,8 @@ int arch_setup_hpet_msi(unsigned int irq struct msi_msg msg; int ret; @@ -1173,7 +1171,7 @@ return -1; } -@@ -4006,8 +3787,8 @@ void __init setup_ioapic_dest(void) +@@ -4006,8 +3785,8 @@ void __init setup_ioapic_dest(void) else mask = apic->target_cpus(); @@ -1184,7 +1182,7 @@ else ioapic_set_affinity(idata, mask, false); } -@@ -4049,12 +3830,7 @@ static struct resource * __init ioapic_s +@@ -4049,12 +3828,7 @@ static struct resource * __init ioapic_s return res; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.6 new/patches.xen/xen3-patch-3.6 --- old/patches.xen/xen3-patch-3.6 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.6 2014-10-17 16:23:47.000000000 +0200 @@ -208,7 +208,7 @@ -} - #endif /* _ASM_X86_TLBFLUSH_H */ ---- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2012-06-15 13:23:22.000000000 +0200 +--- head.orig/arch/x86/kernel/apic/io_apic-xen.c 2014-10-13 12:04:43.000000000 +0200 +++ head/arch/x86/kernel/apic/io_apic-xen.c 2012-09-05 15:48:34.000000000 +0200 @@ -498,8 +498,8 @@ static int __add_pin_to_irq_node(struct @@ -688,7 +688,7 @@ static void ack_apic_edge(struct irq_data *data) { irq_complete_move(data->chip_data); -@@ -2624,9 +2661,7 @@ static void irq_remap_modify_chip_defaul +@@ -2622,9 +2659,7 @@ static void irq_remap_modify_chip_defaul chip->irq_ack = ir_ack_apic_edge; chip->irq_eoi = ir_ack_apic_level; @@ -698,7 +698,7 @@ } #endif /* CONFIG_IRQ_REMAP */ -@@ -2637,9 +2672,7 @@ static struct irq_chip ioapic_chip __rea +@@ -2635,9 +2670,7 @@ static struct irq_chip ioapic_chip __rea .irq_unmask = unmask_ioapic_irq, .irq_ack = ack_apic_edge, .irq_eoi = ack_apic_level, @@ -708,7 +708,7 @@ .irq_retrigger = ioapic_retrigger_irq, }; #endif /* !CONFIG_XEN */ -@@ -3142,7 +3175,10 @@ static int msi_compose_msg(struct pci_de +@@ -3140,7 +3173,10 @@ static int msi_compose_msg(struct pci_de if (err) return err; @@ -720,7 +720,7 @@ if (irq_remapped(cfg)) { compose_remapped_msi_msg(pdev, irq, dest, msg, hpet_id); -@@ -3176,7 +3212,6 @@ static int msi_compose_msg(struct pci_de +@@ -3174,7 +3210,6 @@ static int msi_compose_msg(struct pci_de return err; } @@ -728,7 +728,7 @@ static int msi_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) { -@@ -3196,9 +3231,8 @@ msi_set_affinity(struct irq_data *data, +@@ -3194,9 +3229,8 @@ msi_set_affinity(struct irq_data *data, __write_msi_msg(data->msi_desc, &msg); @@ -739,7 +739,7 @@ /* * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices, -@@ -3209,9 +3243,7 @@ static struct irq_chip msi_chip = { +@@ -3207,9 +3241,7 @@ static struct irq_chip msi_chip = { .irq_unmask = unmask_msi_irq, .irq_mask = mask_msi_irq, .irq_ack = ack_apic_edge, @@ -749,7 +749,7 @@ .irq_retrigger = ioapic_retrigger_irq, }; -@@ -3296,7 +3328,6 @@ void native_teardown_msi_irq(unsigned in +@@ -3294,7 +3326,6 @@ void native_teardown_msi_irq(unsigned in } #ifdef CONFIG_DMAR_TABLE @@ -757,7 +757,7 @@ static int dmar_msi_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) -@@ -3318,19 +3349,15 @@ dmar_msi_set_affinity(struct irq_data *d +@@ -3316,19 +3347,15 @@ dmar_msi_set_affinity(struct irq_data *d dmar_msi_write(irq, &msg); @@ -778,7 +778,7 @@ .irq_retrigger = ioapic_retrigger_irq, }; -@@ -3351,7 +3378,6 @@ int arch_setup_dmar_msi(unsigned int irq +@@ -3349,7 +3376,6 @@ int arch_setup_dmar_msi(unsigned int irq #ifdef CONFIG_HPET_TIMER @@ -786,7 +786,7 @@ static int hpet_msi_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) { -@@ -3371,19 +3397,15 @@ static int hpet_msi_set_affinity(struct +@@ -3369,19 +3395,15 @@ static int hpet_msi_set_affinity(struct hpet_msi_write(data->handler_data, &msg); @@ -807,7 +807,7 @@ .irq_retrigger = ioapic_retrigger_irq, }; -@@ -3418,8 +3440,6 @@ int arch_setup_hpet_msi(unsigned int irq +@@ -3416,8 +3438,6 @@ int arch_setup_hpet_msi(unsigned int irq */ #ifdef CONFIG_HT_IRQ @@ -816,7 +816,7 @@ static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector) { struct ht_irq_msg msg; -@@ -3444,25 +3464,23 @@ ht_set_affinity(struct irq_data *data, c +@@ -3442,25 +3462,23 @@ ht_set_affinity(struct irq_data *data, c return -1; target_ht_irq(data->irq, dest, cfg->vector); @@ -845,7 +845,7 @@ int err; if (disable_apic) -@@ -3470,36 +3488,37 @@ int arch_setup_ht_irq(unsigned int irq, +@@ -3468,36 +3486,37 @@ int arch_setup_ht_irq(unsigned int irq, cfg = irq_cfg(irq); err = assign_irq_vector(irq, cfg, apic->target_cpus()); @@ -910,7 +910,7 @@ } #endif /* CONFIG_HT_IRQ */ -@@ -3677,7 +3696,8 @@ static int __init io_apic_get_unique_id( +@@ -3675,7 +3694,8 @@ static int __init io_apic_get_unique_id( /* Sanity check */ if (reg_00.bits.ID != apic_id) { @@ -1781,7 +1781,7 @@ typedef struct xenpf_cpu_ol xenpf_cpu_ol_t; DEFINE_XEN_GUEST_HANDLE(xenpf_cpu_ol_t); ---- head.orig/include/xen/interface/xen-mca.h 2014-09-03 08:43:19.000000000 +0200 +--- head.orig/include/xen/interface/xen-mca.h 2014-10-13 11:53:33.000000000 +0200 +++ head/include/xen/interface/xen-mca.h 2012-08-21 17:41:59.000000000 +0200 @@ -272,7 +272,7 @@ struct xen_mc_fetch { uint64_t fetch_id; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.8 new/patches.xen/xen3-patch-3.8 --- old/patches.xen/xen3-patch-3.8 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.8 2014-10-17 16:23:47.000000000 +0200 @@ -7,7 +7,7 @@ Automatically created from "patch-3.8" by xen-port-patches.py Acked-by: [email protected] ---- head.orig/Documentation/filesystems/proc.txt 2014-10-05 21:23:04.000000000 +0200 +--- head.orig/Documentation/filesystems/proc.txt 2014-10-13 11:53:31.000000000 +0200 +++ head/Documentation/filesystems/proc.txt 2013-12-03 08:31:16.000000000 +0100 @@ -464,6 +464,7 @@ manner. The codes are the following: mm - mixed map area @@ -351,7 +351,7 @@ raw_spin_unlock_irqrestore(&vector_lock, flags); return 1; -@@ -3419,8 +3407,9 @@ int arch_setup_hpet_msi(unsigned int irq +@@ -3417,8 +3405,9 @@ int arch_setup_hpet_msi(unsigned int irq int ret; if (irq_remapping_enabled) { @@ -811,7 +811,7 @@ } #endif } ---- head.orig/arch/x86/kernel/topology.c 2014-01-20 03:40:07.000000000 +0100 +--- head.orig/arch/x86/kernel/topology.c 2014-10-13 11:53:31.000000000 +0200 +++ head/arch/x86/kernel/topology.c 2013-12-03 08:31:51.000000000 +0100 @@ -37,7 +37,9 @@ static DEFINE_PER_CPU(struct x86_cpu, cp @@ -1189,7 +1189,7 @@ } } ---- head.orig/arch/x86/pci/common.c 2014-06-08 20:19:54.000000000 +0200 +--- head.orig/arch/x86/pci/common.c 2014-10-13 11:53:31.000000000 +0200 +++ head/arch/x86/pci/common.c 2013-06-20 15:31:28.000000000 +0200 @@ -625,6 +625,7 @@ unsigned int pcibios_assign_all_busses(v @@ -1643,7 +1643,7 @@ #endif xenbus_init(void) { ---- head.orig/fs/proc/task_mmu.c 2014-10-07 11:50:24.000000000 +0200 +--- head.orig/fs/proc/task_mmu.c 2014-10-13 11:53:31.000000000 +0200 +++ head/fs/proc/task_mmu.c 2013-12-03 08:33:41.000000000 +0100 @@ -574,8 +574,12 @@ static void show_smap_vma_flags(struct s [ilog2(VM_SOFTDIRTY)] = "sd", @@ -1658,7 +1658,7 @@ [ilog2(VM_MERGEABLE)] = "mg", }; size_t i; ---- head.orig/include/linux/clocksource.h 2014-10-05 21:23:04.000000000 +0200 +--- head.orig/include/linux/clocksource.h 2014-10-13 11:53:31.000000000 +0200 +++ head/include/linux/clocksource.h 2013-05-14 08:46:48.000000000 +0200 @@ -16,7 +16,9 @@ #include <linux/timer.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.xen/xen3-patch-3.9 new/patches.xen/xen3-patch-3.9 --- old/patches.xen/xen3-patch-3.9 2014-10-07 14:29:50.000000000 +0200 +++ new/patches.xen/xen3-patch-3.9 2014-10-17 16:23:47.000000000 +0200 @@ -46,7 +46,7 @@ ALIGN GLOBAL(stub32_clone) ---- head.orig/arch/x86/include/asm/efi.h 2014-08-28 14:30:49.000000000 +0200 +--- head.orig/arch/x86/include/asm/efi.h 2014-10-13 11:53:30.000000000 +0200 +++ head/arch/x86/include/asm/efi.h 2014-04-30 11:28:12.000000000 +0200 @@ -121,7 +121,11 @@ extern u64 efi_setup; @@ -77,7 +77,7 @@ static inline unsigned long __phys_addr_nodebug(unsigned long x) { ---- head.orig/arch/x86/include/asm/processor.h 2014-08-28 14:30:49.000000000 +0200 +--- head.orig/arch/x86/include/asm/processor.h 2014-10-13 11:53:30.000000000 +0200 +++ head/arch/x86/include/asm/processor.h 2013-12-03 08:34:25.000000000 +0100 @@ -974,7 +974,7 @@ extern unsigned long arch_align_stack(un extern void free_init_pages(char *what, unsigned long begin, unsigned long end); @@ -721,7 +721,7 @@ { unsigned int dest, irq = data->irq; unsigned long flags; -@@ -2629,33 +2600,6 @@ static void ack_apic_level(struct irq_da +@@ -2627,33 +2598,6 @@ static void ack_apic_level(struct irq_da ioapic_irqd_unmask(data, cfg, masked); } @@ -755,7 +755,7 @@ static struct irq_chip ioapic_chip __read_mostly = { .name = "IO-APIC", .irq_startup = startup_ioapic_irq, -@@ -2663,7 +2607,7 @@ static struct irq_chip ioapic_chip __rea +@@ -2661,7 +2605,7 @@ static struct irq_chip ioapic_chip __rea .irq_unmask = unmask_ioapic_irq, .irq_ack = ack_apic_edge, .irq_eoi = ack_apic_level, @@ -764,7 +764,7 @@ .irq_retrigger = ioapic_retrigger_irq, }; #endif /* !CONFIG_XEN */ -@@ -2868,8 +2812,7 @@ static inline void __init check_timer(vo +@@ -2866,8 +2810,7 @@ static inline void __init check_timer(vo * 8259A. */ if (pin1 == -1) { @@ -774,7 +774,7 @@ pin1 = pin2; apic1 = apic2; no_pin1 = 1; -@@ -2901,8 +2844,7 @@ static inline void __init check_timer(vo +@@ -2899,8 +2842,7 @@ static inline void __init check_timer(vo clear_IO_APIC_pin(0, pin1); goto out; } @@ -784,7 +784,7 @@ local_irq_disable(); clear_IO_APIC_pin(apic1, pin1); if (!no_pin1) -@@ -3083,37 +3025,58 @@ device_initcall(ioapic_init_ops); +@@ -3081,37 +3023,58 @@ device_initcall(ioapic_init_ops); /* * Dynamic irq allocate and deallocation */ @@ -861,7 +861,7 @@ } int create_irq(void) -@@ -3138,49 +3101,35 @@ void destroy_irq(unsigned int irq) +@@ -3136,49 +3099,35 @@ void destroy_irq(unsigned int irq) irq_set_status_flags(irq, IRQ_NOREQUEST|IRQ_NOPROBE); @@ -927,7 +927,7 @@ msg->address_lo = MSI_ADDR_BASE_LO | -@@ -3199,8 +3148,32 @@ static int msi_compose_msg(struct pci_de +@@ -3197,8 +3146,32 @@ static int msi_compose_msg(struct pci_de MSI_DATA_DELIVERY_FIXED: MSI_DATA_DELIVERY_LOWPRI) | MSI_DATA_VECTOR(cfg->vector); @@ -961,7 +961,7 @@ } static int -@@ -3238,23 +3211,28 @@ static struct irq_chip msi_chip = { +@@ -3236,23 +3209,28 @@ static struct irq_chip msi_chip = { .irq_retrigger = ioapic_retrigger_irq, }; @@ -997,7 +997,7 @@ irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge"); -@@ -3265,46 +3243,26 @@ static int setup_msi_irq(struct pci_dev +@@ -3263,46 +3241,26 @@ static int setup_msi_irq(struct pci_dev int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) { @@ -1049,7 +1049,7 @@ } return 0; -@@ -3400,26 +3358,19 @@ static struct irq_chip hpet_msi_type = { +@@ -3398,26 +3356,19 @@ static struct irq_chip hpet_msi_type = { .irq_retrigger = ioapic_retrigger_irq, }; @@ -1078,7 +1078,7 @@ irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge"); return 0; -@@ -3427,6 +3378,7 @@ int arch_setup_hpet_msi(unsigned int irq +@@ -3425,6 +3376,7 @@ int arch_setup_hpet_msi(unsigned int irq #endif #endif /* CONFIG_PCI_MSI */ @@ -1086,7 +1086,7 @@ /* * Hypertransport interrupt support */ -@@ -3799,10 +3751,7 @@ void __init setup_ioapic_dest(void) +@@ -3797,10 +3749,7 @@ void __init setup_ioapic_dest(void) else mask = apic->target_cpus(); @@ -1642,7 +1642,7 @@ - start_kernel(); } ---- head.orig/arch/x86/kernel/head_64.S 2014-03-11 09:58:27.000000000 +0100 +--- head.orig/arch/x86/kernel/head_64.S 2014-10-13 11:53:30.000000000 +0200 +++ head/arch/x86/kernel/head_64.S 2013-06-04 13:59:45.000000000 +0200 @@ -469,7 +469,7 @@ NEXT_PAGE(early_dynamic_pgts) @@ -1692,7 +1692,7 @@ { struct thread_struct *t = ¤t->thread; unsigned int old = t->iopl >> 12; ---- head.orig/arch/x86/kernel/process.c 2014-08-28 14:30:50.000000000 +0200 +--- head.orig/arch/x86/kernel/process.c 2014-10-13 11:53:30.000000000 +0200 +++ head/arch/x86/kernel/process.c 2013-07-02 09:49:24.000000000 +0200 @@ -315,7 +315,7 @@ void default_idle(void) EXPORT_SYMBOL(default_idle); @@ -4572,7 +4572,7 @@ void __init early_iounmap(void __iomem *addr, unsigned long size) { unsigned long virt_addr; ---- head.orig/arch/x86/mm/mm_internal.h 2013-04-29 02:36:01.000000000 +0200 +--- head.orig/arch/x86/mm/mm_internal.h 2014-10-13 11:53:30.000000000 +0200 +++ head/arch/x86/mm/mm_internal.h 2014-02-28 15:02:10.000000000 +0100 @@ -12,8 +12,15 @@ void early_ioremap_page_table_range_init unsigned long kernel_physical_mapping_init(unsigned long start, @@ -5045,7 +5045,7 @@ { 0x36, ANY, 100000 }, /* Atom Cedar Trail/Cedarview (N2xxx, D2xxx) */ }; ---- head.orig/drivers/misc/vmw_vmci/Kconfig 2013-07-01 00:13:29.000000000 +0200 +--- head.orig/drivers/misc/vmw_vmci/Kconfig 2014-10-13 11:53:30.000000000 +0200 +++ head/drivers/misc/vmw_vmci/Kconfig 2013-06-04 13:59:32.000000000 +0200 @@ -4,7 +4,7 @@ @@ -5056,7 +5056,7 @@ help This is VMware's Virtual Machine Communication Interface. It enables high-speed communication between host and guest in a virtual ---- head.orig/drivers/pci/msi-xen.c 2014-08-29 18:20:18.000000000 +0200 +--- head.orig/drivers/pci/msi-xen.c 2014-10-06 13:19:54.000000000 +0200 +++ head/drivers/pci/msi-xen.c 2014-08-29 18:20:52.000000000 +0200 @@ -28,12 +28,13 @@ #include "pci.h" @@ -5326,7 +5326,7 @@ } /** ---- head.orig/drivers/thermal/Kconfig 2014-08-28 14:31:20.000000000 +0200 +--- head.orig/drivers/thermal/Kconfig 2014-10-13 11:53:30.000000000 +0200 +++ head/drivers/thermal/Kconfig 2013-09-26 13:24:10.000000000 +0200 @@ -189,7 +189,7 @@ config DB8500_CPUFREQ_COOLING config INTEL_POWERCLAMP ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:35.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:35.000000000 +0100 @@ -28,13 +28,13 @@ # Send separate patches upstream if you find a problem... ######################################################## patches.kernel.org/patch-3.17.1 + patches.kernel.org/patch-3.17.1-2 ######################################################## # Build fixes that apply to the vanilla kernel too. # Patches in patches.rpmify are applied to both -vanilla # and patched flavors. ######################################################## - patches.rpmify/chipidea-clean-up-dependencies patches.rpmify/lustre-lloop-dont-change-logical-size ######################################################## @@ -153,7 +153,6 @@ ######################################################## # ARM ######################################################## - patches.arch/cubox-configuration.patch patches.arch/arm-OMAP-Fix-missing-usb.h-include.patch # Compile fix for Xen on ARM with our Xen patches applied @@ -249,7 +248,6 @@ ######################################################## patches.suse/btrfs-use-correct-device-for-maps.patch patches.suse/btrfs-check-index-in-extent_buffer_page - patches.fixes/btrfs-0001-revert-race-free-update-of-commit-root-for-ro-.patch ######################################################## # Reiserfs Patches @@ -342,6 +340,7 @@ ######################################################## # video4linux ######################################################## + patches.fixes/media-uvc-Fix-destruction-order-in-uvc_delete ######################################################## # Network @@ -352,6 +351,7 @@ # Wireless Networking ######################################################## patches.suse/b43-missing-firmware-info.patch + patches.fixes/iwlwifi-dvm-drop-non-VO-frames-when-flushing ######################################################## # ISDN @@ -383,7 +383,9 @@ ######################################################## # patches.suse/SUSE-bootsplash # patches.suse/SUSE-bootsplash-mgadrmfb-workaround - patches.fixes/input-add-acer-aspire-5710-to-nomux.patch + patches.drivers/Input-psmouse-add-psmouse_matches_pnp_id-helper-func.patch + patches.drivers/Input-psmouse-add-support-for-detecting-FocalTech-PS.patch + patches.drivers/Input-synaptics-add-min-max-quirk-for-Lenovo-T440s ########################################################## # Sound @@ -400,6 +402,8 @@ # Needs updating WRT d27769ec (block: add GENHD_FL_NO_PART_SCAN) +hare patches.suse/no-partition-scan + patches.drivers/quirk-for-Lenovo-Yoga-3-no-rfkill-switch + ######################################################## # Other drivers we have added to the tree ######################################################## @@ -577,6 +581,7 @@ patches.xen/xen3-patch-3.15 patches.xen/xen3-patch-3.16 patches.xen/xen3-patch-3.17 + patches.xen/xen3-patch-3.17.1 # ports of other patches patches.xen/xen3-stack-unwind ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.mZtszF/_old 2014-11-11 09:59:35.000000000 +0100 +++ /var/tmp/diff_new_pack.mZtszF/_new 2014-11-11 09:59:35.000000000 +0100 @@ -1,3 +1,3 @@ -2014-10-19 01:36:23 +0200 -GIT Revision: 5c4d099465293cd2ef36a6336a5bea79c4e919ef +2014-11-07 16:18:21 +0100 +GIT Revision: bf631743e009966235fe9ce6a6e3d30b3c0a1438 GIT Branch: stable -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
