[kernel/f20] Fix Brainboxes Express Cards (rhbz 1071914)

Josh Boyer jwboyer at fedoraproject.org
Mon Apr 21 15:13:27 UTC 2014


commit 5a2828b4c2f95749a551e92bf5f33fb951237f2d
Author: Josh Boyer <jwboyer at fedoraproject.org>
Date:   Mon Apr 21 11:09:47 2014 -0400

    Fix Brainboxes Express Cards (rhbz 1071914)
    
    - Fix build issues with CONFIG_DEBUG_VM set (rhbz 1074710)
    - Fix perf build failures

 ...ftdi_sio-add-id-for-Brainboxes-serial-car.patch |  112 ++++++++++++++++++++
 kernel.spec                                        |   29 ++++-
 ...oc.c-change-mm-debug-routines-back-to-EXP.patch |   61 +++++++++++
 3 files changed, 196 insertions(+), 6 deletions(-)
---
diff --git a/USB-serial-ftdi_sio-add-id-for-Brainboxes-serial-car.patch b/USB-serial-ftdi_sio-add-id-for-Brainboxes-serial-car.patch
new file mode 100644
index 0000000..e144c69
--- /dev/null
+++ b/USB-serial-ftdi_sio-add-id-for-Brainboxes-serial-car.patch
@@ -0,0 +1,112 @@
+Bugzilla: 1071914
+Upstream-status: 3.15
+
+From efe26e16b1d93ac0085e69178cc18811629e8fc5 Mon Sep 17 00:00:00 2001
+From: Michele Baldessari <michele at acksyn.org>
+Date: Mon, 31 Mar 2014 10:51:00 +0200
+Subject: [PATCH] USB: serial: ftdi_sio: add id for Brainboxes serial cards
+
+Custom VID/PIDs for Brainboxes cards as reported in
+https://bugzilla.redhat.com/show_bug.cgi?id=1071914
+
+Signed-off-by: Michele Baldessari <michele at acksyn.org>
+Cc: stable <stable at vger.kernel.org>
+Signed-off-by: Johan Hovold <jhovold at gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/serial/ftdi_sio.c     | 33 +++++++++++++++++++++++++++++++++
+ drivers/usb/serial/ftdi_sio_ids.h | 37 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 70 insertions(+)
+
+diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
+index 44ab12986805..7c6e1dedeb06 100644
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -909,6 +909,39 @@ static const struct usb_device_id id_table_combined[] = {
+ 	{ USB_DEVICE(FTDI_VID, FTDI_Z3X_PID) },
+ 	/* Cressi Devices */
+ 	{ USB_DEVICE(FTDI_VID, FTDI_CRESSI_PID) },
++	/* Brainboxes Devices */
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_001_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_012_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_023_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_034_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_101_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_3_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_4_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_5_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_6_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_7_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_8_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_257_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_3_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_4_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_313_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_324_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_357_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_3_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_701_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_701_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_1_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) },
++	{ USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) },
+ 	{ }					/* Terminating entry */
+ };
+ 
+diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
+index e599fbfcde5f..993c93df6874 100644
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -1326,3 +1326,40 @@
+  * Manufacturer: Cressi
+  */
+ #define FTDI_CRESSI_PID		0x87d0
++
++/*
++ * Brainboxes devices
++ */
++#define BRAINBOXES_VID			0x05d1
++#define BRAINBOXES_VX_001_PID		0x1001 /* VX-001 ExpressCard 1 Port RS232 */
++#define BRAINBOXES_VX_012_PID		0x1002 /* VX-012 ExpressCard 2 Port RS232 */
++#define BRAINBOXES_VX_023_PID		0x1003 /* VX-023 ExpressCard 1 Port RS422/485 */
++#define BRAINBOXES_VX_034_PID		0x1004 /* VX-034 ExpressCard 2 Port RS422/485 */
++#define BRAINBOXES_US_101_PID		0x1011 /* US-101 1xRS232 */
++#define BRAINBOXES_US_324_PID		0x1013 /* US-324 1xRS422/485 1Mbaud */
++#define BRAINBOXES_US_606_1_PID		0x2001 /* US-606 6 Port RS232 Serial Port 1 and 2 */
++#define BRAINBOXES_US_606_2_PID		0x2002 /* US-606 6 Port RS232 Serial Port 3 and 4 */
++#define BRAINBOXES_US_606_3_PID		0x2003 /* US-606 6 Port RS232 Serial Port 4 and 6 */
++#define BRAINBOXES_US_701_1_PID		0x2011 /* US-701 4xRS232 1Mbaud Port 1 and 2 */
++#define BRAINBOXES_US_701_2_PID		0x2012 /* US-701 4xRS422 1Mbaud Port 3 and 4 */
++#define BRAINBOXES_US_279_1_PID		0x2021 /* US-279 8xRS422 1Mbaud Port 1 and 2 */
++#define BRAINBOXES_US_279_2_PID		0x2022 /* US-279 8xRS422 1Mbaud Port 3 and 4 */
++#define BRAINBOXES_US_279_3_PID		0x2023 /* US-279 8xRS422 1Mbaud Port 5 and 6 */
++#define BRAINBOXES_US_279_4_PID		0x2024 /* US-279 8xRS422 1Mbaud Port 7 and 8 */
++#define BRAINBOXES_US_346_1_PID		0x3011 /* US-346 4xRS422/485 1Mbaud Port 1 and 2 */
++#define BRAINBOXES_US_346_2_PID		0x3012 /* US-346 4xRS422/485 1Mbaud Port 3 and 4 */
++#define BRAINBOXES_US_257_PID		0x5001 /* US-257 2xRS232 1Mbaud */
++#define BRAINBOXES_US_313_PID		0x6001 /* US-313 2xRS422/485 1Mbaud */
++#define BRAINBOXES_US_357_PID		0x7001 /* US_357 1xRS232/422/485 */
++#define BRAINBOXES_US_842_1_PID		0x8001 /* US-842 8xRS422/485 1Mbaud Port 1 and 2 */
++#define BRAINBOXES_US_842_2_PID		0x8002 /* US-842 8xRS422/485 1Mbaud Port 3 and 4 */
++#define BRAINBOXES_US_842_3_PID		0x8003 /* US-842 8xRS422/485 1Mbaud Port 5 and 6 */
++#define BRAINBOXES_US_842_4_PID		0x8004 /* US-842 8xRS422/485 1Mbaud Port 7 and 8 */
++#define BRAINBOXES_US_160_1_PID		0x9001 /* US-160 16xRS232 1Mbaud Port 1 and 2 */
++#define BRAINBOXES_US_160_2_PID		0x9002 /* US-160 16xRS232 1Mbaud Port 3 and 4 */
++#define BRAINBOXES_US_160_3_PID		0x9003 /* US-160 16xRS232 1Mbaud Port 5 and 6 */
++#define BRAINBOXES_US_160_4_PID		0x9004 /* US-160 16xRS232 1Mbaud Port 7 and 8 */
++#define BRAINBOXES_US_160_5_PID		0x9005 /* US-160 16xRS232 1Mbaud Port 9 and 10 */
++#define BRAINBOXES_US_160_6_PID		0x9006 /* US-160 16xRS232 1Mbaud Port 11 and 12 */
++#define BRAINBOXES_US_160_7_PID		0x9007 /* US-160 16xRS232 1Mbaud Port 13 and 14 */
++#define BRAINBOXES_US_160_8_PID		0x9008 /* US-160 16xRS232 1Mbaud Port 15 and 16 */
+-- 
+1.9.0
+
diff --git a/kernel.spec b/kernel.spec
index 5397bf3..fabf169 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -715,9 +715,6 @@ Patch25044: iwlwifi-dvm-take-mutex-when-sending-SYNC-BT-config-command.patch
 #CVE-2014-0155 rhbz 1081589 1085016
 Patch25036: KVM-ioapic-fix-assignment-of-ioapic-rtc_status-pending_eoi.patch
 
