aboutsummaryrefslogtreecommitdiffstats
path: root/tty.current
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2010-06-04 09:58:15 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2010-06-04 09:58:15 -0700
commit08c499a70f60eb1d0fb6b59460aeea00babe99f6 (patch)
treea167c53053b8d577ae696045167ad57797e8cad2 /tty.current
parente13f442cd0070ef9d0b868cd624a52d7ab4e0a84 (diff)
downloadpatches-08c499a70f60eb1d0fb6b59460aeea00babe99f6.tar.gz
more bug fixes
Diffstat (limited to 'tty.current')
-rw-r--r--tty.current/serial-add-support-for-various-titan-pci-cards.patch122
-rw-r--r--tty.current/vt_ioctl-return-efault-on-copy_from_user-errors.patch33
2 files changed, 155 insertions, 0 deletions
diff --git a/tty.current/serial-add-support-for-various-titan-pci-cards.patch b/tty.current/serial-add-support-for-various-titan-pci-cards.patch
new file mode 100644
index 00000000000000..dd0fbf08f00935
--- /dev/null
+++ b/tty.current/serial-add-support-for-various-titan-pci-cards.patch
@@ -0,0 +1,122 @@
+From yegor_sub1@visionsystems.de Fri Jun 4 09:52:12 2010
+From: Yegor Yefremov <yegor_sub1@visionsystems.de>
+Date: Fri, 04 Jun 2010 09:58:18 +0200
+Subject: serial: add support for various Titan PCI cards
+To: linux-serial@vger.kernel.org
+Cc: greg@kroah.com
+Message-ID: <4C08B21A.4030002@visionsystems.de>
+
+
+serial: add support for various Titan PCI cards
+
+Models: 200I, 400I, 800I, 400EH, 800EH, 800EHB,
+ 100E, 200E, 400E, 800E, 200EI, 200EISI
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/serial/8250_pci.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 71 insertions(+)
+
+--- a/drivers/serial/8250_pci.c
++++ b/drivers/serial/8250_pci.c
+@@ -982,6 +982,18 @@ static int skip_tx_en_setup(struct seria
+ #define PCI_SUBDEVICE_ID_POCTAL422 0x0408
+ #define PCI_VENDOR_ID_ADVANTECH 0x13fe
+ #define PCI_DEVICE_ID_ADVANTECH_PCI3620 0x3620
++#define PCI_DEVICE_ID_TITAN_200I 0x8028
++#define PCI_DEVICE_ID_TITAN_400I 0x8048
++#define PCI_DEVICE_ID_TITAN_800I 0x8088
++#define PCI_DEVICE_ID_TITAN_800EH 0xA007
++#define PCI_DEVICE_ID_TITAN_800EHB 0xA008
++#define PCI_DEVICE_ID_TITAN_400EH 0xA009
++#define PCI_DEVICE_ID_TITAN_100E 0xA010
++#define PCI_DEVICE_ID_TITAN_200E 0xA012
++#define PCI_DEVICE_ID_TITAN_400E 0xA013
++#define PCI_DEVICE_ID_TITAN_800E 0xA014
++#define PCI_DEVICE_ID_TITAN_200EI 0xA016
++#define PCI_DEVICE_ID_TITAN_200EISI 0xA017
+
+ /* Unknown vendors/cards - this should not be in linux/pci_ids.h */
+ #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
+@@ -1541,6 +1553,10 @@ enum pci_board_num_t {
+ pbn_b3_4_115200,
+ pbn_b3_8_115200,
+
++ pbn_b4_bt_2_921600,
++ pbn_b4_bt_4_921600,
++ pbn_b4_bt_8_921600,
++
+ /*
+ * Board-specific versions.
+ */
+@@ -1995,6 +2011,25 @@ static struct pciserial_board pci_boards
+ .uart_offset = 8,
+ },
+
++ [pbn_b4_bt_2_921600] = {
++ .flags = FL_BASE4,
++ .num_ports = 2,
++ .base_baud = 921600,
++ .uart_offset = 8,
++ },
++ [pbn_b4_bt_4_921600] = {
++ .flags = FL_BASE4,
++ .num_ports = 4,
++ .base_baud = 921600,
++ .uart_offset = 8,
++ },
++ [pbn_b4_bt_8_921600] = {
++ .flags = FL_BASE4,
++ .num_ports = 8,
++ .base_baud = 921600,
++ .uart_offset = 8,
++ },
++
+ /*
+ * Entries following this are board-specific.
+ */
+@@ -3043,6 +3078,42 @@ static struct pci_device_id serial_pci_t
+ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800L,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_b0_bt_8_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200I,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b4_bt_2_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_400I,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b4_bt_4_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800I,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b4_bt_8_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_400EH,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b0_4_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800EH,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b0_4_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800EHB,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_b0_4_921600 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_100E,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_1_4000000 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200E,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_2_4000000 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_400E,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_4_4000000 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800E,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_8_4000000 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200EI,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_2_4000000 },
++ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200EISI,
++ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
++ pbn_oxsemi_2_4000000 },
+
+ { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S_10x_550,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
diff --git a/tty.current/vt_ioctl-return-efault-on-copy_from_user-errors.patch b/tty.current/vt_ioctl-return-efault-on-copy_from_user-errors.patch
new file mode 100644
index 00000000000000..5796b4b726df06
--- /dev/null
+++ b/tty.current/vt_ioctl-return-efault-on-copy_from_user-errors.patch
@@ -0,0 +1,33 @@
+From error27@gmail.com Fri Jun 4 09:50:59 2010
+From: Dan Carpenter <error27@gmail.com>
+Date: Fri, 4 Jun 2010 12:20:46 +0200
+Subject: vt_ioctl: return -EFAULT on copy_from_user errors
+To: Greg Kroah-Hartman <gregkh@suse.de>
+Cc: Alan Cox <alan@linux.intel.com>, Arnd Bergmann <arnd@arndb.de>, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
+Message-ID: <20100604102046.GY5483@bicker>
+Content-Disposition: inline
+
+
+copy_from_user() returns the number of bytes remaining but we want to
+return a negative error code here.
+
+Signed-off-by: Dan Carpenter <error27@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/vt_ioctl.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/char/vt_ioctl.c
++++ b/drivers/char/vt_ioctl.c
+@@ -1303,7 +1303,9 @@ int vt_ioctl(struct tty_struct *tty, str
+ if (!perm)
+ goto eperm;
+ ret = copy_from_user(&ui, up, sizeof(struct unimapinit));
+- if (!ret)
++ if (ret)
++ ret = -EFAULT;
++ else
+ con_clear_unimap(vc, &ui);
+ break;
+ }