const struct tty_operations
Subsystems (14)
PATCH 1/1 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.
drivers/char/tty_io.c +2 -1
@@ -3011,7 +3011,8 @@ void put_tty_driver(struct tty_driver *dkfree (driver); } -void tty_set_operations (struct tty_driver *driver,struct tty_operations *op) +void tty_set_operations (struct tty_driver *driver, +const struct tty_operations *op) { driver->open = op->open; driver->close = op->close;
include/linux/tty_driver.h +2 -1
@@ -219,7 +219,8 @@ extern struct list_head tty_drivers;struct tty_driver *alloc_tty_driver (int lines);void put_tty_driver (struct tty_driver *driver); -void tty_set_operations (struct tty_driver *driver,struct tty_operations *op); +void tty_set_operations (struct tty_driver *driver, +const struct tty_operations *op);/* tty driver magic number */ #define TTY_DRIVER_MAGIC 0x5402
arch/alpha/kernel/srmcons.c +1 -1
@@ -229,7 +229,7 @@ srmcons_close(struct tty_struct *tty, ststatic struct tty_driver *srmcons_driver; -static struct tty_operations srmcons_ops = { +static const struct tty_operations srmcons_ops = { .open = srmcons_open, .close = srmcons_close, .write = srmcons_write,
arch/ia64/hp/sim/simserial.c +1 -1
@@ -940,7 +940,7 @@ static inline void show_serial_version(vprintk (KERN_INFO " no serial options enabled\n" ); } -static struct tty_operations hp_ops = { +static const struct tty_operations hp_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
arch/ppc/4xx_io/serial_sicc.c +1 -1
@@ -1720,7 +1720,7 @@ static int siccuart_open(struct tty_strureturn 0 ; } -static struct tty_operations sicc_ops = { +static const struct tty_operations sicc_ops = { .open = siccuart_open, .close = siccuart_close, .write = siccuart_write,
arch/um/drivers/line.c +3 -3
@@ -642,9 +642,9 @@ int line_remove(struct line *lines, unsi }struct tty_driver *line_register_devfs (struct lines *set, -struct line_driver *line_driver, -struct tty_operations *ops,struct line *lines, -int nlines) +struct line_driver *line_driver, +const struct tty_operations *ops, +struct line *lines,int nlines) {int i;struct tty_driver *driver =alloc_tty_driver (nlines);
arch/v850/kernel/memcons.c +1 -1
@@ -104,7 +104,7 @@ int memcons_tty_chars_in_buffer (structreturn 0 ; } -static struct tty_operations ops = { +static const struct tty_operations ops = { .open = memcons_tty_open, .write = memcons_tty_write, .write_room = memcons_tty_write_room,
arch/v850/kernel/simcons.c +1 -1
@@ -77,7 +77,7 @@ int simcons_tty_chars_in_buffer (structreturn 0 ; } -static struct tty_operations ops = { +static const struct tty_operations ops = { .open = simcons_tty_open, .write = simcons_tty_write, .write_room = simcons_tty_write_room,
arch/xtensa/platform-iss/console.c +1 -1
@@ -191,7 +191,7 @@ static int rs_read_proc(char *page, char } -static struct tty_operations serial_ops = { +static const struct tty_operations serial_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
drivers/char/amiserial.c +1 -1
@@ -1958,7 +1958,7 @@ static void show_serial_version(void) } -static struct tty_operations serial_ops = { +static const struct tty_operations serial_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
drivers/char/cyclades.c +1 -1
@@ -5205,7 +5205,7 @@ done:extra ports are ignored. */ -static struct tty_operations cy_ops = { +static const struct tty_operations cy_ops = { .open = cy_open, .close = cy_close, .write = cy_write,
drivers/char/epca.c +1 -1
@@ -1125,7 +1125,7 @@ static void __exit epca_module_exit(voidmodule_exit (epca_module_exit); -static struct tty_operations pc_ops = { +static const struct tty_operations pc_ops = { .open = pc_open, .close = pc_close, .write = pc_write,
drivers/char/esp.c +1 -1
@@ -2376,7 +2376,7 @@ static inline int autoconfig(struct esp_return (port_detected); } -static struct tty_operations esp_ops = { +static const struct tty_operations esp_ops = { .open = esp_open, .close = rs_close, .write = rs_write,
drivers/char/hvc_console.c +1 -1
@@ -696,7 +696,7 @@ int khvcd(void *unused)return 0 ; } -static struct tty_operations hvc_ops = { +static const struct tty_operations hvc_ops = { .open = hvc_open, .close = hvc_close, .write = hvc_write,
drivers/char/hvcs.c +1 -1
@@ -1306,7 +1306,7 @@ static int hvcs_chars_in_buffer(struct treturn hvcsd->chars_in_buffer; } -static struct tty_operations hvcs_ops = { +static const struct tty_operations hvcs_ops = { .open = hvcs_open, .close = hvcs_close, .hangup = hvcs_hangup,
drivers/char/hvsi.c +1 -1
@@ -1130,7 +1130,7 @@ static int hvsi_tiocmset(struct tty_stru } -static struct tty_operations hvsi_ops = { +static const struct tty_operations hvsi_ops = { .open = hvsi_open, .close = hvsi_close, .write = hvsi_write,
drivers/char/ip2/ip2main.c +1 -1
@@ -457,7 +457,7 @@ cleanup_module(void) }#endif /* MODULE */ -static struct tty_operations ip2_ops = { +static const struct tty_operations ip2_ops = { .open = ip2_open, .close = ip2_close, .write = ip2_write,
drivers/char/isicom.c +1 -1
@@ -1550,7 +1550,7 @@ static void isicom_unregister_ioregion(s board->base =0 ; } -static struct tty_operations isicom_ops = { +static const struct tty_operations isicom_ops = { .open = isicom_open, .close = isicom_close, .write = isicom_write,
drivers/char/istallion.c +1 -1
@@ -4654,7 +4654,7 @@ static int stli_memioctl(struct inode *ireturn rc; } -static struct tty_operations stli_ops = { +static const struct tty_operations stli_ops = { .open = stli_open, .close = stli_close, .write = stli_write,
drivers/char/moxa.c +1 -1
@@ -280,7 +280,7 @@ static int moxa_get_serial_info(struct mstatic int moxa_set_serial_info (struct moxa_str *,struct serial_struct __user *);static void MoxaSetFifo (int port,int enable); -static struct tty_operations moxa_ops = { +static const struct tty_operations moxa_ops = { .open = moxa_open, .close = moxa_close, .write = moxa_write,
drivers/char/mxser.c +1 -1
@@ -453,7 +453,7 @@ static int CheckIsMoxaMust(int io)/* above is modified by Victor Yu. 08-15-2002 */ -static struct tty_operations mxser_ops = { +static const struct tty_operations mxser_ops = { .open = mxser_open, .close = mxser_close, .write = mxser_write,
drivers/char/pcmcia/synclink_cs.c +1 -1
@@ -3010,7 +3010,7 @@ static struct pcmcia_driver mgslpc_drive .resume = mgslpc_resume, }; -static struct tty_operations mgslpc_ops = { +static const struct tty_operations mgslpc_ops = { .open = mgslpc_open, .close = mgslpc_close, .write = mgslpc_write,
drivers/char/pty.c +1 -1
@@ -224,7 +224,7 @@ static void pty_set_termios(struct tty_s tty->termios->c_cflag |= (CS8 |CREAD ); } -static struct tty_operations pty_ops = { +static const struct tty_operations pty_ops = { .open = pty_open, .close = pty_close, .write = pty_write,
drivers/char/rio/rio_linux.c +1 -1
@@ -727,7 +727,7 @@ static struct vpd_prom *get_VPD_PROM(strreturn &vpdp; } -static struct tty_operations rio_ops = { +static const struct tty_operations rio_ops = { .open = riotopen, .close = gs_close, .write = gs_write,
drivers/char/riscom8.c +1 -1
@@ -1597,7 +1597,7 @@ static void do_softint(void *private_) } } -static struct tty_operations riscom_ops = { +static const struct tty_operations riscom_ops = { .open = rc_open, .close = rc_close, .write = rc_write,
drivers/char/rocket.c +1 -1
@@ -2334,7 +2334,7 @@ static int __init init_ISA(int i)return (1 ); } -static struct tty_operations rocket_ops = { +static const struct tty_operations rocket_ops = { .open = rp_open, .close = rp_close, .write = rp_write,
drivers/char/ser_a2232.c +1 -1
@@ -661,7 +661,7 @@ static void a2232_init_portstructs(void) } } -static struct tty_operations a2232_ops = { +static const struct tty_operations a2232_ops = { .open = a2232_open, .close = gs_close, .write = gs_write,
drivers/char/serial167.c +1 -1
@@ -2158,7 +2158,7 @@ mvme167_serial_console_setup(int cflag) rcor >> 5, rbpr); }/* serial_console_init */ -static struct tty_operations cy_ops = { +static const struct tty_operations cy_ops = { .open = cy_open, .close = cy_close, .write = cy_write,
drivers/char/specialix.c +1 -1
@@ -2372,7 +2372,7 @@ static void do_softint(void *private_)func_exit (); } -static struct tty_operations sx_ops = { +static const struct tty_operations sx_ops = { .open = sx_open, .close = sx_close, .write = sx_write,
drivers/char/stallion.c +1 -1
@@ -2993,7 +2993,7 @@ static int stl_memioctl(struct inode *ipreturn (rc); } -static struct tty_operations stl_ops = { +static const struct tty_operations stl_ops = { .open = stl_open, .close = stl_close, .write = stl_write,
drivers/char/sx.c +1 -1
@@ -2226,7 +2226,7 @@ static int probe_si (struct sx_board *boreturn 1 ; } -static struct tty_operations sx_ops = { +static const struct tty_operations sx_ops = { .break_ctl = sx_break, .open = sx_open, .close = gs_close,
drivers/char/synclink.c +1 -1
@@ -4360,7 +4360,7 @@ static struct mgsl_struct* mgsl_allocate }/* end of mgsl_allocate_device()*/ -static struct tty_operations mgsl_ops = { +static const struct tty_operations mgsl_ops = { .open = mgsl_open, .close = mgsl_close, .write = mgsl_write,
drivers/char/synclink_gt.c +1 -1
@@ -3434,7 +3434,7 @@ static void __devexit remove_one(struct { } -static struct tty_operations ops = { +static const struct tty_operations ops = { .open = open, .close = close, .write = write,
drivers/char/synclinkmp.c +1 -1
@@ -3929,7 +3929,7 @@ void device_init(int adapter_num, struct } } -static struct tty_operations ops = { +static const struct tty_operations ops = { .open = open, .close = close, .write = write,
drivers/char/viocons.c +1 -1
@@ -1077,7 +1077,7 @@ static int send_open(HvLpIndex remoteLp, 0, 0, 0, 0); } -static struct tty_operations serial_ops = { +static const struct tty_operations serial_ops = { .open = viotty_open, .close = viotty_close, .write = viotty_write,
drivers/char/vme_scc.c +1 -1
@@ -113,7 +113,7 @@ static struct real_driver scc_real_drive }; -static struct tty_operations scc_ops = { +static const struct tty_operations scc_ops = { .open = scc_open, .close = gs_close, .write = gs_write,
drivers/char/vt.c +1 -1
@@ -2639,7 +2639,7 @@ static int __init con_init(void) }console_initcall (con_init); -static struct tty_operations con_ops = { +static const struct tty_operations con_ops = { .open = con_open, .close = con_close, .write = con_write,
drivers/isdn/capi/capi.c +1 -1
@@ -1298,7 +1298,7 @@ static int capinc_tty_read_proc(char *pastatic struct tty_driver *capinc_tty_driver; -static struct tty_operations capinc_ops = { +static const struct tty_operations capinc_ops = { .open = capinc_tty_open, .close = capinc_tty_close, .write = capinc_tty_write,
drivers/isdn/gigaset/interface.c +1 -1
@@ -134,7 +134,7 @@ static int if_tiocmset(struct tty_strucstatic int if_write (struct tty_struct *tty,const unsigned char *buf,int count); -static struct tty_operations if_ops = { +static const struct tty_operations if_ops = { .open = if_open, .close = if_close, .ioctl = if_ioctl,
drivers/isdn/i4l/isdn_tty.c +1 -1
@@ -1860,7 +1860,7 @@ modem_write_profile(atemu * m)send_sig (SIGIO , dev->profd,1 ); } -static struct tty_operations modem_ops = { +static const struct tty_operations modem_ops = { .open = isdn_tty_open, .close = isdn_tty_close, .write = isdn_tty_write,
drivers/s390/char/con3215.c +1 -1
@@ -1103,7 +1103,7 @@ tty3215_start(struct tty_struct *tty) } } -static struct tty_operations tty3215_ops = { +static const struct tty_operations tty3215_ops = { .open = tty3215_open, .close = tty3215_close, .write = tty3215_write,
drivers/s390/char/sclp_tty.c +1 -1
@@ -711,7 +711,7 @@ static struct sclp_register sclp_input_e .receiver_fn = sclp_tty_receiver }; -static struct tty_operations sclp_ops = { +static const struct tty_operations sclp_ops = { .open = sclp_tty_open, .close = sclp_tty_close, .write = sclp_tty_write,
drivers/s390/char/sclp_vt220.c +1 -1
@@ -655,7 +655,7 @@ __sclp_vt220_init(int early)return 0 ; } -static struct tty_operations sclp_vt220_ops = { +static const struct tty_operations sclp_vt220_ops = { .open = sclp_vt220_open, .close = sclp_vt220_close, .write = sclp_vt220_write,
drivers/s390/char/tty3270.c +1 -1
@@ -1738,7 +1738,7 @@ tty3270_ioctl(struct tty_struct *tty, streturn kbd_ioctl (tp->kbd, file, cmd, arg); } -static struct tty_operations tty3270_ops = { +static const struct tty_operations tty3270_ops = { .open = tty3270_open, .close = tty3270_close, .write = tty3270_write,
drivers/sbus/char/aurora.c +1 -1
@@ -2187,7 +2187,7 @@ static void do_softint(void *private_)#endif } -static struct tty_operations aurora_ops = { +static const struct tty_operations aurora_ops = { .open = aurora_open, .close = aurora_close, .write = aurora_write,
drivers/serial/68328serial.c +1 -1
@@ -1378,7 +1378,7 @@ void startup_console(void)#endif /* CONFIG_PM_LEGACY */ -static struct tty_operations rs_ops = { +static const struct tty_operations rs_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
drivers/serial/68360serial.c +1 -1
@@ -2424,7 +2424,7 @@ long console_360_init(long kmem_start, l*/ static int baud_idx; -static struct tty_operations rs_360_ops = { +static const struct tty_operations rs_360_ops = { .owner =THIS_MODULE , .open = rs_360_open, .close = rs_360_close,
drivers/serial/crisv10.c +1 -1
@@ -4825,7 +4825,7 @@ show_serial_version(void)/* rs_init inits the driver at boot (using the module_init chain) */ -static struct tty_operations rs_ops = { +static const struct tty_operations rs_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
drivers/serial/mcfserial.c +1 -1
@@ -1666,7 +1666,7 @@ static void show_serial_version(void)printk (mcfrs_drivername); } -static struct tty_operations mcfrs_ops = { +static const struct tty_operations mcfrs_ops = { .open = mcfrs_open, .close = mcfrs_close, .write = mcfrs_write,
drivers/serial/serial_core.c +1 -1
@@ -2097,7 +2097,7 @@ uart_configure_port(struct uart_driver * } } -static struct tty_operations uart_ops = { +static const struct tty_operations uart_ops = { .open = uart_open, .close = uart_close, .write = uart_write,
drivers/tc/zs.c +1 -1
@@ -1701,7 +1701,7 @@ static void __init probe_sccs(void)spin_unlock_irqrestore (&zs_lock, flags); } -static struct tty_operations serial_ops = { +static const struct tty_operations serial_ops = { .open = rs_open, .close = rs_close, .write = rs_write,
drivers/usb/class/cdc-acm.c +1 -1
@@ -1120,7 +1120,7 @@ static struct usb_driver acm_driver = {* TTY driver structures. */ -static struct tty_operations acm_ops = { +static const struct tty_operations acm_ops = { .open = acm_tty_open, .close = acm_tty_close, .write = acm_tty_write,
drivers/usb/gadget/serial.c +1 -1
@@ -271,7 +271,7 @@ static unsigned int use_acm = GS_DEFAULT/* tty driver struct */ -static struct tty_operations gs_tty_ops = { +static const struct tty_operations gs_tty_ops = { .open = gs_open, .close = gs_close, .write = gs_write,
drivers/usb/serial/usb-serial.c +1 -1
@@ -1013,7 +1013,7 @@ void usb_serial_disconnect(struct usb_indev_info (dev,"device disconnected\n" ); } -static struct tty_operations serial_ops = { +static const struct tty_operations serial_ops = { .open = serial_open, .close = serial_close, .write = serial_write,
net/bluetooth/rfcomm/tty.c +1 -1
@@ -992,7 +992,7 @@ static int rfcomm_tty_tiocmset(struct tt/* ---- TTY structure ---- */ -static struct tty_operations rfcomm_ops = { +static const struct tty_operations rfcomm_ops = { .open = rfcomm_tty_open, .close = rfcomm_tty_close, .write = rfcomm_tty_write,
net/irda/ircomm/ircomm_tty.c +1 -1
@@ -79,7 +79,7 @@ static struct tty_driver *driver;hashbin_t *ircomm_tty =NULL ; -static struct tty_operations ops = { +static const struct tty_operations ops = { .open = ircomm_tty_open, .close = ircomm_tty_close, .write = ircomm_tty_write,
arch/um/include/line.h +3 -4
@@ -91,10 +91,9 @@ extern int line_setup_irq(int fd, int in void *data);extern void line_close_chan (struct line *line);extern struct tty_driver *line_register_devfs (struct lines *set, -struct line_driver *line_driver, -struct tty_operations *driver, -struct line *lines, -int nlines); +struct line_driver *line_driver, +const struct tty_operations *driver, +struct line *lines,int nlines);extern void lines_init (struct line *lines,int nlines,struct chan_opts *opts);extern void close_lines (struct line *lines,int nlines);
Ar Maw, 2006-08-15 am 16:23 -0400, ysgrifennodd Jeff Dike:
Quoted 4 lines
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.cwas the busiest one that I looked at.
For the tty layer and unmaintained drivers
I'm all for making better use of const.