あなたは間違っています™ :-)
カーネル ツリーをそのまま維持し、適切な増分パッチを使用して単純にパッチを適用します。たとえば、3.x の場合、これらのパッチは次の場所にあります。
https://www.kernel.org/pub/linux/kernel/v3.x/incr/
現在 3.18.11 をビルドしていて、3.18.12 にアップグレードしたい場合は、3.18.11-12 パッチをダウンロードします。
https://www.kernel.org/pub/linux/kernel/v3.x/incr/patch-3.18.11-12.xz
(または、xz ユーティリティがインストールされていない場合は .gz ファイル)。
そしてそれを適用します。次に「make oldconfig」と「make」。再構築する必要があるものはすべて再構築されます。
ただし、実際には、オブジェクト ファイルの依存関係メカニズムに依存しないことをお勧めします。バグが原因であるにもかかわらず、何かが再構築されない可能性があるかどうかは誰にもわかりません。そのため、パッチを適用する前に毎回「クリーンにする」ことでクリーンを開始することをお勧めします。
ビルド時間を節約する必要が本当にありますか? はいの場合、カーネルを構成し (「make menuconfig」)、必要のないすべての機能 (持っていないハードウェアのデバイス ドライバー、気にしないファイル システム、ネットワークなど) を無効にすることをお勧めします。私のニーズに合わせて最適化されたこのようなカーネルは、ビルドに約 3 ~ 4 分しかかかりません (通常、すべてが有効になっている完全なカーネルには 30 分以上かかります。最近ではさらにそれ以上かかります)。最適化されていないカーネルを構築してから長い時間が経ちました。)
カーネルパッチに関する詳細情報:
https://www.kernel.org/doc/Documentation/applying-patches.txt