-#rhbz 1048314
-Patch25062: 0001-HID-rmi-introduce-RMI-driver-for-Synaptics-touchpads.patch
-
 #rhbz 1074235
 Patch25055: lib-percpu_counter.c-fix-bad-percpu-counter-state-du.patch
 
@@ -727,6 +724,15 @@ Patch25059: net-ipv4-current-group_info-should-be-put-after-using.patch
 #rhbz 1085582 1085697
 Patch25060: 0001-synaptics-Add-min-max-quirk-for-ThinkPad-T431s-L440-.patch
 
+#rhbz 1074710
+Patch25061: mm-page_alloc.c-change-mm-debug-routines-back-to-EXP.patch
+
+#rhbz 1048314
+Patch25062: 0001-HID-rmi-introduce-RMI-driver-for-Synaptics-touchpads.patch
+
+#rhbz 1071914
+Patch25063: USB-serial-ftdi_sio-add-id-for-Brainboxes-serial-car.patch
+
 # END OF PATCH DEFINITIONS
 
 %endif
@@ -1409,6 +1415,12 @@ ApplyPatch net-ipv4-current-group_info-should-be-put-after-using.patch
 #rhbz 1085582 1085697
 ApplyPatch 0001-synaptics-Add-min-max-quirk-for-ThinkPad-T431s-L440-.patch
 
