mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 17:51:57 +09:00
Merge tag 'samsung-soc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc
Samsung mach/soc changes for v5.16 A minor fix for theoretical issue when handling IRQ setup code errors in S3C24xx and a cleanup for S3C64xx. * tag 'samsung-soc-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: s3c: Use strscpy to replace strlcpy ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc() Link: https://lore.kernel.org/r/20211026094709.75692-5-krzysztof.kozlowski@canonical.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -361,11 +361,25 @@ static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc,
|
||||
static asmlinkage void __exception_irq_entry s3c24xx_handle_irq(struct pt_regs *regs)
|
||||
{
|
||||
do {
|
||||
if (likely(s3c_intc[0]))
|
||||
if (s3c24xx_handle_intc(s3c_intc[0], regs, 0))
|
||||
continue;
|
||||
/*
|
||||
* For platform based machines, neither ERR nor NULL can happen here.
|
||||
* The s3c24xx_handle_irq() will be set as IRQ handler iff this succeeds:
|
||||
*
|
||||
* s3c_intc[0] = s3c24xx_init_intc()
|
||||
*
|
||||
* If this fails, the next calls to s3c24xx_init_intc() won't be executed.
|
||||
*
|
||||
* For DT machine, s3c_init_intc_of() could set the IRQ handler without
|
||||
* setting s3c_intc[0] only if it was called with num_ctrl=0. There is no
|
||||
* such code path, so again the s3c_intc[0] will have a valid pointer if
|
||||
* set_handle_irq() is called.
|
||||
*
|
||||
* Therefore in s3c24xx_handle_irq(), the s3c_intc[0] is always something.
|
||||
*/
|
||||
if (s3c24xx_handle_intc(s3c_intc[0], regs, 0))
|
||||
continue;
|
||||
|
||||
if (s3c_intc[2])
|
||||
if (!IS_ERR_OR_NULL(s3c_intc[2]))
|
||||
if (s3c24xx_handle_intc(s3c_intc[2], regs, 64))
|
||||
continue;
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ static char mini6410_features_str[12] __initdata = "0";
|
||||
static int __init mini6410_features_setup(char *str)
|
||||
{
|
||||
if (str)
|
||||
strlcpy(mini6410_features_str, str,
|
||||
strscpy(mini6410_features_str, str,
|
||||
sizeof(mini6410_features_str));
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user