mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-20 16:40:16 +07:00
Merge branch 'dsa-mv88e6xxx-lockdep'
Andrew Lunn says: ==================== mv88e6xxx: Avoid false positive Lockdep splats When acquiring the GPIO interrupt line for the switch, it is possible to trigger lockdep splats. These are false positives, the mutex is in a different IRQ descriptor. But fix it anyway, since it could mask real locking issues. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
169431ed16
@ -442,16 +442,26 @@ static int mv88e6xxx_g1_irq_setup_common(struct mv88e6xxx_chip *chip)
|
||||
|
||||
static int mv88e6xxx_g1_irq_setup(struct mv88e6xxx_chip *chip)
|
||||
{
|
||||
static struct lock_class_key lock_key;
|
||||
static struct lock_class_key request_key;
|
||||
int err;
|
||||
|
||||
err = mv88e6xxx_g1_irq_setup_common(chip);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* These lock classes tells lockdep that global 1 irqs are in
|
||||
* a different category than their parent GPIO, so it won't
|
||||
* report false recursion.
|
||||
*/
|
||||
irq_set_lockdep_class(chip->irq, &lock_key, &request_key);
|
||||
|
||||
mutex_unlock(&chip->reg_lock);
|
||||
err = request_threaded_irq(chip->irq, NULL,
|
||||
mv88e6xxx_g1_irq_thread_fn,
|
||||
IRQF_ONESHOT | IRQF_SHARED,
|
||||
dev_name(chip->dev), chip);
|
||||
mutex_lock(&chip->reg_lock);
|
||||
if (err)
|
||||
mv88e6xxx_g1_irq_free_common(chip);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user