+#rhbz 1074710
+ApplyPatch mm-page_alloc.c-change-mm-debug-routines-back-to-EXP.patch
+
+#rhbz 1071914
+ApplyPatch USB-serial-ftdi_sio-add-id-for-Brainboxes-serial-car.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -1909,7 +1921,7 @@ find $RPM_BUILD_ROOT/usr/include \
 
 %if %{with_perf}
 # perf tool binary and supporting scripts/binaries
-%{perf_make} DESTDIR=$RPM_BUILD_ROOT install
+%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-bin
 # remove the 'trace' symlink.
 rm -f %{buildroot}%{_bindir}/trace
 
@@ -1917,7 +1929,7 @@ rm -f %{buildroot}%{_bindir}/trace
 %{perf_make} DESTDIR=$RPM_BUILD_ROOT install-python_ext
 
 # perf man pages (note: implicit rpm magic compresses them later)
-%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-man || %{doc_build_fail}
+%{perf_make} DESTDIR=$RPM_BUILD_ROOT try-install-man || %{doc_build_fail}
 %endif
 
 %if %{with_tools}
@@ -2220,7 +2232,12 @@ fi
 #                 ||----w |
 #                 ||     ||
 %changelog
-* Mon Apr 21 2014 Justin M. Forbes <jforbes at fedoraproject.org> - 3.14.1-200
+* Mon Apr 21 2014 Josh Boyer <jwboyer at fedoraproject.org> - 3.14.1-200
+- Fix Brainboxes Express Cards (rhbz 1071914)
+- Fix build issues with CONFIG_DEBUG_VM set (rhbz 1074710)
+- Fix perf build failures
+
+* Mon Apr 21 2014 Justin M. Forbes <jforbes at fedoraproject.org>
 - Linux v3.14.1
 
 * Thu Apr 17 2014 Hans de Goede <hdegoede at redhat.com>
diff --git a/mm-page_alloc.c-change-mm-debug-routines-back-to-EXP.patch b/mm-page_alloc.c-change-mm-debug-routines-back-to-EXP.patch
new file mode 100644
index 0000000..c0144ba
--- /dev/null
+++ b/mm-page_alloc.c-change-mm-debug-routines-back-to-EXP.patch
@@ -0,0 +1,61 @@
+Bugzilla: 1074710
+Upstream-status: 3.15
+
+From ed12d845b5f528cc0846023862b9c448a36122ec Mon Sep 17 00:00:00 2001
+From: John Hubbard <jhubbard at nvidia.com>
+Date: Mon, 7 Apr 2014 15:37:59 -0700
+Subject: [PATCH] mm/page_alloc.c: change mm debug routines back to
+ EXPORT_SYMBOL
+
+A new dump_page() routine was recently added, and marked
+EXPORT_SYMBOL_GPL.  dump_page() was also added to the VM_BUG_ON_PAGE()
+macro, and so the end result is that non-GPL code can no longer call
+get_page() and a few other routines.
+
+This only happens if the kernel was compiled with CONFIG_DEBUG_VM.
+
+Change dump_page() to be EXPORT_SYMBOL.
+
+Longer explanation:
+
+Prior to commit 309381feaee5 ("mm: dump page when hitting a VM_BUG_ON
+using VM_BUG_ON_PAGE") , it was possible to build MIT-licensed (non-GPL)
+drivers on Fedora.  Fedora is semi-unique, in that it sets
+CONFIG_VM_DEBUG.
+
+Because Fedora sets CONFIG_VM_DEBUG, they end up pulling in dump_page(),
+via VM_BUG_ON_PAGE, via get_page().  As one of the authors of NVIDIA's
+new, open source, "UVM-Lite" kernel module, I originally choose to use
+the kernel's get_page() routine from within nvidia_uvm_page_cache.c,
+because get_page() has always seemed to be very clearly intended for use
+by non-GPL, driver code.
+
+So I'm hoping that making get_page() widely accessible again will not be
+too controversial.  We did check with Fedora first, and they responded
+(https://bugzilla.redhat.com/show_bug.cgi?id=1074710#c3) that we should
+try to get upstream changed, before asking Fedora to change.  Their
+reasoning seems beneficial to Linux: leaving CONFIG_DEBUG_VM set allows
+Fedora to help catch mm bugs.
+
+Signed-off-by: John Hubbard <jhubbard at nvidia.com>
+Cc: Sasha Levin <sasha.levin at oracle.com>
+Cc: Josh Boyer <jwboyer at redhat.com>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ mm/page_alloc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 48427a7cfb45..5dba2933c9c0 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -6568,4 +6568,4 @@ void dump_page(struct page *page, const char *reason)
+ {
+ 	dump_page_badflags(page, reason, 0);
+ }
+-EXPORT_SYMBOL_GPL(dump_page);
++EXPORT_SYMBOL(dump_page);
+-- 
+1.9.0
+


More information about the scm-commits mailing list