In the Linux kernel, the following vulnerability has been resolved: coresight: holding cscfgcsdevlock while removing cscfg from csdev There'll be possible race scenario for coresight config: CPU0 CPU1 (perf enable) load module cscfgloadconfigsets() activate config. // sysfs (sysactivecnt == 1) ... cscfgcsdevenableactiveconfig() lock(csdev->cscfgcsdevlock) deactivate config // sysfs (sysactiveccnt == 0) cscfgunloadconfigsets() <iterating configcsdevlist> cscfgremoveownedcsdevconfigs() // here load config activate by CPU1 unlock(csdev->cscfgcsdevlock) iterating configcsdevlist could be raced with configcsdevlist's entry delete. To resolve this race , hold csdev->cscfgcsdevlock() while cscfgremoveownedcsdevconfigs()