mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-05 22:12:16 +00: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
1 changed files with 10 additions and 0 deletions
|
@ -442,16 +442,26 @@ out_mapping:
|
||||||
|
|
||||||
static int mv88e6xxx_g1_irq_setup(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;
|
int err;
|
||||||
|
|
||||||
err = mv88e6xxx_g1_irq_setup_common(chip);
|
err = mv88e6xxx_g1_irq_setup_common(chip);
|
||||||
if (err)
|
if (err)
|
||||||
return 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,
|
err = request_threaded_irq(chip->irq, NULL,
|
||||||
mv88e6xxx_g1_irq_thread_fn,
|
mv88e6xxx_g1_irq_thread_fn,
|
||||||
IRQF_ONESHOT | IRQF_SHARED,
|
IRQF_ONESHOT | IRQF_SHARED,
|
||||||
dev_name(chip->dev), chip);
|
dev_name(chip->dev), chip);
|
||||||
|
mutex_lock(&chip->reg_lock);
|
||||||
if (err)
|
if (err)
|
||||||
mv88e6xxx_g1_irq_free_common(chip);
|
mv88e6xxx_g1_irq_free_common(chip);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue