1
0

sync with Debian

This commit is contained in:
Konstantin Demin 2025-03-27 01:51:30 +03:00
parent 06a5da3214
commit 3d597650a9
75 changed files with 405 additions and 976 deletions
debian
changelogcopyright
lib/python/debian_linux
linux-perf.lintian-overrides.amd64linux-perf.postrm
patches
bugfix
debian
features
series
rtla.linksrules
rules.d/tools/usb/usbip
rules.real
templates

197
debian/changelog vendored

@ -1,198 +1,5 @@
linux (6.12.20-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.20
-- Konstantin Demin <rockdrilla@gmail.com> Sun, 23 Mar 2025 03:14:29 +0300
linux (6.12.19-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.19
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 13 Mar 2025 20:47:49 +0300
linux (6.12.18-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.18
-- Konstantin Demin <rockdrilla@gmail.com> Sat, 08 Mar 2025 06:44:24 +0300
linux (6.12.17-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.17
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 27 Feb 2025 16:35:33 +0300
linux (6.12.16-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.15
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.16
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 21 Feb 2025 17:46:41 +0300
linux (6.12.14-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.14
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 17 Feb 2025 17:43:08 +0300
linux (6.12.13-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.13
-- Konstantin Demin <rockdrilla@gmail.com> Sun, 09 Feb 2025 19:34:35 +0300
linux (6.12.12-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.12
-- Konstantin Demin <rockdrilla@gmail.com> Sun, 02 Feb 2025 13:07:44 +0300
linux (6.12.11-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.11
* Compress vmlinux with xz for all flavours.
-- Konstantin Demin <rockdrilla@gmail.com> Tue, 28 Jan 2025 09:10:17 +0300
linux (6.12.10-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.10
-- Konstantin Demin <rockdrilla@gmail.com> Sat, 18 Jan 2025 01:39:50 +0300
linux (6.12.9-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.9
* Drop "pf/amd-pstate" and "pf/amd-rapl" patchsets.
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 09 Jan 2025 23:12:22 +0300
linux (6.12.8-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.8
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 02 Jan 2025 19:34:34 +0300
linux (6.12.7-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.7
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 27 Dec 2024 16:28:43 +0300
linux (6.12.6-2) sid; urgency=medium
* Cherry-pick some patches.
* Refine/adjust configs.
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 27 Dec 2024 00:47:14 +0300
linux (6.12.6-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.6
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 19 Dec 2024 21:00:52 +0300
linux (6.12.5-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.5
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 16 Dec 2024 06:43:43 +0300
linux (6.12.4-1) sid; urgency=medium
linux (6.14-1) sid; urgency=medium
* Sync with Debian.
* New upstream release: https://kernelnewbies.org/Linux_6.12
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.1
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.2
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.3
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.4
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 09 Dec 2024 22:08:34 +0300
linux (6.11.11-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.11
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 05 Dec 2024 18:41:08 +0300
linux (6.11.10-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.10
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 22 Nov 2024 19:59:35 +0300
linux (6.11.9-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.9
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 18 Nov 2024 00:21:44 +0300
linux (6.11.8-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.8
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 15 Nov 2024 10:17:08 +0300
linux (6.11.7-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.7
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 08 Nov 2024 22:31:17 +0300
linux (6.11.6-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.6
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 01 Nov 2024 10:54:09 +0300
linux (6.11.5-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.5
[ Aurelien Jarno ]
* Revert upstream commit causing data corrution (Closes: #1085425)
- Revert "mmc: dw_mmc: Fix IDMAC operation with pages bigger than 4K"
[ Salvatore Bonaccorso ]
* netfilter: xtables: fix typo causing some targets not to load on IPv6
(Closes: #1085953)
[ Konstantin Demin ]
* Initial package release.
-- Konstantin Demin <rockdrilla@gmail.com> Tue, 29 Oct 2024 05:14:58 +0300
linux (6.11.4-1) unstable; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.3
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.4
[ Salvatore Bonaccorso ]
* d/config: Update with the help of kconfigeditor2
- mm: Enable Z3FOLD_DEPRECATED instead of Z3FOLD
-- Salvatore Bonaccorso <carnil@debian.org> Sun, 20 Oct 2024 20:51:13 +0200
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 27 Mar 2025 01:51:03 +0300

109
debian/copyright vendored

@ -25,43 +25,43 @@ Copyright: 1996-2006 Manoj Srivastava
License: GPL-2
Files:
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-370-d*.dts*
arch/arm/boot/dts/armada-370-mirabox.dts
arch/arm/boot/dts/armada-370-netgear*.dts*
arch/arm/boot/dts/armada-370-rd.dts
arch/arm/boot/dts/armada-370-synology-ds213j.dts
arch/arm/boot/dts/armada-375*.dts*
arch/arm/boot/dts/armada-38*.dts*
arch/arm/boot/dts/armada-39*.dts*
arch/arm/boot/dts/armada-xp*.dts*
arch/arm/boot/dts/artpec6.dtsi
arch/arm/boot/dts/at91sam9260ek.dts
arch/arm/boot/dts/at91sam9xe.dtsi
arch/arm/boot/dts/axp*.dts*
arch/arm/boot/dts/berlin2*.dts*
arch/arm/boot/dts/allwinner/axp*.dts*
arch/arm/boot/dts/allwinner/sun*.dts*
arch/arm/boot/dts/amlogic/meson*.dts*
arch/arm/boot/dts/arm/mps2*.dts*
arch/arm/boot/dts/axis/artpec6.dtsi
arch/arm/boot/dts/cnxt/cx92755*.dts*
arch/arm/boot/dts/cros-ec-sbs.dtsi
arch/arm/boot/dts/cx92755*.dts*
arch/arm/boot/dts/imx7*.dts*
arch/arm/boot/dts/kirkwood-linkstation*.dts*
arch/arm/boot/dts/ls*.dts*
arch/arm/boot/dts/meson*.dts*
arch/arm/boot/dts/mps2*.dts*
arch/arm/boot/dts/mvebu-linkstation-*.dts*
arch/arm/boot/dts/orion5x-kuroboxpro.dts
arch/arm/boot/dts/orion5x-linkstation*.dts*
arch/arm/boot/dts/orion5x-ls*.dts*
arch/arm/boot/dts/qcom-mdm9615*.dts*
arch/arm/boot/dts/rk*.dts
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/sama5d4.dtsi
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
arch/arm/boot/dts/stm*.dts*
arch/arm/boot/dts/sun*.dts*
arch/arm/boot/dts/tegra124-apalis*.dts*
arch/arm/boot/dts/uniphier-*.dts*
arch/arm/boot/dts/vf610-colibri*.dts*
arch/arm/boot/dts/vf610m*.dts*
arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_vining_fpga.dts
arch/arm/boot/dts/marvell/armada-370-d*.dts*
arch/arm/boot/dts/marvell/armada-370-mirabox.dts
arch/arm/boot/dts/marvell/armada-370-netgear*.dts*
arch/arm/boot/dts/marvell/armada-370-rd.dts
arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts
arch/arm/boot/dts/marvell/armada-370.dtsi
arch/arm/boot/dts/marvell/armada-375*.dts*
arch/arm/boot/dts/marvell/armada-38*.dts*
arch/arm/boot/dts/marvell/armada-39*.dts*
arch/arm/boot/dts/marvell/armada-xp*.dts*
arch/arm/boot/dts/marvell/kirkwood-linkstation*.dts*
arch/arm/boot/dts/marvell/mvebu-linkstation-*.dts*
arch/arm/boot/dts/marvell/orion5x-kuroboxpro.dts
arch/arm/boot/dts/marvell/orion5x-linkstation*.dts*
arch/arm/boot/dts/marvell/orion5x-ls*.dts*
arch/arm/boot/dts/microchip/at91sam9260ek.dts
arch/arm/boot/dts/microchip/at91sam9xe.dtsi
arch/arm/boot/dts/microchip/sama5d2.dtsi
arch/arm/boot/dts/microchip/sama5d4.dtsi
arch/arm/boot/dts/nvidia/tegra124-apalis*.dts*
arch/arm/boot/dts/nxp/imx/imx7*.dts*
arch/arm/boot/dts/nxp/ls/ls*.dts*
arch/arm/boot/dts/nxp/vf/vf610-colibri*.dts*
arch/arm/boot/dts/nxp/vf/vf610m*.dts*
arch/arm/boot/dts/qcom/qcom-mdm9615*.dts*
arch/arm/boot/dts/rockchip/rk*.dts
arch/arm/boot/dts/socionext/uniphier-*.dts*
arch/arm/boot/dts/st/stm*.dts*
arch/arm/boot/dts/synaptics/berlin2*.dts*
arch/arm64/boot/dts/allwinner/*.dts*
arch/arm64/boot/dts/amlogic/*.dts*
arch/arm64/boot/dts/cavium/thunder-*.dts*
@ -78,43 +78,6 @@ Files:
Copyright: 2012-2018 Linus Torvalds and many others
License: GPL-2+-or-X11
Files: drivers/crypto/vmx/*.pl
Copyright: 2006,2014 Andy Polyakov <appro@openssl.org>
License: CRYPTOGAMS
All rights reserved.
.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
.
* Redistributions of source code must retain copyright notices, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.
* Neither the name of the CRYPTOGAMS nor the names of its copyright
holder and contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
.
ALTERNATIVELY, provided that this notice is retained in full, this
product may be distributed under the terms of the GNU General Public
License (GPL), in which case the provisions of the GPL apply INSTEAD
OF those given above.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: fs/nls/mac-*
Copyright: 1991-2012 Unicode, Inc.
License: Unicode-data

@ -11,7 +11,6 @@ from pathlib import Path
from typing import (
Optional,
Self,
TypeVar,
)
import dacite
@ -157,9 +156,6 @@ class ConfigBase:
return config
ConfigT = TypeVar('ConfigT', bound=ConfigBase)
@dataclasses.dataclass
class Config(ConfigBase):
# Disable basic fields
@ -227,9 +223,9 @@ class Config(ConfigBase):
return config
@classmethod
def _read_hierarchy(
cls, bases: Iterable[Path], orig: Iterable[ConfigT],
) -> Iterable[ConfigT]:
def _read_hierarchy[T: ConfigBase](
cls, bases: Iterable[Path], orig: Iterable[T],
) -> Iterable[T]:
for i in orig:
try:
assert i.path is not None

@ -5,22 +5,16 @@ import re
from typing import (
Any,
Callable,
Generic,
IO,
Iterable,
Optional,
overload,
TypeVar,
TYPE_CHECKING,
)
_T = TypeVar('_T')
if TYPE_CHECKING:
from dataclasses import _DataclassT
else:
# We can only get to _DataclassT during type checking, use a generic type during runtime
_DataclassT = _T
from _typeshed import DataclassInstance as _DataclassInstance
__all__ = [
'field_deb822',
@ -30,61 +24,61 @@ __all__ = [
]
class Deb822Field(Generic[_T]):
class Deb822Field[T]:
key: str
load: Optional[Callable[[str], _T]]
dump: Optional[Callable[[_T], str]]
load: Optional[Callable[[str], T]]
dump: Optional[Callable[[T], str]]
def __init__(
self, *,
key: str,
load: Optional[Callable[[str], _T]],
dump: Optional[Callable[[_T], str]],
load: Optional[Callable[[str], T]],
dump: Optional[Callable[[T], str]],
) -> None:
self.key = key
self.load = load
self.dump = dump
# The return type _T is technically wrong, but it allows checking if during
# The return type T is technically wrong, but it allows checking if during
# runtime we get the correct type.
@overload
def field_deb822(
def field_deb822[T](
deb822_key: str,
/, *,
deb822_load: Optional[Callable[[str], _T]] = None,
deb822_dump: Optional[Callable[[_T], str]] = str,
default: _T,
) -> _T:
deb822_load: Optional[Callable[[str], T]] = None,
deb822_dump: Optional[Callable[[T], str]] = str,
default: T,
) -> T:
...
@overload
def field_deb822(
def field_deb822[T](
deb822_key: str,
/, *,
deb822_load: Optional[Callable[[str], _T]] = None,
deb822_dump: Optional[Callable[[_T], str]] = str,
default_factory: Callable[[], _T],
) -> _T:
deb822_load: Optional[Callable[[str], T]] = None,
deb822_dump: Optional[Callable[[T], str]] = str,
default_factory: Callable[[], T],
) -> T:
...
@overload
def field_deb822(
def field_deb822[T](
deb822_key: str,
/, *,
deb822_load: Optional[Callable[[str], _T]] = None,
deb822_dump: Optional[Callable[[_T], str]] = str,
) -> _T:
deb822_load: Optional[Callable[[str], T]] = None,
deb822_dump: Optional[Callable[[T], str]] = str,
) -> T:
...
def field_deb822(
def field_deb822[T](
deb822_key: str,
/, *,
deb822_load: Optional[Callable[[str], _T]] = None,
deb822_dump: Optional[Callable[[_T], str]] = str,
deb822_load: Optional[Callable[[str], T]] = None,
deb822_dump: Optional[Callable[[T], str]] = str,
default: Any = dataclasses.MISSING,
default_factory: Any = dataclasses.MISSING,
) -> Any:
@ -112,8 +106,8 @@ class Deb822DecodeError(ValueError):
pass
class Deb822DecodeState(Generic[_DataclassT]):
cls: type[_DataclassT]
class Deb822DecodeState[T: _DataclassInstance]:
cls: type[T]
fields: dict[str, dataclasses.Field]
ignore_unknown: bool
@ -132,7 +126,7 @@ class Deb822DecodeState(Generic[_DataclassT]):
def __init__(
self,
cls: type[_DataclassT],
cls: type[T],
ignore_unknown: bool,
) -> None:
self.reset()
@ -167,7 +161,7 @@ class Deb822DecodeState(Generic[_DataclassT]):
else:
raise NotImplementedError
def generate(self) -> _DataclassT | None:
def generate(self) -> T | None:
if not self.data:
return None
@ -192,12 +186,12 @@ class Deb822DecodeState(Generic[_DataclassT]):
return self.cls(**r)
def read_deb822(
cls: type[_DataclassT],
def read_deb822[T: _DataclassInstance](
cls: type[T],
file: IO[str],
/,
ignore_unknown: bool = False,
) -> Iterable[_DataclassT]:
) -> Iterable[T]:
state = Deb822DecodeState(cls, ignore_unknown)
for linenr, line in enumerate(file):
@ -217,8 +211,8 @@ def read_deb822(
yield obj
def write_deb822(
objs: Iterable[_DataclassT],
def write_deb822[T: _DataclassInstance](
objs: Iterable[T],
file: IO[str],
/,
) -> None:

@ -7,7 +7,6 @@ from dataclasses import (
)
from typing import (
Protocol,
TypeVar,
TYPE_CHECKING,
)
@ -17,14 +16,11 @@ if TYPE_CHECKING:
class _HasName(Protocol, _DataclassInstance):
name: str
_DataclassT = TypeVar('_DataclassT', bound=_DataclassInstance)
_HasNameT = TypeVar('_HasNameT', bound=_HasName)
def default(
cls: type[_DataclassT],
def default[T: _DataclassInstance](
cls: type[T],
/,
) -> _DataclassT:
) -> T:
f = {}
for field in fields(cls):
@ -34,10 +30,10 @@ def default(
return cls(**f)
def merge(
self: _DataclassT,
other: _DataclassT | None, /,
) -> _DataclassT:
def merge[T: _DataclassInstance](
self: T,
other: T | None, /,
) -> T:
if other is None:
return self
@ -75,22 +71,22 @@ def merge(
return replace(self, **f)
def merge_default(
cls: type[_DataclassT],
def merge_default[T: _DataclassInstance](
cls: type[T],
/,
*others: _DataclassT,
) -> _DataclassT:
ret: _DataclassT = default(cls)
*others: T,
) -> T:
ret: T = default(cls)
for o in others:
ret = merge(ret, o)
return ret
def _merge_assoclist(
self_list: list[_HasNameT],
other_list: list[_HasNameT],
def _merge_assoclist[T: _HasName](
self_list: list[T],
other_list: list[T],
/,
) -> list[_HasNameT]:
) -> list[T]:
'''
Merge lists where each item got a "name" attribute
'''
@ -99,7 +95,7 @@ def _merge_assoclist(
if not other_list:
return self_list
ret: list[_HasNameT] = []
ret: list[T] = []
other_dict = {
i.name: i
for i in other_list

@ -370,9 +370,8 @@ class PackageRelationEntry:
ret.append(f'({self.operator} {self.version})')
if self.arches:
ret.append(f'[{self.arches}]')
if self.restrictions:
ret.append(str(self.restrictions))
return ' '.join(ret)
ret.append(str(self.restrictions))
return ' '.join(i for i in ret if i)
class PackageRelationGroup(list[PackageRelationEntry]):
@ -443,8 +442,6 @@ class PackageBuildprofileEntry:
pos: set[str] = dataclasses.field(default_factory=set)
neg: set[str] = dataclasses.field(default_factory=set)
__re = re.compile(r'^<(?P<profiles>[a-z0-9. !-]+)>$')
def copy(self) -> Self:
return self.__class__(
pos=set(self.pos),
@ -453,12 +450,8 @@ class PackageBuildprofileEntry:
@classmethod
def parse(cls, v: str, /) -> Self:
match = cls.__re.match(v)
if not match:
raise RuntimeError('Unable to parse build profile "%s"' % v)
ret = cls()
for i in re.split(r' ', match.group('profiles')):
for i in re.split(r' ', v):
if i:
if i[0] == '!':
ret.neg.add(i[1:])
@ -506,16 +499,18 @@ class PackageBuildprofileEntry:
self.neg &= other.neg - diff
__ior__ = update
def __len__(self) -> int:
return len(self.pos) + len(self.neg)
def __str__(self) -> str:
s = ' '.join(itertools.chain(
return ' '.join(itertools.chain(
sorted(self.pos),
(f'!{i}' for i in sorted(self.neg)),
))
return f'<{s}>'
class PackageBuildprofile(list[PackageBuildprofileEntry]):
__re = re.compile(r' *(<[^>]+>)(?: +|$)')
__re = re.compile(r' *<(?P<entry>[a-z0-9. !-]+)>(?: +|$)')
def copy(self) -> Self:
return self.__class__(i.copy() for i in self)
@ -524,7 +519,7 @@ class PackageBuildprofile(list[PackageBuildprofileEntry]):
def parse(cls, v: str, /) -> Self:
ret = cls()
for match in cls.__re.finditer(v):
ret.append(PackageBuildprofileEntry.parse(match.group(1)))
ret.append(PackageBuildprofileEntry.parse(match.group('entry')))
return ret
def update(self, v: Self, /) -> None:
@ -538,7 +533,7 @@ class PackageBuildprofile(list[PackageBuildprofileEntry]):
__ior__ = update
def __str__(self) -> str:
return ' '.join(str(i) for i in self)
return ' '.join(f'<{str(i)}>' for i in self if i)
@dataclasses.dataclass

@ -189,6 +189,7 @@ class PackagesBundle:
package.meta_rules_check_packages = check_packages
for name in (
'NEWS',
'lintian-overrides',
'maintscript',
'postinst',
@ -202,7 +203,11 @@ class PackagesBundle:
except KeyError:
pass
else:
with self.open(f'{package_name}.{name}') as f:
if arch:
out = f'{package_name}.{name}.{arch}'
else:
out = f'{package_name}.{name}'
with self.open(out) as f:
f.write(template)
return ret

@ -1,424 +0,0 @@
import pytest
from .debian import (
Version,
VersionLinux,
PackageArchitecture,
PackageDescription,
PackageRelationEntry,
PackageRelationGroup,
PackageRelation,
PackageBuildprofileEntry,
PackageBuildprofile,
)
class TestVersion:
def test_native(self) -> None:
v = Version('1.2+c~4')
assert v.epoch is None
assert v.upstream == '1.2+c~4'
assert v.revision is None
assert v.complete == '1.2+c~4'
assert v.complete_noepoch == '1.2+c~4'
def test_nonnative(self) -> None:
v = Version('1-2+d~3')
assert v.epoch is None
assert v.upstream == '1'
assert v.revision == '2+d~3'
assert v.complete == '1-2+d~3'
assert v.complete_noepoch == '1-2+d~3'
def test_native_epoch(self) -> None:
v = Version('5:1.2.3')
assert v.epoch == 5
assert v.upstream == '1.2.3'
assert v.revision is None
assert v.complete == '5:1.2.3'
assert v.complete_noepoch == '1.2.3'
def test_nonnative_epoch(self) -> None:
v = Version('5:1.2.3-4')
assert v.epoch == 5
assert v.upstream == '1.2.3'
assert v.revision == '4'
assert v.complete == '5:1.2.3-4'
assert v.complete_noepoch == '1.2.3-4'
def test_multi_hyphen(self) -> None:
v = Version('1-2-3')
assert v.epoch is None
assert v.upstream == '1-2'
assert v.revision == '3'
assert v.complete == '1-2-3'
def test_multi_colon(self) -> None:
v = Version('1:2:3')
assert v.epoch == 1
assert v.upstream == '2:3'
assert v.revision is None
def test_invalid_epoch(self) -> None:
with pytest.raises(RuntimeError):
Version('a:1')
with pytest.raises(RuntimeError):
Version('-1:1')
with pytest.raises(RuntimeError):
Version('1a:1')
def test_invalid_upstream(self) -> None:
with pytest.raises(RuntimeError):
Version('1_2')
with pytest.raises(RuntimeError):
Version('1/2')
with pytest.raises(RuntimeError):
Version('a1')
with pytest.raises(RuntimeError):
Version('1 2')
def test_invalid_revision(self) -> None:
with pytest.raises(RuntimeError):
Version('1-2_3')
with pytest.raises(RuntimeError):
Version('1-2/3')
with pytest.raises(RuntimeError):
Version('1-2:3')
class TestVersionLinux:
def test_stable(self) -> None:
v = VersionLinux('1.2.3-4')
assert v.linux_version == '1.2'
assert v.linux_upstream == '1.2'
assert v.linux_upstream_full == '1.2.3'
assert v.linux_modifier is None
assert v.linux_dfsg is None
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_rc(self) -> None:
v = VersionLinux('1.2~rc3-4')
assert v.linux_version == '1.2'
assert v.linux_upstream == '1.2-rc3'
assert v.linux_upstream_full == '1.2-rc3'
assert v.linux_modifier == 'rc3'
assert v.linux_dfsg is None
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_dfsg(self) -> None:
v = VersionLinux('1.2~rc3.dfsg.1-4')
assert v.linux_version == '1.2'
assert v.linux_upstream == '1.2-rc3'
assert v.linux_upstream_full == '1.2-rc3'
assert v.linux_modifier == 'rc3'
assert v.linux_dfsg == '1'
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_experimental(self) -> None:
v = VersionLinux('1.2~rc3-4~exp5')
assert v.linux_upstream_full == '1.2-rc3'
assert v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_security(self) -> None:
v = VersionLinux('1.2.3-4+deb10u1')
assert v.linux_upstream_full == '1.2.3'
assert not v.linux_revision_experimental
assert v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_backports(self) -> None:
v = VersionLinux('1.2.3-4~bpo9+10')
assert v.linux_upstream_full == '1.2.3'
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert v.linux_revision_backports
assert not v.linux_revision_other
def test_security_backports(self) -> None:
v = VersionLinux('1.2.3-4+deb10u1~bpo9+10')
assert v.linux_upstream_full == '1.2.3'
assert not v.linux_revision_experimental
assert v.linux_revision_security
assert v.linux_revision_backports
assert not v.linux_revision_other
def test_lts_backports(self) -> None:
# Backport during LTS, as an extra package in the -security
# suite. Since this is not part of a -backports suite it
# shouldn't get the linux_revision_backports flag.
v = VersionLinux('1.2.3-4~deb9u10')
assert v.linux_upstream_full == '1.2.3'
assert not v.linux_revision_experimental
assert v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_lts_backports_2(self) -> None:
# Same but with two security extensions in the revision.
v = VersionLinux('1.2.3-4+deb10u1~deb9u10')
assert v.linux_upstream_full == '1.2.3'
assert not v.linux_revision_experimental
assert v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_binnmu(self) -> None:
v = VersionLinux('1.2.3-4+b1')
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert not v.linux_revision_other
def test_other_revision(self) -> None:
v = VersionLinux('4.16.5-1+revert+crng+ready') # from #898087
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert v.linux_revision_other
def test_other_revision_binnmu(self) -> None:
v = VersionLinux('4.16.5-1+revert+crng+ready+b1')
assert not v.linux_revision_experimental
assert not v.linux_revision_security
assert not v.linux_revision_backports
assert v.linux_revision_other
class TestPackageArchitecture:
def test_init(self) -> None:
a = PackageArchitecture()
assert a == set()
def test_init_str(self) -> None:
a = PackageArchitecture(' foo bar\tbaz ')
assert a == {'foo', 'bar', 'baz'}
def test_init_iter(self) -> None:
a = PackageArchitecture(('foo', 'bar'))
assert a == {'foo', 'bar'}
def test_init_self(self) -> None:
a = PackageArchitecture(PackageArchitecture(('foo', 'bar')))
assert a == {'foo', 'bar'}
def test_str(self) -> None:
a = PackageArchitecture(('foo', 'bar'))
assert str(a) == 'bar foo'
class TestPackageDescription:
def test_init(self) -> None:
a = PackageDescription()
assert a.short == []
assert a.long == []
def test_init_str(self) -> None:
a = PackageDescription('Short\nLong1\n.\nLong2')
assert a.short == ['Short']
assert a.long == ['Long1', 'Long2']
def test_init_self(self) -> None:
a = PackageDescription(PackageDescription('Short\nLong1\n.\nLong2'))
assert a.short == ['Short']
assert a.long == ['Long1', 'Long2']
def test_str(self) -> None:
a = PackageDescription('Short\nLong1\n.\nLong2')
assert str(a) == 'Short\nLong1\n.\nLong2'
class TestPackageRelationEntry:
def test_init_str(self) -> None:
a = PackageRelationEntry('package (>=version) [arch2 arch1] <profile1 >')
assert a.name == 'package'
assert a.version == 'version'
assert a.arches == {'arch1', 'arch2'}
# TODO: assert a.profiles
assert str(a) == 'package (>= version) [arch1 arch2] <profile1>'
def test_init_self(self) -> None:
a = PackageRelationEntry(PackageRelationEntry('package [arch2 arch1]'))
assert a.name == 'package'
assert a.arches == {'arch1', 'arch2'}
assert str(a) == 'package [arch1 arch2]'
class TestPackageRelationGroup:
def test_init(self) -> None:
a = PackageRelationGroup()
assert a == []
def test_init_str(self) -> None:
a = PackageRelationGroup('foo | bar')
assert len(a) == 2
assert a[0].name == 'foo'
assert a[1].name == 'bar'
def test_init_iter_entry(self) -> None:
a = PackageRelationGroup((PackageRelationEntry('foo'), PackageRelationEntry('bar')))
assert len(a) == 2
assert a[0].name == 'foo'
assert a[1].name == 'bar'
def test_init_iter_str(self) -> None:
a = PackageRelationGroup(('foo', 'bar'))
assert len(a) == 2
assert a[0].name == 'foo'
assert a[1].name == 'bar'
def test_init_self(self) -> None:
a = PackageRelationGroup(PackageRelationGroup(['foo', 'bar']))
assert len(a) == 2
assert a[0].name == 'foo'
assert a[1].name == 'bar'
def test_str(self) -> None:
a = PackageRelationGroup('foo| bar')
assert str(a) == 'foo | bar'
class TestPackageRelation:
def test_init(self) -> None:
a = PackageRelation()
assert a == []
def test_init_str(self) -> None:
a = PackageRelation('foo1 | foo2, bar')
assert len(a) == 2
assert len(a[0]) == 2
assert a[0][0].name == 'foo1'
assert a[0][1].name == 'foo2'
assert len(a[1]) == 1
assert a[1][0].name == 'bar'
def test_init_iter_entry(self) -> None:
a = PackageRelation([[PackageRelationEntry('foo')], [PackageRelationEntry('bar')]])
assert len(a) == 2
assert len(a[0]) == 1
assert a[0][0].name == 'foo'
assert len(a[1]) == 1
assert a[1][0].name == 'bar'
def test_init_iter_str(self) -> None:
a = PackageRelation(('foo', 'bar'))
assert len(a) == 2
assert len(a[0]) == 1
assert a[0][0].name == 'foo'
assert len(a[1]) == 1
assert a[1][0].name == 'bar'
def test_init_self(self) -> None:
a = PackageRelation(PackageRelation(('foo', 'bar')))
assert len(a) == 2
assert len(a[0]) == 1
assert a[0][0].name == 'foo'
assert len(a[1]) == 1
assert a[1][0].name == 'bar'
def test_str(self) -> None:
a = PackageRelation('foo ,bar')
assert str(a) == 'foo, bar'
class TestPackageBuildprofileEntry:
def test_parse(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 !profile2 profile3 !profile4>')
assert a.pos == {'profile1', 'profile3'}
assert a.neg == {'profile2', 'profile4'}
assert str(a) == '<profile1 profile3 !profile2 !profile4>'
def test_eq(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 !profile2>')
b = PackageBuildprofileEntry(pos={'profile1'}, neg={'profile2'})
assert a == b
def test_isdisjoint(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry.parse('<profile1 profile3>')
assert a.isdisjoint(b)
def test_issubset_empty(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry()
assert a.issubset(b)
def test_issubset_pos(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry.parse('<profile1>')
assert a.issubset(b)
def test_issubset_neg(self) -> None:
a = PackageBuildprofileEntry.parse('<!profile1>')
b = PackageBuildprofileEntry.parse('<!profile1 !profile2>')
assert a.issubset(b)
def test_issubset_both(self) -> None:
a = PackageBuildprofileEntry.parse('<!profile1 !profile2 profile3>')
b = PackageBuildprofileEntry.parse('<!profile1 !profile2 !profile3>')
assert a.issubset(b)
def test_issuperset_empty(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry()
assert b.issuperset(a)
def test_issuperset_pos(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry.parse('<profile1>')
assert b.issuperset(a)
def test_issuperset_neg(self) -> None:
a = PackageBuildprofileEntry.parse('<!profile1>')
b = PackageBuildprofileEntry.parse('<!profile1 !profile2>')
assert b.issuperset(a)
def test_issuperset_both(self) -> None:
a = PackageBuildprofileEntry.parse('<!profile1 !profile2 profile3>')
b = PackageBuildprofileEntry.parse('<!profile1 !profile2 !profile3>')
assert b.issuperset(a)
def test_update_pos(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 profile2>')
b = PackageBuildprofileEntry.parse('<profile1>')
a.update(b)
assert a.pos == {'profile1'}
assert a.neg == set()
def test_update_neg(self) -> None:
a = PackageBuildprofileEntry.parse('<!profile1 !profile2>')
b = PackageBuildprofileEntry.parse('<!profile1>')
a.update(b)
assert a.pos == set()
assert a.neg == {'profile1'}
def test_update_both(self) -> None:
a = PackageBuildprofileEntry.parse('<profile1 !profile2 profile3>')
b = PackageBuildprofileEntry.parse('<profile1 !profile2 !profile3>')
a.update(b)
assert a.pos == {'profile1'}
assert a.neg == {'profile2'}
class TestPackageBuildprofile:
def test_parse(self) -> None:
a = PackageBuildprofile.parse('<profile1> <!profile2> <profile3> <!profile4>')
assert str(a) == '<profile1> <!profile2> <profile3> <!profile4>'
def test_update(self) -> None:
a = PackageBuildprofile.parse('<profile1 profile2> <profile2>')
b = PackageBuildprofile.parse('<profile1> <profile2 !profile3> <profile3>')
a.update(b)
assert str(a) == '<profile1> <profile2> <profile3>'

@ -1,4 +1,5 @@
# These executables are needed to handle processes running in compat mode
linux-perf: binary-from-other-architecture *usr/lib/perf-core/perf-read-vdso32*
linux-perf: binary-from-other-architecture *usr/lib/perf-core/perf-read-vdsox32*
# Some of these plugins only need symbols from libtraceevent, which

@ -9,8 +9,7 @@ if [ -n "${old_version_suffix}" ] ; then
fi
unset old_version_suffix
case "$1" in
remove )
if [ "$1" = remove ] ; then
for wrapper in \
/usr/bin/perf \
/usr/share/bash-completion/completions/perf \
@ -19,7 +18,6 @@ remove )
diversion="${wrapper%/perf*}/perf.wrapper${wrapper#*/perf}"
dpkg-divert --package linux-perf --divert "${diversion}" --rename --remove "${wrapper}"
done ; unset wrapper diversion
;;
esac
fi
#DEBHELPER#

@ -24,7 +24,7 @@ negative cases.]
---
--- a/tools/power/cpupower/bench/system.c
+++ b/tools/power/cpupower/bench/system.c
@@ -45,12 +45,19 @@ long long int get_time()
@@ -58,12 +58,19 @@ long long int get_time()
int set_cpufreq_governor(char *governor, unsigned int cpu)
{

@ -42,7 +42,7 @@ correctness.
static int m88e1540_get_fld(struct phy_device *phydev, u8 *msecs)
{
@@ -3792,6 +3796,7 @@ static struct phy_driver marvell_drivers
@@ -3790,6 +3794,7 @@ static struct phy_driver marvell_drivers
.led_hw_control_set = m88e1318_led_hw_control_set,
.led_hw_control_get = m88e1318_led_hw_control_get,
},
@ -50,7 +50,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1145,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -3815,6 +3820,8 @@ static struct phy_driver marvell_drivers
@@ -3813,6 +3818,8 @@ static struct phy_driver marvell_drivers
.cable_test_start = m88e1111_vct_cable_test_start,
.cable_test_get_status = m88e1111_vct_cable_test_get_status,
},
@ -59,7 +59,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1149R,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -3833,6 +3840,8 @@ static struct phy_driver marvell_drivers
@@ -3831,6 +3838,8 @@ static struct phy_driver marvell_drivers
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
},
@ -68,7 +68,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1240,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -3853,6 +3862,7 @@ static struct phy_driver marvell_drivers
@@ -3851,6 +3860,7 @@ static struct phy_driver marvell_drivers
.get_tunable = m88e1011_get_tunable,
.set_tunable = m88e1011_set_tunable,
},
@ -76,7 +76,7 @@ correctness.
{
.phy_id = MARVELL_PHY_ID_88E1116R,
.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -4141,9 +4151,9 @@ static struct mdio_device_id __maybe_unu
@@ -4139,9 +4149,9 @@ static struct mdio_device_id __maybe_unu
{ MARVELL_PHY_ID_88E1111_FINISAR, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },

@ -24,9 +24,11 @@ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_queue.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
index ecccd7adbab4..62c635e9d1aa 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
@@ -233,6 +233,7 @@ void kfd_queue_buffer_put(struct amdgpu_
@@ -233,6 +233,7 @@ void kfd_queue_buffer_put(struct amdgpu_bo **bo)
int kfd_queue_acquire_buffers(struct kfd_process_device *pdd, struct queue_properties *properties)
{
struct kfd_topology_device *topo_dev;
@ -34,7 +36,7 @@ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
struct amdgpu_vm *vm;
u32 total_cwsr_size;
int err;
@@ -241,6 +242,15 @@ int kfd_queue_acquire_buffers(struct kfd
@@ -241,6 +242,15 @@ int kfd_queue_acquire_buffers(struct kfd_process_device *pdd, struct queue_prope
if (!topo_dev)
return -EINVAL;
@ -50,7 +52,7 @@ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
vm = drm_priv_to_vm(pdd->drm_priv);
err = amdgpu_bo_reserve(vm->root.bo, false);
if (err)
@@ -255,7 +265,7 @@ int kfd_queue_acquire_buffers(struct kfd
@@ -255,7 +265,7 @@ int kfd_queue_acquire_buffers(struct kfd_process_device *pdd, struct queue_prope
goto out_err_unreserve;
err = kfd_queue_buffer_get(vm, (void *)properties->queue_address,
@ -59,3 +61,6 @@ Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
if (err)
goto out_err_unreserve;
--
2.47.2

@ -18,7 +18,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -2618,7 +2618,7 @@ module_exit(exit_btrfs_fs)
@@ -2619,7 +2619,7 @@ module_exit(exit_btrfs_fs)
MODULE_DESCRIPTION("B-Tree File System (BTRFS)");
MODULE_LICENSE("GPL");
@ -29,7 +29,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
MODULE_SOFTDEP("pre: blake2b-256");
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -7447,6 +7447,6 @@ static void __exit ext4_exit_fs(void)
@@ -7404,6 +7404,6 @@ static void __exit ext4_exit_fs(void)
MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others");
MODULE_DESCRIPTION("Fourth Extended Filesystem");
MODULE_LICENSE("GPL");
@ -39,7 +39,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
module_exit(ext4_exit_fs)
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -3181,6 +3181,7 @@ static void __exit journal_exit(void)
@@ -3194,6 +3194,7 @@ static void __exit journal_exit(void)
MODULE_DESCRIPTION("Generic filesystem journal-writing module");
MODULE_LICENSE("GPL");
@ -49,7 +49,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -2384,5 +2384,8 @@ static void __exit exit_nfsd(void)
@@ -2353,5 +2353,8 @@ static void __exit exit_nfsd(void)
MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
MODULE_DESCRIPTION("In-kernel NFS server");
MODULE_LICENSE("GPL");

@ -15,16 +15,16 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
---
--- a/scripts/Makefile.btf
+++ b/scripts/Makefile.btf
@@ -12,8 +12,6 @@ endif
@@ -14,8 +14,6 @@ endif
pahole-flags-$(call test-ge, $(pahole-ver), 121) += --btf_gen_floats
-pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j
-pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j$(JOBS)
-
pahole-flags-$(call test-ge, $(pahole-ver), 125) += --skip_encoding_btf_inconsistent_proto --btf_gen_optimized
else
@@ -27,6 +25,18 @@ endif
@@ -29,6 +27,18 @@ endif
endif
@ -35,9 +35,9 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
+# Assume that if KBUILD_BUILD_TIMESTAMP is set then a reproducible
+# build is required and we must not use -j alone.
+ifeq ($(KBUILD_BUILD_TIMESTAMP),)
+pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j
+pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j$(JOBS)
+else
+pahole-flags-$(call test-ge, $(pahole-ver), 127) += -j --btf_features=+reproducible_build
+pahole-flags-$(call test-ge, $(pahole-ver), 127) += -j$(JOBS) --btf_features=+reproducible_build
+endif
+
pahole-flags-$(CONFIG_PAHOLE_HAS_LANG_EXCLUDE) += --lang_exclude=rust

@ -9,7 +9,7 @@ sources.
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -195,6 +195,11 @@ cmd_record_mcount = $(if $(findstring $(
@@ -210,6 +210,11 @@ cmd_record_mcount = $(if $(findstring $(
$(sub_cmd_record_mcount))
endif # CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT

@ -7,7 +7,7 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
---
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -35,7 +35,7 @@ ifeq ($(DEBUG),0)
@@ -29,7 +29,7 @@ endif
endif
ifeq ($(DEBUG),0)

@ -1,9 +1,7 @@
From: Scott Mayhew <smayhew@redhat.com>
Date: Tue, 10 Dec 2024 07:25:54 -0500
Subject: nfsd: fix legacy client tracking initialization
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/commit/?h=nfsd-next&id=45cd8c0c13fe5c9f1b926bd307df431f8f1b8a16
Bug: https://bugzilla.kernel.org/show_bug.cgi?id=219580
Bug-Debian: https://bugs.debian.org/1087900
Origin: https://git.kernel.org/linus/de71d4e211eddb670b285a0ea477a299601ce1ca
Get rid of the nfsd4_legacy_tracking_ops->init() call in
check_for_legacy_methods(). That will be handled in the caller
@ -16,14 +14,17 @@ Reported-by: Jur van der Burg <jur@avtware.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219580
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/nfsd/nfs4recover.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 4a765555bf84..1c8fcb04b3cd 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -2052,7 +2052,6 @@ static inline int check_for_legacy_metho
@@ -2052,7 +2052,6 @@ static inline int check_for_legacy_methods(int status, struct net *net)
path_put(&path);
if (status)
return -ENOTDIR;
@ -31,3 +32,6 @@ Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
}
return status;
}
--
2.47.2

@ -0,0 +1,33 @@
From: Ben Hutchings <benh@debian.org>
Date: Sun, 23 Mar 2025 21:04:02 +0100
Subject: [PATCH] perf docs: Fix perf-check manual page built with asciidoctor
Forwarded: https://lore.kernel.org/linux-perf-users/Z-BxCE8WrcRmR_5f@decadent.org.uk/
asciidoctor is more picky than asciidoc about the length of heading
underlines, and currently mis-parses perf-check.txt:
ASCIIDOC perf-check.1
asciidoctor: ERROR: perf-check.txt: line 1: non-conforming manpage title
asciidoctor: ERROR: perf-check.txt: line 1: name section expected
asciidoctor: WARNING: perf-check.txt: line 2: unterminated example block
asciidoctor: WARNING: perf-check.txt: line 5: unterminated listing block
Fix the length of the title underline so it works properly.
Fixes: 98ad0b77323c ("perf check: Introduce 'check' subcommand")
Signed-off-by: Ben Hutchings <benh@debian.org>
---
tools/perf/Documentation/perf-check.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-check.txt b/tools/perf/Documentation/perf-check.txt
index a764a4629220..80eb1de4eee0 100644
--- a/tools/perf/Documentation/perf-check.txt
+++ b/tools/perf/Documentation/perf-check.txt
@@ -1,5 +1,5 @@
perf-check(1)
-===============
+=============
NAME
----

@ -16,7 +16,7 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
---
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -953,7 +953,7 @@ $(LIBAPI)-clean:
@@ -951,7 +951,7 @@ $(LIBAPI)-clean:
$(LIBBPF): FORCE | $(LIBBPF_OUTPUT)
$(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) \
O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix= subdir= \

@ -36,7 +36,7 @@ of the patch
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -32,6 +32,8 @@
#include <linux/aperture.h>
#include <linux/compat.h>
#include <linux/module.h>
+#include <linux/namei.h>
@ -73,7 +73,7 @@ of the patch
static int radeon_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -296,6 +320,12 @@ static int radeon_pci_probe(struct pci_d
@@ -297,6 +321,12 @@ static int radeon_pci_probe(struct pci_d
if (vga_switcheroo_client_probe_defer(pdev))
return -EPROBE_DEFER;
@ -84,5 +84,5 @@ of the patch
+ }
+
/* Get rid of things like offb */
ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &kms_driver);
ret = aperture_remove_conflicting_pci_devices(pdev, kms_driver.name);
if (ret)

@ -11,7 +11,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/tools/build/feature/test-bpf.c
+++ b/tools/build/feature/test-bpf.c
@@ -41,8 +41,10 @@ int main(void)
@@ -35,8 +35,10 @@ int main(void)
attr.prog_flags = 0;
/*

@ -6,7 +6,7 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
---
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -927,7 +927,7 @@ $(OUTPUT)dlfilters/%.o: dlfilters/%.c in
@@ -785,7 +785,7 @@ $(OUTPUT)dlfilters/%.o: dlfilters/%.c in
.SECONDARY: $(DLFILTERS:.so=.o)
$(OUTPUT)dlfilters/%.so: $(OUTPUT)dlfilters/%.o

@ -14,9 +14,11 @@ Acked-by: Ian Rogers <irogers@google.com>
tools/lib/symbol/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/symbol/Makefile b/tools/lib/symbol/Makefile
index 13d43c6f92b4..4a08cc4e19f2 100644
--- a/tools/lib/symbol/Makefile
+++ b/tools/lib/symbol/Makefile
@@ -35,7 +35,7 @@ ifeq ($(DEBUG),0)
@@ -39,7 +39,7 @@ endif
endif
ifeq ($(DEBUG),0)
@ -25,3 +27,5 @@ Acked-by: Ian Rogers <irogers@google.com>
endif
# Treat warnings as errors unless directed not to
--
2.39.2

@ -17,7 +17,7 @@ Add references to TCP wrappers configuration in the manual page.
.SH OPTIONS
.HP
@@ -75,7 +76,8 @@ Show version.
@@ -69,7 +70,8 @@ Show version.
.B usbipd
offers no authentication or authorization for USB/IP. Any

@ -21,7 +21,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/arch/arm/boot/dts/marvell/kirkwood-ts419.dtsi
+++ b/arch/arm/boot/dts/marvell/kirkwood-ts419.dtsi
@@ -67,3 +67,11 @@
@@ -69,3 +69,11 @@
phy-handle = <&ethphy1>;
};
};

@ -17,9 +17,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/arm/mm/flush.c | 1 +
1 file changed, 1 insertion(+)
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -310,6 +310,7 @@ void __sync_icache_dcache(pte_t pteval)
Index: debian-kernel/arch/arm/mm/flush.c
===================================================================
--- debian-kernel.orig/arch/arm/mm/flush.c
+++ debian-kernel/arch/arm/mm/flush.c
@@ -292,6 +292,7 @@ void __sync_icache_dcache(pte_t pteval)
if (pte_exec(pteval))
__flush_icache_all();
}

@ -24,9 +24,11 @@ Tested-by: Michal Kubecek <mkubecek@suse.cz>
arch/powerpc/boot/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -97,7 +97,7 @@ BOOTCFLAGS += -fno-stack-protector
Index: linux/arch/powerpc/boot/Makefile
===================================================================
--- linux.orig/arch/powerpc/boot/Makefile
+++ linux/arch/powerpc/boot/Makefile
@@ -70,7 +70,7 @@ BOOTCFLAGS += -fno-stack-protector
endif
BOOTCFLAGS += -include $(srctree)/include/linux/compiler_attributes.h

@ -23,8 +23,10 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/sh/boot/romimage/Makefile | 4 ++--
3 files changed, 9 insertions(+), 9 deletions(-)
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
Index: linux/arch/sh/Makefile
===================================================================
--- linux.orig/arch/sh/Makefile
+++ linux/arch/sh/Makefile
@@ -102,16 +102,16 @@ UTS_MACHINE := sh
LDFLAGS_vmlinux += -e _stext
@ -47,9 +49,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
# Mach groups
machdir-$(CONFIG_SOLUTION_ENGINE) += mach-se
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -27,7 +27,7 @@ endif
Index: linux/arch/sh/boot/compressed/Makefile
===================================================================
--- linux.orig/arch/sh/boot/compressed/Makefile
+++ linux/arch/sh/boot/compressed/Makefile
@@ -36,7 +36,7 @@ endif
ccflags-remove-$(CONFIG_MCOUNT) += -pg
@ -58,7 +62,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-T $(obj)/../../kernel/vmlinux.lds
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -51,7 +51,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b
@@ -60,7 +60,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b
OBJCOPYFLAGS += -R .empty_zero_page
@ -67,8 +71,10 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
$(call if_changed,ld)
--- a/arch/sh/boot/romimage/Makefile
+++ b/arch/sh/boot/romimage/Makefile
Index: linux/arch/sh/boot/romimage/Makefile
===================================================================
--- linux.orig/arch/sh/boot/romimage/Makefile
+++ linux/arch/sh/boot/romimage/Makefile
@@ -13,7 +13,7 @@ mmcif-obj-$(CONFIG_CPU_SUBTYPE_SH7724) :
load-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-load-y)
obj-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-obj-y)

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/tools/perf/arch/x86/util/unwind-libunwind.c
+++ b/tools/perf/arch/x86/util/unwind-libunwind.c
@@ -67,7 +67,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
@@ -66,7 +66,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
break;
default:
pr_err("unwind: invalid reg id %d\n", regnum);
@ -24,7 +24,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
}
return id;
@@ -107,7 +107,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
@@ -106,7 +106,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
break;
default:
pr_err("unwind: invalid reg id %d\n", regnum);

@ -1,22 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Fri, 25 Sep 2015 22:50:50 +0100
Subject: Revert "perf build: Fix libunwind feature detection on 32-bit x86"
Forwarded: no
This reverts commit 05b41775e2edd69a83f592e3534930c934d4038e.
It broke feature detection that was working just fine for us.
---
tools/perf/Makefile.config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -56,7 +56,7 @@ ifeq ($(SRCARCH),x86)
LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind -llzma
$(call detected,CONFIG_X86_64)
else
- LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind
+ LIBUNWIND_LIBS = -lunwind -lunwind-x86
endif
endif

@ -16,7 +16,7 @@ un-blacklist it in udev.
---
--- a/drivers/video/fbdev/via/via-core.c
+++ b/drivers/video/fbdev/via/via-core.c
@@ -700,7 +700,14 @@ static const struct pci_device_id via_pc
@@ -695,7 +695,14 @@ static const struct pci_device_id via_pc
.driver_data = UNICHROME_VX900 },
{ }
};

@ -21,7 +21,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -120,6 +120,12 @@
@@ -118,6 +118,12 @@
#include <kunit/visibility.h>
@ -34,7 +34,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
/*
* Minimum number of threads to boot the kernel
*/
@@ -2157,6 +2163,10 @@ __latent_entropy struct task_struct *cop
@@ -2138,6 +2144,10 @@ __latent_entropy struct task_struct *cop
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@ -45,7 +45,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
@@ -3310,6 +3320,12 @@ int ksys_unshare(unsigned long unshare_f
@@ -3287,6 +3297,12 @@ int ksys_unshare(unsigned long unshare_f
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;

@ -21,7 +21,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/net/ieee802154/socket.c
+++ b/net/ieee802154/socket.c
@@ -1140,4 +1140,4 @@ module_exit(af_ieee802154_remove);
@@ -1138,4 +1138,4 @@ module_init(af_ieee802154_init);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("IEEE 802.15.4 socket interface");

@ -9,9 +9,11 @@ Forwarded: not-needed
arch/sh/Makefile | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index da9cf952f33c..974bbd9dcfcf 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -81,7 +81,6 @@ OBJCOPYFLAGS := -O binary -R .note -R .n
@@ -85,7 +85,6 @@ OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment \
# Give the various platforms the opportunity to set default image types
defaultimage-y := zImage
@ -19,3 +21,6 @@ Forwarded: not-needed
defaultimage-$(CONFIG_SH_RSK) := uImage
defaultimage-$(CONFIG_SH_URQUELL) := uImage
defaultimage-$(CONFIG_SH_MIGOR) := uImage
--
2.27.0

@ -20,12 +20,15 @@ implementation went from disk-io.c to super.c; forwarded the issue]
fs/btrfs/super.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 101f786963d4..2c409bce1bf5 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -766,6 +766,18 @@ static void set_device_specific_options(
@@ -731,6 +731,18 @@ static void set_device_specific_options(struct btrfs_fs_info *fs_info)
!fs_info->fs_devices->rotating)
btrfs_set_opt(fs_info->mount_opt, SSD);
/*
+ /*
+ * Warn about RAID5/6 being experimental at mount time
+ */
+ if ((fs_info->avail_data_alloc_bits |
@ -37,7 +40,6 @@ implementation went from disk-io.c to super.c; forwarded the issue]
+ add_taint(TAINT_AUX, LOCKDEP_STILL_OK);
+ }
+
+ /*
/*
* For devices supporting discard turn on discard=async automatically,
* unless it's already set or disabled. This could be turned off by
* nodiscard for the same mount.

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -1098,8 +1098,8 @@ module_exit(dccp_v4_exit);
@@ -1071,8 +1071,8 @@ module_exit(dccp_v4_exit);
* values directly, Also cover the case where the protocol is not specified,
* i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
*/
@ -28,7 +28,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -1174,8 +1174,8 @@ module_exit(dccp_v6_exit);
@@ -1125,8 +1125,8 @@ module_exit(dccp_v6_exit);
* values directly, Also cover the case where the protocol is not specified,
* i.e. net-pf-PF_INET6-proto-0-type-SOCK_DCCP
*/

@ -3,9 +3,11 @@ Date: Mon, 13 Apr 2009 17:34:00 +0100
Subject: Remove microcode patches for mgsuvd (not enabled in Debian configs)
Forwarded: not-needed
diff --git a/arch/powerpc/platforms/8xx/Kconfig b/arch/powerpc/platforms/8xx/Kconfig
index 48a920a..81570b6 100644
--- a/arch/powerpc/platforms/8xx/Kconfig
+++ b/arch/powerpc/platforms/8xx/Kconfig
@@ -136,16 +136,19 @@ config NO_UCODE_PATCH
@@ -160,16 +160,19 @@ config NO_UCODE_PATCH
config USB_SOF_UCODE_PATCH
bool "USB SOF patch"

@ -5,7 +5,7 @@ Forwarded: not-needed
--- a/drivers/media/usb/dvb-usb/Kconfig
+++ b/drivers/media/usb/dvb-usb/Kconfig
@@ -35,6 +35,7 @@ config DVB_USB_A800
@@ -227,6 +227,7 @@ config DVB_USB_OPERA1
config DVB_USB_AF9005
tristate "Afatech AF9005 DVB-T USB1.1 support"

@ -15,14 +15,13 @@ probably discontinued 10 years ago.
---
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -657,100 +657,6 @@ config FB_ATMEL
@@ -658,102 +658,6 @@ config FB_ATMEL
help
This enables support for the AT91 LCD Controller.
-config FB_NVIDIA
- tristate "nVidia Framebuffer Support"
- depends on FB && PCI
- select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT
- select FB_CFB_FILLRECT
- select FB_CFB_COPYAREA
- select FB_CFB_IMAGEBLIT
@ -62,6 +61,8 @@ probably discontinued 10 years ago.
-config FB_NVIDIA_BACKLIGHT
- bool "Support for backlight control"
- depends on FB_NVIDIA
- depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_NVIDIA
- select FB_BACKLIGHT
- default y
- help
- Say Y here if you want to control the backlight of your display.
@ -69,7 +70,6 @@ probably discontinued 10 years ago.
-config FB_RIVA
- tristate "nVidia Riva support"
- depends on FB && PCI
- select FB_BACKLIGHT if FB_RIVA_BACKLIGHT
- select FB_CFB_FILLRECT
- select FB_CFB_COPYAREA
- select FB_CFB_IMAGEBLIT
@ -109,6 +109,8 @@ probably discontinued 10 years ago.
-config FB_RIVA_BACKLIGHT
- bool "Support for backlight control"
- depends on FB_RIVA
- depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_RIVA
- select FB_BACKLIGHT
- default y
- help
- Say Y here if you want to control the backlight of your display.

@ -22,7 +22,7 @@ Export the currently un-exported symbols it depends on.
--- a/fs/file.c
+++ b/fs/file.c
@@ -793,6 +793,7 @@ struct file *file_close_fd(unsigned int
@@ -823,6 +823,7 @@ struct file *file_close_fd(unsigned int
return file;
}
@ -42,7 +42,7 @@ Export the currently un-exported symbols it depends on.
struct msg_msgseg *next;
--- a/ipc/namespace.c
+++ b/ipc/namespace.c
@@ -207,6 +207,7 @@ void put_ipc_ns(struct ipc_namespace *ns
@@ -205,6 +205,7 @@ void put_ipc_ns(struct ipc_namespace *ns
schedule_work(&free_ipc_work);
}
}
@ -72,7 +72,7 @@ Export the currently un-exported symbols it depends on.
* Note: we use "set_current_state()" _after_ the wait-queue add,
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
@@ -108,6 +108,7 @@ int task_work_add(struct task_struct *ta
@@ -97,6 +97,7 @@ int task_work_add(struct task_struct *ta
return 0;
}
@ -82,7 +82,7 @@ Export the currently un-exported symbols it depends on.
* task_work_cancel_match - cancel a pending work added by task_work_add()
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1937,6 +1937,7 @@ void zap_page_range_single(struct vm_are
@@ -1934,6 +1934,7 @@ void zap_page_range_single(struct vm_are
tlb_finish_mmu(&tlb);
hugetlb_zap_end(vma, details);
}
@ -92,7 +92,7 @@ Export the currently un-exported symbols it depends on.
* zap_vma_ptes - remove ptes mapping the vma
--- a/security/security.c
+++ b/security/security.c
@@ -997,6 +997,7 @@ int security_binder_set_context_mgr(cons
@@ -890,6 +890,7 @@ int security_binder_set_context_mgr(cons
{
return call_int_hook(binder_set_context_mgr, mgr);
}
@ -100,7 +100,7 @@ Export the currently un-exported symbols it depends on.
/**
* security_binder_transaction() - Check if a binder transaction is allowed
@@ -1012,6 +1013,7 @@ int security_binder_transaction(const st
@@ -905,6 +906,7 @@ int security_binder_transaction(const st
{
return call_int_hook(binder_transaction, from, to);
}
@ -108,7 +108,7 @@ Export the currently un-exported symbols it depends on.
/**
* security_binder_transfer_binder() - Check if a binder transfer is allowed
@@ -1027,6 +1029,7 @@ int security_binder_transfer_binder(cons
@@ -920,6 +922,7 @@ int security_binder_transfer_binder(cons
{
return call_int_hook(binder_transfer_binder, from, to);
}
@ -116,7 +116,7 @@ Export the currently un-exported symbols it depends on.
/**
* security_binder_transfer_file() - Check if a binder file xfer is allowed
@@ -1043,6 +1046,7 @@ int security_binder_transfer_file(const
@@ -936,6 +939,7 @@ int security_binder_transfer_file(const
{
return call_int_hook(binder_transfer_file, from, to, file);
}

@ -12,7 +12,7 @@ actually used.
---
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -1763,6 +1763,14 @@ static int do_fanotify_mark(int fanotify
@@ -1756,6 +1756,14 @@ static int do_fanotify_mark(int fanotify
umask = FANOTIFY_EVENT_FLAGS;
}
@ -24,6 +24,6 @@ actually used.
+ }
+#endif
+
f = fdget(fanotify_fd);
if (unlikely(!fd_file(f)))
CLASS(fd, f)(fanotify_fd);
if (fd_empty(f))
return -EBADF;

@ -11,9 +11,11 @@ all the other systems where the same device ID appears, so disable
auto-loading.
---
--- a/drivers/net/fjes/fjes_main.c
+++ b/drivers/net/fjes/fjes_main.c
@@ -34,7 +34,7 @@ static const struct acpi_device_id fjes_
Index: linux/drivers/net/fjes/fjes_main.c
===================================================================
--- linux.orig/drivers/net/fjes/fjes_main.c
+++ linux/drivers/net/fjes/fjes_main.c
@@ -36,7 +36,7 @@ static const struct acpi_device_id fjes_
{ACPI_MOTHERBOARD_RESOURCE_HID, 0},
{"", 0},
};

@ -9,7 +9,7 @@ This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1034,8 +1034,8 @@ static inline void put_link(struct namei
@@ -1020,8 +1020,8 @@ static inline void put_link(struct namei
path_put(&last->link);
}

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -2077,7 +2077,7 @@ module_init(ax25_init);
@@ -1986,7 +1986,7 @@ module_init(ax25_init);
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol");
MODULE_LICENSE("GPL");
@ -26,7 +26,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
{
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1498,7 +1498,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE
@@ -1486,7 +1486,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio NET/ROM network and transport layer protocol");
MODULE_LICENSE("GPL");
@ -37,7 +37,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
{
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1638,7 +1638,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of
@@ -1577,7 +1577,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio ROSE network layer protocol");
MODULE_LICENSE("GPL");

@ -15,7 +15,7 @@ requesting the unreleased firmware.
--- a/drivers/net/wireless/intel/iwlwifi/cfg/6000.c
+++ b/drivers/net/wireless/intel/iwlwifi/cfg/6000.c
@@ -12,7 +12,7 @@
@@ -31,7 +31,7 @@
#include "dvm/commands.h" /* needed for BT for now */
/* Highest firmware API version supported */

@ -16,8 +16,8 @@ The error message is based on that used in commit 0126be38d988
---
--- a/Makefile
+++ b/Makefile
@@ -134,6 +134,18 @@ ifeq ("$(origin M)", "command line")
KBUILD_EXTMOD := $(M)
@@ -138,6 +138,18 @@ ifeq ("$(origin MO)", "command line")
KBUILD_EXTMOD_OUTPUT := $(MO)
endif
+# Old syntax make ... SUBDIRS=$PWD should be rejected to avoid mishaps

@ -27,27 +27,27 @@ rules.real and change Makefile.modfinal to look for it in both places.
--- a/scripts/Makefile.modfinal
+++ b/scripts/Makefile.modfinal
@@ -33,11 +33,13 @@ quiet_cmd_cc_o_c = CC [M] $@
$(extmod_prefix).module-common.o: $(srctree)/scripts/module-common.c FORCE
$(call if_changed_dep,cc_o_c)
@@ -28,11 +28,13 @@ ccflags-remove-y := $(CC_FLAGS_CFI)
.module-common.o: $(srctree)/scripts/module-common.c FORCE
$(call if_changed_rule,cc_o_c)
+ARCH_MODULE_LDS := $(word 1,$(wildcard scripts/module.lds arch/$(SRCARCH)/module.lds))
+ARCH_MODULE_LDS := $(word 1,$(wildcard $(objtree)/scripts/module.lds $(objtree)/arch/$(SRCARCH)/module.lds))
+
quiet_cmd_ld_ko_o = LD [M] $@
cmd_ld_ko_o = \
$(LD) -r $(KBUILD_LDFLAGS) \
$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
- -T scripts/module.lds -o $@ $(filter %.o, $^)
- -T $(objtree)/scripts/module.lds -o $@ $(filter %.o, $^)
+ -T $(ARCH_MODULE_LDS) -o $@ $(filter %.o, $^)
quiet_cmd_btf_ko = BTF [M] $@
cmd_btf_ko = \
@@ -57,7 +59,7 @@ if_changed_except = $(if $(call newer_pr
@@ -52,7 +54,7 @@ if_changed_except = $(if $(call newer_pr
printf '%s\n' 'savedcmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)
# Re-generate module BTFs if either module's .ko or vmlinux changed
-%.ko: %.o %.mod.o $(extmod_prefix).module-common.o scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),vmlinux) FORCE
+%.ko: %.o %.mod.o $(extmod_prefix).module-common.o $(ARCH_MODULE_LDS) $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),vmlinux) FORCE
+$(call if_changed_except,ld_ko_o,vmlinux)
-%.ko: %.o %.mod.o .module-common.o $(objtree)/scripts/module.lds $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),$(objtree)/vmlinux) FORCE
+%.ko: %.o %.mod.o .module-common.o $(ARCH_MODULE_LDS) $(and $(CONFIG_DEBUG_INFO_BTF_MODULES),$(KBUILD_BUILTIN),$(objtree)/vmlinux) FORCE
+$(call if_changed_except,ld_ko_o,$(objtree)/vmlinux)
ifdef CONFIG_DEBUG_INFO_BTF_MODULES
+$(if $(newer-prereqs),$(call cmd,btf_ko))

@ -14,10 +14,12 @@ use of $(ARCH) needs to be moved after this.
[bwh: Updated for 5.3: include .kernelvariables from current directory
rather than using undefined $(obj).]
[carnil: Update for 6.13: Include .kernelvariables from $(objtree).]
---
--- a/Makefile
+++ b/Makefile
@@ -380,36 +380,6 @@ include $(srctree)/scripts/subarch.inclu
@@ -406,36 +406,6 @@ include $(srctree)/scripts/subarch.inclu
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
ARCH ?= $(SUBARCH)
@ -54,11 +56,11 @@ use of $(ARCH) needs to be moved after this.
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG
@@ -529,6 +499,35 @@ RUSTFLAGS_KERNEL =
@@ -551,6 +521,35 @@ RUSTFLAGS_KERNEL =
AFLAGS_KERNEL =
LDFLAGS_vmlinux =
+-include .kernelvariables
+-include $(objtree)/.kernelvariables
+
+# Architecture as present in compile.h
+UTS_MACHINE := $(ARCH)

@ -30,10 +30,10 @@ to the installed location.
free(path);
--- a/tools/perf/tests/Build
+++ b/tools/perf/tests/Build
@@ -73,7 +73,7 @@ perf-test-$(CONFIG_DWARF_UNWIND) += dwar
@@ -73,7 +73,7 @@ ifeq ($(SRCARCH),$(filter $(SRCARCH),x86
perf-test-$(CONFIG_DWARF_UNWIND) += dwarf-unwind.o
endif
CFLAGS_attr.o += -DBINDIR="BUILD_STR($(bindir_SQ))" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
-CFLAGS_python-use.o += -DPYTHONPATH="BUILD_STR($(OUTPUT)python)" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
+CFLAGS_python-use.o += -DPYTHONPATH="BUILD_STR($(perfexec_instdir_SQ)/scripts/python)" -DPYTHON="BUILD_STR($(PYTHON_WORD))"
CFLAGS_dwarf-unwind.o += -fno-optimize-sibling-calls

@ -20,7 +20,7 @@ is non-empty.
---
--- a/Makefile
+++ b/Makefile
@@ -1825,7 +1825,7 @@ PHONY += prepare
@@ -1753,7 +1753,7 @@ PHONY += prepare
# now expand this into a simple variable to reduce the cost of shell evaluations
prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
prepare:

@ -9,6 +9,8 @@ Forwarded: not-needed
tools/perf/Documentation/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/lib/perf/Documentation/Makefile b/tools/lib/perf/Documentation/Makefile
index 972754082a85..272d06173a3e 100644
--- a/tools/lib/perf/Documentation/Makefile
+++ b/tools/lib/perf/Documentation/Makefile
@@ -35,7 +35,7 @@ htmldir = $(docdir)/html
@ -20,9 +22,11 @@ Forwarded: not-needed
ASCIIDOC_HTML = xhtml11
MANPAGE_XSL = manpage-normal.xsl
XMLTO_EXTRA =
diff --git a/tools/perf/Documentation/Makefile b/tools/perf/Documentation/Makefile
index 6e54979c2124..7bfa6ae971ab 100644
--- a/tools/perf/Documentation/Makefile
+++ b/tools/perf/Documentation/Makefile
@@ -45,7 +45,7 @@ man5dir=$(mandir)/man5
@@ -48,7 +48,7 @@ man5dir=$(mandir)/man5
man7dir=$(mandir)/man7
ASCIIDOC=asciidoc
@ -31,3 +35,6 @@ Forwarded: not-needed
ASCIIDOC_HTML = xhtml11
MANPAGE_XSL = manpage-normal.xsl
XMLTO_EXTRA =
--
2.28.0

@ -19,11 +19,16 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/rds/af_rds.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c
index 98e0538..d8d4525 100644
--- a/net/rds/af_rds.c
+++ b/net/rds/af_rds.c
@@ -959,4 +959,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagr
@@ -574,4 +574,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagram Sockets"
" v" DRV_VERSION " (" DRV_RELDATE ")");
MODULE_VERSION(DRV_VERSION);
MODULE_LICENSE("Dual BSD/GPL");
-MODULE_ALIAS_NETPROTO(PF_RDS);
+/* MODULE_ALIAS_NETPROTO(PF_RDS); */
--
1.7.2.3

@ -8,9 +8,11 @@ Forwarded: not-needed
tools/perf/Makefile.perf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 80522bcfafe0..b011c7aae742 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -1153,7 +1153,7 @@ install-bin: install-tools install-tests
@@ -1026,7 +1026,7 @@ install-bin: install-tools install-tests install-traceevent-plugins
install: install-bin try-install-man
install-python_ext:
@ -19,3 +21,6 @@ Forwarded: not-needed
# 'make install-doc' should call 'make -C Documentation install'
$(INSTALL_DOC_TARGETS):
--
2.30.2

@ -4,7 +4,7 @@ Subject: linux-tools: Install perf-read-vdso{,x}32 in directory under /usr/lib
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -1075,21 +1075,21 @@ install-tools: all install-gtk
@@ -943,21 +943,21 @@ install-tools: all install-gtk
$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'; \
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(includedir_SQ)/perf'; \
$(INSTALL) -m 644 include/perf/perf_dlfilter.h -t '$(DESTDIR_SQ)$(includedir_SQ)/perf'

@ -11,8 +11,10 @@ kernel image reproducible.
Make mkcompile_h use $KBUILD_BUILD_VERSION_TIMESTAMP in preference to
$KBUILD_BUILD_TIMESTAMP.
--- a/init/Makefile
+++ b/init/Makefile
Index: linux/init/Makefile
===================================================================
--- linux.orig/init/Makefile
+++ linux/init/Makefile
@@ -29,7 +29,7 @@ preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) :
preempt-flag-$(CONFIG_PREEMPT_RT) := PREEMPT_RT

@ -15,6 +15,9 @@ This hex dump is generated using:
1 file changed, 1426 insertions(+)
create mode 100644 net/wireless/certs/debian.hex
diff --git a/net/wireless/certs/debian.hex b/net/wireless/certs/debian.hex
new file mode 100644
index 000000000000..c5ab03f8c500
--- /dev/null
+++ b/net/wireless/certs/debian.hex
@@ -0,0 +1,1426 @@
@ -1444,3 +1447,6 @@ This hex dump is generated using:
+0x44,
+0x9f,
+0x21,
--
2.25.1

@ -8,6 +8,8 @@ Forwarded: not-needed
security/yama/yama_lsm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
index efac68556b45..95ff3e778a17 100644
--- a/security/yama/yama_lsm.c
+++ b/security/yama/yama_lsm.c
@@ -25,7 +25,7 @@
@ -19,7 +21,7 @@ Forwarded: not-needed
/* describe a ptrace relationship for potential exception */
struct ptrace_relation {
@@ -476,7 +476,7 @@ static inline void yama_init_sysctl(void
@@ -476,7 +476,7 @@ static inline void yama_init_sysctl(void) { }
static int __init yama_init(void)
{

@ -39,7 +39,7 @@ Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
#include <uapi/linux/module.h>
#include "internal.h"
@@ -37,13 +39,60 @@ void set_module_sig_enforced(void)
@@ -37,13 +39,60 @@
sig_enforce = true;
}
@ -101,7 +101,7 @@ Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
int ret;
pr_devel("==>%s(,%zu)\n", __func__, modlen);
@@ -51,6 +100,7 @@ int mod_verify_sig(const void *mod, stru
@@ -51,6 +100,7 @@
if (modlen <= sizeof(ms))
return -EBADMSG;
@ -109,7 +109,7 @@ Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com>
memcpy(&ms, mod + (modlen - sizeof(ms)), sizeof(ms));
ret = mod_check_sig(&ms, modlen, "module");
@@ -61,10 +111,17 @@ int mod_verify_sig(const void *mod, stru
@@ -61,10 +111,17 @@
modlen -= sig_len + sizeof(ms);
info->len = modlen;

@ -11,6 +11,8 @@ To keep backward compatibility skip this check.
security/integrity/platform_certs/machine_keyring.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/security/integrity/platform_certs/machine_keyring.c b/security/integrity/platform_certs/machine_keyring.c
index a401640a63cd..0627f14eacbe 100644
--- a/security/integrity/platform_certs/machine_keyring.c
+++ b/security/integrity/platform_certs/machine_keyring.c
@@ -68,10 +68,7 @@ static bool __init trust_moklist(void)

@ -11,9 +11,11 @@ a version of the script which is directly derived from the driver.
drivers/media/dvb/dvb-usb/af9005-fe.c | 66 ++++++++++++++++++++++++++------
2 files changed, 54 insertions(+), 14 deletions(-)
--- a/drivers/media/usb/dvb-usb/Kconfig
+++ b/drivers/media/usb/dvb-usb/Kconfig
@@ -35,10 +35,10 @@ config DVB_USB_A800
Index: debian-kernel/drivers/media/usb/dvb-usb/Kconfig
===================================================================
--- debian-kernel.orig/drivers/media/usb/dvb-usb/Kconfig
+++ debian-kernel/drivers/media/usb/dvb-usb/Kconfig
@@ -260,10 +260,10 @@ config DVB_USB_OPERA1
config DVB_USB_AF9005
tristate "Afatech AF9005 DVB-T USB1.1 support"
@ -25,8 +27,10 @@ a version of the script which is directly derived from the driver.
help
Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
and the TerraTec Cinergy T USB XE (Rev.1)
--- a/drivers/media/usb/dvb-usb/af9005-fe.c
+++ b/drivers/media/usb/dvb-usb/af9005-fe.c
Index: debian-kernel/drivers/media/usb/dvb-usb/af9005-fe.c
===================================================================
--- debian-kernel.orig/drivers/media/usb/dvb-usb/af9005-fe.c
+++ debian-kernel/drivers/media/usb/dvb-usb/af9005-fe.c
@@ -9,10 +9,26 @@
* see Documentation/driver-api/media/drivers/dvb-usb.rst for more information
*/

@ -141,7 +141,7 @@ arm-init to efi-init common for all arch") renamed arm-init.c to efi-init.c]
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -765,7 +765,8 @@ extern int efi_mem_desc_lookup(u64 phys_
@@ -764,7 +764,8 @@ extern int efi_mem_desc_lookup(u64 phys_
extern int __efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md);
extern void efi_mem_reserve(phys_addr_t addr, u64 size);
extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size);

@ -106,11 +106,11 @@ cc: linux-efi@vger.kernel.org
+}
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -876,6 +876,14 @@ static inline int efi_range_is_wc(unsign
#define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
#define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */
#define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */
+#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */
@@ -864,6 +864,14 @@ static inline int efi_range_is_wc(unsign
#define EFI_MEM_ATTR 9 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
#define EFI_MEM_NO_SOFT_RESERVE 10 /* Is the kernel configured to ignore soft reservations? */
#define EFI_PRESERVE_BS_REGIONS 11 /* Are EFI boot-services memory segments available? */
+#define EFI_SECURE_BOOT 12 /* Are we in Secure Boot mode? */
+
+enum efi_secureboot_mode {
+ efi_secureboot_mode_unset,
@ -121,7 +121,7 @@ cc: linux-efi@vger.kernel.org
#ifdef CONFIG_EFI
/*
@@ -900,6 +908,7 @@ static inline bool efi_rt_services_suppo
@@ -888,6 +896,7 @@ static inline bool efi_rt_services_suppo
return (efi.runtime_supported_mask & mask) == mask;
}
extern void efi_find_mirror(void);
@ -129,7 +129,7 @@ cc: linux-efi@vger.kernel.org
#else
static inline bool efi_enabled(int feature)
{
@@ -919,6 +928,7 @@ static inline bool efi_rt_services_suppo
@@ -907,6 +916,7 @@ static inline bool efi_rt_services_suppo
}
static inline void efi_find_mirror(void) {}
@ -137,7 +137,7 @@ cc: linux-efi@vger.kernel.org
#endif
extern int efi_status_to_err(efi_status_t status);
@@ -1137,13 +1147,6 @@ static inline bool efi_runtime_disabled(
@@ -1125,13 +1135,6 @@ static inline bool efi_runtime_disabled(
extern void efi_call_virt_check_flags(unsigned long flags, const void *caller);
extern unsigned long efi_call_virt_save_flags(void);

@ -22,7 +22,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1623,6 +1623,11 @@ int perf_cpu_time_max_percent_handler(co
@@ -1617,6 +1617,11 @@ int perf_cpu_time_max_percent_handler(co
int perf_event_max_stack_handler(const struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos);
@ -50,7 +50,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
@@ -12691,6 +12696,9 @@ SYSCALL_DEFINE5(perf_event_open,
@@ -12681,6 +12686,9 @@ SYSCALL_DEFINE5(perf_event_open,
if (err)
return err;

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/drivers/iommu/intel/Kconfig
+++ b/drivers/iommu/intel/Kconfig
@@ -56,13 +56,24 @@ config INTEL_IOMMU_SVM
@@ -57,13 +57,24 @@ config INTEL_IOMMU_SVM
to access DMA resources through process address space by
means of a Process Address Space ID (PASID).
@ -48,7 +48,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
def_bool y
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -205,13 +205,13 @@ static LIST_HEAD(dmar_satc_units);
@@ -218,13 +218,13 @@ static LIST_HEAD(dmar_satc_units);
static void intel_iommu_domain_free(struct iommu_domain *domain);
@ -64,7 +64,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
static int intel_iommu_superpage = 1;
static int iommu_identity_mapping;
static int iommu_skip_te_disable;
@@ -250,6 +250,7 @@ static int __init intel_iommu_setup(char
@@ -263,6 +263,7 @@ static int __init intel_iommu_setup(char
while (*str) {
if (!strncmp(str, "on", 2)) {
dmar_disabled = 0;

@ -68,7 +68,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
} else if (!strncmp(str, "forcedac", 8)) {
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
iommu_dma_forcedac = true;
@@ -2046,6 +2054,9 @@ static int device_def_domain_type(struct
@@ -2034,6 +2042,9 @@ static int device_def_domain_type(struct
if ((iommu_identity_mapping & IDENTMAP_AZALIA) && IS_AZALIA(pdev))
return IOMMU_DOMAIN_IDENTITY;
@ -78,7 +78,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
}
return 0;
@@ -2344,6 +2355,9 @@ static int __init init_dmars(void)
@@ -2332,6 +2343,9 @@ static int __init init_dmars(void)
iommu_set_root_entry(iommu);
}

@ -29,7 +29,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -6641,6 +6641,10 @@
@@ -6498,6 +6498,10 @@
later by a loaded module cannot be set this way.
Example: sysctl.vm.swappiness=40
@ -42,7 +42,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Ignore sysrq setting - this boot parameter will
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -3165,6 +3165,14 @@ config COMPAT_32
@@ -3058,6 +3058,14 @@ config COMPAT_32
select HAVE_UID16
select OLD_SIGSUSPEND3
@ -80,7 +80,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
#include <linux/syscalls.h>
#include <asm/syscall.h>
@@ -23,3 +26,46 @@ long x32_sys_call(const struct pt_regs *
@@ -20,3 +23,46 @@
default: return __x64_sys_ni_syscall(regs);
}
};
@ -159,7 +159,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
#include <asm/thread_info.h> /* for TS_COMPAT */
#include <asm/unistd.h>
@@ -28,6 +29,18 @@ extern long ia32_sys_call(const struct p
@@ -28,6 +29,18 @@ extern const sys_call_ptr_t ia32_sys_cal
extern long x32_sys_call(const struct pt_regs *, unsigned int nr);
extern long x64_sys_call(const struct pt_regs *, unsigned int nr);

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- a/mm/memtest.c
+++ b/mm/memtest.c
@@ -31,6 +31,10 @@ static u64 patterns[] __initdata = {
@@ -26,6 +26,10 @@ static u64 patterns[] __initdata = {
static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad)
{

@ -103,6 +103,7 @@ bugfix/all/tools_lib_symbol_use_d_fortify_source_2_for_non_debug_builds.patch
bugfix/all/perf-tools-support-extra-cxxflags.patch
bugfix/all/perf-tools-pass-extra_cflags-through-to-libbpf-build-again.patch
bugfix/all/kbuild-bpf-fix-btf-reproducibility.patch
bugfix/all/perf-docs-Fix-perf-check-manual-page-built-with-asci.patch
# ABI maintenance

1
debian/rtla.links vendored

@ -1,2 +1,3 @@
usr/share/man/man1/rtla-hwnoise.1 usr/share/man/man1/hwnoise.1
usr/share/man/man1/rtla-osnoise.1 usr/share/man/man1/osnoise.1
usr/share/man/man1/rtla-timerlat.1 usr/share/man/man1/timerlat.1

1
debian/rules vendored

@ -60,6 +60,7 @@ clean-generated:
debian/control.md5sum \
debian/krd-linux-headers-*.maintscript \
debian/krd-linux-headers-*.postinst \
debian/krd-linux-image-*.NEWS \
debian/krd-linux-image-*.lintian-overrides \
debian/krd-linux-image-*.maintscript \
debian/krd-linux-image-*.postinst \

@ -5,10 +5,8 @@ srcdir := $(top_srcdir)/tools/usb/usbip
# sub-make command line.
unexport MAKEFLAGS
CPPFLAGS_COMMON := -Wno-error=address-of-packed-member
all: export CFLAGS := $(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS_COMMON)
all: export CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) $(CPPFLAGS_COMMON) \
all: export CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
all: export CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) \
-isystem $(top_srcdir)/debian/build/build-tools/include
all: export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
all:

73
debian/rules.real vendored

@ -71,7 +71,9 @@ source: $(STAMPS_DIR)/source_$(FEATURESET)
$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG)
mkdir -p '$(dir $@)'
debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS)
debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS) \
-o MODULE_SIG_KEY=\"output/signing_key.pem\" \
$(call if_profile, pkg.linux.quick,-o DEBUG_INFO_NONE=y -o DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=n)
define copy_source
mkdir -p '$(1)'
@ -83,15 +85,17 @@ $(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz: $(STAMPS_DIR)/
rm -rf '$@' '$(DIR)'
$(call copy_source,$(DIR))
chmod -R u+rw,go=rX '$(DIR)'
find $(DIR)/ -name __pycache__ -type d -exec rm -rf {} +
find $(DIR)/ -name '*.pyc' -type f -exec rm -f {} +
find $(DIR)/ -depth -newermt '@$(SOURCE_DATE_EPOCH)' -print0 \
| xargs -0r touch --no-dereference --date='@$(SOURCE_DATE_EPOCH)'
find '$(DIR)' -depth -newermt '@$(SOURCE_DATE_EPOCH)' -print0 | \
xargs -0r touch --no-dereference --date='@$(SOURCE_DATE_EPOCH)'
n='$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION)' ; \
cd $(BUILD_DIR) ; \
find $$n/ -print0 | sort -z \
cd '$(BUILD_DIR)'; \
find "$$n/" -print0 \
| grep -zEv \
-e '__pycache__' \
-e '\.pyc$$' \
| sort -zuV \
| tar --owner=root --group=root --numeric-owner --no-recursion --null -T - -c \
| xz -T$(THREAD_COUNT) > $$n.tar.xz
| xz -T$(THREAD_COUNT) > "$$n.tar.xz"
rm -rf '$(DIR)'
$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-%.patch.xz: $(STAMPS_DIR)/source_none $(STAMPS_DIR)/source_%
@ -117,10 +121,7 @@ $(STAMPS_DIR)/source_%: SOURCE_DIR=$(BUILD_DIR)/source
$(STAMPS_DIR)/source_%: DIR=$(BUILD_DIR)/source_$*
$(STAMPS_DIR)/source_%: $(STAMPS_DIR)/source
mkdir -p '$(BUILD_DIR)'
rm -rf '$(DIR)'
$(call copy_source,$(DIR))
cd '$(DIR)' \
&& QUILT_PATCHES='$(CURDIR)/debian/patches-$*' QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0
set +e ; QUILT_PC=.pc quilt unapplied --quiltrc - >/dev/null && echo 'Patch series not fully applied' ; test $$? -eq 1
@$(stamp)
.PRECIOUS: $(STAMPS_DIR)/source_%
@ -167,31 +168,41 @@ endif
+yes "" | $(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' oldconfig >/dev/null
@$(stamp)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(FEATURESET)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): OUTPUT_DIR=$(DIR)/output/image
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DT_INSTALL_DIR = /usr/lib/linux-image-$(REAL_VERSION)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): export KBUILD_SIGN_PIN = $(shell dd if=/dev/random bs=16 count=1 status=none | base64)
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
rm -rf '$(DIR)/output'
install -d '$(DIR)/output'
# Make sure the support for the used key type is built-in, CRYPTO_ECDSA for ecdsa keys.
openssl req -new -utf8 -sha256 -days 36500 \
-batch -x509 -config certs/default_x509.genkey \
-passout env:KBUILD_SIGN_PIN \
-outform PEM -out $(DIR)/output/signing_key.pem \
-keyout $(DIR)/output/signing_key.pem \
-newkey ec -pkeyopt ec_paramgen_curve:secp384r1 2>&1
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
+$(MAKE_CLEAN) -C '$(DIR)'
@$(stamp)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): INSTALL_DIR=$(BUILD_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DT_INSTALL_DIR = $(INSTALL_DIR)/usr/lib/krd-linux-image-$(REAL_VERSION)
$(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
install -D -m644 '$(DIR)/$(IMAGE_FILE)' $(INSTALL_DIR)/boot/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
install -D -m644 '$(DIR)/$(IMAGE_FILE)' $(OUTPUT_DIR)/boot/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
ifeq ($(IMAGE_FILE),vmlinux)
# This is the unprocessed ELF image, so we need to strip debug symbols
$(CROSS_COMPILE)strip --strip-debug $(INSTALL_DIR)/boot/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
$(CROSS_COMPILE)strip --strip-debug $(OUTPUT_DIR)/boot/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
endif
+$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)/$(INSTALL_DIR)' INSTALL_MOD_STRIP=1
+$(MAKE_CLEAN) -C $(DIR) modules_install \
DEPMOD='$(CURDIR)/debian/bin/no-depmod' \
INSTALL_MOD_PATH='$(CURDIR)/$(OUTPUT_DIR)' \
INSTALL_MOD_STRIP=1
ifneq ($(filter arm64 armel armhf mipsel mips64el mipsr6 mipsr6el mips64r6 mips64r6el riscv64,$(ARCH)),)
+$(MAKE_CLEAN) -C $(DIR) dtbs
+$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH='$(CURDIR)/$(DT_INSTALL_DIR)'
+$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH='$(CURDIR)/$(OUTPUT_DIR)/$(DT_INSTALL_DIR)'
endif
rm -f $(INSTALL_DIR)/lib/modules/$(REAL_VERSION)/build
rm -f $(INSTALL_DIR)/lib/modules/$(REAL_VERSION)/source
rm -f $(OUTPUT_DIR)/lib/modules/$(REAL_VERSION)/build
rm -f $(OUTPUT_DIR)/lib/modules/$(REAL_VERSION)/source
@$(stamp)
define dh_binary_pre
@ -291,6 +302,7 @@ binary_headers: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
cp -a $(SOURCE_DIR)/scripts/module.lds $(DIR)/arch/$(KERNEL_ARCH)
@echo 'KBUILD_OUTPUT=$(BASE_DIR)' >> $(DIR)/Makefile
@echo 'include $(BASE_DIR_COMMON)/Makefile' >> $(DIR)/Makefile
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
@ -366,8 +378,8 @@ binary_image: REAL_VERSION = $(ABINAME)$(LOCALVERSION)
binary_image: SYSTEM_MAP_PATH = lib/modules/$(REAL_VERSION)/System.map.xz
binary_image: INSTALL_DIR = $(DESTDIR)/boot
binary_image: DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image: DIR2 = $(BUILD_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR) $(STAMPS_DIR)/install_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image: DIR2 = $(DIR)/output/image
binary_image: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
binary_image:
$(dh_binary_pre)
dh_install --sourcedir=$(DIR2) boot
@ -416,12 +428,13 @@ define make-tools
KERNEL_ARCH=$(KERNEL_ARCH)
endef
$(STAMPS_DIR)/build-tools-headers: BUILD_DIR_TOOLS = $(BUILD_DIR)/build-tools
$(STAMPS_DIR)/build-tools-headers:
mkdir -p $(BUILD_DIR)/build-tools/headers-tools
mkdir -p $(BUILD_DIR_TOOLS)/headers-tools
$(MAKE) \
ARCH=$(KERNEL_ARCH) \
O=$(BUILD_DIR)/build-tools/headers-tools \
INSTALL_HDR_PATH=$(CURDIR)/$(BUILD_DIR)/build-tools \
O=$(BUILD_DIR_TOOLS)/headers-tools \
INSTALL_HDR_PATH=$(CURDIR)/$(BUILD_DIR_TOOLS) \
headers_install
@$(stamp)

@ -24,12 +24,14 @@ Build-Depends-Arch:
# linux-kbuild), perf (host arch)
libelf-dev:native <!pkg.linux.nokernel>,
libelf-dev <!pkg.linux.notools>,
lz4 [amd64 arm64] <!pkg.linux.nokernel>,
# used for bft debug info
pahole <!pkg.linux.nokernel> | dwarves:native (>= 1.16~) <!pkg.linux.nokernel>,
# used by debian/rules.real to build linux-headers
cpio <!pkg.linux.nokernel>,
# used by upstream to compress kernel
xz-utils <!pkg.linux.nokernel>,
zstd <!pkg.linux.nokernel>,
# used by upstream to build genksyms, kconfig, and perf
bison <!pkg.linux.nokernel>,
bison <!pkg.linux.notools>,

@ -145,7 +145,7 @@ Meta-Rules-Target: rtla
Build-Profiles: <!pkg.linux.notools !pkg.linux.mintools>
Architecture: amd64 arm64 armhf i386 x32
Build-Depends: libtracefs-dev, libtraceevent-dev, python3-docutils
Depends: ${shlibs:Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Section: devel
Description: Real-Time Linux Analysis tools
rtla provides a set of commands for analysing the real-time
@ -157,7 +157,7 @@ Package: intel-sdsi
Meta-Rules-Target: sdsi
Build-Profiles: <!pkg.linux.notools !pkg.linux.mintools>
Architecture: amd64
Depends: ${shlibs:Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Section: admin
Description: Intel On Demand (SDSi) provisioning tool
intel_sdsi is a tool for key certificate and activation payload