This repository is the canonical source for patches that make up the stable
kernel releases. It consists of a set of directories for each of the stable
kernels, as well as a directory that contains a snapshot of the patches for
each stable release.

The patches for each release can be found along with a complete tarball of
a release in the following location:

	https://kernel.org/pub/linux/kernel/vX.Y/

For each stable release candidate, a patch representing the diff of all the
patches in the stable queue is uploaded here:

	https://kernel.org/pub/linux/kernel/vX.Y/stable-review/

As a convenience for people that want to test release candidates of stable
releases, a branch of the kernel git tree is created containing all of the
patches in the given stable queue. These branches are available in the
following repository:

	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git

A branch exists for each of the stable releases. Note, though, that these
branches are recreated from scratch by applying the queued stable patches
on top of the prior release. As a consequence, the branches are not fast-
forward and can change after a release candidate has been announced. The
contents of the branch may therefore not match exactly what was released
as the release candidate, depending on when you fetch it. No tags are
created to track individual release candidates. If you're interested in
exact reproducibility of a stable release candidate, please use the patches
from the location mentioned above.
