OpenCloudOS-Kernel/drivers/s390/char
Jiri Slaby 6e94dbc7a4 tty: cumulate and document tty_struct::flow* members
Group the flow flags under a single struct called flow. The new struct
contains 'stopped' and 'tco_stopped' bools which used to be bits in a
bitfield. The struct also contains the lock protecting them to
potentially share the same cache line.

Note that commit c545b66c69 (tty: Serialize tcflow() with other tty
flow control changes) added a padding to the original bitfield. It was
for the bitfield to occupy a whole 64b word to avoid interferring stores
on Alpha (cannot we evaporate this arch with weird implications to C
code yet?). But it doesn't work as expected as the padding
(tty_struct::unused) is aligned to a 8B boundary too and occupies some
bytes from the next word.

So make it reliable by:
1) setting __aligned of the struct -- that aligns the start, and
2) making 'unsigned long unused[0]' as the last member of the struct --
   pads the end.

This is also the perfect time to start the documentation of tty_struct
where all this lives. So we start by documenting what these bools
actually serve for. And why we do all the alignment dances. Only the few
up-to-date information from the Theodore's comment made it into this new
Kerneldoc comment.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: "Maciej W. Rozycki" <macro@orcam.me.uk>
Link: https://lore.kernel.org/r/20210505091928.22010-13-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-13 16:57:16 +02:00
..
Kconfig s390/sclp: remove call home support 2019-06-19 17:54:27 +02:00
Makefile s390/sclp: Add support for SCLP AP adapter config/deconfig 2020-10-07 21:50:00 +02:00
con3215.c s390 updates for 5.13 merge window 2021-04-27 17:54:15 -07:00
con3270.c s390: remove pm support from console drivers 2020-12-02 18:19:24 +01:00
ctrlchar.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctrlchar.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
defkeymap.c s390/defkeymap: fix global init to zero 2018-03-18 23:02:02 -07:00
defkeymap.map s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
diag_ftp.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
diag_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fs3270.c *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
hmcdrv_cache.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_dev.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_dev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_ftp.c s390: use fallthrough; 2020-03-25 12:39:37 +01:00
hmcdrv_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hmcdrv_mod.c s390: char: add SPDX identifiers to the remaining files 2017-11-24 14:28:42 +01:00
keyboard.c TTY/Serial driver patches for 4.19-rc1 2018-08-18 10:50:41 -07:00
keyboard.h s390/char : Rename EBCDIC keymap variables 2018-03-18 23:01:56 -07:00
monreader.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
monwriter.c s390/monwriter: do not use stack buffers for hardware data 2018-10-09 11:20:53 +02:00
raw3270.c s390: remove pm support from console drivers 2020-12-02 18:19:24 +01:00
raw3270.h s390: remove pm support from console drivers 2020-12-02 18:19:24 +01:00
sclp.c s390/sclp: use LIST_HEAD for Initialization 2021-04-07 15:24:57 +02:00
sclp.h s390/sclp: provide extended sccb support 2020-11-18 12:16:02 +01:00
sclp_ap.c s390/sclp: Add support for SCLP AP adapter config/deconfig 2020-10-07 21:50:00 +02:00
sclp_cmd.c s390: unify identity mapping limits handling 2020-11-20 19:19:10 +01:00
sclp_con.c s390/sclp: use LIST_HEAD for Initialization 2021-04-07 15:24:57 +02:00
sclp_config.c s390/smp: fix CPU hotplug deadlock with CPU rescan 2019-01-11 17:12:02 +01:00
sclp_cpi_sys.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_cpi_sys.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_ctl.c compat: Move compat_timespec/ timeval to compat_time.h 2018-04-19 13:29:54 +02:00
sclp_diag.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_early.c s390/sclp: provide extended sccb support 2020-11-18 12:16:02 +01:00
sclp_early_core.c s390: Use arch_local_irq_{save,restore}() in early boot code 2021-02-10 14:44:39 +01:00
sclp_ftp.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_ftp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_ocf.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_pci.c s390: Replace zero-length array with flexible-array member 2020-02-27 16:02:21 +01:00
sclp_quiesce.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_rw.c s390/sclp: remove orphaned sclp_set_columns and sclp_set_htab 2020-09-30 12:09:54 +02:00
sclp_rw.h s390/sclp: remove orphaned sclp_set_columns and sclp_set_htab 2020-09-30 12:09:54 +02:00
sclp_sd.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
sclp_sdias.c s390/nvme: support firmware-assisted dump to NVMe disks 2020-10-02 14:40:48 +02:00
sclp_sdias.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_tty.c s390/sclp: use LIST_HEAD for Initialization 2021-04-07 15:24:57 +02:00
sclp_tty.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp_vt220.c s390/sclp: use LIST_HEAD for Initialization 2021-04-07 15:24:57 +02:00
tape.h s390/tape: remove unsupported PM functions 2020-12-02 18:19:24 +01:00
tape_34xx.c s390/tape: remove unsupported PM functions 2020-12-02 18:19:24 +01:00
tape_3590.c s390/tape: Fix spelling mistake in function name tape_3590_erp_succeded 2021-01-27 13:00:47 +01:00
tape_3590.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tape_char.c compat_ioctl: move tape handling into drivers 2019-10-23 17:23:44 +02:00
tape_class.c s390/tape: replace PTR_RET with PTR_ERR_OR_ZERO 2018-07-19 16:37:37 +02:00
tape_class.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tape_core.c s390/tape: remove unsupported PM functions 2020-12-02 18:19:24 +01:00
tape_proc.c s390/drivers: fix proc/debugfs file permissions 2018-12-13 10:42:24 +01:00
tape_std.c Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 17:56:58 -08:00
tape_std.h s390: remove orphaned function declarations 2020-09-30 12:09:54 +02:00
tty3270.c tty: cumulate and document tty_struct::flow* members 2021-05-13 16:57:16 +02:00
tty3270.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vmcp.c s390/vmcp: correct early_param handling 2019-08-26 12:51:17 +02:00
vmlogrdr.c s390: vmlogrdr: Use ARRAY_SIZE instead of reimplementing its function 2018-09-20 13:20:28 +02:00
vmur.c whack-a-mole: don't open-code iminor/imajor 2021-02-23 10:25:29 -05:00
vmur.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-13 11:47:01 -08:00
zcore.c s390/zcore: release dump save area on restart or power down 2021-03-08 10:46:28 +01:00