diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-10-02 05:17:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-02 10:57:14 -0400 |
commit | b68e31d0ebbcc909d1941f9f230c9d062a3a13d3 (patch) | |
tree | b32902e5de02081cbb9eca49d7bb0b444e2b4f23 | |
parent | ed97bd37efd8ff7398d3a7eedf4bcbf245f5dad3 (diff) |
[PATCH] const struct tty_operations
As part of an SMP cleanliness pass over UML, I consted a bunch of
structures in order to not have to document their locking. One of these
structures was a struct tty_operations. In order to const it in UML
without introducing compiler complaints, the declaration of
tty_set_operations needs to be changed, and then all of its callers need to
be fixed.
This patch declares all struct tty_operations in the tree as const. In all
cases, they are static and used only as input to tty_set_operations. As an
extra check, I ran an i386 allyesconfig build which produced no extra
warnings.
53 drivers are affected. I checked the history of a bunch of them, and in
most cases, there have been only a handful of maintenance changes in the
last six months. serial_core.c was the busiest one that I looked at.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
57 files changed, 63 insertions, 62 deletions
diff --git a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c index 9d7dff27f815..756923203860 100644 --- a/arch/alpha/kernel/srmcons.c +++ b/arch/alpha/kernel/srmcons.c | |||
@@ -229,7 +229,7 @@ srmcons_close(struct tty_struct *tty, struct file *filp) | |||
229 | 229 | ||
230 | static struct tty_driver *srmcons_driver; | 230 | static struct tty_driver *srmcons_driver; |
231 | 231 | ||
232 | static struct tty_operations srmcons_ops = { | 232 | static const struct tty_operations srmcons_ops = { |
233 | .open = srmcons_open, | 233 | .open = srmcons_open, |
234 | .close = srmcons_close, | 234 | .close = srmcons_close, |
235 | .write = srmcons_write, | 235 | .write = srmcons_write, |
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 0daacc20ed36..246eb3d3757a 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -940,7 +940,7 @@ static inline void show_serial_version(void) | |||
940 | printk(KERN_INFO " no serial options enabled\n"); | 940 | printk(KERN_INFO " no serial options enabled\n"); |
941 | } | 941 | } |
942 | 942 | ||
943 | static struct tty_operations hp_ops = { | 943 | static const struct tty_operations hp_ops = { |
944 | .open = rs_open, | 944 | .open = rs_open, |
945 | .close = rs_close, | 945 | .close = rs_close, |
946 | .write = rs_write, | 946 | .write = rs_write, |
diff --git a/arch/ppc/4xx_io/serial_sicc.c b/arch/ppc/4xx_io/serial_sicc.c index b81a367dc278..87fe9a89dba7 100644 --- a/arch/ppc/4xx_io/serial_sicc.c +++ b/arch/ppc/4xx_io/serial_sicc.c | |||
@@ -1720,7 +1720,7 @@ static int siccuart_open(struct tty_struct *tty, struct file *filp) | |||
1720 | return 0; | 1720 | return 0; |
1721 | } | 1721 | } |
1722 | 1722 | ||
1723 | static struct tty_operations sicc_ops = { | 1723 | static const struct tty_operations sicc_ops = { |
1724 | .open = siccuart_open, | 1724 | .open = siccuart_open, |
1725 | .close = siccuart_close, | 1725 | .close = siccuart_close, |
1726 | .write = siccuart_write, | 1726 | .write = siccuart_write, |
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index 563ce7690a1e..24747a413785 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -642,9 +642,9 @@ int line_remove(struct line *lines, unsigned int num, int n) | |||
642 | } | 642 | } |
643 | 643 | ||
644 | struct tty_driver *line_register_devfs(struct lines *set, | 644 | struct tty_driver *line_register_devfs(struct lines *set, |
645 | struct line_driver *line_driver, | 645 | struct line_driver *line_driver, |
646 | struct tty_operations *ops, struct line *lines, | 646 | const struct tty_operations *ops, |
647 | int nlines) | 647 | struct line *lines, int nlines) |
648 | { | 648 | { |
649 | int i; | 649 | int i; |
650 | struct tty_driver *driver = alloc_tty_driver(nlines); | 650 | struct tty_driver *driver = alloc_tty_driver(nlines); |
diff --git a/arch/um/include/line.h b/arch/um/include/line.h index 642c9a0320f9..7be24811bb30 100644 --- a/arch/um/include/line.h +++ b/arch/um/include/line.h | |||
@@ -91,10 +91,9 @@ extern int line_setup_irq(int fd, int input, int output, struct line *line, | |||
91 | void *data); | 91 | void *data); |
92 | extern void line_close_chan(struct line *line); | 92 | extern void line_close_chan(struct line *line); |
93 | extern struct tty_driver * line_register_devfs(struct lines *set, | 93 | extern struct tty_driver * line_register_devfs(struct lines *set, |
94 | struct line_driver *line_driver, | 94 | struct line_driver *line_driver, |
95 | struct tty_operations *driver, | 95 | const struct tty_operations *driver, |
96 | struct line *lines, | 96 | struct line *lines, int nlines); |
97 | int nlines); | ||
98 | extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); | 97 | extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); |
99 | extern void close_lines(struct line *lines, int nlines); | 98 | extern void close_lines(struct line *lines, int nlines); |
100 | 99 | ||
diff --git a/arch/v850/kernel/memcons.c b/arch/v850/kernel/memcons.c index 815f8a43926f..92f514fdcc79 100644 --- a/arch/v850/kernel/memcons.c +++ b/arch/v850/kernel/memcons.c | |||
@@ -104,7 +104,7 @@ int memcons_tty_chars_in_buffer (struct tty_struct *tty) | |||
104 | return 0; | 104 | return 0; |
105 | } | 105 | } |
106 | 106 | ||
107 | static struct tty_operations ops = { | 107 | static const struct tty_operations ops = { |
108 | .open = memcons_tty_open, | 108 | .open = memcons_tty_open, |
109 | .write = memcons_tty_write, | 109 | .write = memcons_tty_write, |
110 | .write_room = memcons_tty_write_room, | 110 | .write_room = memcons_tty_write_room, |
diff --git a/arch/v850/kernel/simcons.c b/arch/v850/kernel/simcons.c index 3975aa02cef8..9973596ae304 100644 --- a/arch/v850/kernel/simcons.c +++ b/arch/v850/kernel/simcons.c | |||
@@ -77,7 +77,7 @@ int simcons_tty_chars_in_buffer (struct tty_struct *tty) | |||
77 | return 0; | 77 | return 0; |
78 | } | 78 | } |
79 | 79 | ||
80 | static struct tty_operations ops = { | 80 | static const struct tty_operations ops = { |
81 | .open = simcons_tty_open, | 81 | .open = simcons_tty_open, |
82 | .write = simcons_tty_write, | 82 | .write = simcons_tty_write, |
83 | .write_room = simcons_tty_write_room, | 83 | .write_room = simcons_tty_write_room, |
diff --git a/arch/xtensa/platform-iss/console.c b/arch/xtensa/platform-iss/console.c index 22d3c571a7bc..5c947cae7520 100644 --- a/arch/xtensa/platform-iss/console.c +++ b/arch/xtensa/platform-iss/console.c | |||
@@ -191,7 +191,7 @@ static int rs_read_proc(char *page, char **start, off_t off, int count, | |||
191 | } | 191 | } |
192 | 192 | ||
193 | 193 | ||
194 | static struct tty_operations serial_ops = { | 194 | static const struct tty_operations serial_ops = { |
195 | .open = rs_open, | 195 | .open = rs_open, |
196 | .close = rs_close, | 196 | .close = rs_close, |
197 | .write = rs_write, | 197 | .write = rs_write, |
diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c index 9d6713a93ed7..d0e92ed0a367 100644 --- a/drivers/char/amiserial.c +++ b/drivers/char/amiserial.c | |||
@@ -1958,7 +1958,7 @@ static void show_serial_version(void) | |||
1958 | } | 1958 | } |
1959 | 1959 | ||
1960 | 1960 | ||
1961 | static struct tty_operations serial_ops = { | 1961 | static const struct tty_operations serial_ops = { |
1962 | .open = rs_open, | 1962 | .open = rs_open, |
1963 | .close = rs_close, | 1963 | .close = rs_close, |
1964 | .write = rs_write, | 1964 | .write = rs_write, |
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c index c1c67281750d..f85b4eb16618 100644 --- a/drivers/char/cyclades.c +++ b/drivers/char/cyclades.c | |||
@@ -5205,7 +5205,7 @@ done: | |||
5205 | extra ports are ignored. | 5205 | extra ports are ignored. |
5206 | */ | 5206 | */ |
5207 | 5207 | ||
5208 | static struct tty_operations cy_ops = { | 5208 | static const struct tty_operations cy_ops = { |
5209 | .open = cy_open, | 5209 | .open = cy_open, |
5210 | .close = cy_close, | 5210 | .close = cy_close, |
5211 | .write = cy_write, | 5211 | .write = cy_write, |
diff --git a/drivers/char/epca.c b/drivers/char/epca.c index 86d290e9f307..3baa2ab8cbd4 100644 --- a/drivers/char/epca.c +++ b/drivers/char/epca.c | |||
@@ -1125,7 +1125,7 @@ static void __exit epca_module_exit(void) | |||
1125 | 1125 | ||
1126 | module_exit(epca_module_exit); | 1126 | module_exit(epca_module_exit); |
1127 | 1127 | ||
1128 | static struct tty_operations pc_ops = { | 1128 | static const struct tty_operations pc_ops = { |
1129 | .open = pc_open, | 1129 | .open = pc_open, |
1130 | .close = pc_close, | 1130 | .close = pc_close, |
1131 | .write = pc_write, | 1131 | .write = pc_write, |
diff --git a/drivers/char/esp.c b/drivers/char/esp.c index afcd83d9984b..05788c75d7fc 100644 --- a/drivers/char/esp.c +++ b/drivers/char/esp.c | |||
@@ -2376,7 +2376,7 @@ static inline int autoconfig(struct esp_struct * info) | |||
2376 | return (port_detected); | 2376 | return (port_detected); |
2377 | } | 2377 | } |
2378 | 2378 | ||
2379 | static struct tty_operations esp_ops = { | 2379 | static const struct tty_operations esp_ops = { |
2380 | .open = esp_open, | 2380 | .open = esp_open, |
2381 | .close = rs_close, | 2381 | .close = rs_close, |
2382 | .write = rs_write, | 2382 | .write = rs_write, |
diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c index a76d2c40dd5e..4053d1cd393f 100644 --- a/drivers/char/hvc_console.c +++ b/drivers/char/hvc_console.c | |||
@@ -696,7 +696,7 @@ int khvcd(void *unused) | |||
696 | return 0; | 696 | return 0; |
697 | } | 697 | } |
698 | 698 | ||
699 | static struct tty_operations hvc_ops = { | 699 | static const struct tty_operations hvc_ops = { |
700 | .open = hvc_open, | 700 | .open = hvc_open, |
701 | .close = hvc_close, | 701 | .close = hvc_close, |
702 | .write = hvc_write, | 702 | .write = hvc_write, |
diff --git a/drivers/char/hvcs.c b/drivers/char/hvcs.c index 4589ff302b07..0b89bcde8c52 100644 --- a/drivers/char/hvcs.c +++ b/drivers/char/hvcs.c | |||
@@ -1306,7 +1306,7 @@ static int hvcs_chars_in_buffer(struct tty_struct *tty) | |||
1306 | return hvcsd->chars_in_buffer; | 1306 | return hvcsd->chars_in_buffer; |
1307 | } | 1307 | } |
1308 | 1308 | ||
1309 | static struct tty_operations hvcs_ops = { | 1309 | static const struct tty_operations hvcs_ops = { |
1310 | .open = hvcs_open, | 1310 | .open = hvcs_open, |
1311 | .close = hvcs_close, | 1311 | .close = hvcs_close, |
1312 | .hangup = hvcs_hangup, | 1312 | .hangup = hvcs_hangup, |
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c index a89a95fb5e40..c07dc58d5c1d 100644 --- a/drivers/char/hvsi.c +++ b/drivers/char/hvsi.c | |||
@@ -1130,7 +1130,7 @@ static int hvsi_tiocmset(struct tty_struct *tty, struct file *file, | |||
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | 1132 | ||
1133 | static struct tty_operations hvsi_ops = { | 1133 | static const struct tty_operations hvsi_ops = { |
1134 | .open = hvsi_open, | 1134 | .open = hvsi_open, |
1135 | .close = hvsi_close, | 1135 | .close = hvsi_close, |
1136 | .write = hvsi_write, | 1136 | .write = hvsi_write, |
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c index 331f447e6228..4828bc914ce3 100644 --- a/drivers/char/ip2/ip2main.c +++ b/drivers/char/ip2/ip2main.c | |||
@@ -458,7 +458,7 @@ cleanup_module(void) | |||
458 | } | 458 | } |
459 | #endif /* MODULE */ | 459 | #endif /* MODULE */ |
460 | 460 | ||
461 | static struct tty_operations ip2_ops = { | 461 | static const struct tty_operations ip2_ops = { |
462 | .open = ip2_open, | 462 | .open = ip2_open, |
463 | .close = ip2_close, | 463 | .close = ip2_close, |
464 | .write = ip2_write, | 464 | .write = ip2_write, |
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c index 2e1da632aee1..ea2bbf80ad33 100644 --- a/drivers/char/isicom.c +++ b/drivers/char/isicom.c | |||
@@ -1550,7 +1550,7 @@ static void isicom_unregister_ioregion(struct pci_dev *pdev) | |||
1550 | board->base = 0; | 1550 | board->base = 0; |
1551 | } | 1551 | } |
1552 | 1552 | ||
1553 | static struct tty_operations isicom_ops = { | 1553 | static const struct tty_operations isicom_ops = { |
1554 | .open = isicom_open, | 1554 | .open = isicom_open, |
1555 | .close = isicom_close, | 1555 | .close = isicom_close, |
1556 | .write = isicom_write, | 1556 | .write = isicom_write, |
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 6b4d82a4565f..d6e031542c6b 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -4636,7 +4636,7 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un | |||
4636 | return rc; | 4636 | return rc; |
4637 | } | 4637 | } |
4638 | 4638 | ||
4639 | static struct tty_operations stli_ops = { | 4639 | static const struct tty_operations stli_ops = { |
4640 | .open = stli_open, | 4640 | .open = stli_open, |
4641 | .close = stli_close, | 4641 | .close = stli_close, |
4642 | .write = stli_write, | 4642 | .write = stli_write, |
diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c index c1a6d3c48da1..b401383808c2 100644 --- a/drivers/char/moxa.c +++ b/drivers/char/moxa.c | |||
@@ -281,7 +281,7 @@ static int moxa_get_serial_info(struct moxa_str *, struct serial_struct __user * | |||
281 | static int moxa_set_serial_info(struct moxa_str *, struct serial_struct __user *); | 281 | static int moxa_set_serial_info(struct moxa_str *, struct serial_struct __user *); |
282 | static void MoxaSetFifo(int port, int enable); | 282 | static void MoxaSetFifo(int port, int enable); |
283 | 283 | ||
284 | static struct tty_operations moxa_ops = { | 284 | static const struct tty_operations moxa_ops = { |
285 | .open = moxa_open, | 285 | .open = moxa_open, |
286 | .close = moxa_close, | 286 | .close = moxa_close, |
287 | .write = moxa_write, | 287 | .write = moxa_write, |
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 27a653772049..8253fca8efd5 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c | |||
@@ -453,7 +453,7 @@ static int CheckIsMoxaMust(int io) | |||
453 | 453 | ||
454 | /* above is modified by Victor Yu. 08-15-2002 */ | 454 | /* above is modified by Victor Yu. 08-15-2002 */ |
455 | 455 | ||
456 | static struct tty_operations mxser_ops = { | 456 | static const struct tty_operations mxser_ops = { |
457 | .open = mxser_open, | 457 | .open = mxser_open, |
458 | .close = mxser_close, | 458 | .close = mxser_close, |
459 | .write = mxser_write, | 459 | .write = mxser_write, |
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c index 00f574cbb0d4..dd845cbefe94 100644 --- a/drivers/char/pcmcia/synclink_cs.c +++ b/drivers/char/pcmcia/synclink_cs.c | |||
@@ -3010,7 +3010,7 @@ static struct pcmcia_driver mgslpc_driver = { | |||
3010 | .resume = mgslpc_resume, | 3010 | .resume = mgslpc_resume, |
3011 | }; | 3011 | }; |
3012 | 3012 | ||
3013 | static struct tty_operations mgslpc_ops = { | 3013 | static const struct tty_operations mgslpc_ops = { |
3014 | .open = mgslpc_open, | 3014 | .open = mgslpc_open, |
3015 | .close = mgslpc_close, | 3015 | .close = mgslpc_close, |
3016 | .write = mgslpc_write, | 3016 | .write = mgslpc_write, |
diff --git a/drivers/char/pty.c b/drivers/char/pty.c index 34dd4c38110e..80d3eedd7f96 100644 --- a/drivers/char/pty.c +++ b/drivers/char/pty.c | |||
@@ -224,7 +224,7 @@ static void pty_set_termios(struct tty_struct *tty, struct termios *old_termios) | |||
224 | tty->termios->c_cflag |= (CS8 | CREAD); | 224 | tty->termios->c_cflag |= (CS8 | CREAD); |
225 | } | 225 | } |
226 | 226 | ||
227 | static struct tty_operations pty_ops = { | 227 | static const struct tty_operations pty_ops = { |
228 | .open = pty_open, | 228 | .open = pty_open, |
229 | .close = pty_close, | 229 | .close = pty_close, |
230 | .write = pty_write, | 230 | .write = pty_write, |
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c index 3fa80aaf4527..202a3b0945b7 100644 --- a/drivers/char/rio/rio_linux.c +++ b/drivers/char/rio/rio_linux.c | |||
@@ -727,7 +727,7 @@ static struct vpd_prom *get_VPD_PROM(struct Host *hp) | |||
727 | return &vpdp; | 727 | return &vpdp; |
728 | } | 728 | } |
729 | 729 | ||
730 | static struct tty_operations rio_ops = { | 730 | static const struct tty_operations rio_ops = { |
731 | .open = riotopen, | 731 | .open = riotopen, |
732 | .close = gs_close, | 732 | .close = gs_close, |
733 | .write = gs_write, | 733 | .write = gs_write, |
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c index 06b9f78a95d9..214d850112fd 100644 --- a/drivers/char/riscom8.c +++ b/drivers/char/riscom8.c | |||
@@ -1583,7 +1583,7 @@ static void do_softint(void *private_) | |||
1583 | } | 1583 | } |
1584 | } | 1584 | } |
1585 | 1585 | ||
1586 | static struct tty_operations riscom_ops = { | 1586 | static const struct tty_operations riscom_ops = { |
1587 | .open = rc_open, | 1587 | .open = rc_open, |
1588 | .close = rc_close, | 1588 | .close = rc_close, |
1589 | .write = rc_write, | 1589 | .write = rc_write, |
diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c index 0ac131881322..bac80056f7e0 100644 --- a/drivers/char/rocket.c +++ b/drivers/char/rocket.c | |||
@@ -2334,7 +2334,7 @@ static int __init init_ISA(int i) | |||
2334 | return (1); | 2334 | return (1); |
2335 | } | 2335 | } |
2336 | 2336 | ||
2337 | static struct tty_operations rocket_ops = { | 2337 | static const struct tty_operations rocket_ops = { |
2338 | .open = rp_open, | 2338 | .open = rp_open, |
2339 | .close = rp_close, | 2339 | .close = rp_close, |
2340 | .write = rp_write, | 2340 | .write = rp_write, |
diff --git a/drivers/char/ser_a2232.c b/drivers/char/ser_a2232.c index 510bd3e0e88b..65c751d0d643 100644 --- a/drivers/char/ser_a2232.c +++ b/drivers/char/ser_a2232.c | |||
@@ -661,7 +661,7 @@ static void a2232_init_portstructs(void) | |||
661 | } | 661 | } |
662 | } | 662 | } |
663 | 663 | ||
664 | static struct tty_operations a2232_ops = { | 664 | static const struct tty_operations a2232_ops = { |
665 | .open = a2232_open, | 665 | .open = a2232_open, |
666 | .close = gs_close, | 666 | .close = gs_close, |
667 | .write = gs_write, | 667 | .write = gs_write, |
diff --git a/drivers/char/serial167.c b/drivers/char/serial167.c index 21a710cb4bba..b4ea1266b663 100644 --- a/drivers/char/serial167.c +++ b/drivers/char/serial167.c | |||
@@ -2158,7 +2158,7 @@ mvme167_serial_console_setup(int cflag) | |||
2158 | rcor >> 5, rbpr); | 2158 | rcor >> 5, rbpr); |
2159 | } /* serial_console_init */ | 2159 | } /* serial_console_init */ |
2160 | 2160 | ||
2161 | static struct tty_operations cy_ops = { | 2161 | static const struct tty_operations cy_ops = { |
2162 | .open = cy_open, | 2162 | .open = cy_open, |
2163 | .close = cy_close, | 2163 | .close = cy_close, |
2164 | .write = cy_write, | 2164 | .write = cy_write, |
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c index f52c7c31badf..902c48dca3bc 100644 --- a/drivers/char/specialix.c +++ b/drivers/char/specialix.c | |||
@@ -2363,7 +2363,7 @@ static void do_softint(void *private_) | |||
2363 | func_exit(); | 2363 | func_exit(); |
2364 | } | 2364 | } |
2365 | 2365 | ||
2366 | static struct tty_operations sx_ops = { | 2366 | static const struct tty_operations sx_ops = { |
2367 | .open = sx_open, | 2367 | .open = sx_open, |
2368 | .close = sx_close, | 2368 | .close = sx_close, |
2369 | .write = sx_write, | 2369 | .write = sx_write, |
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index 3beb2203d24b..bd711537ec4e 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c | |||
@@ -2993,7 +2993,7 @@ static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, uns | |||
2993 | return(rc); | 2993 | return(rc); |
2994 | } | 2994 | } |
2995 | 2995 | ||
2996 | static struct tty_operations stl_ops = { | 2996 | static const struct tty_operations stl_ops = { |
2997 | .open = stl_open, | 2997 | .open = stl_open, |
2998 | .close = stl_close, | 2998 | .close = stl_close, |
2999 | .write = stl_write, | 2999 | .write = stl_write, |
diff --git a/drivers/char/sx.c b/drivers/char/sx.c index e1cd2bc4b1e4..57e31e5eaedb 100644 --- a/drivers/char/sx.c +++ b/drivers/char/sx.c | |||
@@ -2226,7 +2226,7 @@ static int probe_si (struct sx_board *board) | |||
2226 | return 1; | 2226 | return 1; |
2227 | } | 2227 | } |
2228 | 2228 | ||
2229 | static struct tty_operations sx_ops = { | 2229 | static const struct tty_operations sx_ops = { |
2230 | .break_ctl = sx_break, | 2230 | .break_ctl = sx_break, |
2231 | .open = sx_open, | 2231 | .open = sx_open, |
2232 | .close = gs_close, | 2232 | .close = gs_close, |
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c index 78b1b1a2732b..244dc308c770 100644 --- a/drivers/char/synclink.c +++ b/drivers/char/synclink.c | |||
@@ -4360,7 +4360,7 @@ static struct mgsl_struct* mgsl_allocate_device(void) | |||
4360 | 4360 | ||
4361 | } /* end of mgsl_allocate_device()*/ | 4361 | } /* end of mgsl_allocate_device()*/ |
4362 | 4362 | ||
4363 | static struct tty_operations mgsl_ops = { | 4363 | static const struct tty_operations mgsl_ops = { |
4364 | .open = mgsl_open, | 4364 | .open = mgsl_open, |
4365 | .close = mgsl_close, | 4365 | .close = mgsl_close, |
4366 | .write = mgsl_write, | 4366 | .write = mgsl_write, |
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c index 78bc85180c82..bdc7cb248b8f 100644 --- a/drivers/char/synclink_gt.c +++ b/drivers/char/synclink_gt.c | |||
@@ -3441,7 +3441,7 @@ static void __devexit remove_one(struct pci_dev *dev) | |||
3441 | { | 3441 | { |
3442 | } | 3442 | } |
3443 | 3443 | ||
3444 | static struct tty_operations ops = { | 3444 | static const struct tty_operations ops = { |
3445 | .open = open, | 3445 | .open = open, |
3446 | .close = close, | 3446 | .close = close, |
3447 | .write = write, | 3447 | .write = write, |
diff --git a/drivers/char/synclinkmp.c b/drivers/char/synclinkmp.c index 66f3754fbbdf..6eb75dcd7961 100644 --- a/drivers/char/synclinkmp.c +++ b/drivers/char/synclinkmp.c | |||
@@ -3929,7 +3929,7 @@ void device_init(int adapter_num, struct pci_dev *pdev) | |||
3929 | } | 3929 | } |
3930 | } | 3930 | } |
3931 | 3931 | ||
3932 | static struct tty_operations ops = { | 3932 | static const struct tty_operations ops = { |
3933 | .open = open, | 3933 | .open = open, |
3934 | .close = close, | 3934 | .close = close, |
3935 | .write = write, | 3935 | .write = write, |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index 333741770f1e..e90ea39c7c4b 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -3680,7 +3680,8 @@ void put_tty_driver(struct tty_driver *driver) | |||
3680 | kfree(driver); | 3680 | kfree(driver); |
3681 | } | 3681 | } |
3682 | 3682 | ||
3683 | void tty_set_operations(struct tty_driver *driver, struct tty_operations *op) | 3683 | void tty_set_operations(struct tty_driver *driver, |
3684 | const struct tty_operations *op) | ||
3684 | { | 3685 | { |
3685 | driver->open = op->open; | 3686 | driver->open = op->open; |
3686 | driver->close = op->close; | 3687 | driver->close = op->close; |
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c index f3efeaf2826e..a362ee9c92dd 100644 --- a/drivers/char/viocons.c +++ b/drivers/char/viocons.c | |||
@@ -1047,7 +1047,7 @@ static int send_open(HvLpIndex remoteLp, void *sem) | |||
1047 | 0, 0, 0, 0); | 1047 | 0, 0, 0, 0); |
1048 | } | 1048 | } |
1049 | 1049 | ||
1050 | static struct tty_operations serial_ops = { | 1050 | static const struct tty_operations serial_ops = { |
1051 | .open = viotty_open, | 1051 | .open = viotty_open, |
1052 | .close = viotty_close, | 1052 | .close = viotty_close, |
1053 | .write = viotty_write, | 1053 | .write = viotty_write, |
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c index bfe5ea948f6a..c2ca31eb850b 100644 --- a/drivers/char/vme_scc.c +++ b/drivers/char/vme_scc.c | |||
@@ -113,7 +113,7 @@ static struct real_driver scc_real_driver = { | |||
113 | }; | 113 | }; |
114 | 114 | ||
115 | 115 | ||
116 | static struct tty_operations scc_ops = { | 116 | static const struct tty_operations scc_ops = { |
117 | .open = scc_open, | 117 | .open = scc_open, |
118 | .close = gs_close, | 118 | .close = gs_close, |
119 | .write = gs_write, | 119 | .write = gs_write, |
diff --git a/drivers/char/vt.c b/drivers/char/vt.c index 303956d34569..ec0c070bf15f 100644 --- a/drivers/char/vt.c +++ b/drivers/char/vt.c | |||
@@ -2675,7 +2675,7 @@ static int __init con_init(void) | |||
2675 | } | 2675 | } |
2676 | console_initcall(con_init); | 2676 | console_initcall(con_init); |
2677 | 2677 | ||
2678 | static struct tty_operations con_ops = { | 2678 | static const struct tty_operations con_ops = { |
2679 | .open = con_open, | 2679 | .open = con_open, |
2680 | .close = con_close, | 2680 | .close = con_close, |
2681 | .write = con_write, | 2681 | .write = con_write, |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 669f76393b5a..11844bbfe933 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -1298,7 +1298,7 @@ static int capinc_tty_read_proc(char *page, char **start, off_t off, | |||
1298 | 1298 | ||
1299 | static struct tty_driver *capinc_tty_driver; | 1299 | static struct tty_driver *capinc_tty_driver; |
1300 | 1300 | ||
1301 | static struct tty_operations capinc_ops = { | 1301 | static const struct tty_operations capinc_ops = { |
1302 | .open = capinc_tty_open, | 1302 | .open = capinc_tty_open, |
1303 | .close = capinc_tty_close, | 1303 | .close = capinc_tty_close, |
1304 | .write = capinc_tty_write, | 1304 | .write = capinc_tty_write, |
diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c index bd2e4267528e..596f3aebe2f7 100644 --- a/drivers/isdn/gigaset/interface.c +++ b/drivers/isdn/gigaset/interface.c | |||
@@ -134,7 +134,7 @@ static int if_tiocmset(struct tty_struct *tty, struct file *file, | |||
134 | static int if_write(struct tty_struct *tty, | 134 | static int if_write(struct tty_struct *tty, |
135 | const unsigned char *buf, int count); | 135 | const unsigned char *buf, int count); |
136 | 136 | ||
137 | static struct tty_operations if_ops = { | 137 | static const struct tty_operations if_ops = { |
138 | .open = if_open, | 138 | .open = if_open, |
139 | .close = if_close, | 139 | .close = if_close, |
140 | .ioctl = if_ioctl, | 140 | .ioctl = if_ioctl, |
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index 9ab66e8960d5..2b91bb07fc7f 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c | |||
@@ -1860,7 +1860,7 @@ modem_write_profile(atemu * m) | |||
1860 | send_sig(SIGIO, dev->profd, 1); | 1860 | send_sig(SIGIO, dev->profd, 1); |
1861 | } | 1861 | } |
1862 | 1862 | ||
1863 | static struct tty_operations modem_ops = { | 1863 | static const struct tty_operations modem_ops = { |
1864 | .open = isdn_tty_open, | 1864 | .open = isdn_tty_open, |
1865 | .close = isdn_tty_close, | 1865 | .close = isdn_tty_close, |
1866 | .write = isdn_tty_write, | 1866 | .write = isdn_tty_write, |
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 2fa566fa6da4..d7de175d53f0 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -1103,7 +1103,7 @@ tty3215_start(struct tty_struct *tty) | |||
1103 | } | 1103 | } |
1104 | } | 1104 | } |
1105 | 1105 | ||
1106 | static struct tty_operations tty3215_ops = { | 1106 | static const struct tty_operations tty3215_ops = { |
1107 | .open = tty3215_open, | 1107 | .open = tty3215_open, |
1108 | .close = tty3215_close, | 1108 | .close = tty3215_close, |
1109 | .write = tty3215_write, | 1109 | .write = tty3215_write, |
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c index f6cf9023039e..6f43e04dbefd 100644 --- a/drivers/s390/char/sclp_tty.c +++ b/drivers/s390/char/sclp_tty.c | |||
@@ -711,7 +711,7 @@ static struct sclp_register sclp_input_event = | |||
711 | .receiver_fn = sclp_tty_receiver | 711 | .receiver_fn = sclp_tty_receiver |
712 | }; | 712 | }; |
713 | 713 | ||
714 | static struct tty_operations sclp_ops = { | 714 | static const struct tty_operations sclp_ops = { |
715 | .open = sclp_tty_open, | 715 | .open = sclp_tty_open, |
716 | .close = sclp_tty_close, | 716 | .close = sclp_tty_close, |
717 | .write = sclp_tty_write, | 717 | .write = sclp_tty_write, |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index 54fba6f17188..723bf4191bfe 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -655,7 +655,7 @@ __sclp_vt220_init(int early) | |||
655 | return 0; | 655 | return 0; |
656 | } | 656 | } |
657 | 657 | ||
658 | static struct tty_operations sclp_vt220_ops = { | 658 | static const struct tty_operations sclp_vt220_ops = { |
659 | .open = sclp_vt220_open, | 659 | .open = sclp_vt220_open, |
660 | .close = sclp_vt220_close, | 660 | .close = sclp_vt220_close, |
661 | .write = sclp_vt220_write, | 661 | .write = sclp_vt220_write, |
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c index 06e2eeec8473..4717c3611601 100644 --- a/drivers/s390/char/tty3270.c +++ b/drivers/s390/char/tty3270.c | |||
@@ -1737,7 +1737,7 @@ tty3270_ioctl(struct tty_struct *tty, struct file *file, | |||
1737 | return kbd_ioctl(tp->kbd, file, cmd, arg); | 1737 | return kbd_ioctl(tp->kbd, file, cmd, arg); |
1738 | } | 1738 | } |
1739 | 1739 | ||
1740 | static struct tty_operations tty3270_ops = { | 1740 | static const struct tty_operations tty3270_ops = { |
1741 | .open = tty3270_open, | 1741 | .open = tty3270_open, |
1742 | .close = tty3270_close, | 1742 | .close = tty3270_close, |
1743 | .write = tty3270_write, | 1743 | .write = tty3270_write, |
diff --git a/drivers/sbus/char/aurora.c b/drivers/sbus/char/aurora.c index 4fdb2c932210..a305d4091547 100644 --- a/drivers/sbus/char/aurora.c +++ b/drivers/sbus/char/aurora.c | |||
@@ -2187,7 +2187,7 @@ static void do_softint(void *private_) | |||
2187 | #endif | 2187 | #endif |
2188 | } | 2188 | } |
2189 | 2189 | ||
2190 | static struct tty_operations aurora_ops = { | 2190 | static const struct tty_operations aurora_ops = { |
2191 | .open = aurora_open, | 2191 | .open = aurora_open, |
2192 | .close = aurora_close, | 2192 | .close = aurora_close, |
2193 | .write = aurora_write, | 2193 | .write = aurora_write, |
diff --git a/drivers/serial/68328serial.c b/drivers/serial/68328serial.c index 993a702422ec..bac853c5abb5 100644 --- a/drivers/serial/68328serial.c +++ b/drivers/serial/68328serial.c | |||
@@ -1378,7 +1378,7 @@ void startup_console(void) | |||
1378 | #endif /* CONFIG_PM_LEGACY */ | 1378 | #endif /* CONFIG_PM_LEGACY */ |
1379 | 1379 | ||
1380 | 1380 | ||
1381 | static struct tty_operations rs_ops = { | 1381 | static const struct tty_operations rs_ops = { |
1382 | .open = rs_open, | 1382 | .open = rs_open, |
1383 | .close = rs_close, | 1383 | .close = rs_close, |
1384 | .write = rs_write, | 1384 | .write = rs_write, |
diff --git a/drivers/serial/68360serial.c b/drivers/serial/68360serial.c index e80e70e9b126..1b299e8c57cd 100644 --- a/drivers/serial/68360serial.c +++ b/drivers/serial/68360serial.c | |||
@@ -2424,7 +2424,7 @@ long console_360_init(long kmem_start, long kmem_end) | |||
2424 | */ | 2424 | */ |
2425 | static int baud_idx; | 2425 | static int baud_idx; |
2426 | 2426 | ||
2427 | static struct tty_operations rs_360_ops = { | 2427 | static const struct tty_operations rs_360_ops = { |
2428 | .owner = THIS_MODULE, | 2428 | .owner = THIS_MODULE, |
2429 | .open = rs_360_open, | 2429 | .open = rs_360_open, |
2430 | .close = rs_360_close, | 2430 | .close = rs_360_close, |
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c index cabd048c8636..9851d9eff022 100644 --- a/drivers/serial/crisv10.c +++ b/drivers/serial/crisv10.c | |||
@@ -4825,7 +4825,7 @@ show_serial_version(void) | |||
4825 | 4825 | ||
4826 | /* rs_init inits the driver at boot (using the module_init chain) */ | 4826 | /* rs_init inits the driver at boot (using the module_init chain) */ |
4827 | 4827 | ||
4828 | static struct tty_operations rs_ops = { | 4828 | static const struct tty_operations rs_ops = { |
4829 | .open = rs_open, | 4829 | .open = rs_open, |
4830 | .close = rs_close, | 4830 | .close = rs_close, |
4831 | .write = rs_write, | 4831 | .write = rs_write, |
diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c index 832abd3c4706..00d7859c167e 100644 --- a/drivers/serial/mcfserial.c +++ b/drivers/serial/mcfserial.c | |||
@@ -1666,7 +1666,7 @@ static void show_serial_version(void) | |||
1666 | printk(mcfrs_drivername); | 1666 | printk(mcfrs_drivername); |
1667 | } | 1667 | } |
1668 | 1668 | ||
1669 | static struct tty_operations mcfrs_ops = { | 1669 | static const struct tty_operations mcfrs_ops = { |
1670 | .open = mcfrs_open, | 1670 | .open = mcfrs_open, |
1671 | .close = mcfrs_close, | 1671 | .close = mcfrs_close, |
1672 | .write = mcfrs_write, | 1672 | .write = mcfrs_write, |
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c index 5f7ba1adb309..de5e8930a6fd 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c | |||
@@ -2111,7 +2111,7 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state, | |||
2111 | } | 2111 | } |
2112 | } | 2112 | } |
2113 | 2113 | ||
2114 | static struct tty_operations uart_ops = { | 2114 | static const struct tty_operations uart_ops = { |
2115 | .open = uart_open, | 2115 | .open = uart_open, |
2116 | .close = uart_close, | 2116 | .close = uart_close, |
2117 | .write = uart_write, | 2117 | .write = uart_write, |
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c index 5e8a27620f6f..622881f26761 100644 --- a/drivers/tc/zs.c +++ b/drivers/tc/zs.c | |||
@@ -1701,7 +1701,7 @@ static void __init probe_sccs(void) | |||
1701 | spin_unlock_irqrestore(&zs_lock, flags); | 1701 | spin_unlock_irqrestore(&zs_lock, flags); |
1702 | } | 1702 | } |
1703 | 1703 | ||
1704 | static struct tty_operations serial_ops = { | 1704 | static const struct tty_operations serial_ops = { |
1705 | .open = rs_open, | 1705 | .open = rs_open, |
1706 | .close = rs_close, | 1706 | .close = rs_close, |
1707 | .write = rs_write, | 1707 | .write = rs_write, |
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index ca90326f2f5c..71288295df2f 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
@@ -1120,7 +1120,7 @@ static struct usb_driver acm_driver = { | |||
1120 | * TTY driver structures. | 1120 | * TTY driver structures. |
1121 | */ | 1121 | */ |
1122 | 1122 | ||
1123 | static struct tty_operations acm_ops = { | 1123 | static const struct tty_operations acm_ops = { |
1124 | .open = acm_tty_open, | 1124 | .open = acm_tty_open, |
1125 | .close = acm_tty_close, | 1125 | .close = acm_tty_close, |
1126 | .write = acm_tty_write, | 1126 | .write = acm_tty_write, |
diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c index b893e3118e1b..489a85e58bca 100644 --- a/drivers/usb/gadget/serial.c +++ b/drivers/usb/gadget/serial.c | |||
@@ -271,7 +271,7 @@ static unsigned int use_acm = GS_DEFAULT_USE_ACM; | |||
271 | 271 | ||
272 | 272 | ||
273 | /* tty driver struct */ | 273 | /* tty driver struct */ |
274 | static struct tty_operations gs_tty_ops = { | 274 | static const struct tty_operations gs_tty_ops = { |
275 | .open = gs_open, | 275 | .open = gs_open, |
276 | .close = gs_close, | 276 | .close = gs_close, |
277 | .write = gs_write, | 277 | .write = gs_write, |
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index 0222d92842b8..8006e51c34bb 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c | |||
@@ -1015,7 +1015,7 @@ void usb_serial_disconnect(struct usb_interface *interface) | |||
1015 | dev_info(dev, "device disconnected\n"); | 1015 | dev_info(dev, "device disconnected\n"); |
1016 | } | 1016 | } |
1017 | 1017 | ||
1018 | static struct tty_operations serial_ops = { | 1018 | static const struct tty_operations serial_ops = { |
1019 | .open = serial_open, | 1019 | .open = serial_open, |
1020 | .close = serial_close, | 1020 | .close = serial_close, |
1021 | .write = serial_write, | 1021 | .write = serial_write, |
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index 58c961c9e170..5c8473bb6882 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
@@ -219,7 +219,8 @@ extern struct list_head tty_drivers; | |||
219 | 219 | ||
220 | struct tty_driver *alloc_tty_driver(int lines); | 220 | struct tty_driver *alloc_tty_driver(int lines); |
221 | void put_tty_driver(struct tty_driver *driver); | 221 | void put_tty_driver(struct tty_driver *driver); |
222 | void tty_set_operations(struct tty_driver *driver, struct tty_operations *op); | 222 | void tty_set_operations(struct tty_driver *driver, |
223 | const struct tty_operations *op); | ||
223 | 224 | ||
224 | /* tty driver magic number */ | 225 | /* tty driver magic number */ |
225 | #define TTY_DRIVER_MAGIC 0x5402 | 226 | #define TTY_DRIVER_MAGIC 0x5402 |
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c index 26f322737db0..1958ad1b8541 100644 --- a/net/bluetooth/rfcomm/tty.c +++ b/net/bluetooth/rfcomm/tty.c | |||
@@ -1011,7 +1011,7 @@ static int rfcomm_tty_tiocmset(struct tty_struct *tty, struct file *filp, unsign | |||
1011 | 1011 | ||
1012 | /* ---- TTY structure ---- */ | 1012 | /* ---- TTY structure ---- */ |
1013 | 1013 | ||
1014 | static struct tty_operations rfcomm_ops = { | 1014 | static const struct tty_operations rfcomm_ops = { |
1015 | .open = rfcomm_tty_open, | 1015 | .open = rfcomm_tty_open, |
1016 | .close = rfcomm_tty_close, | 1016 | .close = rfcomm_tty_close, |
1017 | .write = rfcomm_tty_write, | 1017 | .write = rfcomm_tty_write, |
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index 3bcdb467efc5..d50a02030ad7 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
@@ -79,7 +79,7 @@ static struct tty_driver *driver; | |||
79 | 79 | ||
80 | hashbin_t *ircomm_tty = NULL; | 80 | hashbin_t *ircomm_tty = NULL; |
81 | 81 | ||
82 | static struct tty_operations ops = { | 82 | static const struct tty_operations ops = { |
83 | .open = ircomm_tty_open, | 83 | .open = ircomm_tty_open, |
84 | .close = ircomm_tty_close, | 84 | .close = ircomm_tty_close, |
85 | .write = ircomm_tty_write, | 85 | .write = ircomm_tty_write, |