Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751958AbdHAPYQ (ORCPT ); Tue, 1 Aug 2017 11:24:16 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:34145 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751833AbdHAPYM (ORCPT ); Tue, 1 Aug 2017 11:24:12 -0400 From: Paolo Bonzini To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra Subject: [PATCH 0/3] jump_labels: concurrency fixes Date: Tue, 1 Aug 2017 17:24:03 +0200 Message-Id: <1501601046-35683-1-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1069 Lines: 29 Any use of key->enabled (that is static_key_enabled and static_key_count) outside jump_label_lock should handle its own serialization. Notably among those that don't do so is static_key_enable/disable itself. Once those are fixed (patch 1), they can be used to fix the actual offenders in net/ (patch 2). Patch 3 is not fixing anything, but the function cannot be used correctly from any place other than cpuset.c itself so it is moved there. Based on discussion with Peter Zijlstra. Paolo Paolo Bonzini (3): jump_labels: fix concurrent static_key_enable/disable() jump_labels: do not use unserialized static_key_enabled cpuset: make nr_cpusets private Documentation/static-keys.txt | 5 ++++ include/linux/cpuset.h | 6 ----- include/linux/jump_label.h | 22 ++++++++-------- kernel/cgroup/cpuset.c | 7 +++++ kernel/jump_label.c | 59 +++++++++++++++++++++++++++---------------- net/ipv4/udp.c | 3 +-- net/ipv6/udp.c | 3 +-- 7 files changed, 63 insertions(+), 42 deletions(-) -- 1.8.3.1