From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
Julien Grall <julien@xen.org>,
Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
Michal Orzel <michal.orzel@amd.com>,
Bertrand Marquis <bertrand.marquis@arm.com>,
Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: [PATCH v4 5/8] serial: drop serial_[rt]x_interrupt()'s regs parameter
Date: Tue, 20 Feb 2024 09:55:14 +0100 [thread overview]
Message-ID: <6476a662-14f2-4206-83c6-a561c6c4aee5@suse.com> (raw)
In-Reply-To: <e5f62a45-5b68-404d-908e-909f84f87b44@suse.com>
They're simply not needed anymore.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
v4: Re-base over changes earlier in the series.
v2: Setting of IRQ regs split off to an earlier patch.
--- a/xen/drivers/char/cadence-uart.c
+++ b/xen/drivers/char/cadence-uart.c
@@ -51,7 +51,7 @@ static void cuart_interrupt(int irq, voi
/* ACK. */
if ( status & UART_SR_INTR_RTRIG )
{
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
cuart_write(uart, R_UART_CISR, UART_SR_INTR_RTRIG);
}
} while ( status & UART_SR_INTR_RTRIG );
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1273,10 +1273,10 @@ static void cf_check _ehci_dbgp_poll(str
old_regs = set_irq_regs(regs);
if ( dbgp->in.chunk )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
if ( empty )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
set_irq_regs(old_regs);
--- a/xen/drivers/char/exynos4210-uart.c
+++ b/xen/drivers/char/exynos4210-uart.c
@@ -81,7 +81,7 @@ static void exynos4210_uart_interrupt(in
if ( status & (UINTM_RXD | UINTM_ERROR) )
{
/* uart->regs[UINTM] |= RXD|ERROR; */
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
/* uart->regs[UINTM] &= ~(RXD|ERROR); */
exynos4210_write(uart, UINTP, UINTM_RXD | UINTM_ERROR);
}
@@ -89,7 +89,7 @@ static void exynos4210_uart_interrupt(in
if ( status & (UINTM_TXD | UINTM_MODEM) )
{
/* uart->regs[UINTM] |= TXD|MODEM; */
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
/* uart->regs[UINTM] &= ~(TXD|MODEM); */
exynos4210_write(uart, UINTP, UINTM_TXD | UINTM_MODEM);
}
--- a/xen/drivers/char/imx-lpuart.c
+++ b/xen/drivers/char/imx-lpuart.c
@@ -48,10 +48,10 @@ static void imx_lpuart_interrupt(int irq
rxcnt = imx_lpuart_read(uart, UARTWATER) >> UARTWATER_RXCNT_OFF;
if ( (sts & UARTSTAT_RDRF) || (rxcnt > 0) )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
if ( sts & UARTSTAT_TDRE )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
imx_lpuart_write(uart, UARTSTAT, sts);
}
--- a/xen/drivers/char/meson-uart.c
+++ b/xen/drivers/char/meson-uart.c
@@ -69,10 +69,10 @@ static void meson_uart_interrupt(int irq
uint32_t st = readl(uart->regs + AML_UART_STATUS_REG);
if ( !(st & AML_UART_RX_FIFO_EMPTY) )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
if ( !(st & AML_UART_TX_FIFO_FULL) )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
}
static void __init meson_uart_init_preirq(struct serial_port *port)
--- a/xen/drivers/char/mvebu-uart.c
+++ b/xen/drivers/char/mvebu-uart.c
@@ -76,10 +76,10 @@ static void mvebu3700_uart_interrupt(int
if ( st & (STATUS_RX_RDY | STATUS_OVR_ERR | STATUS_FRM_ERR |
STATUS_BRK_DET) )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
if ( st & STATUS_TX_RDY )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
}
static void __init mvebu3700_uart_init_preirq(struct serial_port *port)
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -188,9 +188,9 @@ static void cf_check ns16550_interrupt(
u8 lsr = ns_read_reg(uart, UART_LSR);
if ( (lsr & uart->lsr_mask) == uart->lsr_mask )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
if ( lsr & UART_LSR_DR )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
/* A "busy-detect" condition is observed on Allwinner/sunxi UART
* after LCR is written during setup. It needs to be cleared at
@@ -224,11 +224,11 @@ static void cf_check __ns16550_poll(stru
if ( ns16550_ioport_invalid(uart) )
goto out;
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
}
if ( ( ns_read_reg(uart, UART_LSR) & uart->lsr_mask ) == uart->lsr_mask )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
out:
set_irq_regs(old_regs);
--- a/xen/drivers/char/omap-uart.c
+++ b/xen/drivers/char/omap-uart.c
@@ -70,9 +70,9 @@ static void omap_uart_interrupt(int irq,
{
lsr = omap_read(uart, UART_LSR) & 0xff;
if ( lsr & UART_LSR_THRE )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
if ( lsr & UART_LSR_DR )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
if ( port->txbufc == port->txbufp ) {
reg = omap_read(uart, UART_IER);
--- a/xen/drivers/char/pl011.c
+++ b/xen/drivers/char/pl011.c
@@ -95,7 +95,7 @@ static void pl011_interrupt(int irq, voi
pl011_write(uart, ICR, status & ~(TXI|RTI|RXI));
if ( status & (RTI|RXI) )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
/* TODO
if ( status & (DSRMI|DCDMI|CTSMI|RIMI) )
@@ -103,7 +103,7 @@ static void pl011_interrupt(int irq, voi
*/
if ( status & (TXI) )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
status = pl011_intr_status(uart);
} while (status != 0);
--- a/xen/drivers/char/scif-uart.c
+++ b/xen/drivers/char/scif-uart.c
@@ -119,11 +119,11 @@ static void scif_uart_interrupt(int irq,
{
/* TX Interrupt */
if ( status & SCFSR_TDFE )
- serial_tx_interrupt(port, regs);
+ serial_tx_interrupt(port);
/* RX Interrupt */
if ( status & (SCFSR_RDF | SCFSR_DR) )
- serial_rx_interrupt(port, regs);
+ serial_rx_interrupt(port);
/* Error Interrupt */
if ( status & params->error_mask )
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -45,7 +45,7 @@ static inline void serial_stop_tx(struct
port->driver->stop_tx(port);
}
-void serial_rx_interrupt(struct serial_port *port, struct cpu_user_regs *regs)
+void serial_rx_interrupt(struct serial_port *port)
{
char c;
serial_rx_fn fn = NULL;
@@ -71,7 +71,7 @@ void serial_rx_interrupt(struct serial_p
fn(c & 0x7f);
}
-void serial_tx_interrupt(struct serial_port *port, struct cpu_user_regs *regs)
+void serial_tx_interrupt(struct serial_port *port)
{
int i, n;
unsigned long flags;
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -1176,9 +1176,10 @@ static void cf_check dbc_uart_poll(void
}
while ( dbc_work_ring_size(&dbc->dbc_iwork) )
- serial_rx_interrupt(port, guest_cpu_user_regs());
+ serial_rx_interrupt(port);
+
+ serial_tx_interrupt(port);
- serial_tx_interrupt(port, guest_cpu_user_regs());
set_timer(&uart->timer, NOW() + MICROSECS(DBC_POLL_INTERVAL));
}
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -12,8 +12,6 @@
#include <xen/init.h>
#include <xen/spinlock.h>
-struct cpu_user_regs;
-
/* Register a character-receive hook on the specified COM port. */
typedef void (*serial_rx_fn)(char c);
void serial_set_rx_handler(int handle, serial_rx_fn fn);
@@ -145,8 +143,8 @@ void serial_register_uart(int idx, struc
/* Place the serial port into asynchronous transmit mode. */
void serial_async_transmit(struct serial_port *port);
/* Process work in interrupt context. */
-void serial_rx_interrupt(struct serial_port *port, struct cpu_user_regs *regs);
-void serial_tx_interrupt(struct serial_port *port, struct cpu_user_regs *regs);
+void serial_rx_interrupt(struct serial_port *port);
+void serial_tx_interrupt(struct serial_port *port);
/*
* Initialisers for individual uart drivers.
next prev parent reply other threads:[~2024-02-20 8:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-20 8:51 [PATCH v4 0/8] limit passing around of cpu_user_regs Jan Beulich
2024-02-20 8:52 ` [PATCH v4 1/8] serial: fake IRQ-regs context in poll handlers Jan Beulich
2024-02-21 23:01 ` Julien Grall
2024-02-20 8:53 ` [PATCH v4 2/8] keyhandler: drop regs parameter from handle_keyregs() Jan Beulich
2024-02-20 8:53 ` [PATCH v4 3/8] serial: drop serial_rx_fn's regs parameter Jan Beulich
2024-02-20 8:53 ` [PATCH v4 4/8] PV-shim: drop pv_console_rx()'s " Jan Beulich
2024-02-20 8:55 ` Jan Beulich [this message]
2024-02-21 23:02 ` [PATCH v4 5/8] serial: drop serial_[rt]x_interrupt()'s " Julien Grall
2024-02-20 8:55 ` [PATCH v4 6/8] IRQ: drop regs parameter from handler functions Jan Beulich
2024-02-20 8:56 ` [PATCH v4 7/8] x86/APIC: drop regs parameter from direct vector " Jan Beulich
2024-02-20 8:57 ` [PATCH v4 8/8] consolidate do_bug_frame() / bug_fn_t Jan Beulich
2024-02-20 8:58 ` [PATCH v4 0/8] limit passing around of cpu_user_regs Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6476a662-14f2-4206-83c6-a561c6c4aee5@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=bertrand.marquis@arm.com \
--cc=george.dunlap@citrix.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=sstabellini@kernel.org \
--cc=volodymyr_babchuk@epam.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.