Received: by 10.223.176.5 with SMTP id f5csp498429wra; Tue, 6 Feb 2018 02:35:35 -0800 (PST) X-Google-Smtp-Source: AH8x224A+seJkvNZ/RNKCqnCFdA31mtQh9gh9yPbXFpMXukKpc1u5SxfB5uwkl0yc+nwh+aUTAh8 X-Received: by 2002:a17:902:720b:: with SMTP id ba11-v6mr1925566plb.371.1517913335491; Tue, 06 Feb 2018 02:35:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517913335; cv=none; d=google.com; s=arc-20160816; b=gS2tAsvHv0EMFwbgjHB3ZIOdyd4vQ41GuR+HdUdA95i9cDXG8g8jhP5twvluOAxMCr l5QBGTKXmGDyShCPKMagupdrOn2uL0D3xkmkaArx4WiDmrpL0Fi2DJFcYllRP5nWIK+M 0n8dS5I6Lbho7X2wN2Z5glMFvxuFdyrZQEUQobNeESdockgzH1jfoElV6CSmEqUU3xdk Zsl48X9od12OuWhpNgK9L1JMWDFILpX/8eflk4e80pK2Etq8fVS1lr2M/j9OSJqQ0NG4 PdAV3Uk09C+mtATjD1xHiF0s1MIElncAPmUSGvS0/1TIPNZ6ZHSi/DGcb+QS3zIqHebv E+fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=XD1mlXFYcb+XeLxA9jqkKSChQzU0+qPtjwr74YXH0tM=; b=DNs/MkSpSaaIYENDf9g3cHAoug8Hn7LFspodIfFjCq3h4J1clvwc1JnM+G+0H38fLQ HxeQHRMXL6HAwV2ARV4emn4iS8mBCg42iZ/lFemitC2uXdol0M4yInHpGekNSepzZIhX XCrIOSaNDjICV4EaZUUmyb3Y+mo9utFG3gDxo3Jc12iRgf9ohiINnSC3M6+QqENnqtvQ 6GFD2H0mfDa6aFfRxmpn3PSE7wO51jNoi2Oi7bjSdnArBJbAB+eaLeXEx0kgTrwQZuQZ SLeWF2gm4yFCeSW2/XDpoR+8omR2wjn3L1YZerSWO+yPLi26uoge3G2hPhGXgrva1gRS SVbQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l11si4697750pgu.265.2018.02.06.02.35.21; Tue, 06 Feb 2018 02:35:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752804AbeBFKet (ORCPT + 99 others); Tue, 6 Feb 2018 05:34:49 -0500 Received: from mx2.suse.de ([195.135.220.15]:59940 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752187AbeBFKen (ORCPT ); Tue, 6 Feb 2018 05:34:43 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 03422AC42; Tue, 6 Feb 2018 10:34:41 +0000 (UTC) From: Petr Mladek To: Jiri Kosina , Josh Poimboeuf , Miroslav Benes Cc: Jason Baron , Joe Lawrence , Jessica Yu , Evgenii Shatokhin , live-patching@vger.kernel.org, linux-kernel@vger.kernel.org, Petr Mladek Subject: [PATCH v7 0/7] livepatch: Atomic replace feature Date: Tue, 6 Feb 2018 11:34:17 +0100 Message-Id: <20180206103424.10829-1-pmladek@suse.com> X-Mailer: git-send-email 2.13.6 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The atomic replace allows to create cumulative patches. They are useful when you maintain many livepatches and want to remove one that is lower on the stack. In addition it is very useful when more patches touch the same function and there are dependencies between them. Changes against v6: + used list_move when disabling replaced patches [Jason] + renamed KLP_FUNC_ORIGINAL -> KLP_FUNC_STATIC [Mirek] + used klp_is_func_type() in klp_unpatch_object() [Mirek] + moved static definition of klp_get_or_add_object() [Mirek] + updated comment about synchronization in forced mode [Mirek] + added user documentation + fixed several typos Jason Baron (5): livepatch: Use lists to manage patches, objects and functions livepatch: Initial support for dynamic structures livepatch: Allow to unpatch only functions of the given type livepatch: Support separate list for replaced patches. livepatch: Add atomic replace Petr Mladek (2): livepatch: Free only structures with initialized kobject livepatch: Atomic replace and cumulative patches documentation Documentation/livepatch/cumulative-patches.txt | 76 +++++ include/linux/livepatch.h | 59 +++- kernel/livepatch/core.c | 378 ++++++++++++++++++++++--- kernel/livepatch/core.h | 4 + kernel/livepatch/patch.c | 29 +- kernel/livepatch/patch.h | 4 +- kernel/livepatch/transition.c | 41 ++- 7 files changed, 543 insertions(+), 48 deletions(-) create mode 100644 Documentation/livepatch/cumulative-patches.txt -- 2.13.6