From f743a7adbd6e230d66a6206fa115b59fec2d88eb Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 22 Nov 2023 01:07:42 +0000 Subject: [PATCH] disable pwm7 --- kernel/drivers/md/raid5.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/drivers/md/raid5.c b/kernel/drivers/md/raid5.c index c7bda4b..8eb2347 100644 --- a/kernel/drivers/md/raid5.c +++ b/kernel/drivers/md/raid5.c @@ -2069,8 +2069,9 @@ struct raid5_percpu *percpu; unsigned long cpu; - cpu = get_cpu(); + cpu = get_cpu_light(); percpu = per_cpu_ptr(conf->percpu, cpu); + spin_lock(&percpu->lock); if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) { ops_run_biofill(sh); overlap_clear++; @@ -2129,7 +2130,8 @@ if (test_and_clear_bit(R5_Overlap, &dev->flags)) wake_up(&sh->raid_conf->wait_for_overlap); } - put_cpu(); + spin_unlock(&percpu->lock); + put_cpu_light(); } static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh) @@ -6816,6 +6818,7 @@ __func__, cpu); return -ENOMEM; } + spin_lock_init(&per_cpu_ptr(conf->percpu, cpu)->lock); return 0; } @@ -6826,7 +6829,6 @@ conf->percpu = alloc_percpu(struct raid5_percpu); if (!conf->percpu) return -ENOMEM; - err = cpuhp_state_add_instance(CPUHP_MD_RAID5_PREPARE, &conf->node); if (!err) { conf->scribble_disks = max(conf->raid_disks, -- Gitblit v1.6.2