s390/irq: use assignment instead of cast

Change struct ext_code to contain a union which allows to simply
assign the int_code instead of using a cast.

In order to keep the patch small the anonymous union is embedded
within the existing struct instead of changing the struct ext_code to
a union.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Heiko Carstens
2022-03-06 11:11:05 +01:00
committed by Vasily Gorbik
parent 998e78004f
commit 7d8484c415
2 changed files with 8 additions and 3 deletions
+7 -2
View File
@@ -81,8 +81,13 @@ static __always_inline void inc_irq_stat(enum interruption_class irq)
}
struct ext_code {
unsigned short subcode;
unsigned short code;
union {
struct {
unsigned short subcode;
unsigned short code;
};
unsigned int int_code;
};
};
typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long);
+1 -1
View File
@@ -342,7 +342,7 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy)
struct ext_int_info *p;
int index;
ext_code = *(struct ext_code *) &regs->int_code;
ext_code.int_code = regs->int_code;
if (ext_code.code != EXT_IRQ_CLK_COMP)
set_cpu_flag(CIF_NOHZ_DELAY);