• Yassine Oudjana's avatar
    regmap-irq: Use the new num_config_regs property in regmap_add_irq_chip_fwnode · 84498d1f
    Yassine Oudjana authored
    Commit faa87ce9 ("regmap-irq: Introduce config registers for irq
    types") added the num_config_regs, then commit 9edd4f5a ("regmap-irq:
    Deprecate type registers and virtual registers") suggested to replace
    num_type_reg with it. However, regmap_add_irq_chip_fwnode wasn't modified
    to use the new property. Later on, commit 255a03bb ("ASoC: wcd9335:
    Convert irq chip to config regs") removed the old num_type_reg property
    from the WCD9335 driver's struct regmap_irq_chip, causing a null pointer
    dereference in regmap_irq_set_type when it tried to index d->type_buf as
    it was never allocated in regmap_add_irq_chip_fwnode:
    
    [   39.199374] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
    
    [   39.200006] Call trace:
    [   39.200014]  regmap_irq_set_type+0x84/0x1c0
    [   39.200026]  __irq_set_trigger+0x60/0x1c0
    [   39.200040]  __setup_irq+0x2f4/0x78c
    [   39.200051]  request_threaded_irq+0xe8/0x1a0
    
    Use num_config_regs in regmap_add_irq_chip_fwnode instead of num_type_reg,
    and fall back to it if num_config_regs isn't defined to maintain backward
    compatibility.
    
    Fixes: faa87ce9 ("regmap-irq: Introduce config registers for irq types")
    Signed-off-by: default avatarYassine Oudjana <y.oudjana@protonmail.com>
    Link: https://lore.kernel.org/r/20221107202114.823975-1-y.oudjana@protonmail.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    84498d1f
regmap-irq.c 34.2 KB