[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen/spinlock: use correct pointer



commit 13893a58e28d0fee355ec299216568e4ab1c2c23
Author:     Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
AuthorDate: Fri Apr 26 12:43:24 2024 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Apr 26 12:43:24 2024 +0200

    xen/spinlock: use correct pointer
    
    The ->profile member is at different offsets in struct rspinlock and
    struct spinlock. When initializing the profiling bits of an rspinlock,
    an unrelated member in struct rspinlock was being overwritten, leading
    to mild havoc. Use the correct pointer.
    
    Fixes: b053075d1a7b ("xen/spinlock: make struct lock_profile rspinlock_t 
aware")
    Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/common/spinlock.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 558ea7ac35..28c6e9d3ac 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -789,7 +789,11 @@ static int __init cf_check lock_prof_init(void)
     {
         (*q)->next = lock_profile_glb_q.elem_q;
         lock_profile_glb_q.elem_q = *q;
-        (*q)->ptr.lock->profile = *q;
+
+        if ( (*q)->is_rlock )
+            (*q)->ptr.rlock->profile = *q;
+        else
+            (*q)->ptr.lock->profile = *q;
     }
 
     _lock_profile_register_struct(LOCKPROF_TYPE_GLOBAL,
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.