diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-06-04 09:58:15 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-06-04 09:58:15 -0700 |
| commit | 08c499a70f60eb1d0fb6b59460aeea00babe99f6 (patch) | |
| tree | a167c53053b8d577ae696045167ad57797e8cad2 /tty.current | |
| parent | e13f442cd0070ef9d0b868cd624a52d7ab4e0a84 (diff) | |
| download | patches-08c499a70f60eb1d0fb6b59460aeea00babe99f6.tar.gz | |
more bug fixes
Diffstat (limited to 'tty.current')
| -rw-r--r-- | tty.current/serial-add-support-for-various-titan-pci-cards.patch | 122 | ||||
| -rw-r--r-- | tty.current/vt_ioctl-return-efault-on-copy_from_user-errors.patch | 33 |
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; + } |
