diff --git a/debian/patches/bugfix/all/cpupower-bump-soname-version.patch b/debian/patches/bugfix/all/cpupower-bump-soname-version.patch index eebb23b44..5691bd454 100644 --- a/debian/patches/bugfix/all/cpupower-bump-soname-version.patch +++ b/debian/patches/bugfix/all/cpupower-bump-soname-version.patch @@ -14,11 +14,11 @@ Signed-off-by: Ben Hutchings tools/power/cpupower/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/tools/power/cpupower/Makefile b/tools/power/cpupower/Makefile -index 8358863259c5..0b85f5915ce8 100644 ---- a/tools/power/cpupower/Makefile -+++ b/tools/power/cpupower/Makefile -@@ -64,7 +64,7 @@ DESTDIR ?= +Index: linux/tools/power/cpupower/Makefile +=================================================================== +--- linux.orig/tools/power/cpupower/Makefile ++++ linux/tools/power/cpupower/Makefile +@@ -66,7 +66,7 @@ DESTDIR ?= VERSION= $(shell ./utils/version-gen.sh) LIB_MAJ= 0.0.1 diff --git a/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch b/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch index 5cce9b76a..0ad8fc6cd 100644 --- a/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch +++ b/debian/patches/bugfix/all/cpupower-fix-checks-for-cpu-existence.patch @@ -22,8 +22,10 @@ incorrect check has been fixed with upstream commit 53d1cd6b125f. Keep in the patch the distinction and report for the zero and negative cases.] --- ---- a/tools/power/cpupower/bench/system.c -+++ b/tools/power/cpupower/bench/system.c +Index: linux/tools/power/cpupower/bench/system.c +=================================================================== +--- linux.orig/tools/power/cpupower/bench/system.c ++++ linux/tools/power/cpupower/bench/system.c @@ -58,12 +58,19 @@ long long int get_time() int set_cpufreq_governor(char *governor, unsigned int cpu) diff --git a/debian/patches/bugfix/all/disable-some-marvell-phys.patch b/debian/patches/bugfix/all/disable-some-marvell-phys.patch index 4ed38afaf..297b38c56 100644 --- a/debian/patches/bugfix/all/disable-some-marvell-phys.patch +++ b/debian/patches/bugfix/all/disable-some-marvell-phys.patch @@ -18,7 +18,7 @@ Index: linux/drivers/net/phy/marvell.c =================================================================== --- linux.orig/drivers/net/phy/marvell.c +++ linux/drivers/net/phy/marvell.c -@@ -962,6 +962,7 @@ static int m88e1118_config_init(struct p +@@ -950,6 +950,7 @@ static int m88e1118_config_init(struct p return genphy_soft_reset(phydev); } @@ -26,7 +26,7 @@ Index: linux/drivers/net/phy/marvell.c static int m88e1149_config_init(struct phy_device *phydev) { int err; -@@ -987,7 +988,9 @@ static int m88e1149_config_init(struct p +@@ -975,7 +976,9 @@ static int m88e1149_config_init(struct p return genphy_soft_reset(phydev); } @@ -36,7 +36,7 @@ Index: linux/drivers/net/phy/marvell.c static int m88e1145_config_init_rgmii(struct phy_device *phydev) { int err; -@@ -1062,6 +1065,7 @@ static int m88e1145_config_init(struct p +@@ -1050,6 +1053,7 @@ static int m88e1145_config_init(struct p return 0; } @@ -44,7 +44,7 @@ Index: linux/drivers/net/phy/marvell.c /* The VOD can be out of specification on link up. Poke an * undocumented register, in an undocumented page, with a magic value -@@ -2175,6 +2179,7 @@ static struct phy_driver marvell_drivers +@@ -2165,6 +2169,7 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -52,7 +52,7 @@ Index: linux/drivers/net/phy/marvell.c { .phy_id = MARVELL_PHY_ID_88E1145, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2195,6 +2200,8 @@ static struct phy_driver marvell_drivers +@@ -2185,6 +2190,8 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -61,7 +61,7 @@ Index: linux/drivers/net/phy/marvell.c { .phy_id = MARVELL_PHY_ID_88E1149R, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2214,6 +2221,8 @@ static struct phy_driver marvell_drivers +@@ -2204,6 +2211,8 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -70,7 +70,7 @@ Index: linux/drivers/net/phy/marvell.c { .phy_id = MARVELL_PHY_ID_88E1240, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2233,6 +2242,7 @@ static struct phy_driver marvell_drivers +@@ -2223,6 +2232,7 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -78,7 +78,7 @@ Index: linux/drivers/net/phy/marvell.c { .phy_id = MARVELL_PHY_ID_88E1116R, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2369,9 +2379,9 @@ static struct mdio_device_id __maybe_unu +@@ -2359,9 +2369,9 @@ static struct mdio_device_id __maybe_unu { MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK }, diff --git a/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch b/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch index 83d66744d..97e5d0a64 100644 --- a/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch +++ b/debian/patches/bugfix/all/documentation-media-uapi-explicitly-say-there-are-no-invariant-sections.patch @@ -33,8 +33,10 @@ Signed-off-by: Mauro Carvalho Chehab Documentation/media/media_uapi.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) ---- a/Documentation/media/media_uapi.rst -+++ b/Documentation/media/media_uapi.rst +Index: linux/Documentation/media/media_uapi.rst +=================================================================== +--- linux.orig/Documentation/media/media_uapi.rst ++++ linux/Documentation/media/media_uapi.rst @@ -10,9 +10,9 @@ Linux Media Infrastructure userspace API Permission is granted to copy, distribute and/or modify this document diff --git a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch index f87f5434a..ca76717c6 100644 --- a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch +++ b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch @@ -9,8 +9,10 @@ many other log messages can be removed from drivers. This will probably need to be split up into multiple patches prior to upstream submission. ---- a/arch/arm/mach-netx/xc.c -+++ b/arch/arm/mach-netx/xc.c +Index: linux/arch/arm/mach-netx/xc.c +=================================================================== +--- linux.orig/arch/arm/mach-netx/xc.c ++++ linux/arch/arm/mach-netx/xc.c @@ -127,10 +127,8 @@ int xc_request_firmware(struct xc *x) ret = request_firmware(&fw, name, x->dev); @@ -23,8 +25,10 @@ upstream submission. head = (struct fw_header *)fw->data; if (head->magic != 0x4e657458) { ---- a/arch/x86/kernel/cpu/microcode/amd.c -+++ b/arch/x86/kernel/cpu/microcode/amd.c +Index: linux/arch/x86/kernel/cpu/microcode/amd.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/microcode/amd.c ++++ linux/arch/x86/kernel/cpu/microcode/amd.c @@ -755,10 +755,8 @@ static enum ucode_state request_microcod if (c->x86 >= 0x15) snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86); @@ -37,8 +41,10 @@ upstream submission. ret = UCODE_ERROR; if (*(u32 *)fw->data != UCODE_MAGIC) { ---- a/drivers/atm/ambassador.c -+++ b/drivers/atm/ambassador.c +Index: linux/drivers/atm/ambassador.c +=================================================================== +--- linux.orig/drivers/atm/ambassador.c ++++ linux/drivers/atm/ambassador.c @@ -1929,10 +1929,8 @@ static int ucode_init(loader_block *lb, int res; @@ -51,8 +57,10 @@ upstream submission. /* First record contains just the start address */ rec = (const struct ihex_binrec *)fw->data; ---- a/drivers/atm/fore200e.c -+++ b/drivers/atm/fore200e.c +Index: linux/drivers/atm/fore200e.c +=================================================================== +--- linux.orig/drivers/atm/fore200e.c ++++ linux/drivers/atm/fore200e.c @@ -2505,10 +2505,9 @@ static int fore200e_load_and_start_fw(st return err; @@ -66,8 +74,10 @@ upstream submission. fw_data = (const __le32 *)firmware->data; fw_size = firmware->size / sizeof(u32); ---- a/drivers/bluetooth/ath3k.c -+++ b/drivers/bluetooth/ath3k.c +Index: linux/drivers/bluetooth/ath3k.c +=================================================================== +--- linux.orig/drivers/bluetooth/ath3k.c ++++ linux/drivers/bluetooth/ath3k.c @@ -430,10 +430,8 @@ static int ath3k_load_patch(struct usb_d le32_to_cpu(fw_version.rom_version)); @@ -92,8 +102,10 @@ upstream submission. ret = ath3k_load_fwfile(udev, firmware); release_firmware(firmware); ---- a/drivers/bluetooth/bcm203x.c -+++ b/drivers/bluetooth/bcm203x.c +Index: linux/drivers/bluetooth/bcm203x.c +=================================================================== +--- linux.orig/drivers/bluetooth/bcm203x.c ++++ linux/drivers/bluetooth/bcm203x.c @@ -189,7 +189,6 @@ static int bcm203x_probe(struct usb_inte return -ENOMEM; @@ -110,8 +122,10 @@ upstream submission. usb_free_urb(data->urb); kfree(data->buffer); return -EIO; ---- a/drivers/bluetooth/bfusb.c -+++ b/drivers/bluetooth/bfusb.c +Index: linux/drivers/bluetooth/bfusb.c +=================================================================== +--- linux.orig/drivers/bluetooth/bfusb.c ++++ linux/drivers/bluetooth/bfusb.c @@ -652,10 +652,8 @@ static int bfusb_probe(struct usb_interf skb_queue_head_init(&data->pending_q); skb_queue_head_init(&data->completed_q); @@ -124,8 +138,10 @@ upstream submission. BT_DBG("firmware data %p size %zu", firmware->data, firmware->size); ---- a/drivers/bluetooth/bt3c_cs.c -+++ b/drivers/bluetooth/bt3c_cs.c +Index: linux/drivers/bluetooth/bt3c_cs.c +=================================================================== +--- linux.orig/drivers/bluetooth/bt3c_cs.c ++++ linux/drivers/bluetooth/bt3c_cs.c @@ -566,10 +566,8 @@ static int bt3c_open(struct bt3c_info *i /* Load firmware */ @@ -138,8 +154,10 @@ upstream submission. err = bt3c_load_firmware(info, firmware->data, firmware->size); ---- a/drivers/bluetooth/btmrvl_sdio.c -+++ b/drivers/bluetooth/btmrvl_sdio.c +Index: linux/drivers/bluetooth/btmrvl_sdio.c +=================================================================== +--- linux.orig/drivers/bluetooth/btmrvl_sdio.c ++++ linux/drivers/bluetooth/btmrvl_sdio.c @@ -455,8 +455,6 @@ static int btmrvl_sdio_download_helper(s ret = request_firmware(&fw_helper, card->helper, &card->func->dev); @@ -158,8 +176,10 @@ upstream submission. ret = -ENOENT; goto done; } ---- a/drivers/char/dsp56k.c -+++ b/drivers/char/dsp56k.c +Index: linux/drivers/char/dsp56k.c +=================================================================== +--- linux.orig/drivers/char/dsp56k.c ++++ linux/drivers/char/dsp56k.c @@ -140,11 +140,8 @@ static int dsp56k_upload(u_char __user * } err = request_firmware(&fw, fw_name, &pdev->dev); @@ -173,8 +193,10 @@ upstream submission. if (fw->size % 3) { printk(KERN_ERR "Bogus length %d in image \"%s\"\n", fw->size, fw_name); ---- a/drivers/dma/imx-sdma.c -+++ b/drivers/dma/imx-sdma.c +Index: linux/drivers/dma/imx-sdma.c +=================================================================== +--- linux.orig/drivers/dma/imx-sdma.c ++++ linux/drivers/dma/imx-sdma.c @@ -1674,11 +1674,8 @@ static void sdma_load_firmware(const str const struct sdma_script_start_addrs *addr; unsigned short *ram_code; @@ -188,8 +210,10 @@ upstream submission. if (fw->size < sizeof(*header)) goto err_firmware; ---- a/drivers/gpu/drm/mga/mga_warp.c -+++ b/drivers/gpu/drm/mga/mga_warp.c +Index: linux/drivers/gpu/drm/mga/mga_warp.c +=================================================================== +--- linux.orig/drivers/gpu/drm/mga/mga_warp.c ++++ linux/drivers/gpu/drm/mga/mga_warp.c @@ -79,11 +79,8 @@ int mga_warp_install_microcode(drm_mga_p } rc = request_ihex_firmware(&fw, firmware_name, &pdev->dev); @@ -203,8 +227,10 @@ upstream submission. size = 0; where = 0; ---- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +Index: linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +=================================================================== +--- linux.orig/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c ++++ linux/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c @@ -1920,10 +1920,8 @@ gf100_gr_ctor_fw_legacy(struct gf100_gr if (ret) { snprintf(f, sizeof(f), "nouveau/%s", fwname); @@ -217,8 +243,10 @@ upstream submission. } fuc->size = fw->size; ---- a/drivers/gpu/drm/r128/r128_cce.c -+++ b/drivers/gpu/drm/r128/r128_cce.c +Index: linux/drivers/gpu/drm/r128/r128_cce.c +=================================================================== +--- linux.orig/drivers/gpu/drm/r128/r128_cce.c ++++ linux/drivers/gpu/drm/r128/r128_cce.c @@ -154,11 +154,8 @@ static int r128_cce_load_microcode(drm_r } rc = request_firmware(&fw, FIRMWARE_NAME, &pdev->dev); @@ -232,8 +260,10 @@ upstream submission. if (fw->size != 256 * 8) { pr_err("r128_cce: Bogus length %zu in firmware \"%s\"\n", ---- a/drivers/gpu/drm/radeon/ni.c -+++ b/drivers/gpu/drm/radeon/ni.c +Index: linux/drivers/gpu/drm/radeon/ni.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/ni.c ++++ linux/drivers/gpu/drm/radeon/ni.c @@ -830,9 +830,6 @@ int ni_init_microcode(struct radeon_devi out: @@ -244,8 +274,10 @@ upstream submission. release_firmware(rdev->pfp_fw); rdev->pfp_fw = NULL; release_firmware(rdev->me_fw); ---- a/drivers/gpu/drm/radeon/r100.c -+++ b/drivers/gpu/drm/radeon/r100.c +Index: linux/drivers/gpu/drm/radeon/r100.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/r100.c ++++ linux/drivers/gpu/drm/radeon/r100.c @@ -1041,9 +1041,7 @@ static int r100_cp_init_microcode(struct } @@ -257,8 +289,10 @@ upstream submission. pr_err("radeon_cp: Bogus length %zu in firmware \"%s\"\n", rdev->me_fw->size, fw_name); err = -EINVAL; ---- a/drivers/gpu/drm/radeon/r600.c -+++ b/drivers/gpu/drm/radeon/r600.c +Index: linux/drivers/gpu/drm/radeon/r600.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/r600.c ++++ linux/drivers/gpu/drm/radeon/r600.c @@ -2593,9 +2593,6 @@ int r600_init_microcode(struct radeon_de out: @@ -269,8 +303,10 @@ upstream submission. release_firmware(rdev->pfp_fw); rdev->pfp_fw = NULL; release_firmware(rdev->me_fw); ---- a/drivers/infiniband/hw/qib/qib_sd7220.c -+++ b/drivers/infiniband/hw/qib/qib_sd7220.c +Index: linux/drivers/infiniband/hw/qib/qib_sd7220.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/qib/qib_sd7220.c ++++ linux/drivers/infiniband/hw/qib/qib_sd7220.c @@ -406,10 +406,8 @@ int qib_sd7220_init(struct qib_devdata * } @@ -283,8 +319,10 @@ upstream submission. /* Substitute our deduced value for was_reset */ ret = qib_ibsd_ucode_loaded(dd->pport, fw); ---- a/drivers/input/touchscreen/atmel_mxt_ts.c -+++ b/drivers/input/touchscreen/atmel_mxt_ts.c +Index: linux/drivers/input/touchscreen/atmel_mxt_ts.c +=================================================================== +--- linux.orig/drivers/input/touchscreen/atmel_mxt_ts.c ++++ linux/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2783,10 +2783,8 @@ static int mxt_load_fw(struct device *de int ret; @@ -297,8 +335,10 @@ upstream submission. /* Check for incorrect enc file */ ret = mxt_check_firmware_format(dev, fw); ---- a/drivers/isdn/hardware/mISDN/speedfax.c -+++ b/drivers/isdn/hardware/mISDN/speedfax.c +Index: linux/drivers/isdn/hardware/mISDN/speedfax.c +=================================================================== +--- linux.orig/drivers/isdn/hardware/mISDN/speedfax.c ++++ linux/drivers/isdn/hardware/mISDN/speedfax.c @@ -392,11 +392,8 @@ setup_instance(struct sfax_hw *card) card->isar.owner = THIS_MODULE; @@ -312,8 +352,10 @@ upstream submission. if (debug & DEBUG_HW) pr_notice("%s: got firmware %zu bytes\n", card->name, firmware->size); ---- a/drivers/media/tuners/tuner-xc2028.c -+++ b/drivers/media/tuners/tuner-xc2028.c +Index: linux/drivers/media/tuners/tuner-xc2028.c +=================================================================== +--- linux.orig/drivers/media/tuners/tuner-xc2028.c ++++ linux/drivers/media/tuners/tuner-xc2028.c @@ -1367,7 +1367,6 @@ static void load_firmware_cb(const struc tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error"); @@ -322,8 +364,10 @@ upstream submission. priv->state = XC2028_NODEV; return; } ---- a/drivers/media/usb/dvb-usb/dib0700_devices.c -+++ b/drivers/media/usb/dvb-usb/dib0700_devices.c +Index: linux/drivers/media/usb/dvb-usb/dib0700_devices.c +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/dib0700_devices.c ++++ linux/drivers/media/usb/dvb-usb/dib0700_devices.c @@ -2416,12 +2416,9 @@ static int stk9090m_frontend_attach(stru dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80); @@ -339,7 +383,7 @@ upstream submission. stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size; stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data; -@@ -2482,12 +2479,9 @@ static int nim9090md_frontend_attach(str +@@ -2486,12 +2483,9 @@ static int nim9090md_frontend_attach(str msleep(20); dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); @@ -354,8 +398,10 @@ upstream submission. nim9090md_config[0].microcode_B_fe_size = state->frontend_firmware->size; nim9090md_config[0].microcode_B_fe_buffer = state->frontend_firmware->data; nim9090md_config[1].microcode_B_fe_size = state->frontend_firmware->size; ---- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c -+++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c +Index: linux/drivers/media/usb/dvb-usb/dvb-usb-firmware.c +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/dvb-usb-firmware.c ++++ linux/drivers/media/usb/dvb-usb/dvb-usb-firmware.c @@ -89,13 +89,9 @@ int dvb_usb_download_firmware(struct usb int ret; const struct firmware *fw = NULL; @@ -372,8 +418,10 @@ upstream submission. switch (props->usb_ctrl) { case CYPRESS_AN2135: ---- a/drivers/media/usb/dvb-usb/gp8psk.c -+++ b/drivers/media/usb/dvb-usb/gp8psk.c +Index: linux/drivers/media/usb/dvb-usb/gp8psk.c +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/gp8psk.c ++++ linux/drivers/media/usb/dvb-usb/gp8psk.c @@ -134,19 +134,14 @@ static int gp8psk_load_bcm4500fw(struct const u8 *ptr; u8 *buf; @@ -395,8 +443,10 @@ upstream submission. ptr = fw->data; buf = kmalloc(64, GFP_KERNEL); if (!buf) { ---- a/drivers/media/usb/dvb-usb/opera1.c -+++ b/drivers/media/usb/dvb-usb/opera1.c +Index: linux/drivers/media/usb/dvb-usb/opera1.c +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/opera1.c ++++ linux/drivers/media/usb/dvb-usb/opera1.c @@ -453,8 +453,6 @@ static int opera1_xilinx_load_firmware(s info("start downloading fpga firmware %s",filename); @@ -406,8 +456,10 @@ upstream submission. return ret; } else { p = kmalloc(fw->size, GFP_KERNEL); ---- a/drivers/media/dvb-frontends/af9013.c -+++ b/drivers/media/dvb-frontends/af9013.c +Index: linux/drivers/media/dvb-frontends/af9013.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/af9013.c ++++ linux/drivers/media/dvb-frontends/af9013.c @@ -1059,14 +1059,8 @@ static int af9013_download_firmware(stru /* Request the firmware, will block and timeout */ @@ -424,8 +476,10 @@ upstream submission. /* Write firmware checksum & size */ for (i = 0; i < firmware->size; i++) ---- a/drivers/media/dvb-frontends/bcm3510.c -+++ b/drivers/media/dvb-frontends/bcm3510.c +Index: linux/drivers/media/dvb-frontends/bcm3510.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/bcm3510.c ++++ linux/drivers/media/dvb-frontends/bcm3510.c @@ -636,10 +636,9 @@ static int bcm3510_download_firmware(str int ret,i; @@ -439,8 +493,10 @@ upstream submission. deb_info("got firmware: %zu\n", fw->size); b = fw->data; ---- a/drivers/media/dvb-frontends/cx24116.c -+++ b/drivers/media/dvb-frontends/cx24116.c +Index: linux/drivers/media/dvb-frontends/cx24116.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/cx24116.c ++++ linux/drivers/media/dvb-frontends/cx24116.c @@ -491,13 +491,8 @@ static int cx24116_firmware_ondemand(str __func__, CX24116_DEFAULT_FIRMWARE); ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, @@ -456,8 +512,10 @@ upstream submission. /* Make sure we don't recurse back through here * during loading */ ---- a/drivers/media/dvb-frontends/drxd_hard.c -+++ b/drivers/media/dvb-frontends/drxd_hard.c +Index: linux/drivers/media/dvb-frontends/drxd_hard.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/drxd_hard.c ++++ linux/drivers/media/dvb-frontends/drxd_hard.c @@ -903,10 +903,8 @@ static int load_firmware(struct drxd_sta { const struct firmware *fw; @@ -470,8 +528,10 @@ upstream submission. state->microcode = kmemdup(fw->data, fw->size, GFP_KERNEL); if (!state->microcode) { ---- a/drivers/media/dvb-frontends/drxk_hard.c -+++ b/drivers/media/dvb-frontends/drxk_hard.c +Index: linux/drivers/media/dvb-frontends/drxk_hard.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/drxk_hard.c ++++ linux/drivers/media/dvb-frontends/drxk_hard.c @@ -6281,10 +6281,6 @@ static void load_firmware_cb(const struc dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded"); @@ -483,8 +543,10 @@ upstream submission. state->microcode_name = NULL; /* ---- a/drivers/media/dvb-frontends/ds3000.c -+++ b/drivers/media/dvb-frontends/ds3000.c +Index: linux/drivers/media/dvb-frontends/ds3000.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/ds3000.c ++++ linux/drivers/media/dvb-frontends/ds3000.c @@ -360,12 +360,8 @@ static int ds3000_firmware_ondemand(stru DS3000_DEFAULT_FIRMWARE); ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, @@ -499,8 +561,10 @@ upstream submission. ret = ds3000_load_firmware(fe, fw); if (ret) ---- a/drivers/media/dvb-frontends/nxt200x.c -+++ b/drivers/media/dvb-frontends/nxt200x.c +Index: linux/drivers/media/dvb-frontends/nxt200x.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/nxt200x.c ++++ linux/drivers/media/dvb-frontends/nxt200x.c @@ -886,12 +886,8 @@ static int nxt2002_init(struct dvb_front __func__, NXT2002_DEFAULT_FIRMWARE); ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, @@ -529,8 +593,10 @@ upstream submission. ret = nxt2004_load_firmware(fe, fw); release_firmware(fw); ---- a/drivers/media/dvb-frontends/or51132.c -+++ b/drivers/media/dvb-frontends/or51132.c +Index: linux/drivers/media/dvb-frontends/or51132.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/or51132.c ++++ linux/drivers/media/dvb-frontends/or51132.c @@ -337,10 +337,8 @@ static int or51132_set_parameters(struct printk("or51132: Waiting for firmware upload(%s)...\n", fwname); @@ -543,8 +609,10 @@ upstream submission. ret = or51132_load_firmware(fe, fw); release_firmware(fw); if (ret) { ---- a/drivers/media/dvb-frontends/or51211.c -+++ b/drivers/media/dvb-frontends/or51211.c +Index: linux/drivers/media/dvb-frontends/or51211.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/or51211.c ++++ linux/drivers/media/dvb-frontends/or51211.c @@ -371,11 +371,8 @@ static int or51211_init(struct dvb_front OR51211_DEFAULT_FIRMWARE); ret = config->request_firmware(fe, &fw, @@ -558,8 +626,10 @@ upstream submission. ret = or51211_load_firmware(fe, fw); release_firmware(fw); ---- a/drivers/media/dvb-frontends/sp8870.c -+++ b/drivers/media/dvb-frontends/sp8870.c +Index: linux/drivers/media/dvb-frontends/sp8870.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/sp8870.c ++++ linux/drivers/media/dvb-frontends/sp8870.c @@ -315,10 +315,8 @@ static int sp8870_init (struct dvb_front /* request the firmware, this will block until someone uploads it */ @@ -572,8 +642,10 @@ upstream submission. if (sp8870_firmware_upload(state, fw)) { printk("sp8870: writing firmware to device failed\n"); ---- a/drivers/media/dvb-frontends/sp887x.c -+++ b/drivers/media/dvb-frontends/sp887x.c +Index: linux/drivers/media/dvb-frontends/sp887x.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/sp887x.c ++++ linux/drivers/media/dvb-frontends/sp887x.c @@ -526,10 +526,8 @@ static int sp887x_init(struct dvb_fronte /* request the firmware, this will block until someone uploads it */ printk("sp887x: waiting for firmware upload (%s)...\n", SP887X_DEFAULT_FIRMWARE); @@ -586,8 +658,10 @@ upstream submission. ret = sp887x_initial_setup(fe, fw); release_firmware(fw); ---- a/drivers/media/dvb-frontends/tda10048.c -+++ b/drivers/media/dvb-frontends/tda10048.c +Index: linux/drivers/media/dvb-frontends/tda10048.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/tda10048.c ++++ linux/drivers/media/dvb-frontends/tda10048.c @@ -495,8 +495,6 @@ static int tda10048_firmware_upload(stru ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, state->i2c->dev.parent); @@ -597,8 +671,10 @@ upstream submission. return -EIO; } else { printk(KERN_INFO "%s: firmware read %zu bytes.\n", ---- a/drivers/media/dvb-frontends/tda1004x.c -+++ b/drivers/media/dvb-frontends/tda1004x.c +Index: linux/drivers/media/dvb-frontends/tda1004x.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/tda1004x.c ++++ linux/drivers/media/dvb-frontends/tda1004x.c @@ -401,10 +401,8 @@ static int tda10045_fwupload(struct dvb_ /* request the firmware, this will block until someone uploads it */ printk(KERN_INFO "tda1004x: waiting for firmware upload (%s)...\n", TDA10045_DEFAULT_FIRMWARE); @@ -619,8 +695,10 @@ upstream submission. return ret; } else { printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n", ---- a/drivers/media/dvb-frontends/tda10071.c -+++ b/drivers/media/dvb-frontends/tda10071.c +Index: linux/drivers/media/dvb-frontends/tda10071.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/tda10071.c ++++ linux/drivers/media/dvb-frontends/tda10071.c @@ -850,12 +850,8 @@ static int tda10071_init(struct dvb_fron /* request the firmware, this will block and timeout */ @@ -635,8 +713,10 @@ upstream submission. /* init */ for (i = 0; i < ARRAY_SIZE(tab2); i++) { ---- a/drivers/media/pci/ngene/ngene-core.c -+++ b/drivers/media/pci/ngene/ngene-core.c +Index: linux/drivers/media/pci/ngene/ngene-core.c +=================================================================== +--- linux.orig/drivers/media/pci/ngene/ngene-core.c ++++ linux/drivers/media/pci/ngene/ngene-core.c @@ -1253,19 +1253,14 @@ static int ngene_load_firm(struct ngene break; } @@ -658,8 +738,10 @@ upstream submission. ngene_fw = (u8 *) fw->data; err = ngene_command_load_firmware(dev, ngene_fw, size); } ---- a/drivers/media/common/siano/smscoreapi.c -+++ b/drivers/media/common/siano/smscoreapi.c +Index: linux/drivers/media/common/siano/smscoreapi.c +=================================================================== +--- linux.orig/drivers/media/common/siano/smscoreapi.c ++++ linux/drivers/media/common/siano/smscoreapi.c @@ -1164,10 +1164,8 @@ static int smscore_load_firmware_from_fi return -EINVAL; @@ -672,8 +754,10 @@ upstream submission. pr_debug("read fw %s, buffer size=0x%zx\n", fw_filename, fw->size); fw_buf = kmalloc(ALIGN(fw->size + sizeof(struct sms_firmware), SMS_ALLOC_ALIGNMENT), GFP_KERNEL | coredev->gfp_buf_flags); ---- a/drivers/media/pci/ttpci/av7110.c -+++ b/drivers/media/pci/ttpci/av7110.c +Index: linux/drivers/media/pci/ttpci/av7110.c +=================================================================== +--- linux.orig/drivers/media/pci/ttpci/av7110.c ++++ linux/drivers/media/pci/ttpci/av7110.c @@ -1516,13 +1516,8 @@ static int get_firmware(struct av7110* a /* request the av7110 firmware, this will block until someone uploads it */ ret = request_firmware(&fw, "dvb-ttpci-01.fw", &av7110->dev->pci->dev); @@ -690,8 +774,10 @@ upstream submission. return -EINVAL; } ---- a/drivers/media/pci/ttpci/av7110_hw.c -+++ b/drivers/media/pci/ttpci/av7110_hw.c +Index: linux/drivers/media/pci/ttpci/av7110_hw.c +=================================================================== +--- linux.orig/drivers/media/pci/ttpci/av7110_hw.c ++++ linux/drivers/media/pci/ttpci/av7110_hw.c @@ -247,11 +247,8 @@ int av7110_bootarm(struct av7110 *av7110 //saa7146_setgpio(dev, 3, SAA7146_GPIO_INPUT); @@ -705,8 +791,10 @@ upstream submission. mwdebi(av7110, DEBISWAB, DPRAM_BASE, fw->data, fw->size); release_firmware(fw); ---- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c -+++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c +Index: linux/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c +=================================================================== +--- linux.orig/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c ++++ linux/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c @@ -295,10 +295,8 @@ static int ttusb_boot_dsp(struct ttusb * err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin", @@ -719,8 +807,10 @@ upstream submission. /* BootBlock */ b[0] = 0xaa; ---- a/drivers/media/usb/ttusb-dec/ttusb_dec.c -+++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c +Index: linux/drivers/media/usb/ttusb-dec/ttusb_dec.c +=================================================================== +--- linux.orig/drivers/media/usb/ttusb-dec/ttusb_dec.c ++++ linux/drivers/media/usb/ttusb-dec/ttusb_dec.c @@ -1334,11 +1334,8 @@ static int ttusb_dec_boot_dsp(struct ttu dprintk("%s\n", __func__); @@ -734,8 +824,10 @@ upstream submission. firmware = fw_entry->data; firmware_size = fw_entry->size; ---- a/drivers/media/radio/radio-wl1273.c -+++ b/drivers/media/radio/radio-wl1273.c +Index: linux/drivers/media/radio/radio-wl1273.c +=================================================================== +--- linux.orig/drivers/media/radio/radio-wl1273.c ++++ linux/drivers/media/radio/radio-wl1273.c @@ -510,11 +510,8 @@ static int wl1273_fm_upload_firmware_pat * Uploading the firmware patch is not always necessary, * so we only print an info message. @@ -749,8 +841,10 @@ upstream submission. ptr = (__u8 *) fw_p->data; packet_num = ptr[0]; ---- a/drivers/media/radio/wl128x/fmdrv_common.c -+++ b/drivers/media/radio/wl128x/fmdrv_common.c +Index: linux/drivers/media/radio/wl128x/fmdrv_common.c +=================================================================== +--- linux.orig/drivers/media/radio/wl128x/fmdrv_common.c ++++ linux/drivers/media/radio/wl128x/fmdrv_common.c @@ -1245,10 +1245,8 @@ static int fm_download_firmware(struct f ret = request_firmware(&fw_entry, fw_name, @@ -763,8 +857,10 @@ upstream submission. fmdbg("Firmware(%s) length : %zu bytes\n", fw_name, fw_entry->size); fw_data = (void *)fw_entry->data; ---- a/drivers/media/pci/bt8xx/bttv-cards.c -+++ b/drivers/media/pci/bt8xx/bttv-cards.c +Index: linux/drivers/media/pci/bt8xx/bttv-cards.c +=================================================================== +--- linux.orig/drivers/media/pci/bt8xx/bttv-cards.c ++++ linux/drivers/media/pci/bt8xx/bttv-cards.c @@ -3916,10 +3916,8 @@ static int pvr_boot(struct bttv *btv) int rc; @@ -777,8 +873,10 @@ upstream submission. rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size); pr_info("%d: altera firmware upload %s\n", btv->c.nr, (rc < 0) ? "failed" : "ok"); ---- a/drivers/media/usb/cpia2/cpia2_core.c -+++ b/drivers/media/usb/cpia2/cpia2_core.c +Index: linux/drivers/media/usb/cpia2/cpia2_core.c +=================================================================== +--- linux.orig/drivers/media/usb/cpia2/cpia2_core.c ++++ linux/drivers/media/usb/cpia2/cpia2_core.c @@ -921,11 +921,8 @@ static int apply_vp_patch(struct camera_ struct cpia2_command cmd; @@ -792,8 +890,10 @@ upstream submission. cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP; cmd.direction = TRANSFER_WRITE; ---- a/drivers/media/pci/cx18/cx18-av-firmware.c -+++ b/drivers/media/pci/cx18/cx18-av-firmware.c +Index: linux/drivers/media/pci/cx18/cx18-av-firmware.c +=================================================================== +--- linux.orig/drivers/media/pci/cx18/cx18-av-firmware.c ++++ linux/drivers/media/pci/cx18/cx18-av-firmware.c @@ -79,10 +79,8 @@ int cx18_av_loadfw(struct cx18 *cx) int i; int retries1 = 0; @@ -806,8 +906,10 @@ upstream submission. /* The firmware load often has byte errors, so allow for several retries, both at byte level and at the firmware load level. */ ---- a/drivers/media/pci/cx18/cx18-dvb.c -+++ b/drivers/media/pci/cx18/cx18-dvb.c +Index: linux/drivers/media/pci/cx18/cx18-dvb.c +=================================================================== +--- linux.orig/drivers/media/pci/cx18/cx18-dvb.c ++++ linux/drivers/media/pci/cx18/cx18-dvb.c @@ -137,9 +137,7 @@ static int yuan_mpc718_mt352_reqfw(struc int ret; @@ -819,8 +921,10 @@ upstream submission. size_t sz = (*fw)->size; if (sz < 2 || sz > 64 || (sz % 2) != 0) { CX18_ERR("Firmware %s has a bad size: %lu bytes\n", ---- a/drivers/media/pci/cx18/cx18-firmware.c -+++ b/drivers/media/pci/cx18/cx18-firmware.c +Index: linux/drivers/media/pci/cx18/cx18-firmware.c +=================================================================== +--- linux.orig/drivers/media/pci/cx18/cx18-firmware.c ++++ linux/drivers/media/pci/cx18/cx18-firmware.c @@ -101,11 +101,8 @@ static int load_cpu_fw_direct(const char u32 __iomem *dst = (u32 __iomem *)mem; const u32 *src; @@ -843,8 +947,10 @@ upstream submission. cx18_setup_page(cx, 0); return -ENOMEM; } ---- a/drivers/media/usb/cx231xx/cx231xx-417.c -+++ b/drivers/media/usb/cx231xx/cx231xx-417.c +Index: linux/drivers/media/usb/cx231xx/cx231xx-417.c +=================================================================== +--- linux.orig/drivers/media/usb/cx231xx/cx231xx-417.c ++++ linux/drivers/media/usb/cx231xx/cx231xx-417.c @@ -996,11 +996,6 @@ static int cx231xx_load_firmware(struct dev->dev); @@ -857,8 +963,10 @@ upstream submission. vfree(p_current_fw); vfree(p_buffer); return retval; ---- a/drivers/media/pci/cx23885/cx23885-417.c -+++ b/drivers/media/pci/cx23885/cx23885-417.c +Index: linux/drivers/media/pci/cx23885/cx23885-417.c +=================================================================== +--- linux.orig/drivers/media/pci/cx23885/cx23885-417.c ++++ linux/drivers/media/pci/cx23885/cx23885-417.c @@ -929,12 +929,8 @@ static int cx23885_load_firmware(struct retval = request_firmware(&firmware, CX23885_FIRM_IMAGE_NAME, &dev->pci->dev); @@ -873,8 +981,10 @@ upstream submission. if (firmware->size != CX23885_FIRM_IMAGE_SIZE) { pr_err("ERROR: Firmware size mismatch (have %zu, expected %d)\n", ---- a/drivers/media/pci/cx23885/cx23885-cards.c -+++ b/drivers/media/pci/cx23885/cx23885-cards.c +Index: linux/drivers/media/pci/cx23885/cx23885-cards.c +=================================================================== +--- linux.orig/drivers/media/pci/cx23885/cx23885-cards.c ++++ linux/drivers/media/pci/cx23885/cx23885-cards.c @@ -2425,10 +2425,7 @@ void cx23885_card_setup(struct cx23885_d cinfo.rev, filename); @@ -887,8 +997,10 @@ upstream submission. altera_init(&netup_config, fw); release_firmware(fw); ---- a/drivers/media/i2c/cx25840/cx25840-firmware.c -+++ b/drivers/media/i2c/cx25840/cx25840-firmware.c +Index: linux/drivers/media/i2c/cx25840/cx25840-firmware.c +=================================================================== +--- linux.orig/drivers/media/i2c/cx25840/cx25840-firmware.c ++++ linux/drivers/media/i2c/cx25840/cx25840-firmware.c @@ -122,10 +122,8 @@ int cx25840_loadfw(struct i2c_client *cl if (is_cx231xx(state) && max_buf_size > 16) max_buf_size = 16; @@ -901,8 +1013,10 @@ upstream submission. start_fw_load(client); ---- a/drivers/media/pci/cx88/cx88-blackbird.c -+++ b/drivers/media/pci/cx88/cx88-blackbird.c +Index: linux/drivers/media/pci/cx88/cx88-blackbird.c +=================================================================== +--- linux.orig/drivers/media/pci/cx88/cx88-blackbird.c ++++ linux/drivers/media/pci/cx88/cx88-blackbird.c @@ -471,12 +471,8 @@ static int blackbird_load_firmware(struc retval = request_firmware(&firmware, CX2341X_FIRM_ENC_FILENAME, &dev->pci->dev); @@ -917,8 +1031,10 @@ upstream submission. if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) { pr_err("Firmware size mismatch (have %zd, expected %d)\n", ---- a/drivers/media/usb/gspca/vicam.c -+++ b/drivers/media/usb/gspca/vicam.c +Index: linux/drivers/media/usb/gspca/vicam.c +=================================================================== +--- linux.orig/drivers/media/usb/gspca/vicam.c ++++ linux/drivers/media/usb/gspca/vicam.c @@ -239,10 +239,8 @@ static int sd_init(struct gspca_dev *gsp ret = request_ihex_firmware(&fw, VICAM_FIRMWARE, @@ -931,8 +1047,10 @@ upstream submission. firmware_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!firmware_buf) { ---- a/drivers/media/pci/ivtv/ivtv-firmware.c -+++ b/drivers/media/pci/ivtv/ivtv-firmware.c +Index: linux/drivers/media/pci/ivtv/ivtv-firmware.c +=================================================================== +--- linux.orig/drivers/media/pci/ivtv/ivtv-firmware.c ++++ linux/drivers/media/pci/ivtv/ivtv-firmware.c @@ -80,8 +80,6 @@ retry: release_firmware(fw); return size; @@ -942,8 +1060,10 @@ upstream submission. return -ENOMEM; } ---- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c +Index: linux/drivers/media/usb/pvrusb2/pvrusb2-hdw.c +=================================================================== +--- linux.orig/drivers/media/usb/pvrusb2/pvrusb2-hdw.c ++++ linux/drivers/media/usb/pvrusb2/pvrusb2-hdw.c @@ -1379,25 +1379,6 @@ static int pvr2_locate_firmware(struct p "request_firmware fatal error with code=%d",ret); return ret; @@ -970,8 +1090,10 @@ upstream submission. return ret; } ---- a/drivers/media/usb/s2255/s2255drv.c -+++ b/drivers/media/usb/s2255/s2255drv.c +Index: linux/drivers/media/usb/s2255/s2255drv.c +=================================================================== +--- linux.orig/drivers/media/usb/s2255/s2255drv.c ++++ linux/drivers/media/usb/s2255/s2255drv.c @@ -2298,10 +2298,8 @@ static int s2255_probe(struct usb_interf } /* load the first chunk */ @@ -984,8 +1106,10 @@ upstream submission. /* check the firmware is valid */ fw_size = dev->fw_data->fw->size; pdata = (__le32 *) &dev->fw_data->fw->data[fw_size - 8]; ---- a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c -+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c +Index: linux/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c +=================================================================== +--- linux.orig/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c ++++ linux/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c @@ -69,10 +69,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc } } @@ -998,8 +1122,10 @@ upstream submission. if (fw_blob->size > dev->fw_buf.size) { mfc_err("MFC firmware is too big to be loaded\n"); release_firmware(fw_blob); ---- a/drivers/media/pci/saa7164/saa7164-fw.c -+++ b/drivers/media/pci/saa7164/saa7164-fw.c +Index: linux/drivers/media/pci/saa7164/saa7164-fw.c +=================================================================== +--- linux.orig/drivers/media/pci/saa7164/saa7164-fw.c ++++ linux/drivers/media/pci/saa7164/saa7164-fw.c @@ -416,11 +416,8 @@ int saa7164_downloadfirmware(struct saa7 __func__, fwname); @@ -1013,8 +1139,10 @@ upstream submission. printk(KERN_INFO "%s() firmware read %zu bytes.\n", __func__, fw->size); ---- a/drivers/misc/ti-st/st_kim.c -+++ b/drivers/misc/ti-st/st_kim.c +Index: linux/drivers/misc/ti-st/st_kim.c +=================================================================== +--- linux.orig/drivers/misc/ti-st/st_kim.c ++++ linux/drivers/misc/ti-st/st_kim.c @@ -301,11 +301,8 @@ static long download_firmware(struct kim request_firmware(&kim_gdata->fw_entry, bts_scr_name, &kim_gdata->kim_pdev->dev); @@ -1028,8 +1156,10 @@ upstream submission. ptr = (void *)kim_gdata->fw_entry->data; len = kim_gdata->fw_entry->size; /* bts_header to remove out magic number and ---- a/drivers/net/can/softing/softing_fw.c -+++ b/drivers/net/can/softing/softing_fw.c +Index: linux/drivers/net/can/softing/softing_fw.c +=================================================================== +--- linux.orig/drivers/net/can/softing/softing_fw.c ++++ linux/drivers/net/can/softing/softing_fw.c @@ -237,11 +237,8 @@ int softing_load_app_fw(const char *file int8_t type_end = 0, type_entrypoint = 0; @@ -1043,8 +1173,10 @@ upstream submission. dev_dbg(&card->pdev->dev, "firmware(%s) got %lu bytes\n", file, (unsigned long)fw->size); /* parse the firmware */ ---- a/drivers/net/ethernet/3com/typhoon.c -+++ b/drivers/net/ethernet/3com/typhoon.c +Index: linux/drivers/net/ethernet/3com/typhoon.c +=================================================================== +--- linux.orig/drivers/net/ethernet/3com/typhoon.c ++++ linux/drivers/net/ethernet/3com/typhoon.c @@ -1283,11 +1283,8 @@ typhoon_request_firmware(struct typhoon return 0; @@ -1058,8 +1190,10 @@ upstream submission. image_data = typhoon_fw->data; remaining = typhoon_fw->size; ---- a/drivers/net/ethernet/adaptec/starfire.c -+++ b/drivers/net/ethernet/adaptec/starfire.c +Index: linux/drivers/net/ethernet/adaptec/starfire.c +=================================================================== +--- linux.orig/drivers/net/ethernet/adaptec/starfire.c ++++ linux/drivers/net/ethernet/adaptec/starfire.c @@ -1015,11 +1015,8 @@ static int netdev_open(struct net_device #endif /* VLAN_SUPPORT */ @@ -1086,8 +1220,10 @@ upstream submission. if (fw_tx->size % 4) { printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", fw_tx->size, FIRMWARE_TX); ---- a/drivers/net/ethernet/alteon/acenic.c -+++ b/drivers/net/ethernet/alteon/acenic.c +Index: linux/drivers/net/ethernet/alteon/acenic.c +=================================================================== +--- linux.orig/drivers/net/ethernet/alteon/acenic.c ++++ linux/drivers/net/ethernet/alteon/acenic.c @@ -2890,11 +2890,8 @@ static int ace_load_firmware(struct net_ fw_name = "acenic/tg1.bin"; @@ -1101,8 +1237,10 @@ upstream submission. fw_data = (void *)fw->data; ---- a/drivers/net/ethernet/broadcom/bnx2.c -+++ b/drivers/net/ethernet/broadcom/bnx2.c +Index: linux/drivers/net/ethernet/broadcom/bnx2.c +=================================================================== +--- linux.orig/drivers/net/ethernet/broadcom/bnx2.c ++++ linux/drivers/net/ethernet/broadcom/bnx2.c @@ -3720,16 +3720,13 @@ static int bnx2_request_uncached_firmwar } @@ -1123,9 +1261,11 @@ upstream submission. mips_fw = (const struct bnx2_mips_fw_file *) bp->mips_firmware->data; rv2p_fw = (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data; if (bp->mips_firmware->size < sizeof(*mips_fw) || ---- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c -+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c -@@ -13550,11 +13550,8 @@ static int bnx2x_init_firmware(struct bn +Index: linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c ++++ linux/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +@@ -13557,11 +13557,8 @@ static int bnx2x_init_firmware(struct bn BNX2X_DEV_INFO("Loading %s\n", fw_file_name); rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev); @@ -1138,8 +1278,10 @@ upstream submission. rc = bnx2x_check_firmware(bp); if (rc) { ---- a/drivers/net/ethernet/broadcom/tg3.c -+++ b/drivers/net/ethernet/broadcom/tg3.c +Index: linux/drivers/net/ethernet/broadcom/tg3.c +=================================================================== +--- linux.orig/drivers/net/ethernet/broadcom/tg3.c ++++ linux/drivers/net/ethernet/broadcom/tg3.c @@ -11408,11 +11408,8 @@ static int tg3_request_firmware(struct t { const struct tg3_firmware_hdr *fw_hdr; @@ -1153,8 +1295,10 @@ upstream submission. fw_hdr = (struct tg3_firmware_hdr *)tp->fw->data; ---- a/drivers/net/ethernet/brocade/bna/cna_fwimg.c -+++ b/drivers/net/ethernet/brocade/bna/cna_fwimg.c +Index: linux/drivers/net/ethernet/brocade/bna/cna_fwimg.c +=================================================================== +--- linux.orig/drivers/net/ethernet/brocade/bna/cna_fwimg.c ++++ linux/drivers/net/ethernet/brocade/bna/cna_fwimg.c @@ -32,10 +32,8 @@ cna_read_firmware(struct pci_dev *pdev, const struct firmware *fw; u32 n; @@ -1167,8 +1311,10 @@ upstream submission. *bfi_image = (u32 *)fw->data; *bfi_image_size = fw->size/sizeof(u32); ---- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c -+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +Index: linux/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c ++++ linux/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c @@ -1038,12 +1038,8 @@ int t3_get_edc_fw(struct cphy *phy, int fw_name = get_edc_fw_name(edc_idx); if (fw_name) @@ -1209,8 +1355,10 @@ upstream submission. ret = t3_check_tpsram(adap, tpsram->data, tpsram->size); if (ret) ---- a/drivers/net/ethernet/intel/e100.c -+++ b/drivers/net/ethernet/intel/e100.c +Index: linux/drivers/net/ethernet/intel/e100.c +=================================================================== +--- linux.orig/drivers/net/ethernet/intel/e100.c ++++ linux/drivers/net/ethernet/intel/e100.c @@ -1265,9 +1265,6 @@ static const struct firmware *e100_reque if (err) { @@ -1221,8 +1369,10 @@ upstream submission. return ERR_PTR(err); } else { netif_info(nic, probe, nic->netdev, ---- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c -+++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +Index: linux/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +=================================================================== +--- linux.orig/drivers/net/ethernet/myricom/myri10ge/myri10ge.c ++++ linux/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -581,8 +581,6 @@ static int myri10ge_load_hotplug_firmwar unsigned i; @@ -1232,8 +1382,10 @@ upstream submission. status = -EINVAL; goto abort_with_nothing; } ---- a/drivers/net/ethernet/smsc/smc91c92_cs.c -+++ b/drivers/net/ethernet/smsc/smc91c92_cs.c +Index: linux/drivers/net/ethernet/smsc/smc91c92_cs.c +=================================================================== +--- linux.orig/drivers/net/ethernet/smsc/smc91c92_cs.c ++++ linux/drivers/net/ethernet/smsc/smc91c92_cs.c @@ -647,10 +647,8 @@ static int osi_load_firmware(struct pcmc int i, err; @@ -1246,8 +1398,10 @@ upstream submission. /* Download the Seven of Diamonds firmware */ for (i = 0; i < fw->size; i++) { ---- a/drivers/net/ethernet/sun/cassini.c -+++ b/drivers/net/ethernet/sun/cassini.c +Index: linux/drivers/net/ethernet/sun/cassini.c +=================================================================== +--- linux.orig/drivers/net/ethernet/sun/cassini.c ++++ linux/drivers/net/ethernet/sun/cassini.c @@ -805,11 +805,8 @@ static void cas_saturn_firmware_init(str return; @@ -1261,8 +1415,10 @@ upstream submission. if (fw->size < 2) { pr_err("bogus length %zu in \"%s\"\n", fw->size, fw_name); ---- a/drivers/net/hamradio/yam.c -+++ b/drivers/net/hamradio/yam.c +Index: linux/drivers/net/hamradio/yam.c +=================================================================== +--- linux.orig/drivers/net/hamradio/yam.c ++++ linux/drivers/net/hamradio/yam.c @@ -372,11 +372,8 @@ static unsigned char *add_mcs(unsigned c } err = request_firmware(&fw, fw_name[predef], &pdev->dev); @@ -1276,8 +1432,10 @@ upstream submission. if (fw->size != YAM_FPGA_SIZE) { printk(KERN_ERR "Bogus length %zu in firmware \"%s\"\n", fw->size, fw_name[predef]); ---- a/drivers/net/usb/kaweth.c -+++ b/drivers/net/usb/kaweth.c +Index: linux/drivers/net/usb/kaweth.c +=================================================================== +--- linux.orig/drivers/net/usb/kaweth.c ++++ linux/drivers/net/usb/kaweth.c @@ -390,10 +390,8 @@ static int kaweth_download_firmware(stru int ret; @@ -1290,9 +1448,11 @@ upstream submission. if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) { dev_err(&kaweth->intf->dev, "Firmware too big: %zu\n", ---- a/drivers/net/wimax/i2400m/fw.c -+++ b/drivers/net/wimax/i2400m/fw.c -@@ -1581,11 +1581,8 @@ int i2400m_dev_bootstrap(struct i2400m * +Index: linux/drivers/net/wimax/i2400m/fw.c +=================================================================== +--- linux.orig/drivers/net/wimax/i2400m/fw.c ++++ linux/drivers/net/wimax/i2400m/fw.c +@@ -1583,11 +1583,8 @@ int i2400m_dev_bootstrap(struct i2400m * } d_printf(1, dev, "trying firmware %s (%d)\n", fw_name, itr); ret = request_firmware(&fw, fw_name, dev); @@ -1305,7 +1465,7 @@ upstream submission. i2400m->fw_name = fw_name; ret = i2400m_fw_bootstrap(i2400m, fw, flags); release_firmware(fw); -@@ -1628,8 +1625,6 @@ void i2400m_fw_cache(struct i2400m *i240 +@@ -1630,8 +1627,6 @@ void i2400m_fw_cache(struct i2400m *i240 kref_init(&i2400m_fw->kref); result = request_firmware(&i2400m_fw->fw, i2400m->fw_name, dev); if (result < 0) { @@ -1314,8 +1474,10 @@ upstream submission. kfree(i2400m_fw); i2400m_fw = (void *) ~0; } else ---- a/drivers/net/wireless/atmel/at76c50x-usb.c -+++ b/drivers/net/wireless/atmel/at76c50x-usb.c +Index: linux/drivers/net/wireless/atmel/at76c50x-usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/atmel/at76c50x-usb.c ++++ linux/drivers/net/wireless/atmel/at76c50x-usb.c @@ -1622,13 +1622,8 @@ static struct fwentry *at76_load_firmwar at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname); @@ -1331,8 +1493,10 @@ upstream submission. at76_dbg(DBG_FW, "got it."); fwh = (struct at76_fw_header *)(fwe->fw->data); ---- a/drivers/net/wireless/ath/ath9k/hif_usb.c -+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c +Index: linux/drivers/net/wireless/ath/ath9k/hif_usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/ath/ath9k/hif_usb.c ++++ linux/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -1164,9 +1164,6 @@ static void ath9k_hif_usb_firmware_cb(co if (!ret) return; @@ -1343,8 +1507,10 @@ upstream submission. goto err_fw; } ---- a/drivers/net/wireless/ath/carl9170/usb.c -+++ b/drivers/net/wireless/ath/carl9170/usb.c +Index: linux/drivers/net/wireless/ath/carl9170/usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/ath/carl9170/usb.c ++++ linux/drivers/net/wireless/ath/carl9170/usb.c @@ -1029,7 +1029,6 @@ static void carl9170_usb_firmware_step2( return; } @@ -1353,8 +1519,10 @@ upstream submission. carl9170_usb_firmware_failed(ar); } ---- a/drivers/net/wireless/atmel/atmel.c -+++ b/drivers/net/wireless/atmel/atmel.c +Index: linux/drivers/net/wireless/atmel/atmel.c +=================================================================== +--- linux.orig/drivers/net/wireless/atmel/atmel.c ++++ linux/drivers/net/wireless/atmel/atmel.c @@ -3893,12 +3893,8 @@ static int reset_atmel_card(struct net_d strcpy(priv->firmware_id, "atmel_at76c502.bin"); } @@ -1369,8 +1537,10 @@ upstream submission. } else { int fw_index = 0; int success = 0; ---- a/drivers/net/wireless/broadcom/b43/main.c -+++ b/drivers/net/wireless/broadcom/b43/main.c +Index: linux/drivers/net/wireless/broadcom/b43/main.c +=================================================================== +--- linux.orig/drivers/net/wireless/broadcom/b43/main.c ++++ linux/drivers/net/wireless/broadcom/b43/main.c @@ -2263,19 +2263,8 @@ int b43_do_request_fw(struct b43_request } err = request_firmware(&ctx->blob, ctx->fwname, @@ -1392,8 +1562,10 @@ upstream submission. fw_ready: if (ctx->blob->size < sizeof(struct b43_fw_header)) goto err_format; ---- a/drivers/net/wireless/broadcom/b43legacy/main.c -+++ b/drivers/net/wireless/broadcom/b43legacy/main.c +Index: linux/drivers/net/wireless/broadcom/b43legacy/main.c +=================================================================== +--- linux.orig/drivers/net/wireless/broadcom/b43legacy/main.c ++++ linux/drivers/net/wireless/broadcom/b43legacy/main.c @@ -1554,11 +1554,8 @@ static int do_request_fw(struct b43legac } else { err = request_firmware(fw, path, dev->dev->dev); @@ -1407,8 +1579,10 @@ upstream submission. if ((*fw)->size < sizeof(struct b43legacy_fw_header)) goto err_format; hdr = (struct b43legacy_fw_header *)((*fw)->data); ---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +Index: linux/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +=================================================================== +--- linux.orig/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c ++++ linux/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c @@ -378,19 +378,13 @@ static int brcms_request_fw(struct brcms sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i], UCODE_LOADER_API_VER); @@ -1431,8 +1605,10 @@ upstream submission. wl->fw.hdr_num_entries[i] = wl->fw.fw_hdr[i]->size / (sizeof(struct firmware_hdr)); } ---- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c -+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c +Index: linux/drivers/net/wireless/intel/ipw2x00/ipw2100.c +=================================================================== +--- linux.orig/drivers/net/wireless/intel/ipw2x00/ipw2100.c ++++ linux/drivers/net/wireless/intel/ipw2x00/ipw2100.c @@ -8410,12 +8410,8 @@ static int ipw2100_get_firmware(struct i rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev); @@ -1447,8 +1623,10 @@ upstream submission. IPW_DEBUG_INFO("firmware data %p size %zd\n", fw->fw_entry->data, fw->fw_entry->size); ---- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c -+++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c +Index: linux/drivers/net/wireless/intel/ipw2x00/ipw2200.c +=================================================================== +--- linux.orig/drivers/net/wireless/intel/ipw2x00/ipw2200.c ++++ linux/drivers/net/wireless/intel/ipw2x00/ipw2200.c @@ -3410,10 +3410,8 @@ static int ipw_get_fw(struct ipw_priv *p /* ask firmware_class module to get the boot firmware off disk */ @@ -1461,8 +1639,10 @@ upstream submission. if ((*raw)->size < sizeof(*fw)) { IPW_ERROR("%s is too small (%zd)\n", name, (*raw)->size); ---- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c -+++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c +Index: linux/drivers/net/wireless/intel/iwlegacy/3945-mac.c +=================================================================== +--- linux.orig/drivers/net/wireless/intel/iwlegacy/3945-mac.c ++++ linux/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -1854,7 +1854,6 @@ il3945_read_ucode(struct il_priv *il) sprintf(buf, "%s%u%s", name_pre, idx, ".ucode"); ret = request_firmware(&ucode_raw, buf, &il->pci_dev->dev); @@ -1471,8 +1651,10 @@ upstream submission. if (ret == -ENOENT) continue; else ---- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +Index: linux/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +=================================================================== +--- linux.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c ++++ linux/drivers/net/wireless/intel/iwlwifi/iwl-drv.c @@ -236,8 +236,6 @@ static int iwl_request_firmware(struct i } @@ -1482,8 +1664,10 @@ upstream submission. if (cfg->ucode_api_min == cfg->ucode_api_max) { IWL_ERR(drv, "%s%d is required\n", fw_pre_name, cfg->ucode_api_max); ---- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c -+++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c +Index: linux/drivers/net/wireless/marvell/libertas_tf/if_usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/marvell/libertas_tf/if_usb.c ++++ linux/drivers/net/wireless/marvell/libertas_tf/if_usb.c @@ -817,8 +817,6 @@ static int if_usb_prog_firmware(struct i kernel_param_lock(THIS_MODULE); ret = request_firmware(&cardp->fw, lbtf_fw_name, &cardp->udev->dev); @@ -1493,8 +1677,10 @@ upstream submission. kernel_param_unlock(THIS_MODULE); goto done; } ---- a/drivers/net/wireless/marvell/mwifiex/main.c -+++ b/drivers/net/wireless/marvell/mwifiex/main.c +Index: linux/drivers/net/wireless/marvell/mwifiex/main.c +=================================================================== +--- linux.orig/drivers/net/wireless/marvell/mwifiex/main.c ++++ linux/drivers/net/wireless/marvell/mwifiex/main.c @@ -528,11 +528,8 @@ static int _mwifiex_fw_dpc(const struct struct wireless_dev *wdev; struct completion *fw_done = adapter->fw_done; @@ -1508,8 +1694,10 @@ upstream submission. memset(&fw, 0, sizeof(struct mwifiex_fw_image)); adapter->firmware = firmware; ---- a/drivers/net/wireless/marvell/mwl8k.c -+++ b/drivers/net/wireless/marvell/mwl8k.c +Index: linux/drivers/net/wireless/marvell/mwl8k.c +=================================================================== +--- linux.orig/drivers/net/wireless/marvell/mwl8k.c ++++ linux/drivers/net/wireless/marvell/mwl8k.c @@ -5724,16 +5724,12 @@ static int mwl8k_firmware_load_success(s static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) { @@ -1553,8 +1741,10 @@ upstream submission. if (nowait) return rc; ---- a/drivers/net/wireless/intersil/orinoco/fw.c -+++ b/drivers/net/wireless/intersil/orinoco/fw.c +Index: linux/drivers/net/wireless/intersil/orinoco/fw.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/orinoco/fw.c ++++ linux/drivers/net/wireless/intersil/orinoco/fw.c @@ -132,7 +132,6 @@ orinoco_dl_firmware(struct orinoco_priva err = request_firmware(&fw_entry, firmware, priv->dev); @@ -1587,8 +1777,10 @@ upstream submission. } else fw_entry = orinoco_cached_fw_get(priv, false); ---- a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c -+++ b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c +Index: linux/drivers/net/wireless/intersil/orinoco/orinoco_usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/orinoco/orinoco_usb.c ++++ linux/drivers/net/wireless/intersil/orinoco/orinoco_usb.c @@ -1677,7 +1677,6 @@ static int ezusb_probe(struct usb_interf if (ezusb_firmware_download(upriv, &firmware) < 0) goto error; @@ -1597,8 +1789,10 @@ upstream submission. goto error; } ---- a/drivers/net/wireless/intersil/p54/p54pci.c -+++ b/drivers/net/wireless/intersil/p54/p54pci.c +Index: linux/drivers/net/wireless/intersil/p54/p54pci.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/p54/p54pci.c ++++ linux/drivers/net/wireless/intersil/p54/p54pci.c @@ -499,7 +499,6 @@ static void p54p_firmware_step2(const st int err; @@ -1607,8 +1801,10 @@ upstream submission. err = -ENOENT; goto out; } ---- a/drivers/net/wireless/intersil/p54/p54spi.c -+++ b/drivers/net/wireless/intersil/p54/p54spi.c +Index: linux/drivers/net/wireless/intersil/p54/p54spi.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/p54/p54spi.c ++++ linux/drivers/net/wireless/intersil/p54/p54spi.c @@ -170,10 +170,8 @@ static int p54spi_request_firmware(struc /* FIXME: should driver use it's own struct device? */ ret = request_firmware(&priv->firmware, "3826.arm", &priv->spi->dev); @@ -1621,8 +1817,10 @@ upstream submission. ret = p54_parse_firmware(dev, priv->firmware); if (ret) { ---- a/drivers/net/wireless/intersil/p54/p54usb.c -+++ b/drivers/net/wireless/intersil/p54/p54usb.c +Index: linux/drivers/net/wireless/intersil/p54/p54usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/p54/p54usb.c ++++ linux/drivers/net/wireless/intersil/p54/p54usb.c @@ -931,7 +931,6 @@ static void p54u_load_firmware_cb(const err = p54u_start_ops(priv); } else { @@ -1631,8 +1829,10 @@ upstream submission. } complete(&priv->fw_wait_load); ---- a/drivers/net/wireless/intersil/prism54/islpci_dev.c -+++ b/drivers/net/wireless/intersil/prism54/islpci_dev.c +Index: linux/drivers/net/wireless/intersil/prism54/islpci_dev.c +=================================================================== +--- linux.orig/drivers/net/wireless/intersil/prism54/islpci_dev.c ++++ linux/drivers/net/wireless/intersil/prism54/islpci_dev.c @@ -92,12 +92,9 @@ isl_upload_firmware(islpci_private *priv const u32 *fw_ptr; @@ -1648,8 +1848,10 @@ upstream submission. /* prepare the Direct Memory Base register */ reg = ISL38XX_DEV_FIRMWARE_ADDRES; ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c +Index: linux/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c +=================================================================== +--- linux.orig/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c ++++ linux/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c @@ -49,10 +49,8 @@ static int rt2x00lib_request_firmware(st rt2x00_info(rt2x00dev, "Loading firmware file '%s'\n", fw_name); @@ -1662,8 +1864,10 @@ upstream submission. if (!fw || !fw->size || !fw->data) { rt2x00_err(rt2x00dev, "Failed to read Firmware\n"); ---- a/drivers/net/wireless/realtek/rtlwifi/core.c -+++ b/drivers/net/wireless/realtek/rtlwifi/core.c +Index: linux/drivers/net/wireless/realtek/rtlwifi/core.c +=================================================================== +--- linux.orig/drivers/net/wireless/realtek/rtlwifi/core.c ++++ linux/drivers/net/wireless/realtek/rtlwifi/core.c @@ -111,7 +111,6 @@ static void rtl_fw_do_work(const struct if (!err) goto found_alt; @@ -1672,8 +1876,10 @@ upstream submission. rtlpriv->max_fw_size = 0; return; } ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c +Index: linux/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c +=================================================================== +--- linux.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c ++++ linux/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c @@ -86,13 +86,11 @@ static void rtl92se_fw_cb(const struct f struct ieee80211_hw *hw = context; struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -1688,8 +1894,10 @@ upstream submission. rtlpriv->max_fw_size = 0; return; } ---- a/drivers/net/wireless/ti/wl1251/main.c -+++ b/drivers/net/wireless/ti/wl1251/main.c +Index: linux/drivers/net/wireless/ti/wl1251/main.c +=================================================================== +--- linux.orig/drivers/net/wireless/ti/wl1251/main.c ++++ linux/drivers/net/wireless/ti/wl1251/main.c @@ -71,10 +71,8 @@ static int wl1251_fetch_firmware(struct ret = request_firmware(&fw, WL1251_FW_NAME, dev); @@ -1714,8 +1922,10 @@ upstream submission. if (fw->size % 4) { wl1251_error("nvs size is not multiple of 32 bits: %zu", ---- a/drivers/net/wireless/ti/wlcore/main.c -+++ b/drivers/net/wireless/ti/wlcore/main.c +Index: linux/drivers/net/wireless/ti/wlcore/main.c +=================================================================== +--- linux.orig/drivers/net/wireless/ti/wlcore/main.c ++++ linux/drivers/net/wireless/ti/wlcore/main.c @@ -768,10 +768,8 @@ static int wl12xx_fetch_firmware(struct ret = request_firmware(&fw, fw_name, wl->dev); @@ -1728,8 +1938,10 @@ upstream submission. if (fw->size % 4) { wl1271_error("firmware size is not multiple of 32 bits: %zu", ---- a/drivers/net/wireless/zydas/zd1201.c -+++ b/drivers/net/wireless/zydas/zd1201.c +Index: linux/drivers/net/wireless/zydas/zd1201.c +=================================================================== +--- linux.orig/drivers/net/wireless/zydas/zd1201.c ++++ linux/drivers/net/wireless/zydas/zd1201.c @@ -65,8 +65,6 @@ static int zd1201_fw_upload(struct usb_d err = request_firmware(&fw_entry, fwfile, &dev->dev); @@ -1739,8 +1951,10 @@ upstream submission. dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info.\n"); return err; } ---- a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c -+++ b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c +Index: linux/drivers/net/wireless/zydas/zd1211rw/zd_usb.c +=================================================================== +--- linux.orig/drivers/net/wireless/zydas/zd1211rw/zd_usb.c ++++ linux/drivers/net/wireless/zydas/zd1211rw/zd_usb.c @@ -120,16 +120,9 @@ static void int_urb_complete(struct urb static int request_fw_file( const struct firmware **fw, const char *name, struct device *device) @@ -1759,8 +1973,10 @@ upstream submission. } static inline u16 get_bcdDevice(const struct usb_device *udev) ---- a/drivers/scsi/advansys.c -+++ b/drivers/scsi/advansys.c +Index: linux/drivers/scsi/advansys.c +=================================================================== +--- linux.orig/drivers/scsi/advansys.c ++++ linux/drivers/scsi/advansys.c @@ -4107,8 +4107,6 @@ static int AscInitAsc1000Driver(ASC_DVC_ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); @@ -1797,8 +2013,10 @@ upstream submission. asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; return err; } ---- a/drivers/scsi/aic94xx/aic94xx_init.c -+++ b/drivers/scsi/aic94xx/aic94xx_init.c +Index: linux/drivers/scsi/aic94xx/aic94xx_init.c +=================================================================== +--- linux.orig/drivers/scsi/aic94xx/aic94xx_init.c ++++ linux/drivers/scsi/aic94xx/aic94xx_init.c @@ -384,8 +384,6 @@ static ssize_t asd_store_update_bios(str filename_ptr, &asd_ha->pcidev->dev); @@ -1808,8 +2026,10 @@ upstream submission. err = FAIL_OPEN_BIOS_FILE; goto out1; } ---- a/drivers/scsi/aic94xx/aic94xx_seq.c -+++ b/drivers/scsi/aic94xx/aic94xx_seq.c +Index: linux/drivers/scsi/aic94xx/aic94xx_seq.c +=================================================================== +--- linux.orig/drivers/scsi/aic94xx/aic94xx_seq.c ++++ linux/drivers/scsi/aic94xx/aic94xx_seq.c @@ -1317,11 +1317,8 @@ int asd_init_seqs(struct asd_ha_struct * err = asd_request_firmware(asd_ha); @@ -1823,8 +2043,10 @@ upstream submission. err = asd_seq_download_seqs(asd_ha); if (err) { ---- a/drivers/scsi/bfa/bfad.c -+++ b/drivers/scsi/bfa/bfad.c +Index: linux/drivers/scsi/bfa/bfad.c +=================================================================== +--- linux.orig/drivers/scsi/bfa/bfad.c ++++ linux/drivers/scsi/bfa/bfad.c @@ -1755,7 +1755,6 @@ bfad_read_firmware(struct pci_dev *pdev, const struct firmware *fw; @@ -1833,8 +2055,10 @@ upstream submission. *bfi_image = NULL; goto out; } ---- a/drivers/scsi/ipr.c -+++ b/drivers/scsi/ipr.c +Index: linux/drivers/scsi/ipr.c +=================================================================== +--- linux.orig/drivers/scsi/ipr.c ++++ linux/drivers/scsi/ipr.c @@ -4102,10 +4102,8 @@ static ssize_t ipr_store_update_fw(struc if (endline) *endline = '\0'; @@ -1847,8 +2071,10 @@ upstream submission. image_hdr = (struct ipr_ucode_image_header *)fw_entry->data; ---- a/drivers/scsi/pm8001/pm8001_ctl.c -+++ b/drivers/scsi/pm8001/pm8001_ctl.c +Index: linux/drivers/scsi/pm8001/pm8001_ctl.c +=================================================================== +--- linux.orig/drivers/scsi/pm8001/pm8001_ctl.c ++++ linux/drivers/scsi/pm8001/pm8001_ctl.c @@ -737,10 +737,6 @@ static ssize_t pm8001_store_update_fw(st pm8001_ha->dev); @@ -1860,8 +2086,10 @@ upstream submission. pm8001_ha->fw_status = FAIL_OPEN_BIOS_FILE; goto out; } ---- a/drivers/scsi/qla1280.c -+++ b/drivers/scsi/qla1280.c +Index: linux/drivers/scsi/qla1280.c +=================================================================== +--- linux.orig/drivers/scsi/qla1280.c ++++ linux/drivers/scsi/qla1280.c @@ -1552,8 +1552,6 @@ qla1280_request_firmware(struct scsi_qla err = request_firmware(&fw, fwname, &ha->pdev->dev); @@ -1871,9 +2099,11 @@ upstream submission. fw = ERR_PTR(err); goto unlock; } ---- a/drivers/scsi/qla2xxx/qla_init.c -+++ b/drivers/scsi/qla2xxx/qla_init.c -@@ -7454,8 +7454,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, +Index: linux/drivers/scsi/qla2xxx/qla_init.c +=================================================================== +--- linux.orig/drivers/scsi/qla2xxx/qla_init.c ++++ linux/drivers/scsi/qla2xxx/qla_init.c +@@ -7470,8 +7470,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -1882,7 +2112,7 @@ upstream submission. ql_log(ql_log_info, vha, 0x0084, "Firmware images can be retrieved from: "QLA_FW_URL ".\n"); return QLA_FUNCTION_FAILED; -@@ -7557,8 +7555,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * +@@ -7573,8 +7571,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -1891,8 +2121,10 @@ upstream submission. ql_log(ql_log_warn, vha, 0x0091, "Firmware images can be retrieved from: " QLA_FW_URL ".\n"); ---- a/drivers/scsi/qla2xxx/qla_nx.c -+++ b/drivers/scsi/qla2xxx/qla_nx.c +Index: linux/drivers/scsi/qla2xxx/qla_nx.c +=================================================================== +--- linux.orig/drivers/scsi/qla2xxx/qla_nx.c ++++ linux/drivers/scsi/qla2xxx/qla_nx.c @@ -2464,11 +2464,8 @@ try_blob_fw: /* Load firmware blob. */ @@ -1906,9 +2138,11 @@ upstream submission. /* Validating firmware blob */ if (qla82xx_validate_firmware_blob(vha, ---- a/drivers/scsi/qla2xxx/qla_os.c -+++ b/drivers/scsi/qla2xxx/qla_os.c -@@ -6533,8 +6533,6 @@ qla2x00_request_firmware(scsi_qla_host_t +Index: linux/drivers/scsi/qla2xxx/qla_os.c +=================================================================== +--- linux.orig/drivers/scsi/qla2xxx/qla_os.c ++++ linux/drivers/scsi/qla2xxx/qla_os.c +@@ -6543,8 +6543,6 @@ qla2x00_request_firmware(scsi_qla_host_t goto out; if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) { @@ -1917,8 +2151,10 @@ upstream submission. blob->fw = NULL; blob = NULL; goto out; ---- a/drivers/scsi/qlogicpti.c -+++ b/drivers/scsi/qlogicpti.c +Index: linux/drivers/scsi/qlogicpti.c +=================================================================== +--- linux.orig/drivers/scsi/qlogicpti.c ++++ linux/drivers/scsi/qlogicpti.c @@ -475,11 +475,8 @@ static int qlogicpti_load_firmware(struc int i, timeout; @@ -1932,8 +2168,10 @@ upstream submission. if (fw->size % 2) { printk(KERN_ERR "Bogus length %zu in image \"%s\"\n", fw->size, fwname); ---- a/drivers/media/usb/go7007/go7007-driver.c -+++ b/drivers/media/usb/go7007/go7007-driver.c +Index: linux/drivers/media/usb/go7007/go7007-driver.c +=================================================================== +--- linux.orig/drivers/media/usb/go7007/go7007-driver.c ++++ linux/drivers/media/usb/go7007/go7007-driver.c @@ -92,10 +92,8 @@ static int go7007_load_encoder(struct go u16 intr_val, intr_data; @@ -1946,8 +2184,10 @@ upstream submission. if (fw_entry->size < 16 || memcmp(fw_entry->data, "WISGO7007FW", 11)) { v4l2_err(go, "file \"%s\" does not appear to be go7007 firmware\n", fw_name); release_firmware(fw_entry); ---- a/drivers/media/usb/go7007/go7007-fw.c -+++ b/drivers/media/usb/go7007/go7007-fw.c +Index: linux/drivers/media/usb/go7007/go7007-fw.c +=================================================================== +--- linux.orig/drivers/media/usb/go7007/go7007-fw.c ++++ linux/drivers/media/usb/go7007/go7007-fw.c @@ -1573,12 +1573,8 @@ int go7007_construct_fw_image(struct go7 default: return -1; @@ -1962,8 +2202,10 @@ upstream submission. code = kcalloc(codespace, 2, GFP_KERNEL); if (code == NULL) goto fw_failed; ---- a/drivers/media/usb/go7007/go7007-loader.c -+++ b/drivers/media/usb/go7007/go7007-loader.c +Index: linux/drivers/media/usb/go7007/go7007-loader.c +=================================================================== +--- linux.orig/drivers/media/usb/go7007/go7007-loader.c ++++ linux/drivers/media/usb/go7007/go7007-loader.c @@ -75,11 +75,8 @@ static int go7007_loader_probe(struct us dev_info(&interface->dev, "loading firmware %s\n", fw1); @@ -1990,8 +2232,10 @@ upstream submission. ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); release_firmware(fw); if (0 != ret) { ---- a/drivers/staging/rtl8192u/r819xU_firmware.c -+++ b/drivers/staging/rtl8192u/r819xU_firmware.c +Index: linux/drivers/staging/rtl8192u/r819xU_firmware.c +=================================================================== +--- linux.orig/drivers/staging/rtl8192u/r819xU_firmware.c ++++ linux/drivers/staging/rtl8192u/r819xU_firmware.c @@ -245,10 +245,8 @@ bool init_firmware(struct net_device *de */ if (rst_opt == OPT_SYSTEM_RESET) { @@ -2004,8 +2248,10 @@ upstream submission. if (fw_entry->size > sizeof(pfirmware->firmware_buf)) { RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n"); ---- a/drivers/staging/rtl8712/hal_init.c -+++ b/drivers/staging/rtl8712/hal_init.c +Index: linux/drivers/staging/rtl8712/hal_init.c +=================================================================== +--- linux.orig/drivers/staging/rtl8712/hal_init.c ++++ linux/drivers/staging/rtl8712/hal_init.c @@ -67,8 +67,6 @@ int rtl871x_load_fw(struct _adapter *pad dev_info(dev, "r8712u: Loading firmware from \"%s\"\n", firmware_file); rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev, @@ -2015,8 +2261,10 @@ upstream submission. return rc; } MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); ---- a/drivers/net/ethernet/alacritech/slicoss.c -+++ b/drivers/net/ethernet/alacritech/slicoss.c +Index: linux/drivers/net/ethernet/alacritech/slicoss.c +=================================================================== +--- linux.orig/drivers/net/ethernet/alacritech/slicoss.c ++++ linux/drivers/net/ethernet/alacritech/slicoss.c @@ -1063,11 +1063,8 @@ static int slic_load_rcvseq_firmware(str file = (sdev->model == SLIC_MODEL_OASIS) ? SLIC_RCV_FIRMWARE_OASIS : SLIC_RCV_FIRMWARE_MOJAVE; @@ -2042,8 +2290,10 @@ upstream submission. /* Do an initial sanity check concerning firmware size now. A further * check follows below. */ ---- a/drivers/staging/vt6656/firmware.c -+++ b/drivers/staging/vt6656/firmware.c +Index: linux/drivers/staging/vt6656/firmware.c +=================================================================== +--- linux.orig/drivers/staging/vt6656/firmware.c ++++ linux/drivers/staging/vt6656/firmware.c @@ -39,11 +39,8 @@ int vnt_download_firmware(struct vnt_pri dev_dbg(dev, "---->Download firmware\n"); @@ -2058,8 +2308,10 @@ upstream submission. buffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL); if (!buffer) ---- a/drivers/tty/cyclades.c -+++ b/drivers/tty/cyclades.c +Index: linux/drivers/tty/cyclades.c +=================================================================== +--- linux.orig/drivers/tty/cyclades.c ++++ linux/drivers/tty/cyclades.c @@ -3489,10 +3489,8 @@ static int cyz_load_fw(struct pci_dev *p int retval; @@ -2072,8 +2324,10 @@ upstream submission. /* Check whether the firmware is already loaded and running. If positive, skip this board */ ---- a/drivers/tty/moxa.c -+++ b/drivers/tty/moxa.c +Index: linux/drivers/tty/moxa.c +=================================================================== +--- linux.orig/drivers/tty/moxa.c ++++ linux/drivers/tty/moxa.c @@ -862,13 +862,8 @@ static int moxa_init_board(struct moxa_b } @@ -2089,8 +2343,10 @@ upstream submission. ret = moxa_load_fw(brd, fw); ---- a/drivers/tty/serial/icom.c -+++ b/drivers/tty/serial/icom.c +Index: linux/drivers/tty/serial/icom.c +=================================================================== +--- linux.orig/drivers/tty/serial/icom.c ++++ linux/drivers/tty/serial/icom.c @@ -360,7 +360,6 @@ static void load_code(struct icom_port * /* Load Call Setup into Adapter */ @@ -2115,8 +2371,10 @@ upstream submission. status = -1; goto load_code_exit; } ---- a/drivers/tty/serial/ucc_uart.c -+++ b/drivers/tty/serial/ucc_uart.c +Index: linux/drivers/tty/serial/ucc_uart.c +=================================================================== +--- linux.orig/drivers/tty/serial/ucc_uart.c ++++ linux/drivers/tty/serial/ucc_uart.c @@ -1165,10 +1165,8 @@ static void uart_firmware_cont(const str struct device *dev = context; int ret; @@ -2129,8 +2387,10 @@ upstream submission. firmware = (struct qe_firmware *) fw->data; ---- a/drivers/usb/atm/cxacru.c -+++ b/drivers/usb/atm/cxacru.c +Index: linux/drivers/usb/atm/cxacru.c +=================================================================== +--- linux.orig/drivers/usb/atm/cxacru.c ++++ linux/drivers/usb/atm/cxacru.c @@ -1080,8 +1080,6 @@ static int cxacru_find_firmware(struct c return -ENOENT; } @@ -2140,8 +2400,10 @@ upstream submission. return 0; } ---- a/drivers/usb/atm/ueagle-atm.c -+++ b/drivers/usb/atm/ueagle-atm.c +Index: linux/drivers/usb/atm/ueagle-atm.c +=================================================================== +--- linux.orig/drivers/usb/atm/ueagle-atm.c ++++ linux/drivers/usb/atm/ueagle-atm.c @@ -650,10 +650,8 @@ static void uea_upload_pre_firmware(cons int ret, size; @@ -2216,8 +2478,10 @@ upstream submission. pfw = fw_entry->data; size = fw_entry->size; ---- a/drivers/usb/misc/emi26.c -+++ b/drivers/usb/misc/emi26.c +Index: linux/drivers/usb/misc/emi26.c +=================================================================== +--- linux.orig/drivers/usb/misc/emi26.c ++++ linux/drivers/usb/misc/emi26.c @@ -85,21 +85,17 @@ static int emi26_load_firmware (struct u err = request_ihex_firmware(&loader_fw, "emi26/loader.fw", &dev->dev); @@ -2243,8 +2507,10 @@ upstream submission. /* Assert reset (stop the CPU in the EMI) */ err = emi26_set_reset(dev,1); ---- a/drivers/usb/misc/ezusb.c -+++ b/drivers/usb/misc/ezusb.c +Index: linux/drivers/usb/misc/ezusb.c +=================================================================== +--- linux.orig/drivers/usb/misc/ezusb.c ++++ linux/drivers/usb/misc/ezusb.c @@ -76,12 +76,8 @@ static int ezusb_ihex_firmware_download( const struct ihex_binrec *record; @@ -2259,8 +2525,10 @@ upstream submission. ret = ezusb_set_reset(dev, fx.cpucs_reg, 0); if (ret < 0) ---- a/drivers/usb/misc/isight_firmware.c -+++ b/drivers/usb/misc/isight_firmware.c +Index: linux/drivers/usb/misc/isight_firmware.c +=================================================================== +--- linux.orig/drivers/usb/misc/isight_firmware.c ++++ linux/drivers/usb/misc/isight_firmware.c @@ -45,7 +45,6 @@ static int isight_firmware_load(struct u return -ENOMEM; @@ -2269,8 +2537,10 @@ upstream submission. ret = -ENODEV; goto out; } ---- a/drivers/usb/serial/io_edgeport.c -+++ b/drivers/usb/serial/io_edgeport.c +Index: linux/drivers/usb/serial/io_edgeport.c +=================================================================== +--- linux.orig/drivers/usb/serial/io_edgeport.c ++++ linux/drivers/usb/serial/io_edgeport.c @@ -375,11 +375,8 @@ static void update_edgeport_E2PROM(struc response = request_ihex_firmware(&fw, fw_name, @@ -2284,8 +2554,10 @@ upstream submission. rec = (const struct ihex_binrec *)fw->data; BootMajorVersion = rec->data[0]; ---- a/drivers/usb/serial/io_ti.c -+++ b/drivers/usb/serial/io_ti.c +Index: linux/drivers/usb/serial/io_ti.c +=================================================================== +--- linux.orig/drivers/usb/serial/io_ti.c ++++ linux/drivers/usb/serial/io_ti.c @@ -1010,8 +1010,6 @@ static int download_fw(struct edgeport_s status = request_firmware(&fw, fw_name, dev); @@ -2295,9 +2567,11 @@ upstream submission. return status; } ---- a/drivers/usb/serial/ti_usb_3410_5052.c -+++ b/drivers/usb/serial/ti_usb_3410_5052.c -@@ -1693,10 +1693,8 @@ static int ti_download_firmware(struct t +Index: linux/drivers/usb/serial/ti_usb_3410_5052.c +=================================================================== +--- linux.orig/drivers/usb/serial/ti_usb_3410_5052.c ++++ linux/drivers/usb/serial/ti_usb_3410_5052.c +@@ -1689,10 +1689,8 @@ static int ti_download_firmware(struct t } check_firmware: @@ -2309,8 +2583,10 @@ upstream submission. if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size); release_firmware(fw_p); ---- a/drivers/video/fbdev/broadsheetfb.c -+++ b/drivers/video/fbdev/broadsheetfb.c +Index: linux/drivers/video/fbdev/broadsheetfb.c +=================================================================== +--- linux.orig/drivers/video/fbdev/broadsheetfb.c ++++ linux/drivers/video/fbdev/broadsheetfb.c @@ -743,10 +743,8 @@ static ssize_t broadsheet_loadstore_wave return -EINVAL; @@ -2323,8 +2599,10 @@ upstream submission. /* try to enforce reasonable min max on waveform */ if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) { ---- a/drivers/video/fbdev/metronomefb.c -+++ b/drivers/video/fbdev/metronomefb.c +Index: linux/drivers/video/fbdev/metronomefb.c +=================================================================== +--- linux.orig/drivers/video/fbdev/metronomefb.c ++++ linux/drivers/video/fbdev/metronomefb.c @@ -679,10 +679,8 @@ static int metronomefb_probe(struct plat a) request the waveform file from userspace b) process waveform and decode into metromem */ @@ -2337,8 +2615,10 @@ upstream submission. retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 3, 31, par); ---- a/sound/drivers/vx/vx_hwdep.c -+++ b/sound/drivers/vx/vx_hwdep.c +Index: linux/sound/drivers/vx/vx_hwdep.c +=================================================================== +--- linux.orig/sound/drivers/vx/vx_hwdep.c ++++ linux/sound/drivers/vx/vx_hwdep.c @@ -71,10 +71,8 @@ int snd_vx_setup_firmware(struct vx_core if (! fw_files[chip->type][i]) continue; @@ -2351,8 +2631,10 @@ upstream submission. err = chip->ops->load_dsp(chip, i, fw); if (err < 0) { release_firmware(fw); ---- a/sound/isa/msnd/msnd_pinnacle.c -+++ b/sound/isa/msnd/msnd_pinnacle.c +Index: linux/sound/isa/msnd/msnd_pinnacle.c +=================================================================== +--- linux.orig/sound/isa/msnd/msnd_pinnacle.c ++++ linux/sound/isa/msnd/msnd_pinnacle.c @@ -390,15 +390,11 @@ static int upload_dsp_code(struct snd_ca outb(HPBLKSEL_0, chip->io + HP_BLKS); @@ -2371,8 +2653,10 @@ upstream submission. memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size); if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) { ---- a/sound/isa/sscape.c -+++ b/sound/isa/sscape.c +Index: linux/sound/isa/sscape.c +=================================================================== +--- linux.orig/sound/isa/sscape.c ++++ linux/sound/isa/sscape.c @@ -544,10 +544,8 @@ static int sscape_upload_bootblock(struc int ret; @@ -2398,8 +2682,10 @@ upstream submission. err = upload_dma_data(sscape, init_fw->data, init_fw->size); if (err == 0) snd_printk(KERN_INFO "sscape: MIDI firmware loaded %zu KBs\n", ---- a/sound/isa/wavefront/wavefront_synth.c -+++ b/sound/isa/wavefront/wavefront_synth.c +Index: linux/sound/isa/wavefront/wavefront_synth.c +=================================================================== +--- linux.orig/sound/isa/wavefront/wavefront_synth.c ++++ linux/sound/isa/wavefront/wavefront_synth.c @@ -1957,10 +1957,8 @@ wavefront_download_firmware (snd_wavefro const struct firmware *firmware; @@ -2412,8 +2698,10 @@ upstream submission. len = 0; buf = firmware->data; ---- a/sound/pci/asihpi/hpidspcd.c -+++ b/sound/pci/asihpi/hpidspcd.c +Index: linux/sound/pci/asihpi/hpidspcd.c +=================================================================== +--- linux.orig/sound/pci/asihpi/hpidspcd.c ++++ linux/sound/pci/asihpi/hpidspcd.c @@ -46,8 +46,6 @@ short hpi_dsp_code_open(u32 adapter, voi err = request_firmware(&firmware, fw_name, &dev->dev); @@ -2423,8 +2711,10 @@ upstream submission. goto error1; } if (firmware->size < sizeof(header)) { ---- a/sound/pci/echoaudio/echoaudio.c -+++ b/sound/pci/echoaudio/echoaudio.c +Index: linux/sound/pci/echoaudio/echoaudio.c +=================================================================== +--- linux.orig/sound/pci/echoaudio/echoaudio.c ++++ linux/sound/pci/echoaudio/echoaudio.c @@ -60,11 +60,8 @@ static int get_firmware(const struct fir "firmware requested: %s\n", card_fw[fw_index].data); snprintf(name, sizeof(name), "ea/%s", card_fw[fw_index].data); @@ -2438,8 +2728,10 @@ upstream submission. chip->fw_cache[fw_index] = *fw_entry; #endif return err; ---- a/sound/pci/emu10k1/emu10k1_main.c -+++ b/sound/pci/emu10k1/emu10k1_main.c +Index: linux/sound/pci/emu10k1/emu10k1_main.c +=================================================================== +--- linux.orig/sound/pci/emu10k1/emu10k1_main.c ++++ linux/sound/pci/emu10k1/emu10k1_main.c @@ -888,10 +888,8 @@ static int snd_emu10k1_emu1010_init(stru dev_info(emu->card->dev, "emu1010: EMU_HANA_ID = 0x%x\n", reg); @@ -2452,9 +2744,11 @@ upstream submission. /* ID, should read & 0x7f = 0x55 when FPGA programmed. */ snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®); ---- a/sound/pci/hda/hda_intel.c -+++ b/sound/pci/hda/hda_intel.c -@@ -2077,10 +2077,8 @@ static void azx_firmware_cb(const struct +Index: linux/sound/pci/hda/hda_intel.c +=================================================================== +--- linux.orig/sound/pci/hda/hda_intel.c ++++ linux/sound/pci/hda/hda_intel.c +@@ -2075,10 +2075,8 @@ static void azx_firmware_cb(const struct struct azx *chip = card->private_data; struct pci_dev *pci = chip->pci; @@ -2466,8 +2760,10 @@ upstream submission. chip->fw = fw; if (!chip->disabled) { ---- a/sound/pci/korg1212/korg1212.c -+++ b/sound/pci/korg1212/korg1212.c +Index: linux/sound/pci/korg1212/korg1212.c +=================================================================== +--- linux.orig/sound/pci/korg1212/korg1212.c ++++ linux/sound/pci/korg1212/korg1212.c @@ -2348,7 +2348,6 @@ static int snd_korg1212_create(struct sn err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev); @@ -2476,8 +2772,10 @@ upstream submission. snd_korg1212_free(korg1212); return err; } ---- a/sound/pci/mixart/mixart_hwdep.c -+++ b/sound/pci/mixart/mixart_hwdep.c +Index: linux/sound/pci/mixart/mixart_hwdep.c +=================================================================== +--- linux.orig/sound/pci/mixart/mixart_hwdep.c ++++ linux/sound/pci/mixart/mixart_hwdep.c @@ -571,11 +571,8 @@ int snd_mixart_setup_firmware(struct mix for (i = 0; i < 3; i++) { @@ -2491,8 +2789,10 @@ upstream submission. /* fake hwdep dsp record */ err = mixart_dsp_load(mgr, i, fw_entry); release_firmware(fw_entry); ---- a/sound/pci/pcxhr/pcxhr_hwdep.c -+++ b/sound/pci/pcxhr/pcxhr_hwdep.c +Index: linux/sound/pci/pcxhr/pcxhr_hwdep.c +=================================================================== +--- linux.orig/sound/pci/pcxhr/pcxhr_hwdep.c ++++ linux/sound/pci/pcxhr/pcxhr_hwdep.c @@ -385,12 +385,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg if (!fw_files[fw_set][i]) continue; @@ -2507,8 +2807,10 @@ upstream submission. /* fake hwdep dsp record */ err = pcxhr_dsp_load(mgr, i, fw_entry); release_firmware(fw_entry); ---- a/sound/pci/riptide/riptide.c -+++ b/sound/pci/riptide/riptide.c +Index: linux/sound/pci/riptide/riptide.c +=================================================================== +--- linux.orig/sound/pci/riptide/riptide.c ++++ linux/sound/pci/riptide/riptide.c @@ -1231,11 +1231,8 @@ static int try_to_load_firmware(struct c if (!chip->fw_entry) { err = request_firmware(&chip->fw_entry, "riptide.hex", @@ -2522,8 +2824,10 @@ upstream submission. } err = loadfirmware(cif, chip->fw_entry->data, chip->fw_entry->size); if (err) { ---- a/sound/pci/rme9652/hdsp.c -+++ b/sound/pci/rme9652/hdsp.c +Index: linux/sound/pci/rme9652/hdsp.c +=================================================================== +--- linux.orig/sound/pci/rme9652/hdsp.c ++++ linux/sound/pci/rme9652/hdsp.c @@ -5134,11 +5134,8 @@ static int hdsp_request_fw_loader(struct return -EINVAL; } @@ -2537,8 +2841,10 @@ upstream submission. if (fw->size < HDSP_FIRMWARE_SIZE) { dev_err(hdsp->card->dev, "too short firmware size %d (expected %d)\n", ---- a/sound/soc/codecs/wm2000.c -+++ b/sound/soc/codecs/wm2000.c +Index: linux/sound/soc/codecs/wm2000.c +=================================================================== +--- linux.orig/sound/soc/codecs/wm2000.c ++++ linux/sound/soc/codecs/wm2000.c @@ -891,10 +891,8 @@ static int wm2000_i2c_probe(struct i2c_c } @@ -2551,8 +2857,10 @@ upstream submission. /* Pre-cook the concatenation of the register address onto the image */ wm2000->anc_download_size = fw->size + 2; ---- a/sound/usb/6fire/firmware.c -+++ b/sound/usb/6fire/firmware.c +Index: linux/sound/usb/6fire/firmware.c +=================================================================== +--- linux.orig/sound/usb/6fire/firmware.c ++++ linux/sound/usb/6fire/firmware.c @@ -219,8 +219,6 @@ static int usb6fire_fw_ezusb_upload( ret = request_firmware(&fw, fwname, &device->dev); if (ret < 0) { @@ -2571,8 +2879,10 @@ upstream submission. kfree(buffer); return -EIO; } ---- a/sound/pci/cs46xx/cs46xx_lib.c -+++ b/sound/pci/cs46xx/cs46xx_lib.c +Index: linux/sound/pci/cs46xx/cs46xx_lib.c +=================================================================== +--- linux.orig/sound/pci/cs46xx/cs46xx_lib.c ++++ linux/sound/pci/cs46xx/cs46xx_lib.c @@ -3253,11 +3253,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46 #ifdef CONFIG_SND_CS46XX_NEW_DSP for (i = 0; i < CS46XX_DSP_MODULES; i++) { diff --git a/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch b/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch index 6317f7287..266688652 100644 --- a/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch +++ b/debian/patches/bugfix/all/firmware_class-log-every-success-and-failure.patch @@ -21,9 +21,11 @@ This does not cover the case where we fall back to a user-mode helper NOTE: hw-detect will depend on the "firmware: failed to load %s (%d)\n" format to detect missing firmware. --- ---- a/drivers/base/firmware_loader/main.c -+++ b/drivers/base/firmware_loader/main.c -@@ -322,21 +322,22 @@ fw_get_filesystem_firmware(struct device +Index: linux/drivers/base/firmware_loader/main.c +=================================================================== +--- linux.orig/drivers/base/firmware_loader/main.c ++++ linux/drivers/base/firmware_loader/main.c +@@ -328,21 +328,22 @@ fw_get_filesystem_firmware(struct device rc = kernel_read_file_from_path(path, &fw_priv->data, &size, msize, id); if (rc) { @@ -53,9 +55,11 @@ format to detect missing firmware. return rc; } ---- a/drivers/base/firmware_loader/fallback.c -+++ b/drivers/base/firmware_loader/fallback.c -@@ -609,7 +609,7 @@ static int fw_load_from_user_helper(stru +Index: linux/drivers/base/firmware_loader/fallback.c +=================================================================== +--- linux.orig/drivers/base/firmware_loader/fallback.c ++++ linux/drivers/base/firmware_loader/fallback.c +@@ -604,7 +604,7 @@ static int fw_load_from_user_helper(stru if (opt_flags & FW_OPT_NOWAIT) { timeout = usermodehelper_read_lock_wait(timeout); if (!timeout) { diff --git a/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch index 2f44a3dde..d624878ea 100644 --- a/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch +++ b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch @@ -10,23 +10,29 @@ dependencies of a module. Signed-off-by: Ben Hutchings [Lukas Wunner: Forward-ported to 4.11: drop parts applied upstream] --- ---- a/fs/btrfs/super.c -+++ b/fs/btrfs/super.c -@@ -2500,3 +2500,4 @@ late_initcall(init_btrfs_fs); +Index: linux/fs/btrfs/super.c +=================================================================== +--- linux.orig/fs/btrfs/super.c ++++ linux/fs/btrfs/super.c +@@ -2514,3 +2514,4 @@ late_initcall(init_btrfs_fs); module_exit(exit_btrfs_fs) MODULE_LICENSE("GPL"); +MODULE_SOFTDEP("pre: crypto-crc32c"); ---- a/fs/crypto/crypto.c -+++ b/fs/crypto/crypto.c -@@ -468,3 +468,4 @@ static void __exit fscrypt_exit(void) +Index: linux/fs/crypto/crypto.c +=================================================================== +--- linux.orig/fs/crypto/crypto.c ++++ linux/fs/crypto/crypto.c +@@ -502,3 +502,4 @@ static void __exit fscrypt_exit(void) module_exit(fscrypt_exit); MODULE_LICENSE("GPL"); +MODULE_SOFTDEP("pre: crypto-aes crypto-ecb"); ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -5880,6 +5880,6 @@ static void __exit ext4_exit_fs(void) +Index: linux/fs/ext4/super.c +=================================================================== +--- linux.orig/fs/ext4/super.c ++++ linux/fs/ext4/super.c +@@ -6082,6 +6082,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"); @@ -34,17 +40,21 @@ Signed-off-by: Ben Hutchings +MODULE_SOFTDEP("pre: crypto-crc32c"); module_init(ext4_init_fs) module_exit(ext4_exit_fs) ---- a/fs/f2fs/super.c -+++ b/fs/f2fs/super.c -@@ -3134,4 +3134,5 @@ module_exit(exit_f2fs_fs) +Index: linux/fs/f2fs/super.c +=================================================================== +--- linux.orig/fs/f2fs/super.c ++++ linux/fs/f2fs/super.c +@@ -3357,4 +3357,5 @@ module_exit(exit_f2fs_fs) MODULE_AUTHOR("Samsung Electronics's Praesto Team"); MODULE_DESCRIPTION("Flash Friendly File System"); MODULE_LICENSE("GPL"); +MODULE_SOFTDEP("pre: crypto-crc32c"); ---- a/fs/jbd2/journal.c -+++ b/fs/jbd2/journal.c -@@ -2726,6 +2726,7 @@ static void __exit journal_exit(void) +Index: linux/fs/jbd2/journal.c +=================================================================== +--- linux.orig/fs/jbd2/journal.c ++++ linux/fs/jbd2/journal.c +@@ -2745,6 +2745,7 @@ static void __exit journal_exit(void) } MODULE_LICENSE("GPL"); @@ -52,9 +62,11 @@ Signed-off-by: Ben Hutchings module_init(journal_init); module_exit(journal_exit); ---- a/fs/nfsd/nfsctl.c -+++ b/fs/nfsd/nfsctl.c -@@ -1334,5 +1334,8 @@ static void __exit exit_nfsd(void) +Index: linux/fs/nfsd/nfsctl.c +=================================================================== +--- linux.orig/fs/nfsd/nfsctl.c ++++ linux/fs/nfsd/nfsctl.c +@@ -1337,5 +1337,8 @@ static void __exit exit_nfsd(void) MODULE_AUTHOR("Olaf Kirch "); MODULE_LICENSE("GPL"); diff --git a/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch b/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch index 820479896..8e942af28 100644 --- a/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch +++ b/debian/patches/bugfix/all/kbuild-fix-recordmcount-dependency.patch @@ -7,8 +7,10 @@ We never rebuild anything in-tree when building an out-of-tree modules, so external modules should not depend on the recordmcount sources. ---- a/scripts/Makefile.build -+++ b/scripts/Makefile.build +Index: linux/scripts/Makefile.build +=================================================================== +--- linux.orig/scripts/Makefile.build ++++ linux/scripts/Makefile.build @@ -232,6 +232,11 @@ cmd_record_mcount = \ endif # CC_USING_RECORD_MCOUNT endif # CONFIG_FTRACE_MCOUNT_RECORD diff --git a/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch index a6ebb2343..22ef11a3b 100644 --- a/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch +++ b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch @@ -27,9 +27,11 @@ Fixes: db547ef19064 ("Kbuild: don't add obj tree in additional includes") Cc: stable@vger.kernel.org # 4.8+ Signed-off-by: Ben Hutchings --- ---- a/scripts/Kbuild.include -+++ b/scripts/Kbuild.include -@@ -215,7 +215,7 @@ hdr-inst := -f $(srctree)/scripts/Makefi +Index: linux/scripts/Kbuild.include +=================================================================== +--- linux.orig/scripts/Kbuild.include ++++ linux/scripts/Kbuild.include +@@ -211,7 +211,7 @@ hdr-inst := -f $(srctree)/scripts/Makefi # Prefix -I with $(srctree) if it is not an absolute path. # skip if -I has no parameter addtree = $(if $(patsubst -I%,%,$(1)), \ diff --git a/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch index 656767bb5..2cdcbb197 100644 --- a/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch +++ b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch @@ -20,8 +20,10 @@ References: https://bugs.debian.org/717557 References: https://bugs.debian.org/726861 Signed-off-by: Ben Hutchings --- ---- a/scripts/Kbuild.include -+++ b/scripts/Kbuild.include +Index: linux/scripts/Kbuild.include +=================================================================== +--- linux.orig/scripts/Kbuild.include ++++ linux/scripts/Kbuild.include @@ -121,7 +121,7 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PL # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) @@ -60,7 +62,7 @@ Signed-off-by: Ben Hutchings # cc-ifversion # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) -@@ -160,7 +161,7 @@ cc-if-fullversion = $(shell [ $(cc-fullv +@@ -156,7 +157,7 @@ cc-ifversion = $(shell [ $(cc-version) $ # cc-ldoption # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both) cc-ldoption = $(call try-run,\ @@ -69,9 +71,11 @@ Signed-off-by: Ben Hutchings # ld-option # Usage: KBUILD_LDFLAGS += $(call ld-option, -X, -Y) ---- a/Makefile -+++ b/Makefile -@@ -675,6 +675,8 @@ endif +Index: linux/Makefile +=================================================================== +--- linux.orig/Makefile ++++ linux/Makefile +@@ -668,6 +668,8 @@ endif KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \ $(call cc-disable-warning,maybe-uninitialized,)) @@ -80,7 +84,7 @@ Signed-off-by: Ben Hutchings # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) -@@ -798,7 +800,7 @@ LDFLAGS_vmlinux += --gc-sections +@@ -787,7 +789,7 @@ LDFLAGS_vmlinux += --gc-sections endif # arch Makefile may override CC so keep this after arch Makefile is included diff --git a/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch b/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch index 301d32bb5..40f2bcc1d 100644 --- a/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch +++ b/debian/patches/bugfix/all/libbpf-add-soname-to-shared-object.patch @@ -13,8 +13,10 @@ be227b45fb228adff4371b8de9e3989904209ff4. Signed-off-by: Hilko Bengen [bwh: Drop unnecessary changes] --- ---- a/tools/lib/bpf/Makefile -+++ b/tools/lib/bpf/Makefile +Index: linux/tools/lib/bpf/Makefile +=================================================================== +--- linux.orig/tools/lib/bpf/Makefile ++++ linux/tools/lib/bpf/Makefile @@ -94,7 +94,7 @@ export prefix libdir src obj libdir_SQ = $(subst ','\'',$(libdir)) libdir_relative_SQ = $(subst ','\'',$(libdir_relative)) diff --git a/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch b/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch index 56fed5351..63ecffe5f 100644 --- a/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch +++ b/debian/patches/bugfix/all/libbpf-generate-pkg-config.patch @@ -4,14 +4,18 @@ Description: generate pkg-config file for libbpf on pkg-config to find the library, its CFLAGS and LDFLAGS. Origin: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=dd399ac9e343c7573c47d6820e4a23013c54749d Applied-Upstream: yes ---- a/tools/lib/bpf/.gitignore -+++ b/tools/lib/bpf/.gitignore +Index: linux/tools/lib/bpf/.gitignore +=================================================================== +--- linux.orig/tools/lib/bpf/.gitignore ++++ linux/tools/lib/bpf/.gitignore @@ -1,2 +1,3 @@ libbpf_version.h +libbpf.pc FEATURE-DUMP.libbpf ---- a/tools/lib/bpf/Makefile -+++ b/tools/lib/bpf/Makefile +Index: linux/tools/lib/bpf/Makefile +=================================================================== +--- linux.orig/tools/lib/bpf/Makefile ++++ linux/tools/lib/bpf/Makefile @@ -95,6 +95,7 @@ libdir_SQ = $(subst ','\'',$(libdir)) libdir_relative_SQ = $(subst ','\'',$(libdir_relative)) @@ -67,8 +71,10 @@ Applied-Upstream: yes $(RM) LIBBPF-CFLAGS $(call QUIET_CLEAN, core-gen) $(RM) $(OUTPUT)FEATURE-DUMP.libbpf +Index: linux/tools/lib/bpf/libbpf.pc.template +=================================================================== --- /dev/null -+++ b/tools/lib/bpf/libbpf.pc.template ++++ linux/tools/lib/bpf/libbpf.pc.template @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) + diff --git a/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch b/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch index 1384a95bc..f02cb07e2 100644 --- a/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch +++ b/debian/patches/bugfix/all/libbpf-link-shared-object-with-libelf.patch @@ -11,7 +11,7 @@ Index: linux/tools/lib/bpf/Makefile =================================================================== --- linux.orig/tools/lib/bpf/Makefile +++ linux/tools/lib/bpf/Makefile -@@ -161,7 +161,7 @@ $(BPF_IN): force elfdep bpfdep +@@ -170,7 +170,7 @@ $(BPF_IN): force elfdep bpfdep $(Q)$(MAKE) $(build)=libbpf $(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(BPF_IN) diff --git a/debian/patches/bugfix/all/libcpupower-hide-private-function.patch b/debian/patches/bugfix/all/libcpupower-hide-private-function.patch index ac76e638e..dba71b64e 100644 --- a/debian/patches/bugfix/all/libcpupower-hide-private-function.patch +++ b/debian/patches/bugfix/all/libcpupower-hide-private-function.patch @@ -8,8 +8,10 @@ libcpupower is a shared library. Change its visibility to "hidden". Signed-off-by: Ben Hutchings --- ---- a/tools/power/cpupower/lib/cpupower.c -+++ b/tools/power/cpupower/lib/cpupower.c +Index: linux/tools/power/cpupower/lib/cpupower.c +=================================================================== +--- linux.orig/tools/power/cpupower/lib/cpupower.c ++++ linux/tools/power/cpupower/lib/cpupower.c @@ -15,6 +15,7 @@ #include "cpupower.h" #include "cpupower_intern.h" diff --git a/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch b/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch index 2ab62688a..9c3461019 100644 --- a/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch +++ b/debian/patches/bugfix/all/module-disable-matching-missing-version-crc.patch @@ -7,9 +7,11 @@ This partly reverts commit cd3caefb4663e3811d37cc2afad3cce642d60061. We want to fail closed if a symbol version CRC is missing, as the alternative may allow subverting module signing. --- ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -1313,9 +1313,8 @@ static int check_version(const struct lo +Index: linux/kernel/module.c +=================================================================== +--- linux.orig/kernel/module.c ++++ linux/kernel/module.c +@@ -1317,9 +1317,8 @@ static int check_version(const struct lo goto bad_version; } diff --git a/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch b/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch index 737d49bc4..ce3b63af3 100644 --- a/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch +++ b/debian/patches/bugfix/all/mt76-use-the-correct-hweight8-function.patch @@ -15,11 +15,11 @@ Signed-off-by: Ben Hutchings drivers/net/wireless/mediatek/mt76/mac80211.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c -index 484d3ac3a206..d4eeae226f19 100644 ---- a/drivers/net/wireless/mediatek/mt76/mac80211.c -+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c -@@ -124,7 +124,7 @@ static void mt76_init_stream_cap(struct mt76_dev *dev, +Index: linux/drivers/net/wireless/mediatek/mt76/mac80211.c +=================================================================== +--- linux.orig/drivers/net/wireless/mediatek/mt76/mac80211.c ++++ linux/drivers/net/wireless/mediatek/mt76/mac80211.c +@@ -124,7 +124,7 @@ static void mt76_init_stream_cap(struct bool vht) { struct ieee80211_sta_ht_cap *ht_cap = &sband->ht_cap; diff --git a/debian/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch b/debian/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch index b126826fd..3daa87811 100644 --- a/debian/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch +++ b/debian/patches/bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch @@ -14,11 +14,11 @@ Signed-off-by: Ben Hutchings drivers/usb/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig -index 644e978cbd3e..989c6208678f 100644 ---- a/drivers/usb/Kconfig -+++ b/drivers/usb/Kconfig -@@ -152,8 +152,7 @@ source "drivers/usb/gadget/Kconfig" +Index: linux/drivers/usb/Kconfig +=================================================================== +--- linux.orig/drivers/usb/Kconfig ++++ linux/drivers/usb/Kconfig +@@ -175,8 +175,7 @@ source "drivers/usb/roles/Kconfig" config USB_LED_TRIG bool "USB LED Triggers" diff --git a/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch b/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch index fe13c96b8..cd2ba2e9e 100644 --- a/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch +++ b/debian/patches/bugfix/all/radeon-amdgpu-firmware-is-required-for-drm-and-kms-on-r600-onward.patch @@ -24,8 +24,10 @@ Therefore, perform a basic check for the existence of is missing, except for the pre-R600 case. --- ---- a/drivers/gpu/drm/radeon/radeon_drv.c -+++ b/drivers/gpu/drm/radeon/radeon_drv.c +Index: linux/drivers/gpu/drm/radeon/radeon_drv.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/radeon_drv.c ++++ linux/drivers/gpu/drm/radeon/radeon_drv.c @@ -43,6 +43,8 @@ #include @@ -35,7 +37,7 @@ is missing, except for the pre-R600 case. /* * KMS wrapper. -@@ -311,6 +313,28 @@ static struct drm_driver kms_driver; +@@ -316,6 +318,28 @@ static struct drm_driver kms_driver; bool radeon_device_is_virtual(void); @@ -64,7 +66,7 @@ is missing, except for the pre-R600 case. static int radeon_kick_out_firmware_fb(struct pci_dev *pdev) { struct apertures_struct *ap; -@@ -340,6 +364,12 @@ static int radeon_pci_probe(struct pci_d +@@ -376,6 +400,12 @@ static int radeon_pci_probe(struct pci_d if (vga_switcheroo_client_probe_defer(pdev)) return -EPROBE_DEFER; @@ -77,9 +79,11 @@ is missing, except for the pre-R600 case. /* Get rid of things like offb */ ret = radeon_kick_out_firmware_fb(pdev); if (ret) ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -@@ -40,6 +40,8 @@ +Index: linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +=================================================================== +--- linux.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -33,6 +33,8 @@ #include #include #include @@ -88,7 +92,7 @@ is missing, except for the pre-R600 case. #include "amdgpu.h" #include "amdgpu_irq.h" -@@ -545,6 +547,28 @@ MODULE_DEVICE_TABLE(pci, pciidlist); +@@ -793,6 +795,28 @@ MODULE_DEVICE_TABLE(pci, pciidlist); static struct drm_driver kms_driver; @@ -117,7 +121,7 @@ is missing, except for the pre-R600 case. static int amdgpu_kick_out_firmware_fb(struct pci_dev *pdev) { struct apertures_struct *ap; -@@ -579,6 +603,11 @@ static int amdgpu_pci_probe(struct pci_d +@@ -833,6 +857,11 @@ static int amdgpu_pci_probe(struct pci_d return -ENODEV; } diff --git a/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch b/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch index 78475853f..b3261d952 100644 --- a/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch +++ b/debian/patches/bugfix/all/rtc-s35390a-set-uie_unsupported.patch @@ -14,11 +14,11 @@ Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s35390a.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/drivers/rtc/rtc-s35390a.c b/drivers/rtc/rtc-s35390a.c -index fb795c454077..4ca37f281ed9 100644 ---- a/drivers/rtc/rtc-s35390a.c -+++ b/drivers/rtc/rtc-s35390a.c -@@ -289,6 +289,9 @@ static int s35390a_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm) +Index: linux/drivers/rtc/rtc-s35390a.c +=================================================================== +--- linux.orig/drivers/rtc/rtc-s35390a.c ++++ linux/drivers/rtc/rtc-s35390a.c +@@ -288,6 +288,9 @@ static int s35390a_rtc_set_alarm(struct alm->time.tm_min, alm->time.tm_hour, alm->time.tm_mday, alm->time.tm_mon, alm->time.tm_year, alm->time.tm_wday); @@ -28,7 +28,7 @@ index fb795c454077..4ca37f281ed9 100644 /* disable interrupt (which deasserts the irq line) */ err = s35390a_set_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts)); if (err < 0) -@@ -500,6 +503,9 @@ static int s35390a_probe(struct i2c_client *client, +@@ -502,6 +505,9 @@ static int s35390a_probe(struct i2c_clie goto exit_dummy; } @@ -38,6 +38,3 @@ index fb795c454077..4ca37f281ed9 100644 if (status1 & S35390A_FLAG_INT2) rtc_update_irq(s35390a->rtc, 1, RTC_AF); --- -2.20.1 - diff --git a/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch b/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch index 3818dbb17..39044c390 100644 --- a/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch +++ b/debian/patches/bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch @@ -9,8 +9,10 @@ security restrictions that block bpf(). Signed-off-by: Ben Hutchings --- ---- a/tools/build/feature/test-bpf.c -+++ b/tools/build/feature/test-bpf.c +Index: linux/tools/build/feature/test-bpf.c +=================================================================== +--- linux.orig/tools/build/feature/test-bpf.c ++++ linux/tools/build/feature/test-bpf.c @@ -35,8 +35,10 @@ int main(void) attr.prog_flags = 0; diff --git a/debian/patches/bugfix/all/tools-lib-api-fs-fs.c-fix-misuse-of-strncpy.patch b/debian/patches/bugfix/all/tools-lib-api-fs-fs.c-fix-misuse-of-strncpy.patch index 80383f7c0..6a11704ce 100644 --- a/debian/patches/bugfix/all/tools-lib-api-fs-fs.c-fix-misuse-of-strncpy.patch +++ b/debian/patches/bugfix/all/tools-lib-api-fs-fs.c-fix-misuse-of-strncpy.patch @@ -18,8 +18,10 @@ terminated. Use strlcpy() instead. Signed-off-by: Ben Hutchings --- ---- a/tools/lib/api/fs/fs.c -+++ b/tools/lib/api/fs/fs.c +Index: linux/tools/lib/api/fs/fs.c +=================================================================== +--- linux.orig/tools/lib/api/fs/fs.c ++++ linux/tools/lib/api/fs/fs.c @@ -12,6 +12,7 @@ #include #include diff --git a/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch b/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch index d1612f7bb..ae303f360 100644 --- a/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch +++ b/debian/patches/bugfix/all/tools-lib-traceevent-use-ldflags.patch @@ -5,9 +5,11 @@ Forwarded: no Signed-off-by: Ben Hutchings --- ---- a/tools/lib/traceevent/Makefile -+++ b/tools/lib/traceevent/Makefile -@@ -173,7 +173,7 @@ $(TE_IN): force +Index: linux/tools/lib/traceevent/Makefile +=================================================================== +--- linux.orig/tools/lib/traceevent/Makefile ++++ linux/tools/lib/traceevent/Makefile +@@ -174,7 +174,7 @@ $(TE_IN): force $(Q)$(MAKE) $(build)=libtraceevent $(OUTPUT)libtraceevent.so.$(EVENT_PARSE_VERSION): $(TE_IN) @@ -16,7 +18,7 @@ Signed-off-by: Ben Hutchings @ln -sf $(@F) $(OUTPUT)libtraceevent.so @ln -sf $(@F) $(OUTPUT)libtraceevent.so.$(EP_VERSION) -@@ -192,7 +192,7 @@ $(PLUGINS_IN): force +@@ -193,7 +193,7 @@ $(PLUGINS_IN): force $(Q)$(MAKE) $(build)=$(plugin_obj) $(OUTPUT)%.so: $(OUTPUT)%-in.o diff --git a/debian/patches/bugfix/all/tools-perf-man-date.patch b/debian/patches/bugfix/all/tools-perf-man-date.patch index 00eb46644..4515c703c 100644 --- a/debian/patches/bugfix/all/tools-perf-man-date.patch +++ b/debian/patches/bugfix/all/tools-perf-man-date.patch @@ -7,9 +7,11 @@ This allows man pages to be built reproducibly. Signed-off-by: Ben Hutchings --- ---- a/tools/perf/Documentation/Makefile -+++ b/tools/perf/Documentation/Makefile -@@ -120,6 +120,9 @@ endif +Index: linux/tools/perf/Documentation/Makefile +=================================================================== +--- linux.orig/tools/perf/Documentation/Makefile ++++ linux/tools/perf/Documentation/Makefile +@@ -131,6 +131,9 @@ endif ifdef DOCBOOK_SUPPRESS_SP XMLTO_EXTRA += -m manpage-suppress-sp.xsl endif @@ -19,8 +21,10 @@ Signed-off-by: Ben Hutchings SHELL_PATH ?= $(SHELL) # Shell quote; ---- a/tools/perf/Documentation/asciidoc.conf -+++ b/tools/perf/Documentation/asciidoc.conf +Index: linux/tools/perf/Documentation/asciidoc.conf +=================================================================== +--- linux.orig/tools/perf/Documentation/asciidoc.conf ++++ linux/tools/perf/Documentation/asciidoc.conf @@ -71,6 +71,9 @@ ifdef::backend-docbook[] [header] template::[header-declarations] diff --git a/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch b/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch index 07953ca7e..d01140709 100644 --- a/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch +++ b/debian/patches/bugfix/all/tools-perf-remove-shebangs.patch @@ -9,29 +9,37 @@ them is useless and possibly misleading. Signed-off-by: Ben Hutchings --- ---- a/tools/perf/scripts/perl/rw-by-file.pl -+++ b/tools/perf/scripts/perl/rw-by-file.pl +Index: linux/tools/perf/scripts/perl/rw-by-file.pl +=================================================================== +--- linux.orig/tools/perf/scripts/perl/rw-by-file.pl ++++ linux/tools/perf/scripts/perl/rw-by-file.pl @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w # (c) 2009, Tom Zanussi # Licensed under the terms of the GNU GPL License version 2 ---- a/tools/perf/scripts/perl/rw-by-pid.pl -+++ b/tools/perf/scripts/perl/rw-by-pid.pl +Index: linux/tools/perf/scripts/perl/rw-by-pid.pl +=================================================================== +--- linux.orig/tools/perf/scripts/perl/rw-by-pid.pl ++++ linux/tools/perf/scripts/perl/rw-by-pid.pl @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w # (c) 2009, Tom Zanussi # Licensed under the terms of the GNU GPL License version 2 ---- a/tools/perf/scripts/perl/rwtop.pl -+++ b/tools/perf/scripts/perl/rwtop.pl +Index: linux/tools/perf/scripts/perl/rwtop.pl +=================================================================== +--- linux.orig/tools/perf/scripts/perl/rwtop.pl ++++ linux/tools/perf/scripts/perl/rwtop.pl @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w # (c) 2010, Tom Zanussi # Licensed under the terms of the GNU GPL License version 2 ---- a/tools/perf/scripts/perl/wakeup-latency.pl -+++ b/tools/perf/scripts/perl/wakeup-latency.pl +Index: linux/tools/perf/scripts/perl/wakeup-latency.pl +=================================================================== +--- linux.orig/tools/perf/scripts/perl/wakeup-latency.pl ++++ linux/tools/perf/scripts/perl/wakeup-latency.pl @@ -1,4 +1,3 @@ -#!/usr/bin/perl -w # (c) 2009, Tom Zanussi diff --git a/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch b/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch index d9d7b301d..0943df590 100644 --- a/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch +++ b/debian/patches/bugfix/all/usbip-document-tcp-wrappers.patch @@ -5,8 +5,10 @@ Forwarded: no Add references to TCP wrappers configuration in the manual page. ---- a/tools/usb/usbip/doc/usbipd.8 -+++ b/tools/usb/usbip/doc/usbipd.8 +Index: linux/tools/usb/usbip/doc/usbipd.8 +=================================================================== +--- linux.orig/tools/usb/usbip/doc/usbipd.8 ++++ linux/tools/usb/usbip/doc/usbipd.8 @@ -14,7 +14,8 @@ Devices have to explicitly be exported u before usbipd makes them available to other hosts. diff --git a/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch b/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch index 45836520b..b98025b8a 100644 --- a/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch +++ b/debian/patches/bugfix/all/usbip-fix-misuse-of-strncpy.patch @@ -22,8 +22,10 @@ usbip_common.c has the same problem. Signed-off-by: Ben Hutchings --- ---- a/tools/usb/usbip/libsrc/usbip_common.c -+++ b/tools/usb/usbip/libsrc/usbip_common.c +Index: linux/tools/usb/usbip/libsrc/usbip_common.c +=================================================================== +--- linux.orig/tools/usb/usbip/libsrc/usbip_common.c ++++ linux/tools/usb/usbip/libsrc/usbip_common.c @@ -226,8 +226,8 @@ int read_usb_device(struct udev_device * path = udev_device_get_syspath(sdev); name = udev_device_get_sysname(sdev); @@ -35,8 +37,10 @@ Signed-off-by: Ben Hutchings sscanf(name, "%u-%u", &busnum, &devnum); udev->busnum = busnum; ---- a/tools/usb/usbip/libsrc/usbip_device_driver.c -+++ b/tools/usb/usbip/libsrc/usbip_device_driver.c +Index: linux/tools/usb/usbip/libsrc/usbip_device_driver.c +=================================================================== +--- linux.orig/tools/usb/usbip/libsrc/usbip_device_driver.c ++++ linux/tools/usb/usbip/libsrc/usbip_device_driver.c @@ -103,7 +103,7 @@ int read_usb_vudc_device(struct udev_dev copy_descr_attr16(dev, &descr, idProduct); copy_descr_attr16(dev, &descr, bcdDevice); diff --git a/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch index 693d643fa..1329c9390 100644 --- a/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch +++ b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch @@ -37,10 +37,10 @@ Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) -diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts -index b403e5d787cb..ac8438c2cff1 100644 ---- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts -+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +Index: linux/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +=================================================================== +--- linux.orig/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts ++++ linux/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts @@ -74,6 +74,10 @@ }; }; diff --git a/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch b/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch index 9e6622fb0..a8fc875a3 100644 --- a/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch +++ b/debian/patches/bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch @@ -19,11 +19,11 @@ Signed-off-by: Ben Hutchings arch/arm/boot/dts/kirkwood-ts419.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/arch/arm/boot/dts/kirkwood-ts419.dtsi b/arch/arm/boot/dts/kirkwood-ts419.dtsi -index 02bd53762705..532506cb0f4a 100644 ---- a/arch/arm/boot/dts/kirkwood-ts419.dtsi -+++ b/arch/arm/boot/dts/kirkwood-ts419.dtsi -@@ -73,3 +73,11 @@ +Index: linux/arch/arm/boot/dts/kirkwood-ts419.dtsi +=================================================================== +--- linux.orig/arch/arm/boot/dts/kirkwood-ts419.dtsi ++++ linux/arch/arm/boot/dts/kirkwood-ts419.dtsi +@@ -69,3 +69,11 @@ phy-handle = <ðphy1>; }; }; diff --git a/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch b/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch index a6f3257ea..2e8771b55 100644 --- a/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch +++ b/debian/patches/bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch @@ -17,10 +17,10 @@ Signed-off-by: Ben Hutchings arch/arm/mm/flush.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c -index 58469623b015..5345f86c56d2 100644 ---- a/arch/arm/mm/flush.c -+++ b/arch/arm/mm/flush.c +Index: linux/arch/arm/mm/flush.c +=================================================================== +--- linux.orig/arch/arm/mm/flush.c ++++ linux/arch/arm/mm/flush.c @@ -295,6 +295,7 @@ void __sync_icache_dcache(pte_t pteval) if (pte_exec(pteval)) __flush_icache_all(); diff --git a/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch b/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch index 5ca50d2e9..50098d001 100644 --- a/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch +++ b/debian/patches/bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch @@ -24,8 +24,10 @@ Signed-off-by: Geoff Levand arch/arm64/kernel/acpi.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) ---- a/arch/arm64/kernel/acpi.c -+++ b/arch/arm64/kernel/acpi.c +Index: linux/arch/arm64/kernel/acpi.c +=================================================================== +--- linux.orig/arch/arm64/kernel/acpi.c ++++ linux/arch/arm64/kernel/acpi.c @@ -33,6 +33,8 @@ #include #include @@ -35,7 +37,7 @@ Signed-off-by: Geoff Levand int acpi_noirq = 1; /* skip ACPI IRQ initialization */ int acpi_disabled = 1; EXPORT_SYMBOL(acpi_disabled); -@@ -175,6 +177,33 @@ out: +@@ -179,6 +181,33 @@ out: } /* @@ -69,7 +71,7 @@ Signed-off-by: Geoff Levand * acpi_boot_table_init() called from setup_arch(), always. * 1. find RSDP and get its address, and then find XSDT * 2. extract all tables and checksums them all -@@ -229,11 +258,14 @@ done: +@@ -233,11 +262,14 @@ done: if (acpi_disabled) { if (earlycon_acpi_spcr_enable) early_init_dt_scan_chosen_stdout(); diff --git a/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch b/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch index d8bf2ecd4..543364416 100644 --- a/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch +++ b/debian/patches/bugfix/arm64/arm64-dts-allwinner-a64-Enable-A64-timer-workaround.patch @@ -14,11 +14,11 @@ Signed-off-by: Chen-Yu Tsai arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index bf9b719481c4..8171c0a7f265 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -200,6 +200,7 @@ +Index: linux/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +=================================================================== +--- linux.orig/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi ++++ linux/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +@@ -159,6 +159,7 @@ timer { compatible = "arm,armv8-timer"; diff --git a/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch b/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch index 2d568d35e..4116ab598 100644 --- a/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch +++ b/debian/patches/bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch @@ -27,11 +27,11 @@ Signed-off-by: Heiko Stuebner arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -index 86ff1eb..d8a2f0b 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts -@@ -421,7 +421,7 @@ +Index: linux/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +=================================================================== +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts ++++ linux/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +@@ -455,7 +455,7 @@ vdd_cpu_b: regulator@40 { compatible = "silergy,syr827"; reg = <0x40>; @@ -40,6 +40,3 @@ index 86ff1eb..d8a2f0b 100644 regulator-name = "vdd_cpu_b"; regulator-min-microvolt = <712500>; regulator-max-microvolt = <1500000>; --- -cgit v1.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0001-scsi-hisi_sas-Feed-back-linkrate-max-min-when-re-att.patch b/debian/patches/bugfix/arm64/huawei-taishan/0001-scsi-hisi_sas-Feed-back-linkrate-max-min-when-re-att.patch index 133afd8a3..53aca52a0 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0001-scsi-hisi_sas-Feed-back-linkrate-max-min-when-re-att.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0001-scsi-hisi_sas-Feed-back-linkrate-max-min-when-re-att.patch @@ -21,11 +21,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index fd9d82c9033d..e9747379384b 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -906,6 +906,9 @@ static void hisi_sas_phy_set_linkrate(struct hisi_hba *hisi_hba, int phy_no, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -906,6 +906,9 @@ static void hisi_sas_phy_set_linkrate(st _r.maximum_linkrate = max; _r.minimum_linkrate = min; @@ -35,6 +35,3 @@ index fd9d82c9033d..e9747379384b 100644 hisi_hba->hw->phy_disable(hisi_hba, phy_no); msleep(100); hisi_hba->hw->phy_set_linkrate(hisi_hba, phy_no, &_r); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch b/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch index b98a6e203..98b6e734e 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch @@ -15,11 +15,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index e9747379384b..6a959a927e9d 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -288,13 +288,13 @@ static int hisi_sas_task_prep(struct sas_task *task, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -288,13 +288,13 @@ static int hisi_sas_task_prep(struct sas int *pass) { struct domain_device *device = task->dev; @@ -35,7 +35,7 @@ index e9747379384b..6a959a927e9d 100644 int dlvry_queue_slot, dlvry_queue, rc, slot_idx; int n_elem = 0, n_elem_req = 0, n_elem_resp = 0; struct hisi_sas_dq *dq; -@@ -315,6 +315,9 @@ static int hisi_sas_task_prep(struct sas_task *task, +@@ -315,6 +315,9 @@ static int hisi_sas_task_prep(struct sas return -ECOMM; } @@ -45,6 +45,3 @@ index e9747379384b..6a959a927e9d 100644 if (DEV_IS_GONE(sas_dev)) { if (sas_dev) dev_info(dev, "task prep: device %d not ready\n", --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0003-scsi-hisi_sas-Fix-the-race-between-IO-completion-and.patch b/debian/patches/bugfix/arm64/huawei-taishan/0003-scsi-hisi_sas-Fix-the-race-between-IO-completion-and.patch index aa561f30b..4b1f28118 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0003-scsi-hisi_sas-Fix-the-race-between-IO-completion-and.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0003-scsi-hisi_sas-Fix-the-race-between-IO-completion-and.patch @@ -20,11 +20,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 55 ++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 9 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 6a959a927e9d..2f57a318a71b 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -958,8 +958,7 @@ static int hisi_sas_control_phy(struct asd_sas_phy *sas_phy, enum phy_func func, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -958,8 +958,7 @@ static int hisi_sas_control_phy(struct a static void hisi_sas_task_done(struct sas_task *task) { @@ -34,7 +34,7 @@ index 6a959a927e9d..2f57a318a71b 100644 complete(&task->slow_task->completion); } -@@ -968,13 +967,17 @@ static void hisi_sas_tmf_timedout(struct timer_list *t) +@@ -968,13 +967,17 @@ static void hisi_sas_tmf_timedout(struct struct sas_task_slow *slow = from_timer(slow, t, timer); struct sas_task *task = slow->task; unsigned long flags; @@ -54,7 +54,7 @@ index 6a959a927e9d..2f57a318a71b 100644 } #define TASK_TIMEOUT 20 -@@ -1025,10 +1028,18 @@ static int hisi_sas_exec_internal_tmf_task(struct domain_device *device, +@@ -1025,10 +1028,18 @@ static int hisi_sas_exec_internal_tmf_ta if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) { if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) { struct hisi_sas_slot *slot = task->lldd_task; @@ -74,7 +74,7 @@ index 6a959a927e9d..2f57a318a71b 100644 goto ex_err; } else -@@ -1404,6 +1415,17 @@ static int hisi_sas_abort_task(struct sas_task *task) +@@ -1404,6 +1415,17 @@ static int hisi_sas_abort_task(struct sa spin_lock_irqsave(&task->task_state_lock, flags); if (task->task_state_flags & SAS_TASK_STATE_DONE) { @@ -92,7 +92,7 @@ index 6a959a927e9d..2f57a318a71b 100644 spin_unlock_irqrestore(&task->task_state_lock, flags); rc = TMF_RESP_FUNC_COMPLETE; goto out; -@@ -1459,12 +1481,19 @@ static int hisi_sas_abort_task(struct sas_task *task) +@@ -1459,12 +1481,19 @@ static int hisi_sas_abort_task(struct sa /* SMP */ struct hisi_sas_slot *slot = task->lldd_task; u32 tag = slot->idx; @@ -114,15 +114,14 @@ index 6a959a927e9d..2f57a318a71b 100644 } out: -@@ -1830,9 +1859,17 @@ hisi_sas_internal_task_abort(struct hisi_hba *hisi_hba, +@@ -1830,9 +1859,17 @@ hisi_sas_internal_task_abort(struct hisi if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) { if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) { struct hisi_sas_slot *slot = task->lldd_task; -- -- if (slot) + struct hisi_sas_cq *cq = + &hisi_hba->cq[slot->dlvry_queue]; -+ + +- if (slot) + if (slot) { + /* + * flush tasklet to avoid free'ing task @@ -134,6 +133,3 @@ index 6a959a927e9d..2f57a318a71b 100644 dev_err(dev, "internal task abort: timeout and not done.\n"); res = -EIO; goto exit; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0004-scsi-hisi_sas-Free-slot-later-in-slot_complete_vx_hw.patch b/debian/patches/bugfix/arm64/huawei-taishan/0004-scsi-hisi_sas-Free-slot-later-in-slot_complete_vx_hw.patch index 05ac1ba27..724f04345 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0004-scsi-hisi_sas-Free-slot-later-in-slot_complete_vx_hw.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0004-scsi-hisi_sas-Free-slot-later-in-slot_complete_vx_hw.patch @@ -24,11 +24,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index 1c4ea58da1ae..c4774d63d5d0 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -2481,7 +2481,6 @@ slot_complete_v2_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -2481,7 +2481,6 @@ slot_complete_v2_hw(struct hisi_hba *his } out: @@ -36,7 +36,7 @@ index 1c4ea58da1ae..c4774d63d5d0 100644 sts = ts->stat; spin_lock_irqsave(&task->task_state_lock, flags); if (task->task_state_flags & SAS_TASK_STATE_ABORTED) { -@@ -2491,6 +2490,7 @@ slot_complete_v2_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -2491,6 +2490,7 @@ out: } task->task_state_flags |= SAS_TASK_STATE_DONE; spin_unlock_irqrestore(&task->task_state_lock, flags); @@ -44,11 +44,11 @@ index 1c4ea58da1ae..c4774d63d5d0 100644 if (!is_internal && (task->task_proto != SAS_PROTOCOL_SMP)) { spin_lock_irqsave(&device->done_lock, flags); -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 3922b17e2ea3..fb2a5969181b 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -1749,7 +1749,6 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -1749,7 +1749,6 @@ slot_complete_v3_hw(struct hisi_hba *his } out: @@ -56,7 +56,7 @@ index 3922b17e2ea3..fb2a5969181b 100644 sts = ts->stat; spin_lock_irqsave(&task->task_state_lock, flags); if (task->task_state_flags & SAS_TASK_STATE_ABORTED) { -@@ -1759,6 +1758,7 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -1759,6 +1758,7 @@ out: } task->task_state_flags |= SAS_TASK_STATE_DONE; spin_unlock_irqrestore(&task->task_state_lock, flags); @@ -64,6 +64,3 @@ index 3922b17e2ea3..fb2a5969181b 100644 if (!is_internal && (task->task_proto != SAS_PROTOCOL_SMP)) { spin_lock_irqsave(&device->done_lock, flags); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch b/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch index e6a7931c3..a25ca7885 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch @@ -14,11 +14,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index fb2a5969181b..06824bde9c8d 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -441,7 +441,7 @@ static void init_reg_v3_hw(struct hisi_hba *hisi_hba) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -441,7 +441,7 @@ static void init_reg_v3_hw(struct hisi_h hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK1, 0xfefefefe); hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK2, 0xfefefefe); if (pdev->revision >= 0x21) @@ -27,6 +27,3 @@ index fb2a5969181b..06824bde9c8d 100644 else hisi_sas_write32(hisi_hba, ENT_INT_SRC_MSK3, 0xfffe20ff); hisi_sas_write32(hisi_hba, CHNL_PHYUPDOWN_INT_MSK, 0x0); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch b/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch index 8bdd59bd3..86ee65d60 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch @@ -21,10 +21,10 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 8 ++- 5 files changed, 70 insertions(+), 40 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h -index 6c7d2e201abe..0ddb53c8a2e2 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas.h -+++ b/drivers/scsi/hisi_sas/hisi_sas.h +Index: linux/drivers/scsi/hisi_sas/hisi_sas.h +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h ++++ linux/drivers/scsi/hisi_sas/hisi_sas.h @@ -34,6 +34,7 @@ #define HISI_SAS_MAX_DEVICES HISI_SAS_MAX_ITCT_ENTRIES #define HISI_SAS_RESET_BIT 0 @@ -42,11 +42,11 @@ index 6c7d2e201abe..0ddb53c8a2e2 100644 struct domain_device *device); struct hisi_sas_device *(*alloc_dev)(struct domain_device *device); void (*sl_notify)(struct hisi_hba *hisi_hba, int phy_no); -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 2f57a318a71b..c2998d3ac37f 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -184,7 +184,14 @@ static void hisi_sas_slot_index_clear(struct hisi_hba *hisi_hba, int slot_idx) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -184,7 +184,14 @@ static void hisi_sas_slot_index_clear(st static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx) { @@ -62,7 +62,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 } static void hisi_sas_slot_index_set(struct hisi_hba *hisi_hba, int slot_idx) -@@ -194,24 +201,34 @@ static void hisi_sas_slot_index_set(struct hisi_hba *hisi_hba, int slot_idx) +@@ -194,24 +201,34 @@ static void hisi_sas_slot_index_set(stru set_bit(slot_idx, bitmap); } @@ -105,7 +105,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 } static void hisi_sas_slot_index_init(struct hisi_hba *hisi_hba) -@@ -250,9 +267,7 @@ void hisi_sas_slot_task_free(struct hisi_hba *hisi_hba, struct sas_task *task, +@@ -250,9 +267,7 @@ void hisi_sas_slot_task_free(struct hisi memset(slot, 0, offsetof(struct hisi_sas_slot, buf)); @@ -115,7 +115,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 } EXPORT_SYMBOL_GPL(hisi_sas_slot_task_free); -@@ -385,16 +400,27 @@ static int hisi_sas_task_prep(struct sas_task *task, +@@ -385,16 +400,27 @@ static int hisi_sas_task_prep(struct sas goto err_out_dma_unmap; } @@ -150,7 +150,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 slot = &hisi_hba->slot_info[slot_idx]; spin_lock_irqsave(&dq->lock, flags); -@@ -455,9 +481,7 @@ static int hisi_sas_task_prep(struct sas_task *task, +@@ -455,9 +481,7 @@ static int hisi_sas_task_prep(struct sas return 0; err_out_tag: @@ -160,7 +160,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 err_out_dma_unmap: if (!sas_protocol_ata(task->task_proto)) { if (task->num_scatter) { -@@ -1742,14 +1766,11 @@ hisi_sas_internal_abort_task_exec(struct hisi_hba *hisi_hba, int device_id, +@@ -1742,14 +1766,11 @@ hisi_sas_internal_abort_task_exec(struct port = to_hisi_sas_port(sas_port); /* simply get a slot and send abort command */ @@ -178,7 +178,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 slot = &hisi_hba->slot_info[slot_idx]; spin_lock_irqsave(&dq->lock, flags_dq); -@@ -1785,7 +1806,6 @@ hisi_sas_internal_abort_task_exec(struct hisi_hba *hisi_hba, int device_id, +@@ -1785,7 +1806,6 @@ hisi_sas_internal_abort_task_exec(struct spin_lock_irqsave(&task->task_state_lock, flags); task->task_state_flags |= SAS_TASK_AT_INITIATOR; spin_unlock_irqrestore(&task->task_state_lock, flags); @@ -186,7 +186,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 WRITE_ONCE(slot->ready, 1); /* send abort command to the chip */ spin_lock_irqsave(&dq->lock, flags); -@@ -1796,9 +1816,7 @@ hisi_sas_internal_abort_task_exec(struct hisi_hba *hisi_hba, int device_id, +@@ -1796,9 +1816,7 @@ hisi_sas_internal_abort_task_exec(struct return 0; err_out_tag: @@ -196,7 +196,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 err_out: dev_err(dev, "internal abort task prep: failed[%d]!\n", rc); -@@ -2174,6 +2192,8 @@ int hisi_sas_alloc(struct hisi_hba *hisi_hba, struct Scsi_Host *shost) +@@ -2174,6 +2192,8 @@ int hisi_sas_alloc(struct hisi_hba *hisi hisi_sas_init_mem(hisi_hba); hisi_sas_slot_index_init(hisi_hba); @@ -205,7 +205,7 @@ index 2f57a318a71b..c2998d3ac37f 100644 hisi_hba->wq = create_singlethread_workqueue(dev_name(dev)); if (!hisi_hba->wq) { -@@ -2377,8 +2397,15 @@ int hisi_sas_probe(struct platform_device *pdev, +@@ -2377,8 +2397,15 @@ int hisi_sas_probe(struct platform_devic shost->max_channel = 1; shost->max_cmd_len = 16; shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT); @@ -223,11 +223,11 @@ index 2f57a318a71b..c2998d3ac37f 100644 sha->sas_ha_name = DRV_NAME; sha->dev = hisi_hba->dev; -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -index 410eccf0bc5e..8df822a4a1bd 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -@@ -1807,7 +1807,6 @@ static struct scsi_host_template sht_v1_hw = { +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +@@ -1807,7 +1807,6 @@ static struct scsi_host_template sht_v1_ .scan_start = hisi_sas_scan_start, .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, @@ -235,11 +235,11 @@ index 410eccf0bc5e..8df822a4a1bd 100644 .this_id = -1, .sg_tablesize = SG_ALL, .max_sectors = SCSI_DEFAULT_MAX_SECTORS, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index c4774d63d5d0..58a564c75a35 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -770,7 +770,7 @@ static u32 hisi_sas_phy_read32(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -770,7 +770,7 @@ static u32 hisi_sas_phy_read32(struct hi /* This function needs to be protected from pre-emption. */ static int @@ -248,7 +248,7 @@ index c4774d63d5d0..58a564c75a35 100644 struct domain_device *device) { int sata_dev = dev_is_sata(device); -@@ -778,6 +778,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba, int *slot_idx, +@@ -778,6 +778,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi struct hisi_sas_device *sas_dev = device->lldd_dev; int sata_idx = sas_dev->sata_idx; int start, end; @@ -256,7 +256,7 @@ index c4774d63d5d0..58a564c75a35 100644 if (!sata_dev) { /* -@@ -801,6 +802,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba, int *slot_idx, +@@ -801,6 +802,7 @@ slot_index_alloc_quirk_v2_hw(struct hisi end = 64 * (sata_idx + 2); } @@ -264,7 +264,7 @@ index c4774d63d5d0..58a564c75a35 100644 while (1) { start = find_next_zero_bit(bitmap, hisi_hba->slot_index_count, start); -@@ -815,8 +817,8 @@ slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba, int *slot_idx, +@@ -815,8 +817,8 @@ slot_index_alloc_quirk_v2_hw(struct hisi } set_bit(start, bitmap); @@ -275,7 +275,7 @@ index c4774d63d5d0..58a564c75a35 100644 } static bool sata_index_alloc_v2_hw(struct hisi_hba *hisi_hba, int *idx) -@@ -3558,7 +3560,6 @@ static struct scsi_host_template sht_v2_hw = { +@@ -3558,7 +3560,6 @@ static struct scsi_host_template sht_v2_ .scan_start = hisi_sas_scan_start, .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, @@ -283,11 +283,11 @@ index c4774d63d5d0..58a564c75a35 100644 .this_id = -1, .sg_tablesize = SG_ALL, .max_sectors = SCSI_DEFAULT_MAX_SECTORS, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 06824bde9c8d..a0fc2d5de787 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2096,7 +2096,6 @@ static struct scsi_host_template sht_v3_hw = { +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2096,7 +2096,6 @@ static struct scsi_host_template sht_v3_ .scan_start = hisi_sas_scan_start, .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, @@ -295,7 +295,7 @@ index 06824bde9c8d..a0fc2d5de787 100644 .this_id = -1, .sg_tablesize = SG_ALL, .max_sectors = SCSI_DEFAULT_MAX_SECTORS, -@@ -2106,6 +2105,7 @@ static struct scsi_host_template sht_v3_hw = { +@@ -2106,6 +2105,7 @@ static struct scsi_host_template sht_v3_ .target_destroy = sas_target_destroy, .ioctl = sas_ioctl, .shost_attrs = host_attrs, @@ -303,7 +303,7 @@ index 06824bde9c8d..a0fc2d5de787 100644 }; static const struct hisi_sas_hw hisi_sas_v3_hw = { -@@ -2243,8 +2243,10 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) +@@ -2243,8 +2243,10 @@ hisi_sas_v3_probe(struct pci_dev *pdev, shost->max_channel = 1; shost->max_cmd_len = 16; shost->sg_tablesize = min_t(u16, SG_ALL, HISI_SAS_SGE_PAGE_CNT); @@ -316,6 +316,3 @@ index 06824bde9c8d..a0fc2d5de787 100644 sha->sas_ha_name = DRV_NAME; sha->dev = dev; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch b/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch index 8f72f96bb..440ad1a4a 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch @@ -24,10 +24,10 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index a0fc2d5de787..c3e0be90e19f 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -127,6 +127,7 @@ #define PHY_CTRL_RESET_OFF 0 #define PHY_CTRL_RESET_MSK (0x1 << PHY_CTRL_RESET_OFF) @@ -36,7 +36,7 @@ index a0fc2d5de787..c3e0be90e19f 100644 #define SL_CONTROL (PORT_BASE + 0x94) #define SL_CONTROL_NOTIFY_EN_OFF 0 #define SL_CONTROL_NOTIFY_EN_MSK (0x1 << SL_CONTROL_NOTIFY_EN_OFF) -@@ -431,6 +432,7 @@ static void init_reg_v3_hw(struct hisi_hba *hisi_hba) +@@ -431,6 +432,7 @@ static void init_reg_v3_hw(struct hisi_h (u32)((1ULL << hisi_hba->queue_count) - 1)); hisi_sas_write32(hisi_hba, CFG_MAX_TAG, 0xfff0400); hisi_sas_write32(hisi_hba, HGC_SAS_TXFAIL_RETRY_CTRL, 0x108); @@ -44,7 +44,7 @@ index a0fc2d5de787..c3e0be90e19f 100644 hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x1); hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME, 0x1); hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT, 0x1); -@@ -495,6 +497,7 @@ static void init_reg_v3_hw(struct hisi_hba *hisi_hba) +@@ -495,6 +497,7 @@ static void init_reg_v3_hw(struct hisi_h hisi_sas_phy_write32(hisi_hba, i, SAS_SSP_CON_TIMER_CFG, 0x32); /* used for 12G negotiate */ hisi_sas_phy_write32(hisi_hba, i, COARSETUNE_TIME, 0x1e); @@ -52,6 +52,3 @@ index a0fc2d5de787..c3e0be90e19f 100644 } for (i = 0; i < hisi_hba->queue_count; i++) { --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch b/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch index d0083f64e..1dbe7390b 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0008-scsi-hisi_sas-Fix-spin-lock-management-in-slot_index.patch @@ -15,11 +15,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index 58a564c75a35..77a85ead483e 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -806,8 +806,10 @@ slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -806,8 +806,10 @@ slot_index_alloc_quirk_v2_hw(struct hisi while (1) { start = find_next_zero_bit(bitmap, hisi_hba->slot_index_count, start); @@ -31,6 +31,3 @@ index 58a564c75a35..77a85ead483e 100644 /* * SAS IPTT bit0 should be 1, and SATA IPTT bit0 should be 0. */ --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch b/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch index 0bad1af78..9e466ba4c 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0009-scsi-hisi_sas-use-dma_set_mask_and_coherent.patch @@ -14,11 +14,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index c3e0be90e19f..43005d39abe6 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2199,14 +2199,11 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2199,14 +2199,11 @@ hisi_sas_v3_probe(struct pci_dev *pdev, if (rc) goto err_out_disable_device; @@ -38,6 +38,3 @@ index c3e0be90e19f..43005d39abe6 100644 } shost = hisi_sas_shost_alloc_pci(pdev); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch b/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch index 15e139004..187edf001 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0010-scsi-hisi_sas-Create-separate-host-attributes-per-HB.patch @@ -20,11 +20,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 7 ++++++- 5 files changed, 18 insertions(+), 10 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h -index 0ddb53c8a2e2..94a9e13c069c 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas.h -+++ b/drivers/scsi/hisi_sas/hisi_sas.h -@@ -468,7 +468,6 @@ extern int hisi_sas_remove(struct platform_device *pdev); +Index: linux/drivers/scsi/hisi_sas/hisi_sas.h +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h ++++ linux/drivers/scsi/hisi_sas/hisi_sas.h +@@ -468,7 +468,6 @@ extern int hisi_sas_remove(struct platfo extern int hisi_sas_slave_configure(struct scsi_device *sdev); extern int hisi_sas_scan_finished(struct Scsi_Host *shost, unsigned long time); extern void hisi_sas_scan_start(struct Scsi_Host *shost); @@ -32,11 +32,11 @@ index 0ddb53c8a2e2..94a9e13c069c 100644 extern int hisi_sas_host_reset(struct Scsi_Host *shost, int reset_type); extern void hisi_sas_phy_down(struct hisi_hba *hisi_hba, int phy_no, int rdy); extern void hisi_sas_slot_task_free(struct hisi_hba *hisi_hba, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index c2998d3ac37f..dc71f8d83551 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -2009,12 +2009,6 @@ EXPORT_SYMBOL_GPL(hisi_sas_kill_tasklets); +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -2009,12 +2009,6 @@ EXPORT_SYMBOL_GPL(hisi_sas_kill_tasklets struct scsi_transport_template *hisi_sas_stt; EXPORT_SYMBOL_GPL(hisi_sas_stt); @@ -49,11 +49,11 @@ index c2998d3ac37f..dc71f8d83551 100644 static struct sas_domain_function_template hisi_sas_transport_ops = { .lldd_dev_found = hisi_sas_dev_found, .lldd_dev_gone = hisi_sas_dev_gone, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -index 8df822a4a1bd..e8e3a876e493 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -@@ -1797,6 +1797,11 @@ static int hisi_sas_v1_init(struct hisi_hba *hisi_hba) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +@@ -1797,6 +1797,11 @@ static int hisi_sas_v1_init(struct hisi_ return 0; } @@ -65,7 +65,7 @@ index 8df822a4a1bd..e8e3a876e493 100644 static struct scsi_host_template sht_v1_hw = { .name = DRV_NAME, .module = THIS_MODULE, -@@ -1815,7 +1820,7 @@ static struct scsi_host_template sht_v1_hw = { +@@ -1815,7 +1820,7 @@ static struct scsi_host_template sht_v1_ .eh_target_reset_handler = sas_eh_target_reset_handler, .target_destroy = sas_target_destroy, .ioctl = sas_ioctl, @@ -74,11 +74,11 @@ index 8df822a4a1bd..e8e3a876e493 100644 }; static const struct hisi_sas_hw hisi_sas_v1_hw = { -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index 77a85ead483e..574a269e2865 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -3552,6 +3552,11 @@ static void wait_cmds_complete_timeout_v2_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -3552,6 +3552,11 @@ static void wait_cmds_complete_timeout_v dev_dbg(dev, "wait commands complete %dms\n", time); } @@ -90,7 +90,7 @@ index 77a85ead483e..574a269e2865 100644 static struct scsi_host_template sht_v2_hw = { .name = DRV_NAME, .module = THIS_MODULE, -@@ -3570,7 +3575,7 @@ static struct scsi_host_template sht_v2_hw = { +@@ -3570,7 +3575,7 @@ static struct scsi_host_template sht_v2_ .eh_target_reset_handler = sas_eh_target_reset_handler, .target_destroy = sas_target_destroy, .ioctl = sas_ioctl, @@ -99,11 +99,11 @@ index 77a85ead483e..574a269e2865 100644 }; static const struct hisi_sas_hw hisi_sas_v2_hw = { -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 43005d39abe6..1d0896959fbb 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2089,6 +2089,11 @@ static void wait_cmds_complete_timeout_v3_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2089,6 +2089,11 @@ static void wait_cmds_complete_timeout_v dev_dbg(dev, "wait commands complete %dms\n", time); } @@ -115,7 +115,7 @@ index 43005d39abe6..1d0896959fbb 100644 static struct scsi_host_template sht_v3_hw = { .name = DRV_NAME, .module = THIS_MODULE, -@@ -2107,7 +2112,7 @@ static struct scsi_host_template sht_v3_hw = { +@@ -2107,7 +2112,7 @@ static struct scsi_host_template sht_v3_ .eh_target_reset_handler = sas_eh_target_reset_handler, .target_destroy = sas_target_destroy, .ioctl = sas_ioctl, @@ -124,6 +124,3 @@ index 43005d39abe6..1d0896959fbb 100644 .tag_alloc_policy = BLK_TAG_ALLOC_RR, }; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch b/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch index fab91f300..ae1b2d718 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0011-scsi-hisi_sas-Add-support-for-interrupt-converge-for.patch @@ -17,10 +17,10 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 29 +++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 1d0896959fbb..b70190936f1b 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -42,6 +42,7 @@ #define MAX_CON_TIME_LIMIT_TIME 0xa4 #define BUS_INACTIVE_LIMIT_TIME 0xa8 @@ -39,7 +39,7 @@ index 1d0896959fbb..b70190936f1b 100644 static u32 hisi_sas_read32(struct hisi_hba *hisi_hba, u32 off) { void __iomem *regs = hisi_hba->regs + off; -@@ -436,6 +440,8 @@ static void init_reg_v3_hw(struct hisi_hba *hisi_hba) +@@ -436,6 +440,8 @@ static void init_reg_v3_hw(struct hisi_h hisi_sas_write32(hisi_hba, INT_COAL_EN, 0x1); hisi_sas_write32(hisi_hba, OQ_INT_COAL_TIME, 0x1); hisi_sas_write32(hisi_hba, OQ_INT_COAL_CNT, 0x1); @@ -48,7 +48,7 @@ index 1d0896959fbb..b70190936f1b 100644 hisi_sas_write32(hisi_hba, OQ_INT_SRC, 0xffff); hisi_sas_write32(hisi_hba, ENT_INT_SRC1, 0xffffffff); hisi_sas_write32(hisi_hba, ENT_INT_SRC2, 0xffffffff); -@@ -1878,10 +1884,12 @@ static int interrupt_init_v3_hw(struct hisi_hba *hisi_hba) +@@ -1878,10 +1884,12 @@ static int interrupt_init_v3_hw(struct h for (i = 0; i < hisi_hba->queue_count; i++) { struct hisi_sas_cq *cq = &hisi_hba->cq[i]; struct tasklet_struct *t = &cq->tasklet; @@ -64,7 +64,7 @@ index 1d0896959fbb..b70190936f1b 100644 if (rc) { dev_err(dev, "could not request cq%d interrupt, rc=%d\n", -@@ -1898,8 +1906,9 @@ static int interrupt_init_v3_hw(struct hisi_hba *hisi_hba) +@@ -1898,8 +1906,9 @@ static int interrupt_init_v3_hw(struct h free_cq_irqs: for (k = 0; k < i; k++) { struct hisi_sas_cq *cq = &hisi_hba->cq[k]; @@ -75,7 +75,7 @@ index 1d0896959fbb..b70190936f1b 100644 } free_irq(pci_irq_vector(pdev, 11), hisi_hba); free_chnl_interrupt: -@@ -2089,8 +2098,16 @@ static void wait_cmds_complete_timeout_v3_hw(struct hisi_hba *hisi_hba, +@@ -2089,8 +2098,16 @@ static void wait_cmds_complete_timeout_v dev_dbg(dev, "wait commands complete %dms\n", time); } @@ -92,7 +92,7 @@ index 1d0896959fbb..b70190936f1b 100644 NULL }; -@@ -2303,8 +2320,9 @@ hisi_sas_v3_destroy_irqs(struct pci_dev *pdev, struct hisi_hba *hisi_hba) +@@ -2303,8 +2320,9 @@ hisi_sas_v3_destroy_irqs(struct pci_dev free_irq(pci_irq_vector(pdev, 11), hisi_hba); for (i = 0; i < hisi_hba->queue_count; i++) { struct hisi_sas_cq *cq = &hisi_hba->cq[i]; @@ -103,7 +103,7 @@ index 1d0896959fbb..b70190936f1b 100644 } pci_free_irq_vectors(pdev); } -@@ -2626,6 +2644,7 @@ static struct pci_driver sas_v3_pci_driver = { +@@ -2626,6 +2644,7 @@ static struct pci_driver sas_v3_pci_driv }; module_pci_driver(sas_v3_pci_driver); @@ -111,6 +111,3 @@ index 1d0896959fbb..b70190936f1b 100644 MODULE_LICENSE("GPL"); MODULE_AUTHOR("John Garry "); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch b/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch index fa038117d..4595633a2 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0012-scsi-hisi_sas-Add-support-for-interrupt-coalescing-f.patch @@ -21,10 +21,10 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 100 +++++++++++++++++++++++++ 2 files changed, 102 insertions(+) -diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h -index 94a9e13c069c..535c61391250 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas.h -+++ b/drivers/scsi/hisi_sas/hisi_sas.h +Index: linux/drivers/scsi/hisi_sas/hisi_sas.h +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h ++++ linux/drivers/scsi/hisi_sas/hisi_sas.h @@ -322,6 +322,8 @@ struct hisi_hba { unsigned long sata_dev_bitmap[BITS_TO_LONGS(HISI_SAS_MAX_DEVICES)]; struct work_struct rst_work; @@ -34,11 +34,11 @@ index 94a9e13c069c..535c61391250 100644 }; /* Generic HW DMA host memory structures */ -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index b70190936f1b..7d7cb73e4bee 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2105,9 +2105,109 @@ static ssize_t intr_conv_v3_hw_show(struct device *dev, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2105,9 +2105,109 @@ static ssize_t intr_conv_v3_hw_show(stru } static DEVICE_ATTR_RO(intr_conv_v3_hw); @@ -148,6 +148,3 @@ index b70190936f1b..7d7cb73e4bee 100644 NULL }; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch b/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch index 5e52eb5c0..911e2bf40 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0013-scsi-hisi_sas-Relocate-some-codes-to-avoid-an-unused.patch @@ -17,11 +17,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 44 ++++++++++++++------------- 1 file changed, 23 insertions(+), 21 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index dc71f8d83551..15360d797760 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -303,36 +303,19 @@ static int hisi_sas_task_prep(struct sas_task *task, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -303,36 +303,19 @@ static int hisi_sas_task_prep(struct sas int *pass) { struct domain_device *device = task->dev; @@ -60,7 +60,7 @@ index dc71f8d83551..15360d797760 100644 if (DEV_IS_GONE(sas_dev)) { if (sas_dev) dev_info(dev, "task prep: device %d not ready\n", -@@ -507,10 +490,29 @@ static int hisi_sas_task_exec(struct sas_task *task, gfp_t gfp_flags, +@@ -507,10 +490,29 @@ static int hisi_sas_task_exec(struct sas u32 rc; u32 pass = 0; unsigned long flags; @@ -92,6 +92,3 @@ index dc71f8d83551..15360d797760 100644 if (unlikely(test_bit(HISI_SAS_REJECT_CMD_BIT, &hisi_hba->flags))) { if (in_softirq()) return -EINVAL; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch b/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch index b3746e519..1f9ed71c0 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0014-scsi-hisi_sas-Fix-warnings-detected-by-sparse.patch @@ -22,10 +22,10 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 37 +++++++++------ 5 files changed, 71 insertions(+), 55 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h -index 535c61391250..912d2342a5fe 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas.h -+++ b/drivers/scsi/hisi_sas/hisi_sas.h +Index: linux/drivers/scsi/hisi_sas/hisi_sas.h +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas.h ++++ linux/drivers/scsi/hisi_sas/hisi_sas.h @@ -211,7 +211,7 @@ struct hisi_sas_slot { /* Do not reorder/change members after here */ void *buf; @@ -35,11 +35,11 @@ index 535c61391250..912d2342a5fe 100644 }; struct hisi_sas_hw { -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 15360d797760..ab6c7938e172 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -1463,12 +1463,12 @@ static int hisi_sas_abort_task(struct sas_task *task) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -1463,12 +1463,12 @@ static int hisi_sas_abort_task(struct sa if (task->lldd_task && task->task_proto & SAS_PROTOCOL_SSP) { struct scsi_cmnd *cmnd = task->uldd_task; struct hisi_sas_slot *slot = task->lldd_task; @@ -54,7 +54,7 @@ index 15360d797760..ab6c7938e172 100644 rc = hisi_sas_debug_issue_ssp_tmf(task->dev, lun.scsi_lun, &tmf_task); -@@ -1722,7 +1722,7 @@ static int hisi_sas_query_task(struct sas_task *task) +@@ -1722,7 +1722,7 @@ static int hisi_sas_query_task(struct sa int_to_scsilun(cmnd->device->lun, &lun); tmf_task.tmf = TMF_QUERY_TASK; @@ -63,11 +63,11 @@ index 15360d797760..ab6c7938e172 100644 rc = hisi_sas_debug_issue_ssp_tmf(device, lun.scsi_lun, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -index e8e3a876e493..cb1198f0ddde 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -@@ -510,6 +510,7 @@ static void setup_itct_v1_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +@@ -510,6 +510,7 @@ static void setup_itct_v1_hw(struct hisi struct hisi_sas_itct *itct = &hisi_hba->itct[device_id]; struct asd_sas_port *sas_port = device->port; struct hisi_sas_port *port = to_hisi_sas_port(sas_port); @@ -75,7 +75,7 @@ index e8e3a876e493..cb1198f0ddde 100644 memset(itct, 0, sizeof(*itct)); -@@ -534,8 +535,8 @@ static void setup_itct_v1_hw(struct hisi_hba *hisi_hba, +@@ -534,8 +535,8 @@ static void setup_itct_v1_hw(struct hisi itct->qw0 = cpu_to_le64(qw0); /* qw1 */ @@ -86,7 +86,7 @@ index e8e3a876e493..cb1198f0ddde 100644 /* qw2 */ itct->qw2 = cpu_to_le64((500ULL << ITCT_HDR_IT_NEXUS_LOSS_TL_OFF) | -@@ -561,7 +562,7 @@ static void clear_itct_v1_hw(struct hisi_hba *hisi_hba, +@@ -561,7 +562,7 @@ static void clear_itct_v1_hw(struct hisi reg_val &= ~CFG_AGING_TIME_ITCT_REL_MSK; hisi_sas_write32(hisi_hba, CFG_AGING_TIME, reg_val); @@ -95,7 +95,7 @@ index e8e3a876e493..cb1198f0ddde 100644 qw0 &= ~ITCT_HDR_VALID_MSK; itct->qw0 = cpu_to_le64(qw0); } -@@ -1100,7 +1101,7 @@ static void slot_err_v1_hw(struct hisi_hba *hisi_hba, +@@ -1100,7 +1101,7 @@ static void slot_err_v1_hw(struct hisi_h case SAS_PROTOCOL_SSP: { int error = -1; @@ -104,7 +104,7 @@ index e8e3a876e493..cb1198f0ddde 100644 u32 dma_tx_err_type = ((dma_err_type & ERR_HDR_DMA_TX_ERR_TYPE_MSK)) >> ERR_HDR_DMA_TX_ERR_TYPE_OFF; -@@ -1108,9 +1109,9 @@ static void slot_err_v1_hw(struct hisi_hba *hisi_hba, +@@ -1108,9 +1109,9 @@ static void slot_err_v1_hw(struct hisi_h ERR_HDR_DMA_RX_ERR_TYPE_MSK)) >> ERR_HDR_DMA_RX_ERR_TYPE_OFF; u32 trans_tx_fail_type = @@ -116,7 +116,7 @@ index e8e3a876e493..cb1198f0ddde 100644 if (dma_tx_err_type) { /* dma tx err */ -@@ -1558,7 +1559,7 @@ static irqreturn_t cq_interrupt_v1_hw(int irq, void *p) +@@ -1558,7 +1559,7 @@ static irqreturn_t cq_interrupt_v1_hw(in u32 cmplt_hdr_data; complete_hdr = &complete_queue[rd_point]; @@ -125,11 +125,11 @@ index e8e3a876e493..cb1198f0ddde 100644 idx = (cmplt_hdr_data & CMPLT_HDR_IPTT_MSK) >> CMPLT_HDR_IPTT_OFF; slot = &hisi_hba->slot_info[idx]; -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index 574a269e2865..c17dd500fba1 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -934,6 +934,7 @@ static void setup_itct_v2_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -934,6 +934,7 @@ static void setup_itct_v2_hw(struct hisi struct domain_device *parent_dev = device->parent; struct asd_sas_port *sas_port = device->port; struct hisi_sas_port *port = to_hisi_sas_port(sas_port); @@ -137,7 +137,7 @@ index 574a269e2865..c17dd500fba1 100644 memset(itct, 0, sizeof(*itct)); -@@ -966,8 +967,8 @@ static void setup_itct_v2_hw(struct hisi_hba *hisi_hba, +@@ -966,8 +967,8 @@ static void setup_itct_v2_hw(struct hisi itct->qw0 = cpu_to_le64(qw0); /* qw1 */ @@ -148,7 +148,7 @@ index 574a269e2865..c17dd500fba1 100644 /* qw2 */ if (!dev_is_sata(device)) -@@ -2044,11 +2045,11 @@ static void slot_err_v2_hw(struct hisi_hba *hisi_hba, +@@ -2044,11 +2045,11 @@ static void slot_err_v2_hw(struct hisi_h struct task_status_struct *ts = &task->task_status; struct hisi_sas_err_record_v2 *err_record = hisi_sas_status_buf_addr_mem(slot); @@ -165,7 +165,7 @@ index 574a269e2865..c17dd500fba1 100644 int error = -1; if (err_phase == 1) { -@@ -2059,8 +2060,7 @@ static void slot_err_v2_hw(struct hisi_hba *hisi_hba, +@@ -2059,8 +2060,7 @@ static void slot_err_v2_hw(struct hisi_h trans_tx_fail_type); } else if (err_phase == 2) { /* error in RX phase, the priority is: DW1 > DW3 > DW2 */ @@ -175,7 +175,7 @@ index 574a269e2865..c17dd500fba1 100644 if (error == -1) { error = parse_dma_rx_err_code_v2_hw( dma_rx_err_type); -@@ -2358,6 +2358,7 @@ slot_complete_v2_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -2358,6 +2358,7 @@ slot_complete_v2_hw(struct hisi_hba *his &complete_queue[slot->cmplt_queue_slot]; unsigned long flags; bool is_internal = slot->is_internal; @@ -183,7 +183,7 @@ index 574a269e2865..c17dd500fba1 100644 if (unlikely(!task || !task->lldd_task || !task->dev)) return -EINVAL; -@@ -2382,8 +2383,9 @@ slot_complete_v2_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -2382,8 +2383,9 @@ slot_complete_v2_hw(struct hisi_hba *his } /* Use SAS+TMF status codes */ @@ -195,7 +195,7 @@ index 574a269e2865..c17dd500fba1 100644 case STAT_IO_ABORTED: /* this io has been aborted by abort command */ ts->stat = SAS_ABORTED_TASK; -@@ -2408,9 +2410,8 @@ slot_complete_v2_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -2408,9 +2410,8 @@ slot_complete_v2_hw(struct hisi_hba *his break; } @@ -207,7 +207,7 @@ index 574a269e2865..c17dd500fba1 100644 >> CMPLT_HDR_ERR_PHASE_OFF; u32 *error_info = hisi_sas_status_buf_addr_mem(slot); -@@ -2526,22 +2527,23 @@ static void prep_ata_v2_hw(struct hisi_hba *hisi_hba, +@@ -2526,22 +2527,23 @@ static void prep_ata_v2_hw(struct hisi_h struct hisi_sas_tmf_task *tmf = slot->tmf; u8 *buf_cmd; int has_data = 0, hdr_tag = 0; @@ -238,7 +238,7 @@ index 574a269e2865..c17dd500fba1 100644 /* dw1 */ switch (task->data_dir) { case DMA_TO_DEVICE: -@@ -3152,20 +3154,24 @@ static void cq_tasklet_v2_hw(unsigned long val) +@@ -3152,20 +3154,24 @@ static void cq_tasklet_v2_hw(unsigned lo /* Check for NCQ completion */ if (complete_hdr->act) { @@ -269,7 +269,7 @@ index 574a269e2865..c17dd500fba1 100644 slot = &hisi_hba->slot_info[iptt]; slot->cmplt_queue_slot = rd_point; -@@ -3176,7 +3182,9 @@ static void cq_tasklet_v2_hw(unsigned long val) +@@ -3176,7 +3182,9 @@ static void cq_tasklet_v2_hw(unsigned lo ncq_tag_count = ffs(act_tmp); } } else { @@ -280,7 +280,7 @@ index 574a269e2865..c17dd500fba1 100644 slot = &hisi_hba->slot_info[iptt]; slot->cmplt_queue_slot = rd_point; slot->cmplt_queue = queue; -@@ -3552,7 +3560,7 @@ static void wait_cmds_complete_timeout_v2_hw(struct hisi_hba *hisi_hba, +@@ -3552,7 +3560,7 @@ static void wait_cmds_complete_timeout_v dev_dbg(dev, "wait commands complete %dms\n", time); } @@ -289,11 +289,11 @@ index 574a269e2865..c17dd500fba1 100644 &dev_attr_phy_event_threshold, NULL }; -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 7d7cb73e4bee..23f40b57b298 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -628,6 +628,7 @@ static void setup_itct_v3_hw(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -628,6 +628,7 @@ static void setup_itct_v3_hw(struct hisi struct domain_device *parent_dev = device->parent; struct asd_sas_port *sas_port = device->port; struct hisi_sas_port *port = to_hisi_sas_port(sas_port); @@ -301,7 +301,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 memset(itct, 0, sizeof(*itct)); -@@ -660,8 +661,8 @@ static void setup_itct_v3_hw(struct hisi_hba *hisi_hba, +@@ -660,8 +661,8 @@ static void setup_itct_v3_hw(struct hisi itct->qw0 = cpu_to_le64(qw0); /* qw1 */ @@ -312,7 +312,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 /* qw2 */ if (!dev_is_sata(device)) -@@ -1590,15 +1591,16 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba, struct sas_task *task, +@@ -1590,15 +1591,16 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba &complete_queue[slot->cmplt_queue_slot]; struct hisi_sas_err_record_v3 *record = hisi_sas_status_buf_addr_mem(slot); @@ -332,7 +332,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 ts->stat = SAS_QUEUE_FULL; slot->abort = 1; } else { -@@ -1612,7 +1614,7 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba, struct sas_task *task, +@@ -1612,7 +1614,7 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba if (dma_rx_err_type & RX_DATA_LEN_UNDERFLOW_MSK) { ts->residual = trans_tx_fail_type; ts->stat = SAS_DATA_UNDERRUN; @@ -341,7 +341,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 ts->stat = SAS_PHY_DOWN; slot->abort = 1; } else { -@@ -1645,6 +1647,7 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -1645,6 +1647,7 @@ slot_complete_v3_hw(struct hisi_hba *his &complete_queue[slot->cmplt_queue_slot]; unsigned long flags; bool is_internal = slot->is_internal; @@ -349,7 +349,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 if (unlikely(!task || !task->lldd_task || !task->dev)) return -EINVAL; -@@ -1668,11 +1671,14 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -1668,11 +1671,14 @@ slot_complete_v3_hw(struct hisi_hba *his goto out; } @@ -366,7 +366,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 case STAT_IO_ABORTED: /* this IO has been aborted by abort command */ ts->stat = SAS_ABORTED_TASK; -@@ -1695,7 +1701,7 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -1695,7 +1701,7 @@ slot_complete_v3_hw(struct hisi_hba *his } /* check for erroneous completion */ @@ -375,7 +375,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 u32 *error_info = hisi_sas_status_buf_addr_mem(slot); slot_err_v3_hw(hisi_hba, task, slot); -@@ -1704,8 +1710,7 @@ slot_complete_v3_hw(struct hisi_hba *hisi_hba, struct hisi_sas_slot *slot) +@@ -1704,8 +1710,7 @@ slot_complete_v3_hw(struct hisi_hba *his "CQ hdr: 0x%x 0x%x 0x%x 0x%x " "Error info: 0x%x 0x%x 0x%x 0x%x\n", slot->idx, task, sas_dev->device_id, @@ -385,7 +385,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 error_info[0], error_info[1], error_info[2], error_info[3]); if (unlikely(slot->abort)) -@@ -1803,11 +1808,13 @@ static void cq_tasklet_v3_hw(unsigned long val) +@@ -1803,11 +1808,13 @@ static void cq_tasklet_v3_hw(unsigned lo while (rd_point != wr_point) { struct hisi_sas_complete_v3_hdr *complete_hdr; struct device *dev = hisi_hba->dev; @@ -400,7 +400,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 if (likely(iptt < HISI_SAS_COMMAND_ENTRIES_V3_HW)) { slot = &hisi_hba->slot_info[iptt]; slot->cmplt_queue_slot = rd_point; -@@ -2203,7 +2210,7 @@ static ssize_t intr_coal_count_v3_hw_store(struct device *dev, +@@ -2203,7 +2210,7 @@ static ssize_t intr_coal_count_v3_hw_sto } static DEVICE_ATTR_RW(intr_coal_count_v3_hw); @@ -409,7 +409,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 &dev_attr_phy_event_threshold, &dev_attr_intr_conv_v3_hw, &dev_attr_intr_coal_ticks_v3_hw, -@@ -2649,7 +2656,7 @@ static int hisi_sas_v3_suspend(struct pci_dev *pdev, pm_message_t state) +@@ -2649,7 +2656,7 @@ static int hisi_sas_v3_suspend(struct pc struct hisi_hba *hisi_hba = sha->lldd_ha; struct device *dev = hisi_hba->dev; struct Scsi_Host *shost = hisi_hba->shost; @@ -418,7 +418,7 @@ index 7d7cb73e4bee..23f40b57b298 100644 int rc; if (!pdev->pm_cap) { -@@ -2695,7 +2702,7 @@ static int hisi_sas_v3_resume(struct pci_dev *pdev) +@@ -2695,7 +2702,7 @@ static int hisi_sas_v3_resume(struct pci struct Scsi_Host *shost = hisi_hba->shost; struct device *dev = hisi_hba->dev; unsigned int rc; @@ -427,6 +427,3 @@ index 7d7cb73e4bee..23f40b57b298 100644 dev_warn(dev, "resuming from operating state [D%d]\n", device_state); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch b/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch index 37cbfb23b..1e44aa3b8 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0015-scsi-hisi_sas-Relocate-some-code-to-reduce-complexit.patch @@ -14,11 +14,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 146 ++++++++++++++++---------- 1 file changed, 90 insertions(+), 56 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index ab6c7938e172..18062e4ab9a5 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -297,6 +297,90 @@ static void hisi_sas_task_prep_abort(struct hisi_hba *hisi_hba, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -297,6 +297,90 @@ static void hisi_sas_task_prep_abort(str device_id, abort_flag, tag_to_abort); } @@ -109,7 +109,7 @@ index ab6c7938e172..18062e4ab9a5 100644 static int hisi_sas_task_prep(struct sas_task *task, struct hisi_sas_dq **dq_pointer, bool is_tmf, struct hisi_sas_tmf_task *tmf, -@@ -339,49 +423,10 @@ static int hisi_sas_task_prep(struct sas_task *task, +@@ -339,49 +423,10 @@ static int hisi_sas_task_prep(struct sas return -ECOMM; } @@ -163,7 +163,7 @@ index ab6c7938e172..18062e4ab9a5 100644 if (hisi_hba->hw->slot_index_alloc) rc = hisi_hba->hw->slot_index_alloc(hisi_hba, device); -@@ -466,19 +511,8 @@ static int hisi_sas_task_prep(struct sas_task *task, +@@ -466,19 +511,8 @@ static int hisi_sas_task_prep(struct sas err_out_tag: hisi_sas_slot_index_free(hisi_hba, slot_idx); err_out_dma_unmap: @@ -185,6 +185,3 @@ index ab6c7938e172..18062e4ab9a5 100644 prep_out: dev_err(dev, "task prep: failed[%d]!\n", rc); return rc; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch b/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch index b9411ffcc..e025687be 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0016-scsi-hisi_sas-Make-sg_tablesize-consistent-value.patch @@ -21,11 +21,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 3 +-- 4 files changed, 3 insertions(+), 5 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 18062e4ab9a5..764d651879cf 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -2426,7 +2426,6 @@ int hisi_sas_probe(struct platform_device *pdev, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -2426,7 +2426,6 @@ int hisi_sas_probe(struct platform_devic shost->max_lun = ~0; shost->max_channel = 1; shost->max_cmd_len = 16; @@ -33,11 +33,11 @@ index 18062e4ab9a5..764d651879cf 100644 if (hisi_hba->hw->slot_index_alloc) { shost->can_queue = hisi_hba->hw->max_command_entries; shost->cmd_per_lun = hisi_hba->hw->max_command_entries; -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -index cb1198f0ddde..ef23d26b2271 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c -@@ -1814,7 +1814,7 @@ static struct scsi_host_template sht_v1_hw = { +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c +@@ -1814,7 +1814,7 @@ static struct scsi_host_template sht_v1_ .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, .this_id = -1, @@ -46,11 +46,11 @@ index cb1198f0ddde..ef23d26b2271 100644 .max_sectors = SCSI_DEFAULT_MAX_SECTORS, .use_clustering = ENABLE_CLUSTERING, .eh_device_reset_handler = sas_eh_device_reset_handler, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -index c17dd500fba1..0341fa72d97e 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c -@@ -3576,7 +3576,7 @@ static struct scsi_host_template sht_v2_hw = { +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +@@ -3576,7 +3576,7 @@ static struct scsi_host_template sht_v2_ .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, .this_id = -1, @@ -59,11 +59,11 @@ index c17dd500fba1..0341fa72d97e 100644 .max_sectors = SCSI_DEFAULT_MAX_SECTORS, .use_clustering = ENABLE_CLUSTERING, .eh_device_reset_handler = sas_eh_device_reset_handler, -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 23f40b57b298..6d584f232204 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2229,7 +2229,7 @@ static struct scsi_host_template sht_v3_hw = { +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2229,7 +2229,7 @@ static struct scsi_host_template sht_v3_ .change_queue_depth = sas_change_queue_depth, .bios_param = sas_bios_param, .this_id = -1, @@ -72,7 +72,7 @@ index 23f40b57b298..6d584f232204 100644 .max_sectors = SCSI_DEFAULT_MAX_SECTORS, .use_clustering = ENABLE_CLUSTERING, .eh_device_reset_handler = sas_eh_device_reset_handler, -@@ -2371,7 +2371,6 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) +@@ -2371,7 +2371,6 @@ hisi_sas_v3_probe(struct pci_dev *pdev, shost->max_lun = ~0; shost->max_channel = 1; shost->max_cmd_len = 16; @@ -80,6 +80,3 @@ index 23f40b57b298..6d584f232204 100644 shost->can_queue = hisi_hba->hw->max_command_entries - HISI_SAS_RESERVED_IPTT_CNT; shost->cmd_per_lun = hisi_hba->hw->max_command_entries - --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch index 10fa425d9..377ee58bd 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0017-net-hns3-remove-unnecessary-configuration-recapture-.patch @@ -17,11 +17,11 @@ Signed-off-by: David S. Miller .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 13 ------------- 1 file changed, 13 deletions(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -index 340baf6a470c..1dada183456c 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -@@ -5812,19 +5812,6 @@ static int hclge_reset_ae_dev(struct hnae3_ae_dev *ae_dev) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +@@ -5814,19 +5814,6 @@ static int hclge_reset_ae_dev(struct hna return ret; } @@ -41,6 +41,3 @@ index 340baf6a470c..1dada183456c 100644 ret = hclge_map_tqp(hdev); if (ret) { dev_err(&pdev->dev, "Map tqp error, ret = %d.\n", ret); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch b/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch index 4704d1327..e5141d719 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0018-net-hns3-remove-1000M-half-support-of-phy.patch @@ -14,10 +14,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c -index 398971a062f4..a75b70ce41f8 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c @@ -14,7 +14,7 @@ SUPPORTED_Asym_Pause | \ PHY_10BT_FEATURES | \ @@ -27,6 +27,3 @@ index 398971a062f4..a75b70ce41f8 100644 enum hclge_mdio_c22_op_seq { HCLGE_MDIO_C22_WRITE = 1, --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch index 48cf8519d..6769afdcf 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0019-net-hns3-synchronize-speed-and-duplex-from-phy-when-.patch @@ -15,11 +15,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c -index a75b70ce41f8..bdbec85265f4 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c -@@ -181,6 +181,10 @@ static void hclge_mac_adjust_link(struct net_device *netdev) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +@@ -181,6 +181,10 @@ static void hclge_mac_adjust_link(struct int duplex, speed; int ret; @@ -30,6 +30,3 @@ index a75b70ce41f8..bdbec85265f4 100644 speed = netdev->phydev->speed; duplex = netdev->phydev->duplex; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch b/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch index d9f68ee2b..de4795be4 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0020-net-hns3-getting-tx-and-dv-buffer-size-through-firmw.patch @@ -21,10 +21,10 @@ Signed-off-by: David S. Miller .../hisilicon/hns3/hns3pf/hclge_main.h | 3 ++ 3 files changed, 38 insertions(+), 11 deletions(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h -index 821d4c2f84bd..827e8b13b545 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h @@ -365,7 +365,9 @@ struct hclge_pf_res_cmd { #define HCLGE_PF_VEC_NUM_M GENMASK(7, 0) __le16 pf_intr_vector_number; @@ -44,11 +44,11 @@ index 821d4c2f84bd..827e8b13b545 100644 #define HCLGE_TYPE_CRQ 0 #define HCLGE_TYPE_CSQ 1 -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -index 1dada183456c..47cbf06ea405 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -@@ -932,6 +932,18 @@ static int hclge_query_pf_resource(struct hclge_dev *hdev) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +@@ -931,6 +931,18 @@ static int hclge_query_pf_resource(struc hdev->num_tqps = __le16_to_cpu(req->tqp_num); hdev->pkt_buf_size = __le16_to_cpu(req->buf_size) << HCLGE_BUF_UNIT_S; @@ -67,7 +67,7 @@ index 1dada183456c..47cbf06ea405 100644 if (hnae3_dev_roce_supported(hdev)) { hdev->roce_base_msix_offset = hnae3_get_field(__le16_to_cpu(req->msixcap_localid_ba_rocee), -@@ -1592,9 +1604,10 @@ static bool hclge_is_rx_buf_ok(struct hclge_dev *hdev, +@@ -1591,9 +1603,10 @@ static bool hclge_is_rx_buf_ok(struct h pfc_enable_num = hclge_get_pfc_enalbe_num(hdev); if (hnae3_dev_dcb_supported(hdev)) @@ -80,7 +80,7 @@ index 1dada183456c..47cbf06ea405 100644 shared_buf_tc = pfc_enable_num * hdev->mps + (tc_num - pfc_enable_num) * hdev->mps / 2 + -@@ -1607,8 +1620,15 @@ static bool hclge_is_rx_buf_ok(struct hclge_dev *hdev, +@@ -1606,8 +1619,15 @@ static bool hclge_is_rx_buf_ok(struct h shared_buf = rx_all - rx_priv; buf_alloc->s_buf.buf_size = shared_buf; @@ -98,7 +98,7 @@ index 1dada183456c..47cbf06ea405 100644 for (i = 0; i < HCLGE_MAX_TC_NUM; i++) { if ((hdev->hw_tc_map & BIT(i)) && -@@ -1635,11 +1655,11 @@ static int hclge_tx_buffer_calc(struct hclge_dev *hdev, +@@ -1634,11 +1654,11 @@ static int hclge_tx_buffer_calc(struct h for (i = 0; i < HCLGE_MAX_TC_NUM; i++) { struct hclge_priv_buf *priv = &buf_alloc->priv_buf[i]; @@ -112,7 +112,7 @@ index 1dada183456c..47cbf06ea405 100644 else priv->tx_buf_size = 0; -@@ -1685,11 +1705,12 @@ static int hclge_rx_buffer_calc(struct hclge_dev *hdev, +@@ -1684,11 +1704,12 @@ static int hclge_rx_buffer_calc(struct h priv->wl.low = aligned_mps; priv->wl.high = priv->wl.low + aligned_mps; priv->buf_size = priv->wl.high + @@ -127,7 +127,7 @@ index 1dada183456c..47cbf06ea405 100644 } } else { priv->enable = 0; -@@ -1721,11 +1742,11 @@ static int hclge_rx_buffer_calc(struct hclge_dev *hdev, +@@ -1720,11 +1741,11 @@ static int hclge_rx_buffer_calc(struct h if (hdev->tm_info.hw_pfc_map & BIT(i)) { priv->wl.low = 128; priv->wl.high = priv->wl.low + aligned_mps; @@ -141,10 +141,10 @@ index 1dada183456c..47cbf06ea405 100644 } } -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h -index 1528fb3fa6be..629ee0148d4e 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h @@ -545,6 +545,9 @@ struct hclge_dev { u32 flag; @@ -155,6 +155,3 @@ index 1528fb3fa6be..629ee0148d4e 100644 u32 mps; /* Max packet size */ enum hclge_mta_dmac_sel_type mta_mac_sel_type; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch b/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch index 5c2e01244..e5c403de9 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0021-net-hns3-aligning-buffer-size-in-SSU-to-256-bytes.patch @@ -15,11 +15,11 @@ Signed-off-by: David S. Miller .../hisilicon/hns3/hns3pf/hclge_main.c | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -index 47cbf06ea405..42a38ca966d1 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -@@ -31,6 +31,10 @@ static int hclge_set_mta_filter_mode(struct hclge_dev *hdev, +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +@@ -31,6 +31,10 @@ static int hclge_set_mta_filter_mode(str enum hclge_mta_dmac_sel_type mta_mac_sel, bool enable); static int hclge_set_mtu(struct hnae3_handle *handle, int new_mtu); @@ -30,7 +30,7 @@ index 47cbf06ea405..42a38ca966d1 100644 static int hclge_init_vlan_config(struct hclge_dev *hdev); static int hclge_reset_ae_dev(struct hnae3_ae_dev *ae_dev); -@@ -938,12 +942,16 @@ static int hclge_query_pf_resource(struct hclge_dev *hdev) +@@ -937,12 +941,16 @@ static int hclge_query_pf_resource(struc else hdev->tx_buf_size = HCLGE_DEFAULT_TX_BUF; @@ -47,7 +47,7 @@ index 47cbf06ea405..42a38ca966d1 100644 if (hnae3_dev_roce_supported(hdev)) { hdev->roce_base_msix_offset = hnae3_get_field(__le16_to_cpu(req->msixcap_localid_ba_rocee), -@@ -1596,48 +1604,50 @@ static bool hclge_is_rx_buf_ok(struct hclge_dev *hdev, +@@ -1595,48 +1603,50 @@ static bool hclge_is_rx_buf_ok(struct h { u32 shared_buf_min, shared_buf_tc, shared_std; int tc_num, pfc_enable_num; @@ -111,7 +111,7 @@ index 47cbf06ea405..42a38ca966d1 100644 } } -@@ -1677,7 +1687,6 @@ static int hclge_tx_buffer_calc(struct hclge_dev *hdev, +@@ -1676,7 +1686,6 @@ static int hclge_tx_buffer_calc(struct h static int hclge_rx_buffer_calc(struct hclge_dev *hdev, struct hclge_pkt_buf_alloc *buf_alloc) { @@ -119,7 +119,7 @@ index 47cbf06ea405..42a38ca966d1 100644 u32 rx_all = hdev->pkt_buf_size, aligned_mps; int no_pfc_priv_num, pfc_priv_num; struct hclge_priv_buf *priv; -@@ -1703,9 +1712,11 @@ static int hclge_rx_buffer_calc(struct hclge_dev *hdev, +@@ -1702,9 +1711,11 @@ static int hclge_rx_buffer_calc(struct h priv->enable = 1; if (hdev->tm_info.hw_pfc_map & BIT(i)) { priv->wl.low = aligned_mps; @@ -133,7 +133,7 @@ index 47cbf06ea405..42a38ca966d1 100644 } else { priv->wl.low = 0; priv->wl.high = 2 * aligned_mps; -@@ -1740,7 +1751,7 @@ static int hclge_rx_buffer_calc(struct hclge_dev *hdev, +@@ -1739,7 +1750,7 @@ static int hclge_rx_buffer_calc(struct h priv->enable = 1; if (hdev->tm_info.hw_pfc_map & BIT(i)) { @@ -142,6 +142,3 @@ index 47cbf06ea405..42a38ca966d1 100644 priv->wl.high = priv->wl.low + aligned_mps; priv->buf_size = priv->wl.high + hdev->dv_buf_size; } else { --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch b/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch index a5278d652..26cee78ea 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0022-net-hns3-fix-a-SSU-buffer-checking-bug.patch @@ -25,11 +25,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -index 42a38ca966d1..79232f584531 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -@@ -1621,10 +1621,11 @@ static bool hclge_is_rx_buf_ok(struct hclge_dev *hdev, +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +@@ -1620,10 +1620,11 @@ static bool hclge_is_rx_buf_ok(struct h shared_buf_tc = pfc_enable_num * aligned_mps + (tc_num - pfc_enable_num) * aligned_mps / 2 + aligned_mps; @@ -43,6 +43,3 @@ index 42a38ca966d1..79232f584531 100644 return false; shared_buf = rounddown(rx_all - rx_priv, HCLGE_BUF_SIZE_UNIT); --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch b/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch index adfa4b935..ad8ccd77f 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0023-net-hns3-change-default-tc-state-to-close.patch @@ -15,11 +15,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -index 79232f584531..8cc08ffee76f 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c -@@ -1201,7 +1201,7 @@ static int hclge_configure(struct hclge_dev *hdev) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +@@ -1200,7 +1200,7 @@ static int hclge_configure(struct hclge_ hdev->pfc_max = hdev->tc_max; } @@ -28,6 +28,3 @@ index 79232f584531..8cc08ffee76f 100644 /* Currently not support uncontiuous tc */ for (i = 0; i < hdev->tm_info.num_tc; i++) --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch b/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch index a038a9ccf..b3c3464ca 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0024-net-hns3-fix-a-bug-caused-by-udelay.patch @@ -15,11 +15,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c -index e9d5a4f96304..499131840041 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c -@@ -26,7 +26,7 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1, +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +@@ -26,7 +26,7 @@ static int hclgevf_get_mbx_resp(struct h u8 *resp_data, u16 resp_len) { #define HCLGEVF_MAX_TRY_TIMES 500 @@ -28,7 +28,7 @@ index e9d5a4f96304..499131840041 100644 struct hclgevf_mbx_resp_status *mbx_resp; u16 r_code0, r_code1; int i = 0; -@@ -40,7 +40,7 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1, +@@ -40,7 +40,7 @@ static int hclgevf_get_mbx_resp(struct h } while ((!hdev->mbx_resp.received_resp) && (i < HCLGEVF_MAX_TRY_TIMES)) { @@ -37,6 +37,3 @@ index e9d5a4f96304..499131840041 100644 i++; } --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch b/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch index b724c37cc..2dcf9f2ef 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0025-net-hns3-remove-redundant-variable-initialization.patch @@ -13,11 +13,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c -index 5570fb5dc2eb..dca51d9cfa4f 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c -@@ -1360,7 +1360,7 @@ static int hclgevf_configure(struct hclgevf_dev *hdev) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +@@ -1360,7 +1360,7 @@ static int hclgevf_configure(struct hclg static int hclgevf_alloc_hdev(struct hnae3_ae_dev *ae_dev) { struct pci_dev *pdev = ae_dev->pdev; @@ -26,6 +26,3 @@ index 5570fb5dc2eb..dca51d9cfa4f 100644 hdev = devm_kzalloc(&pdev->dev, sizeof(*hdev), GFP_KERNEL); if (!hdev) --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch b/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch index fcf93fd11..9eddea483 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0026-net-hns3-call-hns3_nic_net_open-while-doing-HNAE3_UP.patch @@ -23,11 +23,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c -index 0ccfa6a84535..895c43fd1d81 100644 ---- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c -+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c -@@ -3439,11 +3439,15 @@ static int hns3_reset_notify_down_enet(struct hnae3_handle *handle) +Index: linux/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +=================================================================== +--- linux.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c ++++ linux/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +@@ -3439,11 +3439,15 @@ static int hns3_reset_notify_down_enet(s static int hns3_reset_notify_up_enet(struct hnae3_handle *handle) { struct hnae3_knic_private_info *kinfo = &handle->kinfo; @@ -44,6 +44,3 @@ index 0ccfa6a84535..895c43fd1d81 100644 netdev_err(kinfo->netdev, "hns net up fail, ret=%d!\n", ret); return ret; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0027-RDMA-hns-Fix-the-bug-with-updating-rq-head-pointer-w.patch b/debian/patches/bugfix/arm64/huawei-taishan/0027-RDMA-hns-Fix-the-bug-with-updating-rq-head-pointer-w.patch index b897d9320..c32c9d5dc 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0027-RDMA-hns-Fix-the-bug-with-updating-rq-head-pointer-w.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0027-RDMA-hns-Fix-the-bug-with-updating-rq-head-pointer-w.patch @@ -14,11 +14,11 @@ Signed-off-by: Jason Gunthorpe drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) -diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -index a442b29e7611..c7843d9817de 100644 ---- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -@@ -3499,13 +3499,16 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp, +Index: linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c ++++ linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +@@ -3499,13 +3499,16 @@ static int hns_roce_v2_modify_qp(struct roce_set_field(qpc_mask->byte_160_sq_ci_pi, V2_QPC_BYTE_160_SQ_PRODUCER_IDX_M, V2_QPC_BYTE_160_SQ_PRODUCER_IDX_S, 0); @@ -37,7 +37,7 @@ index a442b29e7611..c7843d9817de 100644 } if (attr_mask & IB_QP_AV) { -@@ -3967,7 +3970,8 @@ static void hns_roce_set_qps_to_err(struct hns_roce_dev *hr_dev, u32 qpn) +@@ -3967,7 +3970,8 @@ static void hns_roce_set_qps_to_err(stru if (hr_qp->ibqp.uobject) { if (hr_qp->sdb_en == 1) { hr_qp->sq.head = *(int *)(hr_qp->sdb.virt_addr); @@ -47,6 +47,3 @@ index a442b29e7611..c7843d9817de 100644 } else { dev_warn(hr_dev->dev, "flush cqe is unsupported in userspace!\n"); return; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch b/debian/patches/bugfix/arm64/huawei-taishan/0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch index a597b9a47..e121bd67b 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-queue.patch @@ -13,11 +13,11 @@ Signed-off-by: Jason Gunthorpe drivers/infiniband/hw/hns/hns_roce_qp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c -index efb7e961ca65..de1676e25828 100644 ---- a/drivers/infiniband/hw/hns/hns_roce_qp.c -+++ b/drivers/infiniband/hw/hns/hns_roce_qp.c -@@ -503,7 +503,8 @@ static int hns_roce_qp_has_sq(struct ib_qp_init_attr *attr) +Index: linux/drivers/infiniband/hw/hns/hns_roce_qp.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/hns/hns_roce_qp.c ++++ linux/drivers/infiniband/hw/hns/hns_roce_qp.c +@@ -503,7 +503,8 @@ static int hns_roce_qp_has_sq(struct ib_ static int hns_roce_qp_has_rq(struct ib_qp_init_attr *attr) { if (attr->qp_type == IB_QPT_XRC_INI || @@ -27,6 +27,3 @@ index efb7e961ca65..de1676e25828 100644 return 0; return 1; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch b/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch index aa69c2ef4..48e2022bd 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch @@ -16,11 +16,11 @@ Signed-off-by: Jason Gunthorpe drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) -diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -index c7843d9817de..627f77a6e0a9 100644 ---- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -@@ -3398,10 +3398,16 @@ static int modify_qp_rtr_to_rts(struct ib_qp *ibqp, +Index: linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c ++++ linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +@@ -3398,10 +3398,16 @@ static int modify_qp_rtr_to_rts(struct i V2_QPC_BYTE_212_LSN_S, 0); if (attr_mask & IB_QP_TIMEOUT) { @@ -41,6 +41,3 @@ index c7843d9817de..627f77a6e0a9 100644 } roce_set_field(context->byte_172_sq_psn, V2_QPC_BYTE_172_SQ_CUR_PSN_M, --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch b/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch index 138d7f9f9..612b481ff 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch @@ -13,11 +13,11 @@ Signed-off-by: Jason Gunthorpe drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -index 627f77a6e0a9..e521cc740120 100644 ---- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c -@@ -1235,7 +1235,7 @@ static int hns_roce_v2_profile(struct hns_roce_dev *hr_dev) +Index: linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c ++++ linux/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +@@ -1235,7 +1235,7 @@ static int hns_roce_v2_profile(struct hn caps->mpt_ba_pg_sz = 0; caps->mpt_buf_pg_sz = 0; caps->mpt_hop_num = HNS_ROCE_CONTEXT_HOP_NUM; @@ -26,6 +26,3 @@ index 627f77a6e0a9..e521cc740120 100644 caps->pbl_buf_pg_sz = 0; caps->pbl_hop_num = HNS_ROCE_PBL_HOP_NUM; caps->mtt_ba_pg_sz = 0; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch b/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch index ec1312b8e..4f9e5f6be 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch @@ -15,11 +15,11 @@ Signed-off-by: Jason Gunthorpe drivers/infiniband/hw/hns/hns_roce_qp.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) -diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c -index de1676e25828..b3ad35310925 100644 ---- a/drivers/infiniband/hw/hns/hns_roce_qp.c -+++ b/drivers/infiniband/hw/hns/hns_roce_qp.c -@@ -652,6 +652,10 @@ static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev, +Index: linux/drivers/infiniband/hw/hns/hns_roce_qp.c +=================================================================== +--- linux.orig/drivers/infiniband/hw/hns/hns_roce_qp.c ++++ linux/drivers/infiniband/hw/hns/hns_roce_qp.c +@@ -652,6 +652,10 @@ static int hns_roce_create_qp_common(str dev_err(dev, "rq record doorbell map failed!\n"); goto err_sq_dbmap; } @@ -30,7 +30,7 @@ index de1676e25828..b3ad35310925 100644 } } else { if (init_attr->create_flags & -@@ -760,16 +764,11 @@ static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev, +@@ -760,16 +764,11 @@ static int hns_roce_create_qp_common(str else hr_qp->doorbell_qpn = cpu_to_le64(hr_qp->qpn); @@ -50,7 +50,7 @@ index de1676e25828..b3ad35310925 100644 } hr_qp->event = hns_roce_ib_qp_event; -@@ -946,7 +945,9 @@ int hns_roce_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, +@@ -946,7 +945,9 @@ int hns_roce_modify_qp(struct ib_qp *ibq (attr_mask & IB_QP_STATE) && new_state == IB_QPS_ERR) { if (hr_qp->sdb_en == 1) { hr_qp->sq.head = *(int *)(hr_qp->sdb.virt_addr); @@ -61,6 +61,3 @@ index de1676e25828..b3ad35310925 100644 } else { dev_warn(dev, "flush cqe is not supported in userspace!\n"); goto out; --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch b/debian/patches/bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch index 0e9e9cd44..6060ad048 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch @@ -27,11 +27,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 764d651879cf..3c03de9d18dd 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -1088,11 +1088,11 @@ static int hisi_sas_exec_internal_tmf_task(struct domain_device *device, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -1088,11 +1088,11 @@ static int hisi_sas_exec_internal_tmf_ta if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) { if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) { struct hisi_sas_slot *slot = task->lldd_task; @@ -45,7 +45,7 @@ index 764d651879cf..3c03de9d18dd 100644 /* * flush tasklet to avoid free'ing task * before using task in IO completion -@@ -1913,10 +1913,10 @@ hisi_sas_internal_task_abort(struct hisi_hba *hisi_hba, +@@ -1913,10 +1913,10 @@ hisi_sas_internal_task_abort(struct hisi if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) { if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) { struct hisi_sas_slot *slot = task->lldd_task; @@ -58,6 +58,3 @@ index 764d651879cf..3c03de9d18dd 100644 /* * flush tasklet to avoid free'ing task * before using task in IO completion --- -2.20.1 - diff --git a/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch b/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch index cefc0d202..68374aee8 100644 --- a/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch +++ b/debian/patches/bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch @@ -22,11 +22,11 @@ Signed-off-by: Martin K. Petersen drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) -diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c -index 3c03de9d18dd..8aeb92d9144e 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_main.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c -@@ -2339,6 +2339,7 @@ static struct Scsi_Host *hisi_sas_shost_alloc(struct platform_device *pdev, +Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c +@@ -2339,6 +2339,7 @@ static struct Scsi_Host *hisi_sas_shost_ struct Scsi_Host *shost; struct hisi_hba *hisi_hba; struct device *dev = &pdev->dev; @@ -34,7 +34,7 @@ index 3c03de9d18dd..8aeb92d9144e 100644 shost = scsi_host_alloc(hw->sht, sizeof(*hisi_hba)); if (!shost) { -@@ -2359,8 +2360,11 @@ static struct Scsi_Host *hisi_sas_shost_alloc(struct platform_device *pdev, +@@ -2359,8 +2360,11 @@ static struct Scsi_Host *hisi_sas_shost_ if (hisi_sas_get_fw_info(hisi_hba) < 0) goto err_out; @@ -48,11 +48,11 @@ index 3c03de9d18dd..8aeb92d9144e 100644 dev_err(dev, "No usable DMA addressing method\n"); goto err_out; } -diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -index 6d584f232204..434f017afadc 100644 ---- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c -@@ -2328,10 +2328,12 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) +Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +=================================================================== +--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c ++++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +@@ -2328,10 +2328,12 @@ hisi_sas_v3_probe(struct pci_dev *pdev, if (rc) goto err_out_disable_device; @@ -68,6 +68,3 @@ index 6d584f232204..434f017afadc 100644 goto err_out_regions; } --- -2.20.1 - diff --git a/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch b/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch index cbe8bfd30..b45fc948b 100644 --- a/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch +++ b/debian/patches/bugfix/mips/MIPS-Loongson-Introduce-and-use-loongson_llsc_mb.patch @@ -85,8 +85,10 @@ Cc: Xu Chenghua arch/mips/mm/tlbex.c | 10 ++++++++++ 8 files changed, 100 insertions(+) ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig +Index: linux/arch/mips/Kconfig +=================================================================== +--- linux.orig/arch/mips/Kconfig ++++ linux/arch/mips/Kconfig @@ -1397,6 +1397,21 @@ config LOONGSON3_ENHANCEMENT please say 'N' here. If you want a high-performance kernel to run on new Loongson 3 machines only, please say 'Y' here. @@ -109,8 +111,10 @@ Cc: Xu Chenghua config CPU_LOONGSON2E bool "Loongson 2E" depends on SYS_HAS_CPU_LOONGSON2E ---- a/arch/mips/include/asm/atomic.h -+++ b/arch/mips/include/asm/atomic.h +Index: linux/arch/mips/include/asm/atomic.h +=================================================================== +--- linux.orig/arch/mips/include/asm/atomic.h ++++ linux/arch/mips/include/asm/atomic.h @@ -58,6 +58,7 @@ static __inline__ void atomic_##op(int i if (kernel_uses_llsc) { \ int temp; \ @@ -159,8 +163,10 @@ Cc: Xu Chenghua __asm__ __volatile__( \ " .set "MIPS_ISA_LEVEL" \n" \ "1: lld %1, %2 # atomic64_fetch_" #op "\n" \ ---- a/arch/mips/include/asm/barrier.h -+++ b/arch/mips/include/asm/barrier.h +Index: linux/arch/mips/include/asm/barrier.h +=================================================================== +--- linux.orig/arch/mips/include/asm/barrier.h ++++ linux/arch/mips/include/asm/barrier.h @@ -222,6 +222,42 @@ #define __smp_mb__before_atomic() __smp_mb__before_llsc() #define __smp_mb__after_atomic() smp_llsc_mb() @@ -204,8 +210,10 @@ Cc: Xu Chenghua #include #endif /* __ASM_BARRIER_H */ ---- a/arch/mips/include/asm/bitops.h -+++ b/arch/mips/include/asm/bitops.h +Index: linux/arch/mips/include/asm/bitops.h +=================================================================== +--- linux.orig/arch/mips/include/asm/bitops.h ++++ linux/arch/mips/include/asm/bitops.h @@ -68,6 +68,7 @@ static inline void set_bit(unsigned long : "ir" (1UL << bit), GCC_OFF_SMALL_ASM() (*m)); #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) @@ -246,8 +254,10 @@ Cc: Xu Chenghua do { __asm__ __volatile__( " .set "MIPS_ISA_ARCH_LEVEL" \n" ---- a/arch/mips/include/asm/futex.h -+++ b/arch/mips/include/asm/futex.h +Index: linux/arch/mips/include/asm/futex.h +=================================================================== +--- linux.orig/arch/mips/include/asm/futex.h ++++ linux/arch/mips/include/asm/futex.h @@ -50,6 +50,7 @@ "i" (-EFAULT) \ : "memory"); \ @@ -272,8 +282,10 @@ Cc: Xu Chenghua } else return -ENOSYS; ---- a/arch/mips/include/asm/pgtable.h -+++ b/arch/mips/include/asm/pgtable.h +Index: linux/arch/mips/include/asm/pgtable.h +=================================================================== +--- linux.orig/arch/mips/include/asm/pgtable.h ++++ linux/arch/mips/include/asm/pgtable.h @@ -229,6 +229,7 @@ static inline void set_pte(pte_t *ptep, : [buddy] "+m" (buddy->pte), [tmp] "=&r" (tmp) : [global] "r" (page_global)); @@ -290,8 +302,10 @@ Cc: Xu Chenghua } #else /* !CONFIG_SMP */ if (pte_none(*buddy)) ---- a/arch/mips/loongson64/Platform -+++ b/arch/mips/loongson64/Platform +Index: linux/arch/mips/loongson64/Platform +=================================================================== +--- linux.orig/arch/mips/loongson64/Platform ++++ linux/arch/mips/loongson64/Platform @@ -23,6 +23,29 @@ ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS endif @@ -322,9 +336,11 @@ Cc: Xu Chenghua # # binutils from v2.25 on and gcc starting from v4.9.0 treat -march=loongson3a # as MIPS64 R2; older versions as just R1. This leaves the possibility open ---- a/arch/mips/mm/tlbex.c -+++ b/arch/mips/mm/tlbex.c -@@ -931,6 +931,8 @@ build_get_pgd_vmalloc64(u32 **p, struct +Index: linux/arch/mips/mm/tlbex.c +=================================================================== +--- linux.orig/arch/mips/mm/tlbex.c ++++ linux/arch/mips/mm/tlbex.c +@@ -943,6 +943,8 @@ build_get_pgd_vmalloc64(u32 **p, struct * to mimic that here by taking a load/istream page * fault. */ @@ -333,7 +349,7 @@ Cc: Xu Chenghua UASM_i_LA(p, ptr, (unsigned long)tlb_do_page_fault_0); uasm_i_jr(p, ptr); -@@ -1645,6 +1647,8 @@ static void +@@ -1663,6 +1665,8 @@ static void iPTE_LW(u32 **p, unsigned int pte, unsigned int ptr) { #ifdef CONFIG_SMP @@ -342,7 +358,7 @@ Cc: Xu Chenghua # ifdef CONFIG_PHYS_ADDR_T_64BIT if (cpu_has_64bits) uasm_i_lld(p, pte, 0, ptr); -@@ -2258,6 +2262,8 @@ static void build_r4000_tlb_load_handler +@@ -2276,6 +2280,8 @@ static void build_r4000_tlb_load_handler #endif uasm_l_nopage_tlbl(&l, p); @@ -351,7 +367,7 @@ Cc: Xu Chenghua build_restore_work_registers(&p); #ifdef CONFIG_CPU_MICROMIPS if ((unsigned long)tlb_do_page_fault_0 & 1) { -@@ -2312,6 +2318,8 @@ static void build_r4000_tlb_store_handle +@@ -2330,6 +2336,8 @@ static void build_r4000_tlb_store_handle #endif uasm_l_nopage_tlbs(&l, p); @@ -360,7 +376,7 @@ Cc: Xu Chenghua build_restore_work_registers(&p); #ifdef CONFIG_CPU_MICROMIPS if ((unsigned long)tlb_do_page_fault_1 & 1) { -@@ -2367,6 +2375,8 @@ static void build_r4000_tlb_modify_handl +@@ -2385,6 +2393,8 @@ static void build_r4000_tlb_modify_handl #endif uasm_l_nopage_tlbm(&l, p); diff --git a/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch b/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch index 0b3acfadb..45e1252df 100644 --- a/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch +++ b/debian/patches/bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch @@ -24,11 +24,11 @@ Tested-by: Michal Kubecek arch/powerpc/boot/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile -index 0fb96c26136f..ba4182fb185d 100644 ---- a/arch/powerpc/boot/Makefile -+++ b/arch/powerpc/boot/Makefile -@@ -63,7 +63,7 @@ ifeq ($(call cc-option-yn, -fstack-protector),y) +Index: linux/arch/powerpc/boot/Makefile +=================================================================== +--- linux.orig/arch/powerpc/boot/Makefile ++++ linux/arch/powerpc/boot/Makefile +@@ -68,7 +68,7 @@ ifeq ($(call cc-option-yn, -fstack-prote BOOTCFLAGS += -fno-stack-protector endif diff --git a/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch b/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch index fd7b2e9c5..6683cfce0 100644 --- a/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch +++ b/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch @@ -13,8 +13,10 @@ error. Signed-off-by: Ben Hutchings --- ---- a/arch/powerpc/Makefile -+++ b/arch/powerpc/Makefile +Index: linux/arch/powerpc/Makefile +=================================================================== +--- linux.orig/arch/powerpc/Makefile ++++ linux/arch/powerpc/Makefile @@ -12,7 +12,7 @@ # Rewritten by Cort Dougan and Paul Mackerras # diff --git a/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch index 6562294ba..8fc19da9f 100644 --- a/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch +++ b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch @@ -15,8 +15,10 @@ Signed-off-by: James Clarke arch/powerpc/lib/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- a/arch/powerpc/lib/Makefile -+++ b/arch/powerpc/lib/Makefile +Index: linux/arch/powerpc/lib/Makefile +=================================================================== +--- linux.orig/arch/powerpc/lib/Makefile ++++ linux/arch/powerpc/lib/Makefile @@ -35,7 +35,7 @@ obj64-$(CONFIG_KPROBES_SANITY_TEST) += t obj-y += checksum_$(BITS).o checksum_wrappers.o \ string_$(BITS).o memcmp_$(BITS).o diff --git a/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch b/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch index dfe979c35..1f3e1a802 100644 --- a/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch +++ b/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch @@ -14,9 +14,11 @@ Signed-off-by: James Clarke arch/powerpc/lib/sstep.c | 4 ++++ 1 file changed, 4 insertions(+) ---- a/arch/powerpc/lib/sstep.c -+++ b/arch/powerpc/lib/sstep.c -@@ -2671,12 +2671,16 @@ void emulate_update_regs(struct pt_regs +Index: linux/arch/powerpc/lib/sstep.c +=================================================================== +--- linux.orig/arch/powerpc/lib/sstep.c ++++ linux/arch/powerpc/lib/sstep.c +@@ -2681,12 +2681,16 @@ void emulate_update_regs(struct pt_regs case BARRIER_EIEIO: eieio(); break; diff --git a/debian/patches/bugfix/powerpc/powerpc-vdso-make-vdso32-installation-conditional-in.patch b/debian/patches/bugfix/powerpc/powerpc-vdso-make-vdso32-installation-conditional-in.patch index 8c72827a3..ed8d901c4 100644 --- a/debian/patches/bugfix/powerpc/powerpc-vdso-make-vdso32-installation-conditional-in.patch +++ b/debian/patches/bugfix/powerpc/powerpc-vdso-make-vdso32-installation-conditional-in.patch @@ -15,8 +15,10 @@ Signed-off-by: Ben Hutchings arch/powerpc/Makefile | 2 ++ 1 file changed, 2 insertions(+) ---- a/arch/powerpc/Makefile -+++ b/arch/powerpc/Makefile +Index: linux/arch/powerpc/Makefile +=================================================================== +--- linux.orig/arch/powerpc/Makefile ++++ linux/arch/powerpc/Makefile @@ -403,7 +403,9 @@ vdso_install: ifdef CONFIG_PPC64 $(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@ diff --git a/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch b/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch index d10177b4b..8e50801c9 100644 --- a/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch +++ b/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch @@ -23,8 +23,10 @@ Signed-off-by: Ben Hutchings arch/sh/boot/romimage/Makefile | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) ---- a/arch/sh/Makefile -+++ b/arch/sh/Makefile +Index: linux/arch/sh/Makefile +=================================================================== +--- linux.orig/arch/sh/Makefile ++++ linux/arch/sh/Makefile @@ -119,16 +119,16 @@ LDFLAGS_vmlinux += --defsym phys_stext= endif @@ -47,8 +49,10 @@ Signed-off-by: Ben Hutchings head-y := arch/sh/kernel/head_$(BITS).o ---- a/arch/sh/boot/Makefile -+++ b/arch/sh/boot/Makefile +Index: linux/arch/sh/boot/Makefile +=================================================================== +--- linux.orig/arch/sh/boot/Makefile ++++ linux/arch/sh/boot/Makefile @@ -19,12 +19,12 @@ CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 CONFIG_ENTRY_OFFSET ?= 0x00001000 CONFIG_PHYSICAL_START ?= $(CONFIG_MEMORY_START) @@ -81,8 +85,10 @@ Signed-off-by: Ben Hutchings CONFIG_PHYSICAL_START CONFIG_ZERO_PAGE_OFFSET CONFIG_ENTRY_OFFSET \ - KERNEL_MEMORY suffix-y + KERNEL_MEMORY suffix_y ---- a/arch/sh/boot/compressed/Makefile -+++ b/arch/sh/boot/compressed/Makefile +Index: linux/arch/sh/boot/compressed/Makefile +=================================================================== +--- linux.orig/arch/sh/boot/compressed/Makefile ++++ linux/arch/sh/boot/compressed/Makefile @@ -33,7 +33,7 @@ ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) endif @@ -102,8 +108,10 @@ Signed-off-by: Ben Hutchings -$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE +$(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) diff --git a/debian/patches/bugfix/x86/i915/0005-drm-i915-Support-ro-ppgtt-mapped-cmdparser-shadow-bu.patch b/debian/patches/bugfix/x86/i915/0005-drm-i915-Support-ro-ppgtt-mapped-cmdparser-shadow-bu.patch index d03d396f5..b473c0442 100644 --- a/debian/patches/bugfix/x86/i915/0005-drm-i915-Support-ro-ppgtt-mapped-cmdparser-shadow-bu.patch +++ b/debian/patches/bugfix/x86/i915/0005-drm-i915-Support-ro-ppgtt-mapped-cmdparser-shadow-bu.patch @@ -41,8 +41,10 @@ Reviewed-by: Chris Wilson drivers/gpu/drm/i915/i915_gem_execbuffer.c | 57 +++++++++++++++------- 3 files changed, 68 insertions(+), 19 deletions(-) ---- a/drivers/gpu/drm/i915/i915_drv.h -+++ b/drivers/gpu/drm/i915/i915_drv.h +Index: linux/drivers/gpu/drm/i915/i915_drv.h +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_drv.h ++++ linux/drivers/gpu/drm/i915/i915_drv.h @@ -2496,6 +2496,12 @@ intel_info(const struct drm_i915_private #define IS_GEN9_LP(dev_priv) (IS_GEN9(dev_priv) && IS_LP(dev_priv)) #define IS_GEN9_BC(dev_priv) (IS_GEN9(dev_priv) && !IS_LP(dev_priv)) @@ -71,9 +73,11 @@ Reviewed-by: Chris Wilson int i915_gem_object_unbind(struct drm_i915_gem_object *obj); void i915_gem_release_mmap(struct drm_i915_gem_object *obj); ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -4414,6 +4414,20 @@ i915_gem_object_ggtt_pin(struct drm_i915 +Index: linux/drivers/gpu/drm/i915/i915_gem.c +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_gem.c ++++ linux/drivers/gpu/drm/i915/i915_gem.c +@@ -4425,6 +4425,20 @@ i915_gem_object_ggtt_pin(struct drm_i915 { struct drm_i915_private *dev_priv = to_i915(obj->base.dev); struct i915_address_space *vm = &dev_priv->ggtt.vm; @@ -94,7 +98,7 @@ Reviewed-by: Chris Wilson struct i915_vma *vma; int ret; -@@ -4477,7 +4491,7 @@ i915_gem_object_ggtt_pin(struct drm_i915 +@@ -4488,7 +4502,7 @@ i915_gem_object_ggtt_pin(struct drm_i915 return ERR_PTR(ret); } @@ -103,8 +107,10 @@ Reviewed-by: Chris Wilson if (ret) return ERR_PTR(ret); ---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c -+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c +Index: linux/drivers/gpu/drm/i915/i915_gem_execbuffer.c +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c ++++ linux/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -1894,6 +1894,33 @@ static int i915_reset_gen7_sol_offsets(s return 0; } diff --git a/debian/patches/bugfix/x86/i915/0012-drm-i915-gen8-Add-RC6-CTX-corruption-WA.patch b/debian/patches/bugfix/x86/i915/0012-drm-i915-gen8-Add-RC6-CTX-corruption-WA.patch index e555b72d0..4a8ef1087 100644 --- a/debian/patches/bugfix/x86/i915/0012-drm-i915-gen8-Add-RC6-CTX-corruption-WA.patch +++ b/debian/patches/bugfix/x86/i915/0012-drm-i915-gen8-Add-RC6-CTX-corruption-WA.patch @@ -31,9 +31,11 @@ Signed-off-by: Mika Kuoppala drivers/gpu/drm/i915/intel_pm.c | 107 ++++++++++++++++++++++++++++++- 6 files changed, 126 insertions(+), 4 deletions(-) ---- a/drivers/gpu/drm/i915/i915_drv.c -+++ b/drivers/gpu/drm/i915/i915_drv.c -@@ -1621,6 +1621,7 @@ static int i915_drm_suspend_late(struct +Index: linux/drivers/gpu/drm/i915/i915_drv.c +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_drv.c ++++ linux/drivers/gpu/drm/i915/i915_drv.c +@@ -1627,6 +1627,7 @@ static int i915_drm_suspend_late(struct i915_gem_suspend_late(dev_priv); intel_display_set_init_power(dev_priv, false); @@ -41,7 +43,7 @@ Signed-off-by: Mika Kuoppala intel_uncore_suspend(dev_priv); /* -@@ -1847,6 +1848,8 @@ static int i915_drm_resume_early(struct +@@ -1853,6 +1854,8 @@ static int i915_drm_resume_early(struct else intel_display_set_init_power(dev_priv, true); @@ -50,8 +52,10 @@ Signed-off-by: Mika Kuoppala intel_engines_sanitize(dev_priv); enable_rpm_wakeref_asserts(dev_priv); ---- a/drivers/gpu/drm/i915/i915_drv.h -+++ b/drivers/gpu/drm/i915/i915_drv.h +Index: linux/drivers/gpu/drm/i915/i915_drv.h +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_drv.h ++++ linux/drivers/gpu/drm/i915/i915_drv.h @@ -801,6 +801,7 @@ struct intel_rps { struct intel_rc6 { @@ -75,8 +79,10 @@ Signed-off-by: Mika Kuoppala #define HAS_GMBUS_IRQ(dev_priv) (INTEL_GEN(dev_priv) >= 4) #define HAS_GMBUS_BURST_READ(dev_priv) (INTEL_GEN(dev_priv) >= 10 || \ ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c +Index: linux/drivers/gpu/drm/i915/i915_gem.c +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_gem.c ++++ linux/drivers/gpu/drm/i915/i915_gem.c @@ -174,6 +174,11 @@ static u32 __i915_gem_park(struct drm_i9 if (INTEL_GEN(i915) >= 6) gen6_rps_idle(i915); @@ -99,8 +105,10 @@ Signed-off-by: Mika Kuoppala i915->gt.awake = true; if (unlikely(++i915->gt.epoch == 0)) /* keep 0 as invalid */ i915->gt.epoch = 1; ---- a/drivers/gpu/drm/i915/i915_reg.h -+++ b/drivers/gpu/drm/i915/i915_reg.h +Index: linux/drivers/gpu/drm/i915/i915_reg.h +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/i915_reg.h ++++ linux/drivers/gpu/drm/i915/i915_reg.h @@ -387,6 +387,8 @@ static inline bool i915_mmio_reg_valid(i #define ECOCHK_PPGTT_WT_HSW (0x2 << 3) #define ECOCHK_PPGTT_WB_HSW (0x3 << 3) @@ -110,8 +118,10 @@ Signed-off-by: Mika Kuoppala #define GAC_ECO_BITS _MMIO(0x14090) #define ECOBITS_SNB_BIT (1 << 13) #define ECOBITS_PPGTT_CACHE64B (3 << 8) ---- a/drivers/gpu/drm/i915/intel_drv.h -+++ b/drivers/gpu/drm/i915/intel_drv.h +Index: linux/drivers/gpu/drm/i915/intel_drv.h +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/intel_drv.h ++++ linux/drivers/gpu/drm/i915/intel_drv.h @@ -2064,6 +2064,9 @@ void intel_sanitize_gt_powersave(struct void intel_enable_gt_powersave(struct drm_i915_private *dev_priv); void intel_disable_gt_powersave(struct drm_i915_private *dev_priv); @@ -122,8 +132,10 @@ Signed-off-by: Mika Kuoppala void gen6_rps_busy(struct drm_i915_private *dev_priv); void gen6_rps_reset_ei(struct drm_i915_private *dev_priv); void gen6_rps_idle(struct drm_i915_private *dev_priv); ---- a/drivers/gpu/drm/i915/intel_pm.c -+++ b/drivers/gpu/drm/i915/intel_pm.c +Index: linux/drivers/gpu/drm/i915/intel_pm.c +=================================================================== +--- linux.orig/drivers/gpu/drm/i915/intel_pm.c ++++ linux/drivers/gpu/drm/i915/intel_pm.c @@ -8196,6 +8196,95 @@ static void intel_init_emon(struct drm_i dev_priv->ips.corr = (lcfuse & LCFUSE_HIV_MASK); } diff --git a/debian/patches/bugfix/x86/itlb_multihit/0017-kvm-Convert-kvm_lock-to-a-mutex.patch b/debian/patches/bugfix/x86/itlb_multihit/0017-kvm-Convert-kvm_lock-to-a-mutex.patch index e5b02c07d..13f65713e 100644 --- a/debian/patches/bugfix/x86/itlb_multihit/0017-kvm-Convert-kvm_lock-to-a-mutex.patch +++ b/debian/patches/bugfix/x86/itlb_multihit/0017-kvm-Convert-kvm_lock-to-a-mutex.patch @@ -20,8 +20,10 @@ Signed-off-by: Thomas Gleixner virt/kvm/kvm_main.c | 30 +++++++++++++-------------- 6 files changed, 28 insertions(+), 30 deletions(-) ---- a/Documentation/virtual/kvm/locking.txt -+++ b/Documentation/virtual/kvm/locking.txt +Index: linux/Documentation/virtual/kvm/locking.txt +=================================================================== +--- linux.orig/Documentation/virtual/kvm/locking.txt ++++ linux/Documentation/virtual/kvm/locking.txt @@ -15,8 +15,6 @@ The acquisition orders for mutexes are a On x86, vcpu->mutex is taken outside kvm->arch.hyperv.hv_lock. @@ -40,9 +42,11 @@ Signed-off-by: Thomas Gleixner Arch: any Protects: - vm_list ---- a/arch/s390/kvm/kvm-s390.c -+++ b/arch/s390/kvm/kvm-s390.c -@@ -2108,13 +2108,13 @@ int kvm_arch_init_vm(struct kvm *kvm, un +Index: linux/arch/s390/kvm/kvm-s390.c +=================================================================== +--- linux.orig/arch/s390/kvm/kvm-s390.c ++++ linux/arch/s390/kvm/kvm-s390.c +@@ -2110,13 +2110,13 @@ int kvm_arch_init_vm(struct kvm *kvm, un kvm->arch.sca = (struct bsca_block *) get_zeroed_page(alloc_flags); if (!kvm->arch.sca) goto out_err; @@ -58,8 +62,10 @@ Signed-off-by: Thomas Gleixner sprintf(debug_name, "kvm-%u", current->pid); ---- a/arch/x86/kvm/mmu.c -+++ b/arch/x86/kvm/mmu.c +Index: linux/arch/x86/kvm/mmu.c +=================================================================== +--- linux.orig/arch/x86/kvm/mmu.c ++++ linux/arch/x86/kvm/mmu.c @@ -5819,7 +5819,7 @@ mmu_shrink_scan(struct shrinker *shrink, int nr_to_scan = sc->nr_to_scan; unsigned long freed = 0; @@ -78,9 +84,11 @@ Signed-off-by: Thomas Gleixner return freed; } ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -6498,7 +6498,7 @@ static void kvm_hyperv_tsc_notifier(void +Index: linux/arch/x86/kvm/x86.c +=================================================================== +--- linux.orig/arch/x86/kvm/x86.c ++++ linux/arch/x86/kvm/x86.c +@@ -6529,7 +6529,7 @@ static void kvm_hyperv_tsc_notifier(void struct kvm_vcpu *vcpu; int cpu; @@ -89,7 +97,7 @@ Signed-off-by: Thomas Gleixner list_for_each_entry(kvm, &vm_list, vm_list) kvm_make_mclock_inprogress_request(kvm); -@@ -6524,7 +6524,7 @@ static void kvm_hyperv_tsc_notifier(void +@@ -6555,7 +6555,7 @@ static void kvm_hyperv_tsc_notifier(void spin_unlock(&ka->pvclock_gtod_sync_lock); } @@ -98,7 +106,7 @@ Signed-off-by: Thomas Gleixner } #endif -@@ -6582,17 +6582,17 @@ static int kvmclock_cpufreq_notifier(str +@@ -6613,17 +6613,17 @@ static int kvmclock_cpufreq_notifier(str smp_call_function_single(freq->cpu, tsc_khz_changed, freq, 1); @@ -119,7 +127,7 @@ Signed-off-by: Thomas Gleixner if (freq->old < freq->new && send_ipi) { /* -@@ -6718,12 +6718,12 @@ static void pvclock_gtod_update_fn(struc +@@ -6749,12 +6749,12 @@ static void pvclock_gtod_update_fn(struc struct kvm_vcpu *vcpu; int i; @@ -134,8 +142,10 @@ Signed-off-by: Thomas Gleixner } static DECLARE_WORK(pvclock_gtod_work, pvclock_gtod_update_fn); ---- a/include/linux/kvm_host.h -+++ b/include/linux/kvm_host.h +Index: linux/include/linux/kvm_host.h +=================================================================== +--- linux.orig/include/linux/kvm_host.h ++++ linux/include/linux/kvm_host.h @@ -141,7 +141,7 @@ static inline bool is_error_page(struct extern struct kmem_cache *kvm_vcpu_cache; @@ -145,8 +155,10 @@ Signed-off-by: Thomas Gleixner extern struct list_head vm_list; struct kvm_io_range { ---- a/virt/kvm/kvm_main.c -+++ b/virt/kvm/kvm_main.c +Index: linux/virt/kvm/kvm_main.c +=================================================================== +--- linux.orig/virt/kvm/kvm_main.c ++++ linux/virt/kvm/kvm_main.c @@ -92,7 +92,7 @@ EXPORT_SYMBOL_GPL(halt_poll_ns_shrink); * kvm->lock --> kvm->slots_lock --> kvm->irq_lock */ diff --git a/debian/patches/bugfix/x86/itlb_multihit/0024-kvm-mmu-ITLB_MULTIHIT-mitigation.patch b/debian/patches/bugfix/x86/itlb_multihit/0024-kvm-mmu-ITLB_MULTIHIT-mitigation.patch index d97596d8b..d1cd778ea 100644 --- a/debian/patches/bugfix/x86/itlb_multihit/0024-kvm-mmu-ITLB_MULTIHIT-mitigation.patch +++ b/debian/patches/bugfix/x86/itlb_multihit/0024-kvm-mmu-ITLB_MULTIHIT-mitigation.patch @@ -37,8 +37,10 @@ Signed-off-by: Thomas Gleixner arch/x86/kvm/x86.c | 9 ++ 6 files changed, 200 insertions(+), 13 deletions(-) ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt @@ -1956,6 +1956,19 @@ KVM MMU at runtime. Default is 0 (off) @@ -59,7 +61,7 @@ Signed-off-by: Thomas Gleixner kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM. Default is 1 (enabled) -@@ -2522,6 +2535,12 @@ +@@ -2524,6 +2537,12 @@ l1tf=off [X86] mds=off [X86] tsx_async_abort=off [X86] @@ -72,8 +74,10 @@ Signed-off-by: Thomas Gleixner auto (default) Mitigate all CPU vulnerabilities, but leave SMT ---- a/arch/x86/include/asm/kvm_host.h -+++ b/arch/x86/include/asm/kvm_host.h +Index: linux/arch/x86/include/asm/kvm_host.h +=================================================================== +--- linux.orig/arch/x86/include/asm/kvm_host.h ++++ linux/arch/x86/include/asm/kvm_host.h @@ -293,6 +293,7 @@ struct kvm_mmu_page { /* hold the gfn of each spte inside spt */ gfn_t *gfns; @@ -82,7 +86,7 @@ Signed-off-by: Thomas Gleixner int root_count; /* Currently serving as active root */ unsigned int unsync_children; struct kvm_rmap_head parent_ptes; /* rmap pointers to parent sptes */ -@@ -887,6 +888,7 @@ struct kvm_vm_stat { +@@ -890,6 +891,7 @@ struct kvm_vm_stat { ulong mmu_unsync; ulong remote_tlb_flush; ulong lpages; @@ -90,8 +94,10 @@ Signed-off-by: Thomas Gleixner ulong max_mmu_page_hash_collisions; }; ---- a/arch/x86/kernel/cpu/bugs.c -+++ b/arch/x86/kernel/cpu/bugs.c +Index: linux/arch/x86/kernel/cpu/bugs.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/bugs.c ++++ linux/arch/x86/kernel/cpu/bugs.c @@ -1225,6 +1225,9 @@ void x86_spec_ctrl_setup_ap(void) x86_amd_ssb_disable(); } @@ -129,8 +135,10 @@ Signed-off-by: Thomas Gleixner static ssize_t mds_show_state(char *buf) { ---- a/arch/x86/kvm/mmu.c -+++ b/arch/x86/kvm/mmu.c +Index: linux/arch/x86/kvm/mmu.c +=================================================================== +--- linux.orig/arch/x86/kvm/mmu.c ++++ linux/arch/x86/kvm/mmu.c @@ -49,6 +49,20 @@ #include #include "trace.h" @@ -387,8 +395,10 @@ Signed-off-by: Thomas Gleixner kvm_mmu_reset_all_pte_masks(); pte_list_desc_cache = kmem_cache_create("pte_list_desc", ---- a/arch/x86/kvm/paging_tmpl.h -+++ b/arch/x86/kvm/paging_tmpl.h +Index: linux/arch/x86/kvm/paging_tmpl.h +=================================================================== +--- linux.orig/arch/x86/kvm/paging_tmpl.h ++++ linux/arch/x86/kvm/paging_tmpl.h @@ -596,13 +596,14 @@ static void FNAME(pte_prefetch)(struct k static int FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr, struct guest_walker *gw, @@ -465,8 +475,10 @@ Signed-off-by: Thomas Gleixner kvm_mmu_audit(vcpu, AUDIT_POST_PAGE_FAULT); out_unlock: ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c +Index: linux/arch/x86/kvm/x86.c +=================================================================== +--- linux.orig/arch/x86/kvm/x86.c ++++ linux/arch/x86/kvm/x86.c @@ -206,6 +206,7 @@ struct kvm_stats_debugfs_item debugfs_en { "mmu_unsync", VM_STAT(mmu_unsync) }, { "remote_tlb_flush", VM_STAT(remote_tlb_flush) }, @@ -475,7 +487,7 @@ Signed-off-by: Thomas Gleixner { "max_mmu_page_hash_collisions", VM_STAT(max_mmu_page_hash_collisions) }, { NULL } -@@ -1116,6 +1117,14 @@ u64 kvm_get_arch_capabilities(void) +@@ -1131,6 +1132,14 @@ u64 kvm_get_arch_capabilities(void) rdmsrl_safe(MSR_IA32_ARCH_CAPABILITIES, &data); /* diff --git a/debian/patches/bugfix/x86/itlb_multihit/0026-kvm-x86-mmu-Recovery-of-shattered-NX-large-pages.patch b/debian/patches/bugfix/x86/itlb_multihit/0026-kvm-x86-mmu-Recovery-of-shattered-NX-large-pages.patch index af180b791..07f8cd57b 100644 --- a/debian/patches/bugfix/x86/itlb_multihit/0026-kvm-x86-mmu-Recovery-of-shattered-NX-large-pages.patch +++ b/debian/patches/bugfix/x86/itlb_multihit/0026-kvm-x86-mmu-Recovery-of-shattered-NX-large-pages.patch @@ -26,8 +26,10 @@ Signed-off-by: Thomas Gleixner virt/kvm/kvm_main.c | 30 +++- 6 files changed, 183 insertions(+), 1 deletion(-) ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt @@ -1969,6 +1969,12 @@ If the software workaround is enabled for the host, guests do need not to enable it for nested guests. @@ -41,8 +43,10 @@ Signed-off-by: Thomas Gleixner kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM. Default is 1 (enabled) ---- a/arch/x86/include/asm/kvm_host.h -+++ b/arch/x86/include/asm/kvm_host.h +Index: linux/arch/x86/include/asm/kvm_host.h +=================================================================== +--- linux.orig/arch/x86/include/asm/kvm_host.h ++++ linux/arch/x86/include/asm/kvm_host.h @@ -281,6 +281,7 @@ struct kvm_rmap_head { struct kvm_mmu_page { struct list_head link; @@ -51,7 +55,7 @@ Signed-off-by: Thomas Gleixner /* * The following two entries are used to key the shadow page in the -@@ -805,6 +806,7 @@ struct kvm_arch { +@@ -808,6 +809,7 @@ struct kvm_arch { */ struct list_head active_mmu_pages; struct list_head zapped_obsolete_pages; @@ -59,7 +63,7 @@ Signed-off-by: Thomas Gleixner struct kvm_page_track_notifier_node mmu_sp_tracker; struct kvm_page_track_notifier_head track_notifier_head; -@@ -875,6 +877,8 @@ struct kvm_arch { +@@ -878,6 +880,8 @@ struct kvm_arch { bool x2apic_broadcast_quirk_disabled; bool guest_can_read_msr_platform_info; @@ -68,8 +72,10 @@ Signed-off-by: Thomas Gleixner }; struct kvm_vm_stat { ---- a/arch/x86/kvm/mmu.c -+++ b/arch/x86/kvm/mmu.c +Index: linux/arch/x86/kvm/mmu.c +=================================================================== +--- linux.orig/arch/x86/kvm/mmu.c ++++ linux/arch/x86/kvm/mmu.c @@ -40,6 +40,7 @@ #include #include @@ -131,7 +137,7 @@ Signed-off-by: Thomas Gleixner } mutex_unlock(&kvm_lock); } -@@ -6087,3 +6103,116 @@ void kvm_mmu_module_exit(void) +@@ -6086,3 +6102,116 @@ void kvm_mmu_module_exit(void) unregister_shrinker(&mmu_shrinker); mmu_audit_disable(); } @@ -248,8 +254,10 @@ Signed-off-by: Thomas Gleixner + if (kvm->arch.nx_lpage_recovery_thread) + kthread_stop(kvm->arch.nx_lpage_recovery_thread); +} ---- a/arch/x86/kvm/mmu.h -+++ b/arch/x86/kvm/mmu.h +Index: linux/arch/x86/kvm/mmu.h +=================================================================== +--- linux.orig/arch/x86/kvm/mmu.h ++++ linux/arch/x86/kvm/mmu.h @@ -216,4 +216,8 @@ void kvm_mmu_gfn_allow_lpage(struct kvm_ bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm, struct kvm_memory_slot *slot, u64 gfn); @@ -259,9 +267,11 @@ Signed-off-by: Thomas Gleixner +void kvm_mmu_pre_destroy_vm(struct kvm *kvm); + #endif ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -8960,6 +8960,7 @@ int kvm_arch_init_vm(struct kvm *kvm, un +Index: linux/arch/x86/kvm/x86.c +=================================================================== +--- linux.orig/arch/x86/kvm/x86.c ++++ linux/arch/x86/kvm/x86.c +@@ -8985,6 +8985,7 @@ int kvm_arch_init_vm(struct kvm *kvm, un INIT_HLIST_HEAD(&kvm->arch.mask_notifier_list); INIT_LIST_HEAD(&kvm->arch.active_mmu_pages); INIT_LIST_HEAD(&kvm->arch.zapped_obsolete_pages); @@ -269,7 +279,7 @@ Signed-off-by: Thomas Gleixner INIT_LIST_HEAD(&kvm->arch.assigned_dev_head); atomic_set(&kvm->arch.noncoherent_dma_count, 0); -@@ -8991,6 +8992,11 @@ int kvm_arch_init_vm(struct kvm *kvm, un +@@ -9016,6 +9017,11 @@ int kvm_arch_init_vm(struct kvm *kvm, un return 0; } @@ -281,7 +291,7 @@ Signed-off-by: Thomas Gleixner static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu) { vcpu_load(vcpu); -@@ -9092,6 +9098,11 @@ int x86_set_memory_region(struct kvm *kv +@@ -9117,6 +9123,11 @@ int x86_set_memory_region(struct kvm *kv } EXPORT_SYMBOL_GPL(x86_set_memory_region); @@ -293,8 +303,10 @@ Signed-off-by: Thomas Gleixner void kvm_arch_destroy_vm(struct kvm *kvm) { if (current->mm == kvm->mm) { ---- a/virt/kvm/kvm_main.c -+++ b/virt/kvm/kvm_main.c +Index: linux/virt/kvm/kvm_main.c +=================================================================== +--- linux.orig/virt/kvm/kvm_main.c ++++ linux/virt/kvm/kvm_main.c @@ -625,6 +625,23 @@ static int kvm_create_vm_debugfs(struct return 0; } diff --git a/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch b/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch index f9baa7bd3..e8727ef11 100644 --- a/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch +++ b/debian/patches/bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch @@ -13,9 +13,11 @@ Fixes: 52ffe0ff02fc ("Support x86(32-bit) cross platform callchain unwind.") Signed-off-by: Ben Hutchings --- ---- a/tools/perf/arch/x86/util/unwind-libunwind.c -+++ b/tools/perf/arch/x86/util/unwind-libunwind.c -@@ -66,7 +66,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum) +Index: linux/tools/perf/arch/x86/util/unwind-libunwind.c +=================================================================== +--- linux.orig/tools/perf/arch/x86/util/unwind-libunwind.c ++++ linux/tools/perf/arch/x86/util/unwind-libunwind.c +@@ -67,7 +67,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum) break; default: pr_err("unwind: invalid reg id %d\n", regnum); @@ -24,7 +26,7 @@ Signed-off-by: Ben Hutchings } return id; -@@ -106,7 +106,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum) +@@ -107,7 +107,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum) break; default: pr_err("unwind: invalid reg id %d\n", regnum); diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch index 1272bdd82..c9cd5cfc4 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-310-15ikb-to.patch @@ -17,9 +17,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -872,6 +872,13 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1098,6 +1098,13 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch index c9c69229e..43a075fea 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v310-15isk-t.patch @@ -15,9 +15,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -872,6 +872,13 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1098,6 +1098,13 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch index cbb03f7dd..f64747726 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch @@ -17,9 +17,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -879,6 +879,13 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1105,6 +1105,13 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch index f00a08bf3..4041cd9a3 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch @@ -15,9 +15,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 70 +++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -872,6 +872,27 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1098,6 +1098,27 @@ static const struct dmi_system_id no_hw_ }, }, { @@ -45,7 +47,7 @@ Signed-off-by: Andy Shevchenko .ident = "Lenovo V310-15ISK", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), -@@ -886,6 +907,41 @@ static const struct dmi_system_id no_hw_ +@@ -1112,6 +1133,41 @@ static const struct dmi_system_id no_hw_ }, }, { @@ -87,7 +89,7 @@ Signed-off-by: Andy Shevchenko .ident = "Lenovo ideapad 310-15IKB", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), -@@ -893,6 +949,20 @@ static const struct dmi_system_id no_hw_ +@@ -1119,6 +1175,20 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch index 53cd0c93a..0020839df 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch @@ -15,9 +15,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -921,6 +921,13 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1182,6 +1182,13 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch index b4062eef8..59f3dc3f6 100644 --- a/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch +++ b/debian/patches/bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch @@ -15,9 +15,11 @@ Signed-off-by: Andy Shevchenko drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -928,6 +928,13 @@ static const struct dmi_system_id no_hw_ +Index: linux/drivers/platform/x86/ideapad-laptop.c +=================================================================== +--- linux.orig/drivers/platform/x86/ideapad-laptop.c ++++ linux/drivers/platform/x86/ideapad-laptop.c +@@ -1189,6 +1189,13 @@ static const struct dmi_system_id no_hw_ }, }, { diff --git a/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch b/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch index cfbf98e82..e571c91fe 100644 --- a/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch +++ b/debian/patches/bugfix/x86/revert-perf-build-fix-libunwind-feature-detection-on.patch @@ -9,9 +9,11 @@ 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 -@@ -38,7 +38,7 @@ ifeq ($(SRCARCH),x86) +Index: linux/tools/perf/Makefile.config +=================================================================== +--- linux.orig/tools/perf/Makefile.config ++++ linux/tools/perf/Makefile.config +@@ -42,7 +42,7 @@ ifeq ($(SRCARCH),x86) LIBUNWIND_LIBS = -lunwind-x86_64 -lunwind -llzma $(call detected,CONFIG_X86_64) else diff --git a/debian/patches/bugfix/x86/taa/0001-KVM-x86-use-Intel-speculation-bugs-and-features-as-d.patch b/debian/patches/bugfix/x86/taa/0001-KVM-x86-use-Intel-speculation-bugs-and-features-as-d.patch index 605dbae1d..c067d592d 100644 --- a/debian/patches/bugfix/x86/taa/0001-KVM-x86-use-Intel-speculation-bugs-and-features-as-d.patch +++ b/debian/patches/bugfix/x86/taa/0001-KVM-x86-use-Intel-speculation-bugs-and-features-as-d.patch @@ -18,8 +18,10 @@ Signed-off-by: Thomas Gleixner arch/x86/kvm/x86.c | 8 ++++++++ 2 files changed, 16 insertions(+) ---- a/arch/x86/kvm/cpuid.c -+++ b/arch/x86/kvm/cpuid.c +Index: linux/arch/x86/kvm/cpuid.c +=================================================================== +--- linux.orig/arch/x86/kvm/cpuid.c ++++ linux/arch/x86/kvm/cpuid.c @@ -501,8 +501,16 @@ static inline int __do_cpuid_ent(struct /* PKU is not yet implemented for shadow paging. */ if (!tdp_enabled || !boot_cpu_has(X86_FEATURE_OSPKE)) @@ -37,9 +39,11 @@ Signed-off-by: Thomas Gleixner /* * We emulate ARCH_CAPABILITIES in software even * if the host doesn't support it. ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -1127,8 +1127,16 @@ u64 kvm_get_arch_capabilities(void) +Index: linux/arch/x86/kvm/x86.c +=================================================================== +--- linux.orig/arch/x86/kvm/x86.c ++++ linux/arch/x86/kvm/x86.c +@@ -1142,8 +1142,16 @@ u64 kvm_get_arch_capabilities(void) if (l1tf_vmx_mitigation != VMENTER_L1D_FLUSH_NEVER) data |= ARCH_CAP_SKIP_VMENTRY_L1DFLUSH; diff --git a/debian/patches/bugfix/x86/taa/0004-x86-cpu-Add-a-tsx-cmdline-option-with-TSX-disabled-b.patch b/debian/patches/bugfix/x86/taa/0004-x86-cpu-Add-a-tsx-cmdline-option-with-TSX-disabled-b.patch index 87373788c..3ace29444 100644 --- a/debian/patches/bugfix/x86/taa/0004-x86-cpu-Add-a-tsx-cmdline-option-with-TSX-disabled-b.patch +++ b/debian/patches/bugfix/x86/taa/0004-x86-cpu-Add-a-tsx-cmdline-option-with-TSX-disabled-b.patch @@ -32,9 +32,11 @@ Reviewed-by: Josh Poimboeuf 6 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 arch/x86/kernel/cpu/tsx.c ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4685,6 +4685,32 @@ +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt +@@ -4694,6 +4694,32 @@ marks the TSC unconditionally unstable at bootup and avoids any further wobbles once the TSC watchdog notices. @@ -67,8 +69,10 @@ Reviewed-by: Josh Poimboeuf turbografx.map[2|3]= [HW,JOY] TurboGraFX parallel port interface Format: ---- a/arch/x86/kernel/cpu/Makefile -+++ b/arch/x86/kernel/cpu/Makefile +Index: linux/arch/x86/kernel/cpu/Makefile +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/Makefile ++++ linux/arch/x86/kernel/cpu/Makefile @@ -28,7 +28,7 @@ obj-y += cpuid-deps.o obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_X86_FEATURE_NAMES) += capflags.o powerflags.o @@ -78,8 +82,10 @@ Reviewed-by: Josh Poimboeuf obj-$(CONFIG_CPU_SUP_AMD) += amd.o obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o ---- a/arch/x86/kernel/cpu/common.c -+++ b/arch/x86/kernel/cpu/common.c +Index: linux/arch/x86/kernel/cpu/common.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/common.c ++++ linux/arch/x86/kernel/cpu/common.c @@ -1482,6 +1482,7 @@ void __init identify_boot_cpu(void) enable_sep_cpu(); #endif @@ -88,8 +94,10 @@ Reviewed-by: Josh Poimboeuf } void identify_secondary_cpu(struct cpuinfo_x86 *c) ---- a/arch/x86/kernel/cpu/cpu.h -+++ b/arch/x86/kernel/cpu/cpu.h +Index: linux/arch/x86/kernel/cpu/cpu.h +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/cpu.h ++++ linux/arch/x86/kernel/cpu/cpu.h @@ -45,6 +45,22 @@ struct _tlb_table { extern const struct cpu_dev *const __x86_cpu_dev_start[], *const __x86_cpu_dev_end[]; @@ -113,8 +121,10 @@ Reviewed-by: Josh Poimboeuf extern void get_cpu_cap(struct cpuinfo_x86 *c); extern void get_cpu_address_sizes(struct cpuinfo_x86 *c); extern void cpu_detect_cache_sizes(struct cpuinfo_x86 *c); ---- a/arch/x86/kernel/cpu/intel.c -+++ b/arch/x86/kernel/cpu/intel.c +Index: linux/arch/x86/kernel/cpu/intel.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/intel.c ++++ linux/arch/x86/kernel/cpu/intel.c @@ -766,6 +766,11 @@ static void init_intel(struct cpuinfo_x8 init_intel_energy_perf(c); @@ -127,8 +137,10 @@ Reviewed-by: Josh Poimboeuf } #ifdef CONFIG_X86_32 +Index: linux/arch/x86/kernel/cpu/tsx.c +=================================================================== --- /dev/null -+++ b/arch/x86/kernel/cpu/tsx.c ++++ linux/arch/x86/kernel/cpu/tsx.c @@ -0,0 +1,125 @@ +// SPDX-License-Identifier: GPL-2.0 +/* diff --git a/debian/patches/bugfix/x86/taa/0007-kvm-x86-Export-MDS_NO-0-to-guests-when-TSX-is-enable.patch b/debian/patches/bugfix/x86/taa/0007-kvm-x86-Export-MDS_NO-0-to-guests-when-TSX-is-enable.patch index 869858647..708781b5e 100644 --- a/debian/patches/bugfix/x86/taa/0007-kvm-x86-Export-MDS_NO-0-to-guests-when-TSX-is-enable.patch +++ b/debian/patches/bugfix/x86/taa/0007-kvm-x86-Export-MDS_NO-0-to-guests-when-TSX-is-enable.patch @@ -30,9 +30,11 @@ Reviewed-by: Josh Poimboeuf arch/x86/kvm/x86.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -1134,6 +1134,25 @@ u64 kvm_get_arch_capabilities(void) +Index: linux/arch/x86/kvm/x86.c +=================================================================== +--- linux.orig/arch/x86/kvm/x86.c ++++ linux/arch/x86/kvm/x86.c +@@ -1149,6 +1149,25 @@ u64 kvm_get_arch_capabilities(void) if (!boot_cpu_has_bug(X86_BUG_MDS)) data |= ARCH_CAP_MDS_NO; diff --git a/debian/patches/bugfix/x86/taa/0008-x86-tsx-Add-auto-option-to-the-tsx-cmdline-parameter.patch b/debian/patches/bugfix/x86/taa/0008-x86-tsx-Add-auto-option-to-the-tsx-cmdline-parameter.patch index 1f668f4cb..0a068fa12 100644 --- a/debian/patches/bugfix/x86/taa/0008-x86-tsx-Add-auto-option-to-the-tsx-cmdline-parameter.patch +++ b/debian/patches/bugfix/x86/taa/0008-x86-tsx-Add-auto-option-to-the-tsx-cmdline-parameter.patch @@ -23,9 +23,11 @@ Reviewed-by: Josh Poimboeuf arch/x86/kernel/cpu/tsx.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4706,6 +4706,9 @@ +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt +@@ -4715,6 +4715,9 @@ update. This new MSR allows for the reliable deactivation of the TSX functionality.) @@ -35,8 +37,10 @@ Reviewed-by: Josh Poimboeuf Not specifying this option is equivalent to tsx=off. See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst ---- a/arch/x86/kernel/cpu/tsx.c -+++ b/arch/x86/kernel/cpu/tsx.c +Index: linux/arch/x86/kernel/cpu/tsx.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/tsx.c ++++ linux/arch/x86/kernel/cpu/tsx.c @@ -75,7 +75,7 @@ static bool __init tsx_ctrl_is_supported void __init tsx_init(void) diff --git a/debian/patches/bugfix/x86/taa/0009-x86-speculation-taa-Add-documentation-for-TSX-Async-.patch b/debian/patches/bugfix/x86/taa/0009-x86-speculation-taa-Add-documentation-for-TSX-Async-.patch index 5b474ca9b..2906f58fd 100644 --- a/debian/patches/bugfix/x86/taa/0009-x86-speculation-taa-Add-documentation-for-TSX-Async-.patch +++ b/debian/patches/bugfix/x86/taa/0009-x86-speculation-taa-Add-documentation-for-TSX-Async-.patch @@ -30,8 +30,10 @@ Reviewed-by: Josh Poimboeuf create mode 100644 Documentation/admin-guide/hw-vuln/tsx_async_abort.rst create mode 100644 Documentation/x86/tsx_async_abort.rst ---- a/Documentation/ABI/testing/sysfs-devices-system-cpu -+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu +Index: linux/Documentation/ABI/testing/sysfs-devices-system-cpu +=================================================================== +--- linux.orig/Documentation/ABI/testing/sysfs-devices-system-cpu ++++ linux/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -478,6 +478,7 @@ What: /sys/devices/system/cpu/vulnerabi /sys/devices/system/cpu/vulnerabilities/spec_store_bypass /sys/devices/system/cpu/vulnerabilities/l1tf @@ -40,15 +42,19 @@ Reviewed-by: Josh Poimboeuf Date: January 2018 Contact: Linux kernel mailing list Description: Information about CPU vulnerabilities ---- a/Documentation/admin-guide/hw-vuln/index.rst -+++ b/Documentation/admin-guide/hw-vuln/index.rst +Index: linux/Documentation/admin-guide/hw-vuln/index.rst +=================================================================== +--- linux.orig/Documentation/admin-guide/hw-vuln/index.rst ++++ linux/Documentation/admin-guide/hw-vuln/index.rst @@ -12,3 +12,4 @@ are configurable at compile, boot or run spectre l1tf mds + tsx_async_abort +Index: linux/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst +=================================================================== --- /dev/null -+++ b/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst ++++ linux/Documentation/admin-guide/hw-vuln/tsx_async_abort.rst @@ -0,0 +1,276 @@ +.. SPDX-License-Identifier: GPL-2.0 + @@ -326,17 +332,19 @@ Reviewed-by: Josh Poimboeuf +The kernel's default action for vulnerable processors is: + + - Deploy TSX disable mitigation (tsx_async_abort=full tsx=off). ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -2521,6 +2521,7 @@ - spec_store_bypass_disable=off [X86,PPC] +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt +@@ -2523,6 +2523,7 @@ + ssbd=force-off [ARM64] l1tf=off [X86] mds=off [X86] + tsx_async_abort=off [X86] auto (default) Mitigate all CPU vulnerabilities, but leave SMT -@@ -2536,6 +2537,7 @@ +@@ -2538,6 +2539,7 @@ be fully mitigated, even if it means losing SMT. Equivalent to: l1tf=flush,nosmt [X86] mds=full,nosmt [X86] @@ -344,7 +352,7 @@ Reviewed-by: Josh Poimboeuf mminit_loglevel= [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this -@@ -4714,6 +4716,42 @@ +@@ -4723,6 +4725,42 @@ See Documentation/admin-guide/hw-vuln/tsx_async_abort.rst for more details. @@ -387,15 +395,19 @@ Reviewed-by: Josh Poimboeuf turbografx.map[2|3]= [HW,JOY] TurboGraFX parallel port interface Format: ---- a/Documentation/x86/index.rst -+++ b/Documentation/x86/index.rst +Index: linux/Documentation/x86/index.rst +=================================================================== +--- linux.orig/Documentation/x86/index.rst ++++ linux/Documentation/x86/index.rst @@ -6,3 +6,4 @@ x86 architecture specifics :maxdepth: 1 mds + tsx_async_abort +Index: linux/Documentation/x86/tsx_async_abort.rst +=================================================================== --- /dev/null -+++ b/Documentation/x86/tsx_async_abort.rst ++++ linux/Documentation/x86/tsx_async_abort.rst @@ -0,0 +1,117 @@ +.. SPDX-License-Identifier: GPL-2.0 + diff --git a/debian/patches/bugfix/x86/taa/0010-x86-tsx-Add-config-options-to-set-tsx-on-off-auto.patch b/debian/patches/bugfix/x86/taa/0010-x86-tsx-Add-config-options-to-set-tsx-on-off-auto.patch index ae61df728..624529da5 100644 --- a/debian/patches/bugfix/x86/taa/0010-x86-tsx-Add-config-options-to-set-tsx-on-off-auto.patch +++ b/debian/patches/bugfix/x86/taa/0010-x86-tsx-Add-config-options-to-set-tsx-on-off-auto.patch @@ -32,8 +32,10 @@ Reviewed-by: Josh Poimboeuf arch/x86/kernel/cpu/tsx.c | 22 +++++++++++++------ 2 files changed, 61 insertions(+), 6 deletions(-) ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig +Index: linux/arch/x86/Kconfig +=================================================================== +--- linux.orig/arch/x86/Kconfig ++++ linux/arch/x86/Kconfig @@ -1903,6 +1903,51 @@ config X86_INTEL_MEMORY_PROTECTION_KEYS If unsure, say y. @@ -86,8 +88,10 @@ Reviewed-by: Josh Poimboeuf config EFI bool "EFI runtime service support" depends on ACPI ---- a/arch/x86/kernel/cpu/tsx.c -+++ b/arch/x86/kernel/cpu/tsx.c +Index: linux/arch/x86/kernel/cpu/tsx.c +=================================================================== +--- linux.orig/arch/x86/kernel/cpu/tsx.c ++++ linux/arch/x86/kernel/cpu/tsx.c @@ -73,6 +73,14 @@ static bool __init tsx_ctrl_is_supported return !!(ia32_cap & ARCH_CAP_TSX_CTRL_MSR); } diff --git a/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch b/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch index cad050d64..77b56df47 100644 --- a/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch +++ b/debian/patches/bugfix/x86/tools-turbostat-Add-checks-for-failure-of-fgets-and-.patch @@ -11,11 +11,11 @@ Signed-off-by: Ben Hutchings tools/power/x86/turbostat/turbostat.c | 28 +++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) -diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c -index 980bd9d20646..b4f32dd37c67 100644 ---- a/tools/power/x86/turbostat/turbostat.c -+++ b/tools/power/x86/turbostat/turbostat.c -@@ -2554,7 +2554,8 @@ int get_thread_siblings(struct cpu_topology *thiscpu) +Index: linux/tools/power/x86/turbostat/turbostat.c +=================================================================== +--- linux.orig/tools/power/x86/turbostat/turbostat.c ++++ linux/tools/power/x86/turbostat/turbostat.c +@@ -2554,7 +2554,8 @@ int get_thread_siblings(struct cpu_topol filep = fopen_or_die(path, "r"); do { offset -= BITMASK_SIZE; @@ -92,7 +92,7 @@ index 980bd9d20646..b4f32dd37c67 100644 fprintf(outf, "cpufreq intel_pstate no_turbo: %d\n", turbo); fclose(input); } -@@ -5293,7 +5299,8 @@ void probe_sysfs(void) +@@ -5296,7 +5302,8 @@ void probe_sysfs(void) input = fopen(path, "r"); if (input == NULL) continue; @@ -102,7 +102,7 @@ index 980bd9d20646..b4f32dd37c67 100644 /* truncate "C1-HSW\n" to "C1", or truncate "C1\n" to "C1" */ sp = strchr(name_buf, '-'); -@@ -5320,7 +5327,8 @@ void probe_sysfs(void) +@@ -5323,7 +5330,8 @@ void probe_sysfs(void) input = fopen(path, "r"); if (input == NULL) continue; diff --git a/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch b/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch index d3957338f..14df64f35 100644 --- a/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch +++ b/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch @@ -14,9 +14,11 @@ We need to allow it to be autoloaded on this model only, and then un-blacklist it in udev. --- ---- a/drivers/video/fbdev/via/via-core.c -+++ b/drivers/video/fbdev/via/via-core.c -@@ -753,7 +753,14 @@ static struct pci_device_id via_pci_tabl +Index: linux/drivers/video/fbdev/via/via-core.c +=================================================================== +--- linux.orig/drivers/video/fbdev/via/via-core.c ++++ linux/drivers/video/fbdev/via/via-core.c +@@ -752,7 +752,14 @@ static const struct pci_device_id via_pc .driver_data = UNICHROME_VX900 }, { } }; diff --git a/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch b/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch index 074c856be..2970dc8b4 100644 --- a/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch +++ b/debian/patches/bugfix/x86/x86-32-disable-3dnow-in-generic-config.patch @@ -16,8 +16,10 @@ crash on CPUs without the AMD-specific 3D-Now instructions. Make CONFIG_X86_USE_3DNOW depend on CONFIG_X86_GENERIC being disabled. --- ---- a/arch/x86/Kconfig.cpu -+++ b/arch/x86/Kconfig.cpu +Index: linux/arch/x86/Kconfig.cpu +=================================================================== +--- linux.orig/arch/x86/Kconfig.cpu ++++ linux/arch/x86/Kconfig.cpu @@ -337,7 +337,7 @@ config X86_USE_PPRO_CHECKSUM config X86_USE_3DNOW diff --git a/debian/patches/debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch b/debian/patches/debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch index f9e9704da..d0ba5e5c7 100644 --- a/debian/patches/debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch +++ b/debian/patches/debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch @@ -10,8 +10,10 @@ The KVM state structures will change, but we ignore ABI changes there since they won't affect out-of-tree modules. --- ---- a/arch/powerpc/include/asm/paca.h -+++ b/arch/powerpc/include/asm/paca.h +Index: linux/arch/powerpc/include/asm/paca.h +=================================================================== +--- linux.orig/arch/powerpc/include/asm/paca.h ++++ linux/arch/powerpc/include/asm/paca.h @@ -173,7 +173,7 @@ struct paca_struct { u8 pmcregs_in_use; /* pseries puts this in lppaca */ #endif @@ -21,8 +23,10 @@ since they won't affect out-of-tree modules. u64 tm_scratch; /* TM scratch area for reclaim */ #endif ---- a/arch/powerpc/include/asm/processor.h -+++ b/arch/powerpc/include/asm/processor.h +Index: linux/arch/powerpc/include/asm/processor.h +=================================================================== +--- linux.orig/arch/powerpc/include/asm/processor.h ++++ linux/arch/powerpc/include/asm/processor.h @@ -293,7 +293,7 @@ struct thread_struct { call or trap return */ int used_spe; /* set if process has used spe */ diff --git a/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch index 55edbc75c..3f6baa5dc 100644 --- a/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch +++ b/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch @@ -13,9 +13,11 @@ issues are found, we have a fail-safe. Signed-off-by: Serge Hallyn [bwh: Remove unneeded binary sysctl bits] --- ---- a/kernel/fork.c -+++ b/kernel/fork.c -@@ -102,6 +102,11 @@ +Index: linux/kernel/fork.c +=================================================================== +--- linux.orig/kernel/fork.c ++++ linux/kernel/fork.c +@@ -103,6 +103,11 @@ #define CREATE_TRACE_POINTS #include @@ -27,7 +29,7 @@ Signed-off-by: Serge Hallyn /* * Minimum number of threads to boot the kernel -@@ -1550,6 +1555,10 @@ static __latent_entropy struct task_stru +@@ -1675,6 +1680,10 @@ static __latent_entropy struct task_stru if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -38,7 +40,7 @@ Signed-off-by: Serge Hallyn /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2343,6 +2352,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, +@@ -2504,6 +2513,12 @@ int ksys_unshare(unsigned long unshare_f if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -51,8 +53,10 @@ Signed-off-by: Serge Hallyn err = check_unshare_flags(unshare_flags); if (err) goto bad_unshare_out; ---- a/kernel/sysctl.c -+++ b/kernel/sysctl.c +Index: linux/kernel/sysctl.c +=================================================================== +--- linux.orig/kernel/sysctl.c ++++ linux/kernel/sysctl.c @@ -105,6 +105,9 @@ extern int core_uses_pid; extern char core_pattern[]; extern unsigned int core_pipe_limit; @@ -63,7 +67,7 @@ Signed-off-by: Serge Hallyn extern int pid_max; extern int pid_max_min, pid_max_max; extern int percpu_pagelist_fraction; -@@ -512,6 +515,15 @@ static struct ctl_table kern_table[] = { +@@ -515,6 +518,15 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = proc_dointvec, }, @@ -79,8 +83,10 @@ Signed-off-by: Serge Hallyn #endif #ifdef CONFIG_PROC_SYSCTL { ---- a/kernel/user_namespace.c -+++ b/kernel/user_namespace.c +Index: linux/kernel/user_namespace.c +=================================================================== +--- linux.orig/kernel/user_namespace.c ++++ linux/kernel/user_namespace.c @@ -26,6 +26,9 @@ #include #include diff --git a/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch b/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch index 3b33f845a..8726519ad 100644 --- a/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch +++ b/debian/patches/debian/af_802154-Disable-auto-loading-as-mitigation-against.patch @@ -19,9 +19,11 @@ Signed-off-by: Ben Hutchings net/ieee802154/socket.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) ---- a/net/ieee802154/socket.c -+++ b/net/ieee802154/socket.c -@@ -1122,4 +1122,4 @@ module_init(af_ieee802154_init); +Index: linux/net/ieee802154/socket.c +=================================================================== +--- linux.orig/net/ieee802154/socket.c ++++ linux/net/ieee802154/socket.c +@@ -1144,4 +1144,4 @@ module_init(af_ieee802154_init); module_exit(af_ieee802154_remove); MODULE_LICENSE("GPL"); diff --git a/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch b/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch index a08c4a49f..da02e00e0 100644 --- a/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch +++ b/debian/patches/debian/android-enable-building-ashmem-and-binder-as-modules.patch @@ -14,8 +14,10 @@ need them. - Change config symbol types to tristate --- ---- a/drivers/android/Kconfig -+++ b/drivers/android/Kconfig +Index: linux/drivers/android/Kconfig +=================================================================== +--- linux.orig/drivers/android/Kconfig ++++ linux/drivers/android/Kconfig @@ -9,7 +9,7 @@ config ANDROID if ANDROID @@ -25,8 +27,10 @@ need them. depends on MMU default n ---help--- ---- a/drivers/android/Makefile -+++ b/drivers/android/Makefile +Index: linux/drivers/android/Makefile +=================================================================== +--- linux.orig/drivers/android/Makefile ++++ linux/drivers/android/Makefile @@ -1,4 +1,5 @@ ccflags-y += -I$(src) # needed for trace events @@ -35,8 +39,10 @@ need them. +obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o +binder_linux-y := binder.o binder_alloc.o +binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o ---- a/drivers/staging/android/Kconfig -+++ b/drivers/staging/android/Kconfig +Index: linux/drivers/staging/android/Kconfig +=================================================================== +--- linux.orig/drivers/staging/android/Kconfig ++++ linux/drivers/staging/android/Kconfig @@ -3,7 +3,7 @@ menu "Android" if ANDROID @@ -46,8 +52,10 @@ need them. default n depends on SHMEM help ---- a/drivers/staging/android/Makefile -+++ b/drivers/staging/android/Makefile +Index: linux/drivers/staging/android/Makefile +=================================================================== +--- linux.orig/drivers/staging/android/Makefile ++++ linux/drivers/staging/android/Makefile @@ -2,5 +2,6 @@ ccflags-y += -I$(src) # needed for tra obj-y += ion/ @@ -56,8 +64,10 @@ need them. +obj-$(CONFIG_ASHMEM) += ashmem_linux.o +ashmem_linux-y += ashmem.o obj-$(CONFIG_ANDROID_VSOC) += vsoc.o ---- a/drivers/staging/android/ashmem.c -+++ b/drivers/staging/android/ashmem.c +Index: linux/drivers/staging/android/ashmem.c +=================================================================== +--- linux.orig/drivers/staging/android/ashmem.c ++++ linux/drivers/staging/android/ashmem.c @@ -24,6 +24,7 @@ #include #include @@ -66,14 +76,16 @@ need them. #include "ashmem.h" #define ASHMEM_NAME_PREFIX "dev/ashmem/" -@@ -903,3 +904,5 @@ out: +@@ -924,3 +925,5 @@ out: return ret; } device_initcall(ashmem_init); + +MODULE_LICENSE("GPL v2"); ---- a/drivers/android/binder_alloc.c -+++ b/drivers/android/binder_alloc.c +Index: linux/drivers/android/binder_alloc.c +=================================================================== +--- linux.orig/drivers/android/binder_alloc.c ++++ linux/drivers/android/binder_alloc.c @@ -44,7 +44,7 @@ enum { }; static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR; diff --git a/debian/patches/debian/arch-sh4-fix-uimage-build.patch b/debian/patches/debian/arch-sh4-fix-uimage-build.patch index 6fc5a08e8..d9c651ccb 100644 --- a/debian/patches/debian/arch-sh4-fix-uimage-build.patch +++ b/debian/patches/debian/arch-sh4-fix-uimage-build.patch @@ -6,9 +6,11 @@ Forwarded: not-needed [bwh: This was added without a description, but I think it is dealing with a similar issue to powerpcspe-omit-uimage.patch] ---- a/arch/sh/Makefile -+++ b/arch/sh/Makefile -@@ -75,7 +75,6 @@ +Index: linux/arch/sh/Makefile +=================================================================== +--- linux.orig/arch/sh/Makefile ++++ linux/arch/sh/Makefile +@@ -89,7 +89,6 @@ OBJCOPYFLAGS := -O binary -R .note -R .n # Give the various platforms the opportunity to set default image types defaultimage-$(CONFIG_SUPERH32) := zImage diff --git a/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch index 4a1943dbf..5be1b26a7 100644 --- a/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch +++ b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch @@ -15,9 +15,11 @@ Signed-off-by: Adam Borowski fs/btrfs/disk-io.c | 8 ++++++++ 1 file changed, 8 insertions(+) ---- a/fs/btrfs/disk-io.c -+++ b/fs/btrfs/disk-io.c -@@ -3060,6 +3060,15 @@ retry_root_backup: +Index: linux/fs/btrfs/disk-io.c +=================================================================== +--- linux.orig/fs/btrfs/disk-io.c ++++ linux/fs/btrfs/disk-io.c +@@ -3089,6 +3089,15 @@ retry_root_backup: btrfs_set_and_info(fs_info, SSD, "enabling ssd optimizations"); } diff --git a/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch b/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch index 70b446860..57e118698 100644 --- a/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch +++ b/debian/patches/debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch @@ -11,8 +11,10 @@ userland (modem-manager) to override this with a modprobe.conf file once it's ready to speak MBIM. --- ---- a/drivers/net/usb/cdc_ncm.c -+++ b/drivers/net/usb/cdc_ncm.c +Index: linux/drivers/net/usb/cdc_ncm.c +=================================================================== +--- linux.orig/drivers/net/usb/cdc_ncm.c ++++ linux/drivers/net/usb/cdc_ncm.c @@ -53,11 +53,7 @@ #include #include diff --git a/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch b/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch index 83583184e..9f0e897c7 100644 --- a/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch +++ b/debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch @@ -13,9 +13,11 @@ Therefore disable auto-loading. Signed-off-by: Ben Hutchings --- ---- a/net/dccp/ipv4.c -+++ b/net/dccp/ipv4.c -@@ -1071,8 +1071,8 @@ module_exit(dccp_v4_exit); +Index: linux/net/dccp/ipv4.c +=================================================================== +--- linux.orig/net/dccp/ipv4.c ++++ linux/net/dccp/ipv4.c +@@ -1079,8 +1079,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 */ @@ -26,9 +28,11 @@ Signed-off-by: Ben Hutchings MODULE_LICENSE("GPL"); MODULE_AUTHOR("Arnaldo Carvalho de Melo "); MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol"); ---- a/net/dccp/ipv6.c -+++ b/net/dccp/ipv6.c -@@ -1125,8 +1125,8 @@ module_exit(dccp_v6_exit); +Index: linux/net/dccp/ipv6.c +=================================================================== +--- linux.orig/net/dccp/ipv6.c ++++ linux/net/dccp/ipv6.c +@@ -1162,8 +1162,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 */ diff --git a/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch b/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch index fc3de36fb..cb83e5ee8 100644 --- a/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch +++ b/debian/patches/debian/decnet-Disable-auto-loading-as-mitigation-against-lo.patch @@ -19,9 +19,11 @@ Signed-off-by: Ben Hutchings net/decnet/af_decnet.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) ---- a/net/decnet/af_decnet.c -+++ b/net/decnet/af_decnet.c -@@ -2359,7 +2359,7 @@ static const struct proto_ops dn_proto_o +Index: linux/net/decnet/af_decnet.c +=================================================================== +--- linux.orig/net/decnet/af_decnet.c ++++ linux/net/decnet/af_decnet.c +@@ -2346,7 +2346,7 @@ static const struct proto_ops dn_proto_o MODULE_DESCRIPTION("The Linux DECnet Network Protocol"); MODULE_AUTHOR("Linux DECnet Project Team"); MODULE_LICENSE("GPL"); diff --git a/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch b/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch index 0e5176908..97d8be0b2 100644 --- a/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch +++ b/debian/patches/debian/dfsg/arch-powerpc-platforms-8xx-ucode-disable.patch @@ -3,11 +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 -@@ -160,16 +160,19 @@ config NO_UCODE_PATCH +Index: linux/arch/powerpc/platforms/8xx/Kconfig +=================================================================== +--- linux.orig/arch/powerpc/platforms/8xx/Kconfig ++++ linux/arch/powerpc/platforms/8xx/Kconfig +@@ -144,16 +144,19 @@ config NO_UCODE_PATCH config USB_SOF_UCODE_PATCH bool "USB SOF patch" diff --git a/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch b/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch index 4e42da9a9..47233b0ff 100644 --- a/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch +++ b/debian/patches/debian/dfsg/drivers-media-dvb-dvb-usb-af9005-disable.patch @@ -3,9 +3,11 @@ Date: Mon, 17 Aug 2009 02:45:41 +0100 Subject: dvb-usb-af9005: mark as broken Forwarded: not-needed ---- a/drivers/media/usb/dvb-usb/Kconfig -+++ b/drivers/media/usb/dvb-usb/Kconfig -@@ -227,6 +227,7 @@ config DVB_USB_OPERA1 +Index: linux/drivers/media/usb/dvb-usb/Kconfig +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/Kconfig ++++ linux/drivers/media/usb/dvb-usb/Kconfig +@@ -246,6 +246,7 @@ config DVB_USB_OPERA1 config DVB_USB_AF9005 tristate "Afatech AF9005 DVB-T USB1.1 support" diff --git a/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch index 2b195ec4d..d0d266861 100644 --- a/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch +++ b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch @@ -3,10 +3,11 @@ Date: Fri, 05 Jan 2007 15:55:24 +0000 Subject: Add removal patches for: 3c359, smctr, keyspan, cops Forwarded: not-needed -diff -ruN a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig ---- a/drivers/net/appletalk/Kconfig 2006-11-29 21:57:37.000000000 +0000 -+++ b/drivers/net/appletalk/Kconfig 2007-01-05 15:34:44.000000000 +0000 -@@ -49,32 +49,6 @@ +Index: linux/drivers/net/appletalk/Kconfig +=================================================================== +--- linux.orig/drivers/net/appletalk/Kconfig ++++ linux/drivers/net/appletalk/Kconfig +@@ -49,32 +49,6 @@ config LTPC This driver is experimental, which means that it may not work. See the file . @@ -39,9 +40,10 @@ diff -ruN a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig config IPDDP tristate "Appletalk-IP driver support" depends on DEV_APPLETALK && ATALK -diff -ruN a/drivers/net/appletalk/Makefile b/drivers/net/appletalk/Makefile ---- a/drivers/net/appletalk/Makefile 2006-11-29 21:57:37.000000000 +0000 -+++ b/drivers/net/appletalk/Makefile 2007-01-05 15:34:11.000000000 +0000 +Index: linux/drivers/net/appletalk/Makefile +=================================================================== +--- linux.orig/drivers/net/appletalk/Makefile ++++ linux/drivers/net/appletalk/Makefile @@ -3,5 +3,4 @@ # diff --git a/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch b/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch index 0d801b689..24e209fd1 100644 --- a/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch +++ b/debian/patches/debian/dfsg/video-remove-nvidiafb-and-rivafb.patch @@ -13,9 +13,11 @@ These drivers are also largely redundant with nouveau. The RIVA 128 probably discontinued 10 years ago. --- ---- a/drivers/video/fbdev/Kconfig -+++ b/drivers/video/fbdev/Kconfig -@@ -991,101 +991,6 @@ config FB_ATMEL_STN +Index: linux/drivers/video/fbdev/Kconfig +=================================================================== +--- linux.orig/drivers/video/fbdev/Kconfig ++++ linux/drivers/video/fbdev/Kconfig +@@ -901,101 +901,6 @@ config FB_ATMEL help This enables support for the AT91/AT32 LCD Controller. @@ -117,8 +119,10 @@ probably discontinued 10 years ago. config FB_I740 tristate "Intel740 support" depends on FB && PCI ---- a/drivers/video/fbdev/Makefile -+++ b/drivers/video/fbdev/Makefile +Index: linux/drivers/video/fbdev/Makefile +=================================================================== +--- linux.orig/drivers/video/fbdev/Makefile ++++ linux/drivers/video/fbdev/Makefile @@ -22,8 +22,6 @@ obj-$(CONFIG_FB_PM3) += pm3fb.o obj-$(CONFIG_FB_I740) += i740fb.o diff --git a/debian/patches/debian/dfsg/vs6624-disable.patch b/debian/patches/debian/dfsg/vs6624-disable.patch index 6b213a6ff..41219ffd5 100644 --- a/debian/patches/debian/dfsg/vs6624-disable.patch +++ b/debian/patches/debian/dfsg/vs6624-disable.patch @@ -3,9 +3,11 @@ Date: Sun, 27 May 2012 01:56:58 +0100 Subject: vs6624: mark as broken Forwarded: not-needed ---- a/drivers/media/i2c/Kconfig -+++ b/drivers/media/i2c/Kconfig -@@ -768,6 +768,7 @@ config VIDEO_OV13858 +Index: linux/drivers/media/i2c/Kconfig +=================================================================== +--- linux.orig/drivers/media/i2c/Kconfig ++++ linux/drivers/media/i2c/Kconfig +@@ -803,6 +803,7 @@ config VIDEO_OV13858 OV13858 camera. config VIDEO_VS6624 diff --git a/debian/patches/debian/export-symbols-needed-by-android-drivers.patch b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch index 696df27e8..94a00d452 100644 --- a/debian/patches/debian/export-symbols-needed-by-android-drivers.patch +++ b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch @@ -11,8 +11,10 @@ need them. Export the currently un-exported symbols they depend on. --- ---- a/fs/file.c -+++ b/fs/file.c +Index: linux/fs/file.c +=================================================================== +--- linux.orig/fs/file.c ++++ linux/fs/file.c @@ -409,6 +409,7 @@ struct files_struct *get_files_struct(st return files; @@ -29,7 +31,7 @@ Export the currently un-exported symbols they depend on. void reset_files_struct(struct files_struct *files) { -@@ -533,6 +535,7 @@ out: +@@ -534,6 +536,7 @@ out: spin_unlock(&files->file_lock); return error; } @@ -37,7 +39,7 @@ Export the currently un-exported symbols they depend on. static int alloc_fd(unsigned start, unsigned flags) { -@@ -606,6 +609,7 @@ void __fd_install(struct files_struct *f +@@ -607,6 +610,7 @@ void __fd_install(struct files_struct *f rcu_assign_pointer(fdt->fd[fd], file); rcu_read_unlock_sched(); } @@ -45,9 +47,11 @@ Export the currently un-exported symbols they depend on. void fd_install(unsigned int fd, struct file *file) { ---- a/kernel/fork.c -+++ b/kernel/fork.c -@@ -999,6 +999,7 @@ void mmput_async(struct mm_struct *mm) +Index: linux/kernel/fork.c +=================================================================== +--- linux.orig/kernel/fork.c ++++ linux/kernel/fork.c +@@ -1048,6 +1048,7 @@ void mmput_async(struct mm_struct *mm) schedule_work(&mm->async_put_work); } } @@ -55,9 +59,11 @@ Export the currently un-exported symbols they depend on. #endif /** ---- a/kernel/signal.c -+++ b/kernel/signal.c -@@ -1280,6 +1280,7 @@ struct sighand_struct *__lock_task_sigha +Index: linux/kernel/signal.c +=================================================================== +--- linux.orig/kernel/signal.c ++++ linux/kernel/signal.c +@@ -1353,6 +1353,7 @@ struct sighand_struct *__lock_task_sigha return sighand; } @@ -65,9 +71,11 @@ Export the currently un-exported symbols they depend on. /* * send signal info to all the members of a group ---- a/mm/memory.c -+++ b/mm/memory.c -@@ -1624,6 +1624,7 @@ void zap_page_range(struct vm_area_struc +Index: linux/mm/memory.c +=================================================================== +--- linux.orig/mm/memory.c ++++ linux/mm/memory.c +@@ -1611,6 +1611,7 @@ void zap_page_range(struct vm_area_struc mmu_notifier_invalidate_range_end(mm, start, end); tlb_finish_mmu(&tlb, start, end); } @@ -75,9 +83,11 @@ Export the currently un-exported symbols they depend on. /** * zap_page_range_single - remove user pages in a given range ---- a/mm/shmem.c -+++ b/mm/shmem.c -@@ -4326,6 +4326,7 @@ int shmem_zero_setup(struct vm_area_stru +Index: linux/mm/shmem.c +=================================================================== +--- linux.orig/mm/shmem.c ++++ linux/mm/shmem.c +@@ -4039,6 +4039,7 @@ int shmem_zero_setup(struct vm_area_stru return 0; } @@ -85,9 +95,11 @@ Export the currently un-exported symbols they depend on. /** * shmem_read_mapping_page_gfp - read into page cache, using specified page allocation flags. ---- a/mm/vmalloc.c -+++ b/mm/vmalloc.c -@@ -1308,6 +1308,7 @@ int map_kernel_range_noflush(unsigned lo +Index: linux/mm/vmalloc.c +=================================================================== +--- linux.orig/mm/vmalloc.c ++++ linux/mm/vmalloc.c +@@ -1299,6 +1299,7 @@ int map_kernel_range_noflush(unsigned lo { return vmap_page_range_noflush(addr, addr + size, prot, pages); } @@ -95,7 +107,7 @@ Export the currently un-exported symbols they depend on. /** * unmap_kernel_range_noflush - unmap kernel VM area -@@ -1448,6 +1449,7 @@ struct vm_struct *get_vm_area(unsigned l +@@ -1439,6 +1440,7 @@ struct vm_struct *get_vm_area(unsigned l NUMA_NO_NODE, GFP_KERNEL, __builtin_return_address(0)); } @@ -103,9 +115,11 @@ Export the currently un-exported symbols they depend on. struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags, const void *caller) ---- a/security/security.c -+++ b/security/security.c -@@ -231,24 +231,28 @@ int security_binder_set_context_mgr(stru +Index: linux/security/security.c +=================================================================== +--- linux.orig/security/security.c ++++ linux/security/security.c +@@ -236,24 +236,28 @@ int security_binder_set_context_mgr(stru { return call_int_hook(binder_set_context_mgr, 0, mgr); } @@ -134,9 +148,11 @@ Export the currently un-exported symbols they depend on. int security_ptrace_access_check(struct task_struct *child, unsigned int mode) { ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -3976,6 +3976,7 @@ int can_nice(const struct task_struct *p +Index: linux/kernel/sched/core.c +=================================================================== +--- linux.orig/kernel/sched/core.c ++++ linux/kernel/sched/core.c +@@ -3973,6 +3973,7 @@ int can_nice(const struct task_struct *p return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || capable(CAP_SYS_NICE)); } diff --git a/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch b/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch index 3806f94bd..5149007a4 100644 --- a/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch +++ b/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch @@ -10,9 +10,11 @@ do about that. So warn and taint the kernel if this feature is actually used. --- ---- a/fs/notify/fanotify/fanotify_user.c -+++ b/fs/notify/fanotify/fanotify_user.c -@@ -866,6 +866,14 @@ SYSCALL_DEFINE5(fanotify_mark, int, fano +Index: linux/fs/notify/fanotify/fanotify_user.c +=================================================================== +--- linux.orig/fs/notify/fanotify/fanotify_user.c ++++ linux/fs/notify/fanotify/fanotify_user.c +@@ -842,6 +842,14 @@ static int do_fanotify_mark(int fanotify if (mask & ~valid_mask) return -EINVAL; diff --git a/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch b/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch index 27bc69903..da4942ee6 100644 --- a/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch +++ b/debian/patches/debian/firmware_class-refer-to-debian-wiki-firmware-page.patch @@ -14,9 +14,11 @@ an early check to avoid failing at a point where we cannot display anything. --- ---- a/drivers/base/firmware_loader/main.c -+++ b/drivers/base/firmware_loader/main.c -@@ -334,9 +334,12 @@ fw_get_filesystem_firmware(struct device +Index: linux/drivers/base/firmware_loader/main.c +=================================================================== +--- linux.orig/drivers/base/firmware_loader/main.c ++++ linux/drivers/base/firmware_loader/main.c +@@ -340,9 +340,12 @@ fw_get_filesystem_firmware(struct device } __putname(path); @@ -30,9 +32,11 @@ anything. return rc; } ---- a/drivers/gpu/drm/radeon/radeon_drv.c -+++ b/drivers/gpu/drm/radeon/radeon_drv.c -@@ -367,6 +367,7 @@ static int radeon_pci_probe(struct pci_d +Index: linux/drivers/gpu/drm/radeon/radeon_drv.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/radeon_drv.c ++++ linux/drivers/gpu/drm/radeon/radeon_drv.c +@@ -403,6 +403,7 @@ static int radeon_pci_probe(struct pci_d if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 && !radeon_firmware_installed()) { DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware installed\n"); @@ -40,9 +44,11 @@ anything. return -ENODEV; } ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c -@@ -626,6 +626,7 @@ static int amdgpu_pci_probe(struct pci_d +Index: linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +=================================================================== +--- linux.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ linux/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -859,6 +859,7 @@ static int amdgpu_pci_probe(struct pci_d if (!amdgpu_firmware_installed()) { DRM_ERROR("amdgpu requires firmware installed\n"); diff --git a/debian/patches/debian/fjes-disable-autoload.patch b/debian/patches/debian/fjes-disable-autoload.patch index 59b56708e..e1081d872 100644 --- a/debian/patches/debian/fjes-disable-autoload.patch +++ b/debian/patches/debian/fjes-disable-autoload.patch @@ -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 -@@ -81,7 +81,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 +@@ -83,7 +83,7 @@ static const struct acpi_device_id fjes_ {ACPI_MOTHERBOARD_RESOURCE_HID, 0}, {"", 0}, }; diff --git a/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch b/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch index e2a8679a5..50b32bc2d 100644 --- a/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch +++ b/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch @@ -7,8 +7,10 @@ Forwarded: not-needed This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415 ('VFS: don't do protected {sym,hard}links by default'). ---- a/fs/namei.c -+++ b/fs/namei.c +Index: linux/fs/namei.c +=================================================================== +--- linux.orig/fs/namei.c ++++ linux/fs/namei.c @@ -885,8 +885,8 @@ static inline void put_link(struct namei path_put(&last->link); } diff --git a/debian/patches/debian/gitignore.patch b/debian/patches/debian/gitignore.patch index 4cdc8bb3b..493e558b7 100644 --- a/debian/patches/debian/gitignore.patch +++ b/debian/patches/debian/gitignore.patch @@ -5,8 +5,10 @@ Forwarded: not-needed [bwh: Tweak further for pure git] ---- a/.gitignore -+++ b/.gitignore +Index: linux/.gitignore +=================================================================== +--- linux.orig/.gitignore ++++ linux/.gitignore @@ -64,11 +64,6 @@ modules.builtin /*.spec diff --git a/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch b/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch index 97b350666..d9dcef669 100644 --- a/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch +++ b/debian/patches/debian/i386-686-pae-pci-set-pci-nobios-by-default.patch @@ -12,8 +12,10 @@ want to disable W+X by default. Disable PCI BIOS probing by default; it can still be enabled using "pci=bios". --- ---- a/arch/x86/pci/common.c -+++ b/arch/x86/pci/common.c +Index: linux/arch/x86/pci/common.c +=================================================================== +--- linux.orig/arch/x86/pci/common.c ++++ linux/arch/x86/pci/common.c @@ -19,8 +19,8 @@ #include #include diff --git a/debian/patches/debian/ia64-hardcode-arch-script-output.patch b/debian/patches/debian/ia64-hardcode-arch-script-output.patch index 7d1930f0e..f4b320f15 100644 --- a/debian/patches/debian/ia64-hardcode-arch-script-output.patch +++ b/debian/patches/debian/ia64-hardcode-arch-script-output.patch @@ -21,8 +21,10 @@ Including the scripts in linux-kbuild will avoid this manual step altogether, and allow for the possibility of other archs to provide their own scripts in the future. ---- a/arch/ia64/Makefile -+++ b/arch/ia64/Makefile +Index: linux/arch/ia64/Makefile +=================================================================== +--- linux.orig/arch/ia64/Makefile ++++ linux/arch/ia64/Makefile @@ -30,16 +30,7 @@ cflags-y := -pipe $(EXTRA) -ffixed-r13 - -falign-functions=32 -frename-registers -fno-optimize-sibling-calls KBUILD_CFLAGS_KERNEL := -mconstant-gp diff --git a/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch b/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch index c8061436d..37d84d005 100644 --- a/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch +++ b/debian/patches/debian/iwlwifi-do-not-request-unreleased-firmware.patch @@ -13,9 +13,11 @@ The installer appears to report any failed request, and it is probably not easy to detect that this particular failure is harmless. So stop requesting the unreleased firmware. ---- a/drivers/net/wireless/intel/iwlwifi/cfg/6000.c -+++ b/drivers/net/wireless/intel/iwlwifi/cfg/6000.c -@@ -31,7 +31,7 @@ +Index: linux/drivers/net/wireless/intel/iwlwifi/cfg/6000.c +=================================================================== +--- linux.orig/drivers/net/wireless/intel/iwlwifi/cfg/6000.c ++++ linux/drivers/net/wireless/intel/iwlwifi/cfg/6000.c +@@ -32,7 +32,7 @@ #include "dvm/commands.h" /* needed for BT for now */ /* Highest firmware API version supported */ diff --git a/debian/patches/debian/kernelvariables.patch b/debian/patches/debian/kernelvariables.patch index 7cc1778a9..d33dad595 100644 --- a/debian/patches/debian/kernelvariables.patch +++ b/debian/patches/debian/kernelvariables.patch @@ -12,9 +12,11 @@ also CROSS_COMPILE, CFLAGS_KERNEL and CFLAGS_MODULE. This file can only be read after we establish the build tree, and all use of $(ARCH) needs to be moved after this. ---- a/Makefile -+++ b/Makefile -@@ -320,31 +320,6 @@ SUBARCH := $(shell uname -m | sed -e s/i +Index: linux/Makefile +=================================================================== +--- linux.orig/Makefile ++++ linux/Makefile +@@ -321,31 +321,6 @@ include scripts/subarch.include # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile ARCH ?= $(SUBARCH) @@ -46,7 +48,7 @@ use of $(ARCH) needs to be moved after this. KCONFIG_CONFIG ?= .config export KCONFIG_CONFIG -@@ -397,6 +372,30 @@ CFLAGS_KERNEL = +@@ -399,6 +374,30 @@ CFLAGS_KERNEL = AFLAGS_KERNEL = LDFLAGS_vmlinux = diff --git a/debian/patches/debian/mips-boston-disable-its.patch b/debian/patches/debian/mips-boston-disable-its.patch index 8a991d78d..ad93dfa8a 100644 --- a/debian/patches/debian/mips-boston-disable-its.patch +++ b/debian/patches/debian/mips-boston-disable-its.patch @@ -6,8 +6,10 @@ Forwarded: not-needed MIPS generic trys to generate uImage when build, which then ask for u-boot-tools. ---- a/arch/mips/generic/Platform -+++ b/arch/mips/generic/Platform +Index: linux/arch/mips/generic/Platform +=================================================================== +--- linux.orig/arch/mips/generic/Platform ++++ linux/arch/mips/generic/Platform @@ -11,9 +11,7 @@ platform-$(CONFIG_MIPS_GENERIC) += generic/ cflags-$(CONFIG_MIPS_GENERIC) += -I$(srctree)/arch/mips/include/asm/mach-generic diff --git a/debian/patches/debian/mips-disable-werror.patch b/debian/patches/debian/mips-disable-werror.patch index c56c633a5..37da74ce3 100644 --- a/debian/patches/debian/mips-disable-werror.patch +++ b/debian/patches/debian/mips-disable-werror.patch @@ -8,8 +8,10 @@ This reverts commits 66f9ba101f54bda63ab1db97f9e9e94763d0651b and We really don't want to add -Werror anywhere. --- ---- a/arch/mips/Kbuild -+++ b/arch/mips/Kbuild +Index: linux/arch/mips/Kbuild +=================================================================== +--- linux.orig/arch/mips/Kbuild ++++ linux/arch/mips/Kbuild @@ -1,10 +1,3 @@ -# Fail on warnings - also for files referenced in subdirs -# -Werror can be disabled for specific files using: diff --git a/debian/patches/debian/ntfs-mark-it-as-broken.patch b/debian/patches/debian/ntfs-mark-it-as-broken.patch index 733b286d6..19892c9f0 100644 --- a/debian/patches/debian/ntfs-mark-it-as-broken.patch +++ b/debian/patches/debian/ntfs-mark-it-as-broken.patch @@ -8,8 +8,10 @@ CVE-2018-12931. ntfs-3g is a better supported alternative. Make sure it can't be enabled even in custom kernels. --- ---- a/fs/ntfs/Kconfig -+++ b/fs/ntfs/Kconfig +Index: linux/fs/ntfs/Kconfig +=================================================================== +--- linux.orig/fs/ntfs/Kconfig ++++ linux/fs/ntfs/Kconfig @@ -1,5 +1,6 @@ config NTFS_FS tristate "NTFS file system support" diff --git a/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch b/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch index 79856ddcb..b951744e5 100644 --- a/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch +++ b/debian/patches/debian/overlayfs-permit-mounts-in-userns.patch @@ -29,8 +29,10 @@ https://lwn.net/Articles/671641/ Signed-off-by: Nicolas Schier ---- a/fs/overlayfs/super.c -+++ b/fs/overlayfs/super.c +Index: linux/fs/overlayfs/super.c +=================================================================== +--- linux.orig/fs/overlayfs/super.c ++++ linux/fs/overlayfs/super.c @@ -56,6 +56,11 @@ module_param_named(xino_auto, ovl_xino_a MODULE_PARM_DESC(ovl_xino_auto_def, "Auto enable xino feature"); @@ -43,7 +45,7 @@ Signed-off-by: Nicolas Schier static void ovl_entry_stack_free(struct ovl_entry *oe) { unsigned int i; -@@ -1567,6 +1572,11 @@ static int __init ovl_init(void) +@@ -1715,6 +1720,11 @@ static int __init ovl_init(void) if (ovl_inode_cachep == NULL) return -ENOMEM; diff --git a/debian/patches/debian/powerpcspe-omit-uimage.patch b/debian/patches/debian/powerpcspe-omit-uimage.patch index cb8085893..48606a174 100644 --- a/debian/patches/debian/powerpcspe-omit-uimage.patch +++ b/debian/patches/debian/powerpcspe-omit-uimage.patch @@ -7,9 +7,11 @@ Author: Roland Stigge Bug-Debian: https://bugs.debian.org/708094 Forwarded: not-needed ---- a/arch/powerpc/boot/Makefile -+++ b/arch/powerpc/boot/Makefile -@@ -221,7 +221,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp +Index: linux/arch/powerpc/boot/Makefile +=================================================================== +--- linux.orig/arch/powerpc/boot/Makefile ++++ linux/arch/powerpc/boot/Makefile +@@ -268,7 +268,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp image-$(CONFIG_PPC_EFIKA) += zImage.chrp image-$(CONFIG_PPC_PMAC) += zImage.pmac image-$(CONFIG_PPC_HOLLY) += dtbImage.holly @@ -17,7 +19,7 @@ Forwarded: not-needed image-$(CONFIG_EPAPR_BOOT) += zImage.epapr # -@@ -280,23 +279,6 @@ image-$(CONFIG_MPC834x_MDS) += cuImage. +@@ -327,23 +326,6 @@ image-$(CONFIG_MPC834x_MDS) += cuImage. image-$(CONFIG_MPC836x_MDS) += cuImage.mpc836x_mds image-$(CONFIG_ASP834x) += dtbImage.asp834x-redboot diff --git a/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch b/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch index 3343aecac..451c2923e 100644 --- a/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch +++ b/debian/patches/debian/rds-Disable-auto-loading-as-mitigation-against-local.patch @@ -19,16 +19,13 @@ Signed-off-by: Ben Hutchings 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 -@@ -574,4 +574,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagram Sockets" +Index: linux/net/rds/af_rds.c +=================================================================== +--- linux.orig/net/rds/af_rds.c ++++ linux/net/rds/af_rds.c +@@ -836,4 +836,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagr " 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 - diff --git a/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch b/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch index de42774fa..878e42e2e 100644 --- a/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch +++ b/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch @@ -10,9 +10,11 @@ a pre-built objtool. Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) ---- a/Makefile -+++ b/Makefile -@@ -954,17 +954,6 @@ export mod_sign_cmd +Index: linux/Makefile +=================================================================== +--- linux.orig/Makefile ++++ linux/Makefile +@@ -948,17 +948,6 @@ export mod_sign_cmd HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) @@ -30,7 +32,7 @@ a pre-built objtool. ifeq ($(KBUILD_EXTMOD),) core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ -@@ -1115,6 +1104,17 @@ uapi-asm-generic: +@@ -1109,6 +1098,17 @@ uapi-asm-generic: $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \ src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm diff --git a/debian/patches/debian/sched-autogroup-disabled.patch b/debian/patches/debian/sched-autogroup-disabled.patch index e9988022e..20e57105c 100644 --- a/debian/patches/debian/sched-autogroup-disabled.patch +++ b/debian/patches/debian/sched-autogroup-disabled.patch @@ -6,8 +6,10 @@ Forwarded: not-needed We want to provide the option of autogrouping but without enabling it by default yet. ---- a/kernel/sched/autogroup.c -+++ b/kernel/sched/autogroup.c +Index: linux/kernel/sched/autogroup.c +=================================================================== +--- linux.orig/kernel/sched/autogroup.c ++++ linux/kernel/sched/autogroup.c @@ -5,7 +5,7 @@ #include #include "sched.h" diff --git a/debian/patches/debian/snd-pcsp-disable-autoload.patch b/debian/patches/debian/snd-pcsp-disable-autoload.patch index 5871dc6ef..2681d4275 100644 --- a/debian/patches/debian/snd-pcsp-disable-autoload.patch +++ b/debian/patches/debian/snd-pcsp-disable-autoload.patch @@ -17,9 +17,11 @@ claim the relevant I/O range. In case anyone finds snd-pcsp useful, we continue to build it. But remove the alias, to ensure it's not loaded where it's not wanted. ---- a/sound/drivers/pcsp/pcsp.c -+++ b/sound/drivers/pcsp/pcsp.c -@@ -21,7 +21,7 @@ MODULE_AUTHOR("Stas Sergeev #include @@ -68,8 +72,10 @@ are set. printk(KERN_INFO "RIP: %04lx:[<%016lx>]\n", PT_REGS_CS(regs) & 0xffff, PT_REGS_IP(regs)); printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs), ---- a/arch/ia64/kernel/process.c -+++ b/arch/ia64/kernel/process.c +Index: linux/arch/ia64/kernel/process.c +=================================================================== +--- linux.orig/arch/ia64/kernel/process.c ++++ linux/arch/ia64/kernel/process.c @@ -34,6 +34,7 @@ #include #include @@ -90,8 +96,10 @@ are set. printk("ip is at %pS\n", (void *)ip); printk("unat: %016lx pfs : %016lx rsc : %016lx\n", regs->ar_unat, regs->ar_pfs, regs->ar_rsc); ---- a/arch/powerpc/kernel/process.c -+++ b/arch/powerpc/kernel/process.c +Index: linux/arch/powerpc/kernel/process.c +=================================================================== +--- linux.orig/arch/powerpc/kernel/process.c ++++ linux/arch/powerpc/kernel/process.c @@ -43,6 +43,7 @@ #include #include @@ -100,7 +108,7 @@ are set. #include #include -@@ -1430,8 +1431,9 @@ void show_regs(struct pt_regs * regs) +@@ -1424,8 +1425,9 @@ void show_regs(struct pt_regs * regs) printk("NIP: "REG" LR: "REG" CTR: "REG"\n", regs->nip, regs->link, regs->ctr); @@ -112,9 +120,11 @@ are set. printk("MSR: "REG" ", regs->msr); print_msr_bits(regs->msr); pr_cont(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); ---- a/kernel/hung_task.c -+++ b/kernel/hung_task.c -@@ -20,6 +20,7 @@ +Index: linux/kernel/hung_task.c +=================================================================== +--- linux.orig/kernel/hung_task.c ++++ linux/kernel/hung_task.c +@@ -21,6 +21,7 @@ #include #include @@ -122,7 +132,7 @@ are set. /* * The number of tasks checked: -@@ -123,10 +124,11 @@ static void check_hung_task(struct task_ +@@ -127,10 +128,11 @@ static void check_hung_task(struct task_ sysctl_hung_task_warnings--; pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n", t->comm, t->pid, timeout); @@ -136,8 +146,10 @@ are set. pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\"" " disables this message.\n"); sched_show_task(t); ---- a/lib/dump_stack.c -+++ b/lib/dump_stack.c +Index: linux/lib/dump_stack.c +=================================================================== +--- linux.orig/lib/dump_stack.c ++++ linux/lib/dump_stack.c @@ -12,6 +12,7 @@ #include #include diff --git a/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch b/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch index 5e9bc434f..112683839 100644 --- a/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch +++ b/debian/patches/debian/wireless-add-debian-wireless-regdb-certificates.patch @@ -12,8 +12,10 @@ This hex dump is generated using: } | hexdump -v -e '1/1 "0x%.2x," "\n"' > net/wireless/certs/debian.hex --- +Index: linux/net/wireless/certs/debian.hex +=================================================================== --- /dev/null -+++ b/net/wireless/certs/debian.hex ++++ linux/net/wireless/certs/debian.hex @@ -0,0 +1,944 @@ +0x30, +0x82, diff --git a/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch b/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch index ff0321177..6815dc947 100644 --- a/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch +++ b/debian/patches/debian/wireless-disable-regulatory.db-direct-loading.patch @@ -8,8 +8,10 @@ Don't complain about being unable to load regulatory.db directly. This is expected until we generate a signing key and update wireless-regdb to be signed with it. ---- a/net/wireless/reg.c -+++ b/net/wireless/reg.c +Index: linux/net/wireless/reg.c +=================================================================== +--- linux.orig/net/wireless/reg.c ++++ linux/net/wireless/reg.c @@ -476,6 +476,7 @@ static void reg_regdb_apply(struct work_ static DECLARE_WORK(reg_regdb_work, reg_regdb_apply); diff --git a/debian/patches/debian/yama-disable-by-default.patch b/debian/patches/debian/yama-disable-by-default.patch index 270d90344..f35a598ae 100644 --- a/debian/patches/debian/yama-disable-by-default.patch +++ b/debian/patches/debian/yama-disable-by-default.patch @@ -4,9 +4,11 @@ Date: Wed, 19 Jun 2013 04:35:28 +0100 Bug-Debian: https://bugs.debian.org/712740 Forwarded: not-needed ---- a/security/yama/yama_lsm.c -+++ b/security/yama/yama_lsm.c -@@ -24,7 +24,7 @@ +Index: linux/security/yama/yama_lsm.c +=================================================================== +--- linux.orig/security/yama/yama_lsm.c ++++ linux/security/yama/yama_lsm.c +@@ -28,7 +28,7 @@ #define YAMA_SCOPE_CAPABILITY 2 #define YAMA_SCOPE_NO_ATTACH 3 @@ -15,7 +17,7 @@ Forwarded: not-needed /* describe a ptrace relationship for potential exception */ struct ptrace_relation { -@@ -402,7 +402,7 @@ static inline void yama_init_sysctl(void +@@ -481,7 +481,7 @@ static inline void yama_init_sysctl(void void __init yama_add_hooks(void) { diff --git a/debian/patches/features/all/aufs4/aufs4-base.patch b/debian/patches/features/all/aufs4/aufs4-base.patch index 54513c12c..843a0d685 100644 --- a/debian/patches/features/all/aufs4/aufs4-base.patch +++ b/debian/patches/features/all/aufs4/aufs4-base.patch @@ -9,10 +9,10 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch SPDX-License-Identifier: GPL-2.0 aufs4.x-rcN base patch -diff --git a/MAINTAINERS b/MAINTAINERS -index 9ad052a..35c459a 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS +Index: linux/MAINTAINERS +=================================================================== +--- linux.orig/MAINTAINERS ++++ linux/MAINTAINERS @@ -2605,6 +2605,19 @@ F: include/linux/audit.h F: include/uapi/linux/audit.h F: kernel/audit* @@ -33,11 +33,11 @@ index 9ad052a..35c459a 100644 AUXILIARY DISPLAY DRIVERS M: Miguel Ojeda Sandonis S: Maintained -diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index ea9debf..9e534a3 100644 ---- a/drivers/block/loop.c -+++ b/drivers/block/loop.c -@@ -739,6 +739,24 @@ static int loop_change_fd(struct loop_device *lo, struct block_device *bdev, +Index: linux/drivers/block/loop.c +=================================================================== +--- linux.orig/drivers/block/loop.c ++++ linux/drivers/block/loop.c +@@ -739,6 +739,24 @@ out_err: return error; } @@ -62,11 +62,11 @@ index ea9debf..9e534a3 100644 /* loop sysfs attributes */ static ssize_t loop_attr_show(struct device *dev, char *page, -diff --git a/fs/dcache.c b/fs/dcache.c -index 2e7e8d8..9f57bd8 100644 ---- a/fs/dcache.c -+++ b/fs/dcache.c -@@ -1238,7 +1238,7 @@ enum d_walk_ret { +Index: linux/fs/dcache.c +=================================================================== +--- linux.orig/fs/dcache.c ++++ linux/fs/dcache.c +@@ -1234,7 +1234,7 @@ enum d_walk_ret { * * The @enter() callbacks are called with d_lock held. */ @@ -75,10 +75,10 @@ index 2e7e8d8..9f57bd8 100644 enum d_walk_ret (*enter)(void *, struct dentry *)) { struct dentry *this_parent; -diff --git a/fs/fcntl.c b/fs/fcntl.c -index 4137d96..c91b3e3 100644 ---- a/fs/fcntl.c -+++ b/fs/fcntl.c +Index: linux/fs/fcntl.c +=================================================================== +--- linux.orig/fs/fcntl.c ++++ linux/fs/fcntl.c @@ -32,7 +32,7 @@ #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME) @@ -88,7 +88,7 @@ index 4137d96..c91b3e3 100644 { struct inode * inode = file_inode(filp); int error = 0; -@@ -63,6 +63,8 @@ static int setfl(int fd, struct file * filp, unsigned long arg) +@@ -63,6 +63,8 @@ static int setfl(int fd, struct file * f if (filp->f_op->check_flags) error = filp->f_op->check_flags(arg); @@ -97,10 +97,10 @@ index 4137d96..c91b3e3 100644 if (error) return error; -diff --git a/fs/inode.c b/fs/inode.c -index 42f6d25..fa6ae6a 100644 ---- a/fs/inode.c -+++ b/fs/inode.c +Index: linux/fs/inode.c +=================================================================== +--- linux.orig/fs/inode.c ++++ linux/fs/inode.c @@ -1657,7 +1657,7 @@ EXPORT_SYMBOL(generic_update_time); * This does the actual work of updating an inodes time or version. Must have * had called mnt_want_write() before calling this. @@ -110,11 +110,11 @@ index 42f6d25..fa6ae6a 100644 { int (*update_time)(struct inode *, struct timespec64 *, int); -diff --git a/fs/namespace.c b/fs/namespace.c -index 9918655..72c93f3 100644 ---- a/fs/namespace.c -+++ b/fs/namespace.c -@@ -770,6 +770,12 @@ static inline int check_mnt(struct mount *mnt) +Index: linux/fs/namespace.c +=================================================================== +--- linux.orig/fs/namespace.c ++++ linux/fs/namespace.c +@@ -770,6 +770,12 @@ static inline int check_mnt(struct mount return mnt->mnt_ns == current->nsproxy->mnt_ns; } @@ -127,11 +127,11 @@ index 9918655..72c93f3 100644 /* * vfsmount lock must be held for write */ -diff --git a/fs/read_write.c b/fs/read_write.c -index 39b4a21..19f8e04 100644 ---- a/fs/read_write.c -+++ b/fs/read_write.c -@@ -489,6 +489,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count, +Index: linux/fs/read_write.c +=================================================================== +--- linux.orig/fs/read_write.c ++++ linux/fs/read_write.c +@@ -489,6 +489,28 @@ ssize_t __vfs_write(struct file *file, c return -EINVAL; } @@ -160,10 +160,10 @@ index 39b4a21..19f8e04 100644 ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) { mm_segment_t old_fs; -diff --git a/fs/splice.c b/fs/splice.c -index b3daa97..1dd7f96 100644 ---- a/fs/splice.c -+++ b/fs/splice.c +Index: linux/fs/splice.c +=================================================================== +--- linux.orig/fs/splice.c ++++ linux/fs/splice.c @@ -838,8 +838,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); /* * Attempt to initiate a splice from pipe to file. @@ -175,7 +175,7 @@ index b3daa97..1dd7f96 100644 { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); -@@ -855,9 +855,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +@@ -855,9 +855,9 @@ static long do_splice_from(struct pipe_i /* * Attempt to initiate a splice from a file to a pipe. */ @@ -188,10 +188,10 @@ index b3daa97..1dd7f96 100644 { ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); -diff --git a/fs/sync.c b/fs/sync.c -index b54e054..2860782 100644 ---- a/fs/sync.c -+++ b/fs/sync.c +Index: linux/fs/sync.c +=================================================================== +--- linux.orig/fs/sync.c ++++ linux/fs/sync.c @@ -28,7 +28,7 @@ * wait == 1 case since in that case write_inode() functions do * sync_dirty_buffer() and thus effectively write one block at a time. @@ -201,11 +201,11 @@ index b54e054..2860782 100644 { if (wait) sync_inodes_sb(sb); -diff --git a/include/linux/fs.h b/include/linux/fs.h -index 3332270..e1444c2 100644 ---- a/include/linux/fs.h -+++ b/include/linux/fs.h -@@ -1286,6 +1286,7 @@ extern void fasync_free(struct fasync_struct *); +Index: linux/include/linux/fs.h +=================================================================== +--- linux.orig/include/linux/fs.h ++++ linux/include/linux/fs.h +@@ -1295,6 +1295,7 @@ extern void fasync_free(struct fasync_st /* can be called from interrupts */ extern void kill_fasync(struct fasync_struct **, int, int); @@ -213,7 +213,7 @@ index 3332270..e1444c2 100644 extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); extern int f_setown(struct file *filp, unsigned long arg, int force); extern void f_delown(struct file *filp); -@@ -1747,6 +1748,7 @@ struct file_operations { +@@ -1759,6 +1760,7 @@ struct file_operations { ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); int (*check_flags)(int); @@ -221,7 +221,7 @@ index 3332270..e1444c2 100644 int (*flock) (struct file *, int, struct file_lock *); ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); -@@ -1817,6 +1819,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, +@@ -1830,6 +1832,12 @@ ssize_t rw_copy_check_uvector(int type, struct iovec *fast_pointer, struct iovec **ret_pointer); @@ -234,7 +234,7 @@ index 3332270..e1444c2 100644 extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *); extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *); extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *); -@@ -2240,6 +2248,7 @@ extern int current_umask(void); +@@ -2255,6 +2263,7 @@ extern int current_umask(void); extern void ihold(struct inode * inode); extern void iput(struct inode *); extern int generic_update_time(struct inode *, struct timespec64 *, int); @@ -242,7 +242,7 @@ index 3332270..e1444c2 100644 /* /sys/fs */ extern struct kobject *fs_kobj; -@@ -2527,6 +2536,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb) +@@ -2542,6 +2551,7 @@ static inline bool sb_is_blkdev_sb(struc return false; } #endif @@ -250,11 +250,11 @@ index 3332270..e1444c2 100644 extern int sync_filesystem(struct super_block *); extern const struct file_operations def_blk_fops; extern const struct file_operations def_chr_fops; -diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h -index b0d0b51..f73ffaa 100644 ---- a/include/linux/lockdep.h -+++ b/include/linux/lockdep.h -@@ -313,6 +313,8 @@ static inline int lockdep_match_key(struct lockdep_map *lock, +Index: linux/include/linux/lockdep.h +=================================================================== +--- linux.orig/include/linux/lockdep.h ++++ linux/include/linux/lockdep.h +@@ -313,6 +313,8 @@ static inline int lockdep_match_key(stru return lock->key == key; } @@ -271,10 +271,10 @@ index b0d0b51..f73ffaa 100644 #define lockdep_is_held_type(l, r) (1) #define lockdep_assert_held(l) do { (void)(l); } while (0) -diff --git a/include/linux/mnt_namespace.h b/include/linux/mnt_namespace.h -index 3594208..24f5fd1 100644 ---- a/include/linux/mnt_namespace.h -+++ b/include/linux/mnt_namespace.h +Index: linux/include/linux/mnt_namespace.h +=================================================================== +--- linux.orig/include/linux/mnt_namespace.h ++++ linux/include/linux/mnt_namespace.h @@ -6,11 +6,14 @@ struct mnt_namespace; struct fs_struct; @@ -290,11 +290,11 @@ index 3594208..24f5fd1 100644 extern const struct file_operations proc_mounts_operations; extern const struct file_operations proc_mountinfo_operations; extern const struct file_operations proc_mountstats_operations; -diff --git a/include/linux/splice.h b/include/linux/splice.h -index 74b4911..19789fb 100644 ---- a/include/linux/splice.h -+++ b/include/linux/splice.h -@@ -87,4 +87,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *); +Index: linux/include/linux/splice.h +=================================================================== +--- linux.orig/include/linux/splice.h ++++ linux/include/linux/splice.h +@@ -87,4 +87,10 @@ extern void splice_shrink_spd(struct spl extern const struct pipe_buf_operations page_cache_pipe_buf_ops; extern const struct pipe_buf_operations default_pipe_buf_ops; @@ -305,11 +305,11 @@ index 74b4911..19789fb 100644 + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); #endif -diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index e406c5f..b0a8d25 100644 ---- a/kernel/locking/lockdep.c -+++ b/kernel/locking/lockdep.c -@@ -141,7 +141,7 @@ static struct lock_list list_entries[MAX_LOCKDEP_ENTRIES]; +Index: linux/kernel/locking/lockdep.c +=================================================================== +--- linux.orig/kernel/locking/lockdep.c ++++ linux/kernel/locking/lockdep.c +@@ -140,7 +140,7 @@ static struct lock_list list_entries[MAX unsigned long nr_lock_classes; static struct lock_class lock_classes[MAX_LOCKDEP_KEYS]; @@ -318,7 +318,7 @@ index e406c5f..b0a8d25 100644 { if (!hlock->class_idx) { /* -@@ -152,6 +152,7 @@ static inline struct lock_class *hlock_class(struct held_lock *hlock) +@@ -151,6 +151,7 @@ static inline struct lock_class *hlock_c } return lock_classes + hlock->class_idx - 1; } diff --git a/debian/patches/features/all/aufs4/aufs4-mmap.patch b/debian/patches/features/all/aufs4/aufs4-mmap.patch index 795419f67..e3a6589ee 100644 --- a/debian/patches/features/all/aufs4/aufs4-mmap.patch +++ b/debian/patches/features/all/aufs4/aufs4-mmap.patch @@ -9,8 +9,10 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch SPDX-License-Identifier: GPL-2.0 aufs4.x-rcN mmap patch ---- a/fs/proc/base.c -+++ b/fs/proc/base.c +Index: linux/fs/proc/base.c +=================================================================== +--- linux.orig/fs/proc/base.c ++++ linux/fs/proc/base.c @@ -2036,7 +2036,7 @@ static int map_files_get_link(struct den rc = -ENOENT; vma = find_exact_vma(mm, vm_start, vm_end); @@ -20,8 +22,10 @@ aufs4.x-rcN mmap patch path_get(path); rc = 0; } ---- a/fs/proc/nommu.c -+++ b/fs/proc/nommu.c +Index: linux/fs/proc/nommu.c +=================================================================== +--- linux.orig/fs/proc/nommu.c ++++ linux/fs/proc/nommu.c @@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_ file = region->vm_file; @@ -34,8 +38,10 @@ aufs4.x-rcN mmap patch dev = inode->i_sb->s_dev; ino = inode->i_ino; } ---- a/fs/proc/task_mmu.c -+++ b/fs/proc/task_mmu.c +Index: linux/fs/proc/task_mmu.c +=================================================================== +--- linux.orig/fs/proc/task_mmu.c ++++ linux/fs/proc/task_mmu.c @@ -309,7 +309,10 @@ show_map_vma(struct seq_file *m, struct const char *name = NULL; @@ -57,8 +63,10 @@ aufs4.x-rcN mmap patch struct mm_struct *mm = vma->vm_mm; struct mm_walk walk = { .hugetlb_entry = gather_hugetlb_stats, ---- a/fs/proc/task_nommu.c -+++ b/fs/proc/task_nommu.c +Index: linux/fs/proc/task_nommu.c +=================================================================== +--- linux.orig/fs/proc/task_nommu.c ++++ linux/fs/proc/task_nommu.c @@ -155,7 +155,10 @@ static int nommu_vma_show(struct seq_fil file = vma->vm_file; @@ -71,8 +79,10 @@ aufs4.x-rcN mmap patch dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; ---- a/include/linux/mm.h -+++ b/include/linux/mm.h +Index: linux/include/linux/mm.h +=================================================================== +--- linux.orig/include/linux/mm.h ++++ linux/include/linux/mm.h @@ -1453,6 +1453,28 @@ static inline void unmap_shared_mapping_ unmap_mapping_range(mapping, holebegin, holelen, 0); } @@ -102,8 +112,10 @@ aufs4.x-rcN mmap patch extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, unsigned int gup_flags); extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, ---- a/include/linux/mm_types.h -+++ b/include/linux/mm_types.h +Index: linux/include/linux/mm_types.h +=================================================================== +--- linux.orig/include/linux/mm_types.h ++++ linux/include/linux/mm_types.h @@ -239,6 +239,7 @@ struct vm_region { unsigned long vm_top; /* region allocated to here */ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ @@ -120,8 +132,10 @@ aufs4.x-rcN mmap patch void * vm_private_data; /* was vm_pte (shared mem) */ atomic_long_t swap_readahead_info; ---- a/kernel/fork.c -+++ b/kernel/fork.c +Index: linux/kernel/fork.c +=================================================================== +--- linux.orig/kernel/fork.c ++++ linux/kernel/fork.c @@ -505,7 +505,7 @@ static __latent_entropy int dup_mmap(str struct inode *inode = file_inode(file); struct address_space *mapping = file->f_mapping; @@ -131,8 +145,10 @@ aufs4.x-rcN mmap patch if (tmp->vm_flags & VM_DENYWRITE) atomic_dec(&inode->i_writecount); i_mmap_lock_write(mapping); ---- a/mm/Makefile -+++ b/mm/Makefile +Index: linux/mm/Makefile +=================================================================== +--- linux.orig/mm/Makefile ++++ linux/mm/Makefile @@ -39,7 +39,7 @@ obj-y := filemap.o mempool.o oom_kill. mm_init.o mmu_context.o percpu.o slab_common.o \ compaction.o vmacache.o \ @@ -142,8 +158,10 @@ aufs4.x-rcN mmap patch obj-y += init-mm.o ---- a/mm/filemap.c -+++ b/mm/filemap.c +Index: linux/mm/filemap.c +=================================================================== +--- linux.orig/mm/filemap.c ++++ linux/mm/filemap.c @@ -2722,7 +2722,7 @@ vm_fault_t filemap_page_mkwrite(struct v vm_fault_t ret = VM_FAULT_LOCKED; @@ -153,8 +171,10 @@ aufs4.x-rcN mmap patch lock_page(page); if (page->mapping != inode->i_mapping) { unlock_page(page); ---- a/mm/mmap.c -+++ b/mm/mmap.c +Index: linux/mm/mmap.c +=================================================================== +--- linux.orig/mm/mmap.c ++++ linux/mm/mmap.c @@ -181,7 +181,7 @@ static struct vm_area_struct *remove_vma if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); @@ -248,8 +268,10 @@ aufs4.x-rcN mmap patch if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); vma_link(mm, new_vma, prev, rb_link, rb_parent); ---- a/mm/nommu.c -+++ b/mm/nommu.c +Index: linux/mm/nommu.c +=================================================================== +--- linux.orig/mm/nommu.c ++++ linux/mm/nommu.c @@ -625,7 +625,7 @@ static void __put_nommu_region(struct vm up_write(&nommu_region_sem); @@ -286,8 +308,10 @@ aufs4.x-rcN mmap patch kmem_cache_free(vm_region_jar, region); if (vma->vm_file) fput(vma->vm_file); +Index: linux/mm/prfile.c +=================================================================== --- /dev/null -+++ b/mm/prfile.c ++++ linux/mm/prfile.c @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: GPL-2.0 +/* diff --git a/debian/patches/features/all/aufs4/aufs4-standalone.patch b/debian/patches/features/all/aufs4/aufs4-standalone.patch index 2eedd611c..745480de4 100644 --- a/debian/patches/features/all/aufs4/aufs4-standalone.patch +++ b/debian/patches/features/all/aufs4/aufs4-standalone.patch @@ -9,11 +9,11 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch SPDX-License-Identifier: GPL-2.0 aufs4.x-rcN standalone patch -diff --git a/fs/dcache.c b/fs/dcache.c -index 9f57bd8..328a136 100644 ---- a/fs/dcache.c -+++ b/fs/dcache.c -@@ -1343,6 +1343,7 @@ void d_walk(struct dentry *parent, void *data, +Index: linux/fs/dcache.c +=================================================================== +--- linux.orig/fs/dcache.c ++++ linux/fs/dcache.c +@@ -1339,6 +1339,7 @@ rename_retry: seq = 1; goto again; } @@ -21,7 +21,7 @@ index 9f57bd8..328a136 100644 struct check_mount { struct vfsmount *mnt; -@@ -2837,6 +2838,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2) +@@ -2835,6 +2836,7 @@ void d_exchange(struct dentry *dentry1, write_sequnlock(&rename_lock); } @@ -29,11 +29,11 @@ index 9f57bd8..328a136 100644 /** * d_ancestor - search for an ancestor -diff --git a/fs/exec.c b/fs/exec.c -index 1ebf6e5..a72c294 100644 ---- a/fs/exec.c -+++ b/fs/exec.c -@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path) +Index: linux/fs/exec.c +=================================================================== +--- linux.orig/fs/exec.c ++++ linux/fs/exec.c +@@ -109,6 +109,7 @@ bool path_noexec(const struct path *path return (path->mnt->mnt_flags & MNT_NOEXEC) || (path->mnt->mnt_sb->s_iflags & SB_I_NOEXEC); } @@ -41,11 +41,11 @@ index 1ebf6e5..a72c294 100644 #ifdef CONFIG_USELIB /* -diff --git a/fs/fcntl.c b/fs/fcntl.c -index c91b3e3..7751309 100644 ---- a/fs/fcntl.c -+++ b/fs/fcntl.c -@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, unsigned long arg) +Index: linux/fs/fcntl.c +=================================================================== +--- linux.orig/fs/fcntl.c ++++ linux/fs/fcntl.c +@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, un out: return error; } @@ -53,11 +53,11 @@ index c91b3e3..7751309 100644 static void f_modown(struct file *filp, struct pid *pid, enum pid_type type, int force) -diff --git a/fs/file_table.c b/fs/file_table.c -index e49af4c..569020f 100644 ---- a/fs/file_table.c -+++ b/fs/file_table.c -@@ -161,6 +161,7 @@ struct file *alloc_empty_file(int flags, const struct cred *cred) +Index: linux/fs/file_table.c +=================================================================== +--- linux.orig/fs/file_table.c ++++ linux/fs/file_table.c +@@ -161,6 +161,7 @@ over: } return ERR_PTR(-ENFILE); } @@ -81,11 +81,11 @@ index e49af4c..569020f 100644 void __init files_init(void) { -diff --git a/fs/inode.c b/fs/inode.c -index fa6ae6a..69d4a6c 100644 ---- a/fs/inode.c -+++ b/fs/inode.c -@@ -1666,6 +1666,7 @@ int update_time(struct inode *inode, struct timespec64 *time, int flags) +Index: linux/fs/inode.c +=================================================================== +--- linux.orig/fs/inode.c ++++ linux/fs/inode.c +@@ -1666,6 +1666,7 @@ int update_time(struct inode *inode, str return update_time(inode, time, flags); } @@ -93,11 +93,11 @@ index fa6ae6a..69d4a6c 100644 /** * touch_atime - update the access time -diff --git a/fs/namespace.c b/fs/namespace.c -index 72c93f3..c49803c 100644 ---- a/fs/namespace.c -+++ b/fs/namespace.c -@@ -437,6 +437,7 @@ void __mnt_drop_write(struct vfsmount *mnt) +Index: linux/fs/namespace.c +=================================================================== +--- linux.orig/fs/namespace.c ++++ linux/fs/namespace.c +@@ -437,6 +437,7 @@ void __mnt_drop_write(struct vfsmount *m mnt_dec_writers(real_mount(mnt)); preempt_enable(); } @@ -105,7 +105,7 @@ index 72c93f3..c49803c 100644 /** * mnt_drop_write - give up write access to a mount -@@ -775,6 +776,7 @@ int is_current_mnt_ns(struct vfsmount *mnt) +@@ -775,6 +776,7 @@ int is_current_mnt_ns(struct vfsmount *m { return check_mnt(real_mount(mnt)); } @@ -113,7 +113,7 @@ index 72c93f3..c49803c 100644 /* * vfsmount lock must be held for write -@@ -1832,6 +1834,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, +@@ -1844,6 +1846,7 @@ int iterate_mounts(int (*f)(struct vfsmo } return 0; } @@ -121,10 +121,10 @@ index 72c93f3..c49803c 100644 static void cleanup_group_ids(struct mount *mnt, struct mount *end) { -diff --git a/fs/notify/group.c b/fs/notify/group.c -index c03b836..817f22c 100644 ---- a/fs/notify/group.c -+++ b/fs/notify/group.c +Index: linux/fs/notify/group.c +=================================================================== +--- linux.orig/fs/notify/group.c ++++ linux/fs/notify/group.c @@ -23,6 +23,7 @@ #include #include @@ -133,7 +133,7 @@ index c03b836..817f22c 100644 #include #include "fsnotify.h" -@@ -112,6 +113,7 @@ void fsnotify_get_group(struct fsnotify_group *group) +@@ -112,6 +113,7 @@ void fsnotify_get_group(struct fsnotify_ { refcount_inc(&group->refcnt); } @@ -141,7 +141,7 @@ index c03b836..817f22c 100644 /* * Drop a reference to a group. Free it if it's through. -@@ -121,6 +123,7 @@ void fsnotify_put_group(struct fsnotify_group *group) +@@ -121,6 +123,7 @@ void fsnotify_put_group(struct fsnotify_ if (refcount_dec_and_test(&group->refcnt)) fsnotify_final_destroy_group(group); } @@ -149,7 +149,7 @@ index c03b836..817f22c 100644 /* * Create a new fsnotify_group and hold a reference for the group returned. -@@ -150,6 +153,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops) +@@ -150,6 +153,7 @@ struct fsnotify_group *fsnotify_alloc_gr return group; } @@ -157,11 +157,11 @@ index c03b836..817f22c 100644 int fsnotify_fasync(int fd, struct file *file, int on) { -diff --git a/fs/notify/mark.c b/fs/notify/mark.c -index 59cdb27..ce365c7 100644 ---- a/fs/notify/mark.c -+++ b/fs/notify/mark.c -@@ -263,6 +263,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) +Index: linux/fs/notify/mark.c +=================================================================== +--- linux.orig/fs/notify/mark.c ++++ linux/fs/notify/mark.c +@@ -285,6 +285,7 @@ void fsnotify_put_mark(struct fsnotify_m queue_delayed_work(system_unbound_wq, &reaper_work, FSNOTIFY_REAPER_DELAY); } @@ -169,7 +169,7 @@ index 59cdb27..ce365c7 100644 /* * Get mark reference when we found the mark via lockless traversal of object -@@ -417,6 +418,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark, +@@ -439,6 +440,7 @@ void fsnotify_destroy_mark(struct fsnoti mutex_unlock(&group->mark_mutex); fsnotify_free_mark(mark); } @@ -177,7 +177,7 @@ index 59cdb27..ce365c7 100644 /* * Sorting function for lists of fsnotify marks. -@@ -632,6 +634,7 @@ int fsnotify_add_mark(struct fsnotify_mark *mark, fsnotify_connp_t *connp, +@@ -654,6 +656,7 @@ int fsnotify_add_mark(struct fsnotify_ma mutex_unlock(&group->mark_mutex); return ret; } @@ -185,7 +185,7 @@ index 59cdb27..ce365c7 100644 /* * Given a list of marks, find the mark associated with given group. If found -@@ -754,6 +757,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, +@@ -777,6 +780,7 @@ void fsnotify_init_mark(struct fsnotify_ fsnotify_get_group(group); mark->group = group; } @@ -193,11 +193,11 @@ index 59cdb27..ce365c7 100644 /* * Destroy all marks in destroy_list, waits for SRCU period to finish before -diff --git a/fs/open.c b/fs/open.c -index 0285ce7..cb81623 100644 ---- a/fs/open.c -+++ b/fs/open.c -@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, +Index: linux/fs/open.c +=================================================================== +--- linux.orig/fs/open.c ++++ linux/fs/open.c +@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l inode_unlock(dentry->d_inode); return ret; } @@ -205,11 +205,11 @@ index 0285ce7..cb81623 100644 long vfs_truncate(const struct path *path, loff_t length) { -diff --git a/fs/read_write.c b/fs/read_write.c -index 19f8e04..ae78ca8 100644 ---- a/fs/read_write.c -+++ b/fs/read_write.c -@@ -459,6 +459,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) +Index: linux/fs/read_write.c +=================================================================== +--- linux.orig/fs/read_write.c ++++ linux/fs/read_write.c +@@ -459,6 +459,7 @@ ssize_t vfs_read(struct file *file, char return ret; } @@ -225,7 +225,7 @@ index 19f8e04..ae78ca8 100644 vfs_writef_t vfs_writef(struct file *file) { -@@ -510,6 +512,7 @@ vfs_writef_t vfs_writef(struct file *file) +@@ -510,6 +512,7 @@ vfs_writef_t vfs_writef(struct file *fil return new_sync_write; return ERR_PTR(-ENOSYS); } @@ -233,7 +233,7 @@ index 19f8e04..ae78ca8 100644 ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) { -@@ -579,6 +582,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_ +@@ -579,6 +582,7 @@ ssize_t vfs_write(struct file *file, con return ret; } @@ -241,11 +241,11 @@ index 19f8e04..ae78ca8 100644 static inline loff_t file_pos_read(struct file *file) { -diff --git a/fs/splice.c b/fs/splice.c -index 1dd7f96..a5e3bcb 100644 ---- a/fs/splice.c -+++ b/fs/splice.c -@@ -851,6 +851,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +Index: linux/fs/splice.c +=================================================================== +--- linux.orig/fs/splice.c ++++ linux/fs/splice.c +@@ -851,6 +851,7 @@ long do_splice_from(struct pipe_inode_in return splice_write(pipe, out, ppos, len, flags); } @@ -253,7 +253,7 @@ index 1dd7f96..a5e3bcb 100644 /* * Attempt to initiate a splice from a file to a pipe. -@@ -880,6 +881,7 @@ long do_splice_to(struct file *in, loff_t *ppos, +@@ -880,6 +881,7 @@ long do_splice_to(struct file *in, loff_ return splice_read(in, ppos, pipe, len, flags); } @@ -261,11 +261,11 @@ index 1dd7f96..a5e3bcb 100644 /** * splice_direct_to_actor - splices data directly between two non-pipes -diff --git a/fs/sync.c b/fs/sync.c -index 2860782..ffd7ea4 100644 ---- a/fs/sync.c -+++ b/fs/sync.c -@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block *sb, int wait) +Index: linux/fs/sync.c +=================================================================== +--- linux.orig/fs/sync.c ++++ linux/fs/sync.c +@@ -39,6 +39,7 @@ int __sync_filesystem(struct super_block sb->s_op->sync_fs(sb, wait); return __sync_blockdev(sb->s_bdev, wait); } @@ -273,11 +273,11 @@ index 2860782..ffd7ea4 100644 /* * Write out and wait upon all dirty data associated with this -diff --git a/fs/xattr.c b/fs/xattr.c -index daa7325..b550ad3 100644 ---- a/fs/xattr.c -+++ b/fs/xattr.c -@@ -295,6 +295,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value, +Index: linux/fs/xattr.c +=================================================================== +--- linux.orig/fs/xattr.c ++++ linux/fs/xattr.c +@@ -295,6 +295,7 @@ vfs_getxattr_alloc(struct dentry *dentry *xattr_value = value; return error; } @@ -285,11 +285,11 @@ index daa7325..b550ad3 100644 ssize_t __vfs_getxattr(struct dentry *dentry, struct inode *inode, const char *name, -diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index b0a8d25..5029106 100644 ---- a/kernel/locking/lockdep.c -+++ b/kernel/locking/lockdep.c -@@ -152,6 +152,7 @@ inline struct lock_class *lockdep_hlock_class(struct held_lock *hlock) +Index: linux/kernel/locking/lockdep.c +=================================================================== +--- linux.orig/kernel/locking/lockdep.c ++++ linux/kernel/locking/lockdep.c +@@ -151,6 +151,7 @@ inline struct lock_class *lockdep_hlock_ } return lock_classes + hlock->class_idx - 1; } @@ -297,19 +297,19 @@ index b0a8d25..5029106 100644 #define hlock_class(hlock) lockdep_hlock_class(hlock) #ifdef CONFIG_LOCK_STAT -diff --git a/kernel/task_work.c b/kernel/task_work.c -index 0fef395..83fb1ec 100644 ---- a/kernel/task_work.c -+++ b/kernel/task_work.c +Index: linux/kernel/task_work.c +=================================================================== +--- linux.orig/kernel/task_work.c ++++ linux/kernel/task_work.c @@ -116,3 +116,4 @@ void task_work_run(void) } while (work); } } +EXPORT_SYMBOL_GPL(task_work_run); -diff --git a/security/commoncap.c b/security/commoncap.c -index 2e489d6..1e146da 100644 ---- a/security/commoncap.c -+++ b/security/commoncap.c +Index: linux/security/commoncap.c +=================================================================== +--- linux.orig/security/commoncap.c ++++ linux/security/commoncap.c @@ -1336,12 +1336,14 @@ int cap_mmap_addr(unsigned long addr) } return ret; @@ -325,10 +325,10 @@ index 2e489d6..1e146da 100644 #ifdef CONFIG_SECURITY -diff --git a/security/device_cgroup.c b/security/device_cgroup.c -index cd97929..424fd23 100644 ---- a/security/device_cgroup.c -+++ b/security/device_cgroup.c +Index: linux/security/device_cgroup.c +=================================================================== +--- linux.orig/security/device_cgroup.c ++++ linux/security/device_cgroup.c @@ -8,6 +8,7 @@ #include #include @@ -337,16 +337,16 @@ index cd97929..424fd23 100644 #include #include #include -@@ -824,3 +825,4 @@ int __devcgroup_check_permission(short type, u32 major, u32 minor, +@@ -824,3 +825,4 @@ int __devcgroup_check_permission(short t return 0; } +EXPORT_SYMBOL_GPL(__devcgroup_check_permission); -diff --git a/security/security.c b/security/security.c -index 736e78d..b314539 100644 ---- a/security/security.c -+++ b/security/security.c -@@ -542,6 +542,7 @@ int security_path_rmdir(const struct path *dir, struct dentry *dentry) +Index: linux/security/security.c +=================================================================== +--- linux.orig/security/security.c ++++ linux/security/security.c +@@ -546,6 +546,7 @@ int security_path_rmdir(const struct pat return 0; return call_int_hook(path_rmdir, 0, dir, dentry); } @@ -354,7 +354,7 @@ index 736e78d..b314539 100644 int security_path_unlink(const struct path *dir, struct dentry *dentry) { -@@ -558,6 +559,7 @@ int security_path_symlink(const struct path *dir, struct dentry *dentry, +@@ -562,6 +563,7 @@ int security_path_symlink(const struct p return 0; return call_int_hook(path_symlink, 0, dir, dentry, old_name); } @@ -362,7 +362,7 @@ index 736e78d..b314539 100644 int security_path_link(struct dentry *old_dentry, const struct path *new_dir, struct dentry *new_dentry) -@@ -566,6 +568,7 @@ int security_path_link(struct dentry *old_dentry, const struct path *new_dir, +@@ -570,6 +572,7 @@ int security_path_link(struct dentry *ol return 0; return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry); } @@ -370,7 +370,7 @@ index 736e78d..b314539 100644 int security_path_rename(const struct path *old_dir, struct dentry *old_dentry, const struct path *new_dir, struct dentry *new_dentry, -@@ -593,6 +596,7 @@ int security_path_truncate(const struct path *path) +@@ -597,6 +600,7 @@ int security_path_truncate(const struct return 0; return call_int_hook(path_truncate, 0, path); } @@ -378,7 +378,7 @@ index 736e78d..b314539 100644 int security_path_chmod(const struct path *path, umode_t mode) { -@@ -600,6 +604,7 @@ int security_path_chmod(const struct path *path, umode_t mode) +@@ -604,6 +608,7 @@ int security_path_chmod(const struct pat return 0; return call_int_hook(path_chmod, 0, path, mode); } @@ -386,7 +386,7 @@ index 736e78d..b314539 100644 int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) { -@@ -607,6 +612,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid) +@@ -611,6 +616,7 @@ int security_path_chown(const struct pat return 0; return call_int_hook(path_chown, 0, path, uid, gid); } @@ -394,7 +394,7 @@ index 736e78d..b314539 100644 int security_path_chroot(const struct path *path) { -@@ -692,6 +698,7 @@ int security_inode_readlink(struct dentry *dentry) +@@ -696,6 +702,7 @@ int security_inode_readlink(struct dentr return 0; return call_int_hook(inode_readlink, 0, dentry); } @@ -402,7 +402,7 @@ index 736e78d..b314539 100644 int security_inode_follow_link(struct dentry *dentry, struct inode *inode, bool rcu) -@@ -707,6 +714,7 @@ int security_inode_permission(struct inode *inode, int mask) +@@ -711,6 +718,7 @@ int security_inode_permission(struct ino return 0; return call_int_hook(inode_permission, 0, inode, mask); } @@ -410,7 +410,7 @@ index 736e78d..b314539 100644 int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -878,6 +886,7 @@ int security_file_permission(struct file *file, int mask) +@@ -882,6 +890,7 @@ int security_file_permission(struct file return fsnotify_perm(file, mask); } @@ -418,7 +418,7 @@ index 736e78d..b314539 100644 int security_file_alloc(struct file *file) { -@@ -937,6 +946,7 @@ int security_mmap_file(struct file *file, unsigned long prot, +@@ -941,6 +950,7 @@ int security_mmap_file(struct file *file return ret; return ima_file_mmap(file, prot); } diff --git a/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch b/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch index 43493454d..a67217c02 100644 --- a/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch +++ b/debian/patches/features/all/db-mok-keyring/0001-KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch @@ -18,11 +18,10 @@ Signed-off-by: David Howells 2 files changed, 51 insertions(+) create mode 100644 certs/internal.h -diff --git a/certs/internal.h b/certs/internal.h -new file mode 100644 -index 000000000000..5dcbefb0c23a +Index: linux/certs/internal.h +=================================================================== --- /dev/null -+++ b/certs/internal.h ++++ linux/certs/internal.h @@ -0,0 +1,18 @@ +/* Internal definitions + * @@ -42,10 +41,10 @@ index 000000000000..5dcbefb0c23a +extern void __init add_trusted_secondary_key(const char *source, + const void *data, size_t len); +#endif -diff --git a/certs/system_keyring.c b/certs/system_keyring.c -index 81728717523d..62cd664ea031 100644 ---- a/certs/system_keyring.c -+++ b/certs/system_keyring.c +Index: linux/certs/system_keyring.c +=================================================================== +--- linux.orig/certs/system_keyring.c ++++ linux/certs/system_keyring.c @@ -19,6 +19,7 @@ #include #include @@ -54,7 +53,7 @@ index 81728717523d..62cd664ea031 100644 static struct key *builtin_trusted_keys; #ifdef CONFIG_SECONDARY_TRUSTED_KEYRING -@@ -266,3 +267,35 @@ int verify_pkcs7_signature(const void *data, size_t len, +@@ -266,3 +267,35 @@ error: EXPORT_SYMBOL_GPL(verify_pkcs7_signature); #endif /* CONFIG_SYSTEM_DATA_VERIFICATION */ @@ -90,6 +89,3 @@ index 81728717523d..62cd664ea031 100644 + source, key_ref_to_ptr(key)->description); +} +#endif /* CONFIG_SECONDARY_TRUSTED_KEYRING */ --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch b/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch index bfe9935c3..d36028413 100644 --- a/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch +++ b/debian/patches/features/all/db-mok-keyring/0001-MODSIGN-do-not-load-mok-when-secure-boot-disabled.patch @@ -18,11 +18,11 @@ Signed-off-by: "Lee, Chun-Yi" certs/load_uefi.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -index 3d88459..d6de4d0 100644 ---- a/certs/load_uefi.c -+++ b/certs/load_uefi.c -@@ -171,17 +171,6 @@ +Index: linux/certs/load_uefi.c +=================================================================== +--- linux.orig/certs/load_uefi.c ++++ linux/certs/load_uefi.c +@@ -171,17 +171,6 @@ static int __init load_uefi_certs(void) } } @@ -40,7 +40,7 @@ index 3d88459..d6de4d0 100644 rc = get_cert_list(L"dbx", &secure_var, &dbxsize, &dbx); if (rc < 0) { pr_info("MODSIGN: Couldn't get UEFI dbx list\n"); -@@ -194,6 +183,21 @@ +@@ -194,6 +183,21 @@ static int __init load_uefi_certs(void) kfree(dbx); } diff --git a/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch b/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch index 9edb217cc..d23b7ac98 100644 --- a/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch +++ b/debian/patches/features/all/db-mok-keyring/0002-MODSIGN-load-blacklist-from-MOKx.patch @@ -15,11 +15,11 @@ Signed-off-by: "Lee, Chun-Yi" certs/load_uefi.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -index f2f372b..dc66a79 100644 ---- a/certs/load_uefi.c -+++ b/certs/load_uefi.c -@@ -148,8 +148,8 @@ +Index: linux/certs/load_uefi.c +=================================================================== +--- linux.orig/certs/load_uefi.c ++++ linux/certs/load_uefi.c +@@ -148,8 +148,8 @@ static int __init load_uefi_certs(void) { efi_guid_t secure_var = EFI_IMAGE_SECURITY_DATABASE_GUID; efi_guid_t mok_var = EFI_SHIM_LOCK_GUID; @@ -30,7 +30,7 @@ index f2f372b..dc66a79 100644 int rc = 0; if (!efi.get_variable) -@@ -183,7 +183,7 @@ +@@ -183,7 +183,7 @@ static int __init load_uefi_certs(void) kfree(dbx); } @@ -39,7 +39,7 @@ index f2f372b..dc66a79 100644 if (!efi_enabled(EFI_SECURE_BOOT)) return 0; -@@ -198,6 +198,18 @@ +@@ -198,6 +198,18 @@ static int __init load_uefi_certs(void) kfree(mok); } diff --git a/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch b/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch index 9506ecff0..bf8d40768 100644 --- a/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch +++ b/debian/patches/features/all/db-mok-keyring/0002-efi-Add-EFI-signature-data-types.patch @@ -12,10 +12,10 @@ Signed-off-by: David Howells include/linux/efi.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 401e4b254e30..99cba6fe1234 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h +Index: linux/include/linux/efi.h +=================================================================== +--- linux.orig/include/linux/efi.h ++++ linux/include/linux/efi.h @@ -663,6 +663,10 @@ void efi_native_runtime_setup(void); #define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f) #define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23) @@ -27,7 +27,7 @@ index 401e4b254e30..99cba6fe1234 100644 /* * This GUID is used to pass to the kernel proper the struct screen_info * structure that was populated by the stub based on the GOP protocol instance -@@ -933,6 +937,27 @@ typedef struct { +@@ -934,6 +938,27 @@ typedef struct { efi_memory_desc_t entry[0]; } efi_memory_attributes_table_t; @@ -55,6 +55,3 @@ index 401e4b254e30..99cba6fe1234 100644 /* * All runtime access to EFI goes through this structure: */ --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch b/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch index 8ca2009d0..1a43ca553 100644 --- a/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch +++ b/debian/patches/features/all/db-mok-keyring/0003-MODSIGN-checking-the-blacklisted-hash-before-loading-a-kernel-module.patch @@ -24,10 +24,10 @@ Signed-off-by: "Lee, Chun-Yi" kernel/module_signing.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) -diff --git a/kernel/module_signing.c b/kernel/module_signing.c -index d3d6f95..d30ac74 100644 ---- a/kernel/module_signing.c -+++ b/kernel/module_signing.c +Index: linux/kernel/module_signing.c +=================================================================== +--- linux.orig/kernel/module_signing.c ++++ linux/kernel/module_signing.c @@ -11,9 +11,12 @@ #include @@ -41,7 +41,7 @@ index d3d6f95..d30ac74 100644 #include "module-internal.h" enum pkey_id_type { -@@ -42,19 +45,67 @@ +@@ -42,19 +45,67 @@ struct module_signature { __be32 sig_len; /* Length of signature data */ }; @@ -110,7 +110,7 @@ index d3d6f95..d30ac74 100644 memcpy(&ms, mod + (modlen - sizeof(ms)), sizeof(ms)); modlen -= sizeof(ms); -@@ -82,8 +133,15 @@ +@@ -82,8 +133,15 @@ int mod_verify_sig(const void *mod, stru return -EBADMSG; } diff --git a/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch b/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch index bc420e0f0..e82287cff 100644 --- a/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch +++ b/debian/patches/features/all/db-mok-keyring/0003-efi-Add-an-EFI-signature-blob-parser.patch @@ -25,10 +25,10 @@ Signed-off-by: David Howells 4 files changed, 130 insertions(+) create mode 100644 certs/efi_parser.c -diff --git a/certs/Kconfig b/certs/Kconfig -index c94e93d8bccf..650ffcb8db79 100644 ---- a/certs/Kconfig -+++ b/certs/Kconfig +Index: linux/certs/Kconfig +=================================================================== +--- linux.orig/certs/Kconfig ++++ linux/certs/Kconfig @@ -83,4 +83,12 @@ config SYSTEM_BLACKLIST_HASH_LIST wrapper to incorporate the list into the kernel. Each should be a string of hex digits. @@ -42,11 +42,11 @@ index c94e93d8bccf..650ffcb8db79 100644 + X.509 certificates and turning them into keys. + endmenu -diff --git a/certs/Makefile b/certs/Makefile -index 5d0999b9e21b..7e5e179ac685 100644 ---- a/certs/Makefile -+++ b/certs/Makefile -@@ -10,6 +10,7 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_hashes.o +Index: linux/certs/Makefile +=================================================================== +--- linux.orig/certs/Makefile ++++ linux/certs/Makefile +@@ -10,6 +10,7 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) + else obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o endif @@ -54,11 +54,10 @@ index 5d0999b9e21b..7e5e179ac685 100644 ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y) -diff --git a/certs/efi_parser.c b/certs/efi_parser.c -new file mode 100644 -index 000000000000..4e396f98f5c7 +Index: linux/certs/efi_parser.c +=================================================================== --- /dev/null -+++ b/certs/efi_parser.c ++++ linux/certs/efi_parser.c @@ -0,0 +1,112 @@ +/* EFI signature/key/certificate list parser + * @@ -172,11 +171,11 @@ index 000000000000..4e396f98f5c7 + + return 0; +} -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 99cba6fe1234..2016145e2d6d 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -1138,6 +1138,15 @@ extern int efi_memattr_apply_permissions(struct mm_struct *mm, +Index: linux/include/linux/efi.h +=================================================================== +--- linux.orig/include/linux/efi.h ++++ linux/include/linux/efi.h +@@ -1139,6 +1139,15 @@ extern int efi_memattr_apply_permissions char * __init efi_md_typeattr_format(char *buf, size_t size, const efi_memory_desc_t *md); @@ -192,6 +191,3 @@ index 99cba6fe1234..2016145e2d6d 100644 /** * efi_range_is_wc - check the WC bit on an address range * @start: starting kvirt address --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch index 50577d738..cdb3b7a22 100644 --- a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch +++ b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch @@ -27,10 +27,10 @@ Signed-off-by: David Howells 3 files changed, 188 insertions(+) create mode 100644 certs/load_uefi.c -diff --git a/certs/Kconfig b/certs/Kconfig -index 650ffcb8db79..548859925c1f 100644 ---- a/certs/Kconfig -+++ b/certs/Kconfig +Index: linux/certs/Kconfig +=================================================================== +--- linux.orig/certs/Kconfig ++++ linux/certs/Kconfig @@ -91,4 +91,20 @@ config EFI_SIGNATURE_LIST_PARSER This option provides support for parsing EFI signature lists for X.509 certificates and turning them into keys. @@ -52,11 +52,11 @@ index 650ffcb8db79..548859925c1f 100644 + loaded and keys that match the blacklist will be rejected. + endmenu -diff --git a/certs/Makefile b/certs/Makefile -index 7e5e179ac685..3f127ac80740 100644 ---- a/certs/Makefile -+++ b/certs/Makefile -@@ -12,6 +12,10 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o +Index: linux/certs/Makefile +=================================================================== +--- linux.orig/certs/Makefile ++++ linux/certs/Makefile +@@ -12,6 +12,10 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) + endif obj-$(CONFIG_EFI_SIGNATURE_LIST_PARSER) += efi_parser.o @@ -67,11 +67,10 @@ index 7e5e179ac685..3f127ac80740 100644 ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y) $(eval $(call config_filename,SYSTEM_TRUSTED_KEYS)) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -new file mode 100644 -index 000000000000..b44e464c3ff4 +Index: linux/certs/load_uefi.c +=================================================================== --- /dev/null -+++ b/certs/load_uefi.c ++++ linux/certs/load_uefi.c @@ -0,0 +1,168 @@ +#include +#include @@ -241,6 +240,3 @@ index 000000000000..b44e464c3ff4 + return rc; +} +late_initcall(load_uefi_certs); --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch index 7127cabaa..57b6e61ff 100644 --- a/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch +++ b/debian/patches/features/all/db-mok-keyring/0004-MODSIGN-check-the-attributes-of-db-and-mok.patch @@ -25,11 +25,11 @@ Signed-off-by: "Lee, Chun-Yi" certs/load_uefi.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -index dc66a79..52526bd 100644 ---- a/certs/load_uefi.c -+++ b/certs/load_uefi.c -@@ -36,12 +36,14 @@ +Index: linux/certs/load_uefi.c +=================================================================== +--- linux.orig/certs/load_uefi.c ++++ linux/certs/load_uefi.c +@@ -36,12 +36,14 @@ static __init bool uefi_check_ignore_db( * Get a certificate list blob from the named EFI variable. */ static __init int get_cert_list(efi_char16_t *name, efi_guid_t *guid, @@ -45,7 +45,7 @@ index dc66a79..52526bd 100644 status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb); if (status == EFI_NOT_FOUND) { -@@ -61,12 +63,19 @@ +@@ -61,12 +63,19 @@ static __init int get_cert_list(efi_char return -ENOMEM; } @@ -66,7 +66,7 @@ index dc66a79..52526bd 100644 *size = lsize; *cert_list = db; -@@ -159,7 +168,8 @@ +@@ -159,7 +168,8 @@ static int __init load_uefi_certs(void) * an error if we can't get them. */ if (!uefi_check_ignore_db()) { @@ -76,7 +76,7 @@ index dc66a79..52526bd 100644 if (rc < 0) { pr_err("MODSIGN: Couldn't get UEFI db list\n"); } else if (dbsize != 0) { -@@ -171,7 +181,8 @@ +@@ -171,7 +181,8 @@ static int __init load_uefi_certs(void) } } @@ -86,7 +86,7 @@ index dc66a79..52526bd 100644 if (rc < 0) { pr_info("MODSIGN: Couldn't get UEFI dbx list\n"); } else if (dbxsize != 0) { -@@ -187,7 +198,8 @@ +@@ -187,7 +198,8 @@ static int __init load_uefi_certs(void) if (!efi_enabled(EFI_SECURE_BOOT)) return 0; @@ -96,7 +96,7 @@ index dc66a79..52526bd 100644 if (rc < 0) { pr_info("MODSIGN: Couldn't get UEFI MokListRT\n"); } else if (moksize != 0) { -@@ -198,7 +210,8 @@ +@@ -198,7 +210,8 @@ static int __init load_uefi_certs(void) kfree(mok); } diff --git a/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch b/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch index 395cb48bd..b5e2e843c 100644 --- a/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch +++ b/debian/patches/features/all/db-mok-keyring/0005-MODSIGN-Allow-the-db-UEFI-variable-to-be-suppressed.patch @@ -14,15 +14,14 @@ Signed-off-by: David Howells certs/load_uefi.c | 44 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 10 deletions(-) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -index b44e464c3ff4..3d8845986019 100644 ---- a/certs/load_uefi.c -+++ b/certs/load_uefi.c -@@ -12,6 +12,26 @@ static __initdata efi_guid_t efi_cert_x509_guid = EFI_CERT_X509_GUID; - static __initdata efi_guid_t efi_cert_x509_sha256_guid = EFI_CERT_X509_SHA256_GUID; +Index: linux/certs/load_uefi.c +=================================================================== +--- linux.orig/certs/load_uefi.c ++++ linux/certs/load_uefi.c +@@ -13,6 +13,26 @@ static __initdata efi_guid_t efi_cert_x5 static __initdata efi_guid_t efi_cert_sha256_guid = EFI_CERT_SHA256_GUID; -+/* + /* + * Look to see if a UEFI variable called MokIgnoreDB exists and return true if + * it does. + * @@ -42,10 +41,11 @@ index b44e464c3ff4..3d8845986019 100644 + return status == EFI_SUCCESS; +} + - /* ++/* * Get a certificate list blob from the named EFI variable. */ -@@ -113,7 +133,9 @@ static __init efi_element_handler_t get_handler_for_dbx(const efi_guid_t *sig_ty + static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, +@@ -113,7 +133,9 @@ static __init efi_element_handler_t get_ } /* @@ -83,6 +83,3 @@ index b44e464c3ff4..3d8845986019 100644 } mok = get_cert_list(L"MokListRT", &mok_var, &moksize); --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch b/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch index a22387656..c348e2f04 100644 --- a/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch +++ b/debian/patches/features/all/db-mok-keyring/0006-Make-get_cert_list-not-complain-about-cert-lists-tha.patch @@ -9,11 +9,11 @@ Signed-off-by: Peter Jones certs/load_uefi.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) -diff --git a/certs/load_uefi.c b/certs/load_uefi.c -index 3d8845986019..9ef34c44fd1b 100644 ---- a/certs/load_uefi.c -+++ b/certs/load_uefi.c -@@ -35,8 +35,8 @@ static __init bool uefi_check_ignore_db(void) +Index: linux/certs/load_uefi.c +=================================================================== +--- linux.orig/certs/load_uefi.c ++++ linux/certs/load_uefi.c +@@ -35,8 +35,8 @@ static __init bool uefi_check_ignore_db( /* * Get a certificate list blob from the named EFI variable. */ @@ -24,7 +24,7 @@ index 3d8845986019..9ef34c44fd1b 100644 { efi_status_t status; unsigned long lsize = 4; -@@ -44,26 +44,33 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, +@@ -44,26 +44,33 @@ static __init void *get_cert_list(efi_ch void *db; status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb); @@ -104,6 +104,3 @@ index 3d8845986019..9ef34c44fd1b 100644 rc = parse_efi_signature_list("UEFI:dbx", dbx, dbxsize, get_handler_for_dbx); --- -2.20.1 - diff --git a/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch b/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch index d0d59fe8c..b831869e4 100644 --- a/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch +++ b/debian/patches/features/all/db-mok-keyring/0007-modsign-Use-secondary-trust-keyring-for-module-signi.patch @@ -13,11 +13,11 @@ Signed-off-by: Jessica Yu kernel/module_signing.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -diff --git a/kernel/module_signing.c b/kernel/module_signing.c -index f2075ce8e4b3..6b9a926fd86b 100644 ---- a/kernel/module_signing.c -+++ b/kernel/module_signing.c -@@ -83,6 +83,7 @@ int mod_verify_sig(const void *mod, struct load_info *info) +Index: linux/kernel/module_signing.c +=================================================================== +--- linux.orig/kernel/module_signing.c ++++ linux/kernel/module_signing.c +@@ -83,6 +83,7 @@ int mod_verify_sig(const void *mod, stru } return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, diff --git a/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch b/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch index 2ae3ddde4..a0aea95a2 100644 --- a/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch +++ b/debian/patches/features/all/db-mok-keyring/modsign-make-shash-allocation-failure-fatal.patch @@ -8,8 +8,10 @@ so unwrap and pass up the error code. Signed-off-by: Ben Hutchings --- ---- a/kernel/module_signing.c -+++ b/kernel/module_signing.c +Index: linux/kernel/module_signing.c +=================================================================== +--- linux.orig/kernel/module_signing.c ++++ linux/kernel/module_signing.c @@ -51,11 +51,13 @@ static int mod_is_hash_blacklisted(const struct shash_desc *desc; size_t digest_size, desc_size; diff --git a/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch b/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch index d40c58db6..2d3b1a5da 100644 --- a/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch +++ b/debian/patches/features/all/drivers-media-dvb-usb-af9005-request_firmware.patch @@ -11,8 +11,10 @@ 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 +Index: linux/drivers/media/usb/dvb-usb/Kconfig +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/Kconfig ++++ linux/drivers/media/usb/dvb-usb/Kconfig @@ -246,10 +246,10 @@ config DVB_USB_OPERA1 config DVB_USB_AF9005 @@ -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: linux/drivers/media/usb/dvb-usb/af9005-fe.c +=================================================================== +--- linux.orig/drivers/media/usb/dvb-usb/af9005-fe.c ++++ linux/drivers/media/usb/dvb-usb/af9005-fe.c @@ -18,10 +18,26 @@ * see Documentation/media/dvb-drivers/dvb-usb.rst for more information */ diff --git a/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch b/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch index 0dd20eca8..0c681dd2a 100644 --- a/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch +++ b/debian/patches/features/all/ena/0001-net-ethernet-remove-redundant-include.patch @@ -20,10 +20,10 @@ Signed-off-by: Noah Meyerhans drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 - 1 file changed, 1 deletion(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index d906293ce07d..69a49784b204 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -39,7 +39,6 @@ #include #include @@ -32,6 +32,3 @@ index d906293ce07d..69a49784b204 100644 #include #include #include --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch b/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch index 01d554696..f4f95e9fa 100644 --- a/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch +++ b/debian/patches/features/all/ena/0002-net-ena-minor-performance-improvement.patch @@ -14,11 +14,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_eth_com.h | 46 ++++++++++++++++++- 2 files changed, 44 insertions(+), 45 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.c b/drivers/net/ethernet/amazon/ena/ena_eth_com.c -index 2b3ff0c20155..9c0511e9f9a2 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c -@@ -59,15 +59,6 @@ static inline struct ena_eth_io_rx_cdesc_base *ena_com_get_next_rx_cdesc( +Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c +@@ -59,15 +59,6 @@ static inline struct ena_eth_io_rx_cdesc return cdesc; } @@ -34,10 +34,11 @@ index 2b3ff0c20155..9c0511e9f9a2 100644 static inline void *get_sq_desc(struct ena_com_io_sq *io_sq) { u16 tail_masked; -@@ -477,40 +468,6 @@ int ena_com_add_single_rx_desc(struct ena_com_io_sq *io_sq, +@@ -476,40 +467,6 @@ int ena_com_add_single_rx_desc(struct en + return 0; } - +- -int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq, u16 *req_id) -{ - u8 expected_phase, cdesc_phase; @@ -71,15 +72,14 @@ index 2b3ff0c20155..9c0511e9f9a2 100644 - - return 0; -} -- + bool ena_com_cq_empty(struct ena_com_io_cq *io_cq) { - struct ena_eth_io_rx_cdesc_base *cdesc; -diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.h b/drivers/net/ethernet/amazon/ena/ena_eth_com.h -index 2f7657227cfe..4930324e9d8d 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_eth_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.h -@@ -86,8 +86,6 @@ int ena_com_add_single_rx_desc(struct ena_com_io_sq *io_sq, +Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h +@@ -86,8 +86,6 @@ int ena_com_add_single_rx_desc(struct en struct ena_com_buf *ena_buf, u16 req_id); @@ -88,7 +88,7 @@ index 2f7657227cfe..4930324e9d8d 100644 bool ena_com_cq_empty(struct ena_com_io_cq *io_cq); static inline void ena_com_unmask_intr(struct ena_com_io_cq *io_cq, -@@ -159,4 +157,48 @@ static inline void ena_com_comp_ack(struct ena_com_io_sq *io_sq, u16 elem) +@@ -159,4 +157,48 @@ static inline void ena_com_comp_ack(stru io_sq->next_to_comp += elem; } @@ -137,6 +137,3 @@ index 2f7657227cfe..4930324e9d8d 100644 +} + #endif /* ENA_ETH_COM_H_ */ --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch b/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch index 398028799..a7e02fd9e 100644 --- a/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch +++ b/debian/patches/features/all/ena/0003-net-ena-complete-host-info-to-match-latest-ENA-spec.patch @@ -15,8 +15,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 ++++-- 4 files changed, 43 insertions(+), 14 deletions(-) ---- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h @@ -63,6 +63,8 @@ enum ena_admin_aq_completion_status { ENA_ADMIN_ILLEGAL_PARAMETER = 5, @@ -80,8 +82,10 @@ Signed-off-by: David S. Miller /* aenq_common_desc */ #define ENA_ADMIN_AENQ_COMMON_DESC_PHASE_MASK BIT(0) ---- a/drivers/net/ethernet/amazon/ena/ena_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_com.c +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c @@ -41,9 +41,6 @@ #define ENA_ASYNC_QUEUE_DEPTH 16 #define ENA_ADMIN_QUEUE_DEPTH 32 @@ -115,8 +119,10 @@ Signed-off-by: David S. Miller return 0; } ---- a/drivers/net/ethernet/amazon/ena/ena_common_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_common_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_common_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_common_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_common_defs.h @@ -32,8 +32,8 @@ #ifndef _ENA_COMMON_H_ #define _ENA_COMMON_H_ @@ -128,8 +134,10 @@ Signed-off-by: David S. Miller /* ENA operates with 48-bit memory addresses. ena_mem_addr_t */ struct ena_common_mem_addr { ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -2206,7 +2206,8 @@ static u16 ena_select_queue(struct net_d return qid; } diff --git a/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch b/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch index 8f38e49c1..51e655bab 100644 --- a/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch +++ b/debian/patches/features/all/ena/0004-net-ena-introduce-Low-Latency-Queues-data-structures.patch @@ -16,10 +16,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 6 +- 3 files changed, 128 insertions(+), 6 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h -index d735164efea3..b439ec1b3edb 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h @@ -74,6 +74,8 @@ enum ena_admin_aq_feature_id { ENA_ADMIN_HW_HINTS = 3, @@ -29,7 +29,7 @@ index d735164efea3..b439ec1b3edb 100644 ENA_ADMIN_RSS_HASH_FUNCTION = 10, ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11, -@@ -485,8 +487,85 @@ struct ena_admin_device_attr_feature_desc { +@@ -485,8 +487,85 @@ struct ena_admin_device_attr_feature_des u32 max_mtu; }; @@ -147,10 +147,10 @@ index d735164efea3..b439ec1b3edb 100644 } u; }; -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h -index 7b784f8a06a6..50e6c8f6f138 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_com.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h @@ -108,6 +108,14 @@ enum ena_intr_moder_level { ENA_INTR_MAX_NUM_OF_LEVELS, }; @@ -238,11 +238,11 @@ index 7b784f8a06a6..50e6c8f6f138 100644 }; struct ena_com_create_io_ctx { -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index 0c9c0d3ce856..789556960b8e 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -2959,7 +2959,7 @@ static int ena_calc_io_queue_num(struct pci_dev *pdev, +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -2959,7 +2959,7 @@ static int ena_calc_io_queue_num(struct /* In case of LLQ use the llq number in the get feature cmd */ if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) { @@ -251,7 +251,7 @@ index 0c9c0d3ce856..789556960b8e 100644 if (io_sq_num == 0) { dev_err(&pdev->dev, -@@ -2995,7 +2995,7 @@ static void ena_set_push_mode(struct pci_dev *pdev, struct ena_com_dev *ena_dev, +@@ -2995,7 +2995,7 @@ static void ena_set_push_mode(struct pci has_mem_bar = pci_select_bars(pdev, IORESOURCE_MEM) & BIT(ENA_MEM_BAR); /* Enable push mode if device supports LLQ */ @@ -260,7 +260,7 @@ index 0c9c0d3ce856..789556960b8e 100644 ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_DEV; else ena_dev->tx_mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST; -@@ -3131,7 +3131,7 @@ static int ena_calc_queue_size(struct pci_dev *pdev, +@@ -3131,7 +3131,7 @@ static int ena_calc_queue_size(struct pc if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) queue_size = min_t(u32, queue_size, @@ -269,6 +269,3 @@ index 0c9c0d3ce856..789556960b8e 100644 queue_size = rounddown_pow_of_two(queue_size); --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch b/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch index 7e3947085..375541b10 100644 --- a/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch +++ b/debian/patches/features/all/ena/0005-net-ena-add-functions-for-handling-Low-Latency-Queue.patch @@ -19,10 +19,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 21 +- 5 files changed, 474 insertions(+), 80 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c -index b6e6a4721931..5220c7578d6b 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_com.c +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c @@ -58,6 +58,8 @@ #define ENA_MMIO_READ_TIMEOUT 0xFFFFFFFF @@ -32,7 +32,7 @@ index b6e6a4721931..5220c7578d6b 100644 #define ENA_REGS_ADMIN_INTR_MASK 1 #define ENA_POLL_MS 5 -@@ -352,21 +354,48 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev, +@@ -352,21 +354,48 @@ static int ena_com_init_io_sq(struct ena &io_sq->desc_addr.phys_addr, GFP_KERNEL); } @@ -89,7 +89,7 @@ index b6e6a4721931..5220c7578d6b 100644 } io_sq->tail = 0; -@@ -554,6 +583,156 @@ static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_c +@@ -554,6 +583,156 @@ err: return ret; } @@ -246,7 +246,7 @@ index b6e6a4721931..5220c7578d6b 100644 static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx, struct ena_com_admin_queue *admin_queue) { -@@ -725,15 +904,17 @@ static void ena_com_io_queue_free(struct ena_com_dev *ena_dev, +@@ -725,15 +904,17 @@ static void ena_com_io_queue_free(struct if (io_sq->desc_addr.virt_addr) { size = io_sq->desc_entry_size * io_sq->q_depth; @@ -270,7 +270,7 @@ index b6e6a4721931..5220c7578d6b 100644 } static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout, -@@ -1740,6 +1921,15 @@ int ena_com_get_dev_attr_feat(struct ena_com_dev *ena_dev, +@@ -1740,6 +1921,15 @@ int ena_com_get_dev_attr_feat(struct ena else return rc; @@ -286,7 +286,7 @@ index b6e6a4721931..5220c7578d6b 100644 return 0; } -@@ -2708,3 +2898,34 @@ void ena_com_get_intr_moderation_entry(struct ena_com_dev *ena_dev, +@@ -2708,3 +2898,34 @@ void ena_com_get_intr_moderation_entry(s intr_moder_tbl[level].pkts_per_interval; entry->bytes_per_interval = intr_moder_tbl[level].bytes_per_interval; } @@ -321,10 +321,10 @@ index b6e6a4721931..5220c7578d6b 100644 + + return 0; +} -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h -index 50e6c8f6f138..25af8d025919 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_com.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h @@ -37,6 +37,7 @@ #include #include @@ -333,7 +333,7 @@ index 50e6c8f6f138..25af8d025919 100644 #include #include #include -@@ -973,6 +974,16 @@ void ena_com_get_intr_moderation_entry(struct ena_com_dev *ena_dev, +@@ -973,6 +974,16 @@ void ena_com_get_intr_moderation_entry(s enum ena_intr_moder_level level, struct ena_intr_moder_entry *entry); @@ -350,7 +350,7 @@ index 50e6c8f6f138..25af8d025919 100644 static inline bool ena_com_get_adaptive_moderation_enabled(struct ena_com_dev *ena_dev) { return ena_dev->adaptive_coalescing; -@@ -1082,4 +1093,21 @@ static inline void ena_com_update_intr_reg(struct ena_eth_io_intr_reg *intr_reg, +@@ -1082,4 +1093,21 @@ static inline void ena_com_update_intr_r intr_reg->intr_control |= ENA_ETH_IO_INTR_REG_INTR_UNMASK_MASK; } @@ -372,11 +372,11 @@ index 50e6c8f6f138..25af8d025919 100644 +} + #endif /* !(ENA_COM) */ -diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.c b/drivers/net/ethernet/amazon/ena/ena_eth_com.c -index 9c0511e9f9a2..17107ca107e3 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c -@@ -59,7 +59,7 @@ static inline struct ena_eth_io_rx_cdesc_base *ena_com_get_next_rx_cdesc( +Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.c +@@ -59,7 +59,7 @@ static inline struct ena_eth_io_rx_cdesc return cdesc; } @@ -385,7 +385,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 { u16 tail_masked; u32 offset; -@@ -71,45 +71,159 @@ static inline void *get_sq_desc(struct ena_com_io_sq *io_sq) +@@ -71,45 +71,159 @@ static inline void *get_sq_desc(struct e return (void *)((uintptr_t)io_sq->desc_addr.virt_addr + offset); } @@ -435,22 +435,15 @@ index 9c0511e9f9a2..17107ca107e3 100644 +static inline int ena_com_write_header_to_bounce(struct ena_com_io_sq *io_sq, + u8 *header_src, + u16 header_len) - { -- u16 tail_masked = io_sq->tail & (io_sq->q_depth - 1); -- u8 __iomem *dev_head_addr = -- io_sq->header_addr + (tail_masked * io_sq->tx_max_header_size); ++{ + struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl; + struct ena_com_llq_info *llq_info = &io_sq->llq_info; + u8 *bounce_buffer = pkt_ctrl->curr_bounce_buf; + u16 header_offset; - -- if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) ++ + if (unlikely(io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)) - return 0; - -- if (unlikely(!io_sq->header_addr)) { -- pr_err("Push buffer header ptr is NULL\n"); -- return -EINVAL; ++ return 0; ++ + header_offset = + llq_info->descs_num_before_header * io_sq->desc_entry_size; + @@ -491,14 +484,21 @@ index 9c0511e9f9a2..17107ca107e3 100644 +} + +static inline int ena_com_close_bounce_buffer(struct ena_com_io_sq *io_sq) -+{ + { +- u16 tail_masked = io_sq->tail & (io_sq->q_depth - 1); +- u8 __iomem *dev_head_addr = +- io_sq->header_addr + (tail_masked * io_sq->tx_max_header_size); + struct ena_com_llq_pkt_ctrl *pkt_ctrl = &io_sq->llq_buf_ctrl; + struct ena_com_llq_info *llq_info = &io_sq->llq_info; + int rc; -+ + +- if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) + if (unlikely(io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST)) -+ return 0; -+ + return 0; + +- if (unlikely(!io_sq->header_addr)) { +- pr_err("Push buffer header ptr is NULL\n"); +- return -EINVAL; + /* bounce buffer was used, so write it and get a new one */ + if (pkt_ctrl->idx) { + rc = ena_com_write_bounce_buffer_to_dev(io_sq, @@ -510,8 +510,9 @@ index 9c0511e9f9a2..17107ca107e3 100644 + ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl); + memset(io_sq->llq_buf_ctrl.curr_bounce_buf, + 0x0, llq_info->desc_list_entry_size); -+ } -+ + } + +- memcpy_toio(dev_head_addr, head_src, header_len); + pkt_ctrl->idx = 0; + pkt_ctrl->descs_left_in_line = llq_info->descs_num_before_header; + return 0; @@ -548,9 +549,8 @@ index 9c0511e9f9a2..17107ca107e3 100644 + else + pkt_ctrl->descs_left_in_line = + llq_info->desc_list_entry_size / io_sq->desc_entry_size; - } - -- memcpy_toio(dev_head_addr, head_src, header_len); ++ } ++ + return 0; +} + @@ -567,7 +567,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 return 0; } -@@ -177,8 +291,8 @@ static inline bool ena_com_meta_desc_changed(struct ena_com_io_sq *io_sq, +@@ -177,8 +291,8 @@ static inline bool ena_com_meta_desc_cha return false; } @@ -578,7 +578,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 { struct ena_eth_io_tx_meta_desc *meta_desc = NULL; struct ena_com_tx_meta *ena_meta = &ena_tx_ctx->ena_meta; -@@ -223,8 +337,7 @@ static inline void ena_com_create_and_store_tx_meta_desc(struct ena_com_io_sq *i +@@ -223,8 +337,7 @@ static inline void ena_com_create_and_st memcpy(&io_sq->cached_tx_meta, ena_meta, sizeof(struct ena_com_tx_meta)); @@ -588,7 +588,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 } static inline void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx, -@@ -262,18 +375,19 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, +@@ -262,18 +375,19 @@ int ena_com_prepare_tx(struct ena_com_io { struct ena_eth_io_tx_desc *desc = NULL; struct ena_com_buf *ena_bufs = ena_tx_ctx->ena_bufs; @@ -612,7 +612,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 return -ENOMEM; } -@@ -283,23 +397,32 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, +@@ -283,23 +397,32 @@ int ena_com_prepare_tx(struct ena_com_io return -EINVAL; } @@ -652,7 +652,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc)); /* Set first desc when we don't have meta descriptor */ -@@ -351,10 +474,14 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, +@@ -351,10 +474,14 @@ int ena_com_prepare_tx(struct ena_com_io for (i = 0; i < num_bufs; i++) { /* The first desc share the same desc as the header */ if (likely(i != 0)) { @@ -669,7 +669,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 memset(desc, 0x0, sizeof(struct ena_eth_io_tx_desc)); desc->len_ctrl |= (io_sq->phase << -@@ -377,15 +504,14 @@ int ena_com_prepare_tx(struct ena_com_io_sq *io_sq, +@@ -377,15 +504,14 @@ int ena_com_prepare_tx(struct ena_com_io /* set the last desc indicator */ desc->len_ctrl |= ENA_ETH_IO_TX_DESC_LAST_MASK; @@ -691,7 +691,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 } int ena_com_rx_pkt(struct ena_com_io_cq *io_cq, -@@ -444,15 +570,18 @@ int ena_com_add_single_rx_desc(struct ena_com_io_sq *io_sq, +@@ -444,15 +570,18 @@ int ena_com_add_single_rx_desc(struct en WARN(io_sq->direction != ENA_COM_IO_QUEUE_DIRECTION_RX, "wrong Q type"); @@ -712,7 +712,7 @@ index 9c0511e9f9a2..17107ca107e3 100644 desc->ctrl |= ENA_ETH_IO_RX_DESC_LAST_MASK; desc->ctrl |= io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK; desc->ctrl |= ENA_ETH_IO_RX_DESC_COMP_REQ_MASK; -@@ -463,9 +592,7 @@ int ena_com_add_single_rx_desc(struct ena_com_io_sq *io_sq, +@@ -463,9 +592,7 @@ int ena_com_add_single_rx_desc(struct en desc->buff_addr_hi = ((ena_buf->paddr & GENMASK_ULL(io_sq->dma_addr_bits - 1, 32)) >> 32); @@ -723,11 +723,11 @@ index 9c0511e9f9a2..17107ca107e3 100644 } bool ena_com_cq_empty(struct ena_com_io_cq *io_cq) -diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.h b/drivers/net/ethernet/amazon/ena/ena_eth_com.h -index 4930324e9d8d..bcc84072367d 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_eth_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.h -@@ -94,7 +94,7 @@ static inline void ena_com_unmask_intr(struct ena_com_io_cq *io_cq, +Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_com.h +@@ -94,7 +94,7 @@ static inline void ena_com_unmask_intr(s writel(intr_reg->intr_control, io_cq->unmask_reg); } @@ -736,7 +736,7 @@ index 4930324e9d8d..bcc84072367d 100644 { u16 tail, next_to_comp, cnt; -@@ -105,11 +105,28 @@ static inline int ena_com_sq_empty_space(struct ena_com_io_sq *io_sq) +@@ -105,11 +105,28 @@ static inline int ena_com_sq_empty_space return io_sq->q_depth - 1 - cnt; } @@ -768,11 +768,11 @@ index 4930324e9d8d..bcc84072367d 100644 pr_debug("write submission queue doorbell for queue: %d tail: %d\n", io_sq->qid, tail); -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index 789556960b8e..e732bd2ddd32 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -804,12 +804,13 @@ static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget) +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -804,12 +804,13 @@ static int ena_clean_tx_irq(struct ena_r */ smp_mb(); @@ -790,7 +790,7 @@ index 789556960b8e..e732bd2ddd32 100644 if (netif_tx_queue_stopped(txq) && above_thresh) { netif_tx_wake_queue(txq); u64_stats_update_begin(&tx_ring->syncp); -@@ -1101,7 +1102,7 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi, +@@ -1101,7 +1102,7 @@ static int ena_clean_rx_irq(struct ena_r rx_ring->next_to_clean = next_to_clean; @@ -799,7 +799,7 @@ index 789556960b8e..e732bd2ddd32 100644 refill_threshold = rx_ring->ring_size / ENA_RX_REFILL_THRESH_DIVIDER; /* Optimization, try to batch new rx buffers */ -@@ -2115,8 +2116,8 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2115,8 +2116,8 @@ static netdev_tx_t ena_start_xmit(struct * to sgl_size + 2. one for the meta descriptor and one for header * (if the header is larger than tx_max_header_size). */ @@ -810,7 +810,7 @@ index 789556960b8e..e732bd2ddd32 100644 netif_dbg(adapter, tx_queued, dev, "%s stop queue %d\n", __func__, qid); -@@ -2135,8 +2136,8 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2135,8 +2136,8 @@ static netdev_tx_t ena_start_xmit(struct */ smp_mb(); @@ -821,7 +821,7 @@ index 789556960b8e..e732bd2ddd32 100644 netif_tx_wake_queue(txq); u64_stats_update_begin(&tx_ring->syncp); tx_ring->tx_stats.queue_wakeup++; -@@ -2813,7 +2814,7 @@ static void check_for_empty_rx_ring(struct ena_adapter *adapter) +@@ -2813,7 +2814,7 @@ static void check_for_empty_rx_ring(stru rx_ring = &adapter->rx_ring[i]; refill_required = @@ -830,6 +830,3 @@ index 789556960b8e..e732bd2ddd32 100644 if (unlikely(refill_required == (rx_ring->ring_size - 1))) { rx_ring->empty_rx_queue++; --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch b/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch index 365f46bfb..8f288529e 100644 --- a/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch +++ b/debian/patches/features/all/ena/0006-net-ena-add-functions-for-handling-Low-Latency-Queue.patch @@ -15,11 +15,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 6 + 3 files changed, 251 insertions(+), 143 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c -index 521607bc4393..fd28bd0d1c1e 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c -+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c -@@ -81,6 +81,7 @@ static const struct ena_stats ena_stats_tx_strings[] = { +Index: linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_ethtool.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_ethtool.c +@@ -81,6 +81,7 @@ static const struct ena_stats ena_stats_ ENA_STAT_TX_ENTRY(doorbells), ENA_STAT_TX_ENTRY(prepare_ctx_err), ENA_STAT_TX_ENTRY(bad_req_id), @@ -27,11 +27,11 @@ index 521607bc4393..fd28bd0d1c1e 100644 ENA_STAT_TX_ENTRY(missed_tx), }; -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index e732bd2ddd32..fcdfaf0ab8a7 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -237,6 +237,17 @@ static int ena_setup_tx_resources(struct ena_adapter *adapter, int qid) +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -237,6 +237,17 @@ static int ena_setup_tx_resources(struct } } @@ -49,7 +49,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 /* Req id ring for TX out of order completions */ for (i = 0; i < tx_ring->ring_size; i++) tx_ring->free_tx_ids[i] = i; -@@ -265,6 +276,9 @@ static void ena_free_tx_resources(struct ena_adapter *adapter, int qid) +@@ -265,6 +276,9 @@ static void ena_free_tx_resources(struct vfree(tx_ring->free_tx_ids); tx_ring->free_tx_ids = NULL; @@ -59,7 +59,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 } /* ena_setup_all_tx_resources - allocate I/O Tx queues resources for All queues -@@ -602,6 +616,36 @@ static void ena_free_all_rx_bufs(struct ena_adapter *adapter) +@@ -602,6 +616,36 @@ static void ena_free_all_rx_bufs(struct ena_free_rx_bufs(adapter, i); } @@ -96,7 +96,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 /* ena_free_tx_bufs - Free Tx Buffers per Queue * @tx_ring: TX ring for which buffers be freed */ -@@ -612,9 +656,6 @@ static void ena_free_tx_bufs(struct ena_ring *tx_ring) +@@ -612,9 +656,6 @@ static void ena_free_tx_bufs(struct ena_ for (i = 0; i < tx_ring->ring_size; i++) { struct ena_tx_buffer *tx_info = &tx_ring->tx_buffer_info[i]; @@ -106,7 +106,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 if (!tx_info->skb) continue; -@@ -630,21 +671,7 @@ static void ena_free_tx_bufs(struct ena_ring *tx_ring) +@@ -630,21 +671,7 @@ static void ena_free_tx_bufs(struct ena_ tx_ring->qid, i); } @@ -129,7 +129,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 dev_kfree_skb_any(tx_info->skb); } -@@ -735,8 +762,6 @@ static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget) +@@ -735,8 +762,6 @@ static int ena_clean_tx_irq(struct ena_r while (tx_pkts < budget) { struct ena_tx_buffer *tx_info; struct sk_buff *skb; @@ -138,7 +138,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 rc = ena_com_tx_comp_req_id_get(tx_ring->ena_com_io_cq, &req_id); -@@ -756,24 +781,7 @@ static int ena_clean_tx_irq(struct ena_ring *tx_ring, u32 budget) +@@ -756,24 +781,7 @@ static int ena_clean_tx_irq(struct ena_r tx_info->skb = NULL; tx_info->last_jiffies = 0; @@ -164,7 +164,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 netif_dbg(tx_ring->adapter, tx_done, tx_ring->netdev, "tx_poll: q %d skb %p completed\n", tx_ring->qid, -@@ -1300,7 +1308,6 @@ static int ena_enable_msix(struct ena_adapter *adapter, int num_queues) +@@ -1300,7 +1308,6 @@ static int ena_enable_msix(struct ena_ad /* Reserved the max msix vectors we might need */ msix_vecs = ENA_MAX_MSIX_VEC(num_queues); @@ -172,7 +172,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 netif_dbg(adapter, probe, adapter->netdev, "trying to enable MSI-X, vectors %d\n", msix_vecs); -@@ -1591,7 +1598,7 @@ static int ena_up_complete(struct ena_adapter *adapter) +@@ -1591,7 +1598,7 @@ static int ena_up_complete(struct ena_ad static int ena_create_io_tx_queue(struct ena_adapter *adapter, int qid) { @@ -181,7 +181,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 struct ena_com_dev *ena_dev; struct ena_ring *tx_ring; u32 msix_vector; -@@ -1604,6 +1611,8 @@ static int ena_create_io_tx_queue(struct ena_adapter *adapter, int qid) +@@ -1604,6 +1611,8 @@ static int ena_create_io_tx_queue(struct msix_vector = ENA_IO_IRQ_IDX(qid); ena_qid = ENA_IO_TXQ_IDX(qid); @@ -190,7 +190,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX; ctx.qid = ena_qid; ctx.mem_queue_type = ena_dev->tx_mem_queue_type; -@@ -1657,7 +1666,7 @@ static int ena_create_all_io_tx_queues(struct ena_adapter *adapter) +@@ -1657,7 +1666,7 @@ create_err: static int ena_create_io_rx_queue(struct ena_adapter *adapter, int qid) { struct ena_com_dev *ena_dev; @@ -199,7 +199,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 struct ena_ring *rx_ring; u32 msix_vector; u16 ena_qid; -@@ -1669,6 +1678,8 @@ static int ena_create_io_rx_queue(struct ena_adapter *adapter, int qid) +@@ -1669,6 +1678,8 @@ static int ena_create_io_rx_queue(struct msix_vector = ENA_IO_IRQ_IDX(qid); ena_qid = ENA_IO_RXQ_IDX(qid); @@ -208,7 +208,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 ctx.qid = ena_qid; ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX; ctx.mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST; -@@ -1986,73 +1997,70 @@ static int ena_check_and_linearize_skb(struct ena_ring *tx_ring, +@@ -1986,73 +1997,70 @@ static int ena_check_and_linearize_skb(s return rc; } @@ -327,7 +327,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 } last_frag = skb_shinfo(skb)->nr_frags; -@@ -2060,18 +2068,75 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2060,18 +2068,75 @@ static netdev_tx_t ena_start_xmit(struct for (i = 0; i < last_frag; i++) { const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; @@ -409,7 +409,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 memset(&ena_tx_ctx, 0x0, sizeof(struct ena_com_tx_ctx)); ena_tx_ctx.ena_bufs = tx_info->bufs; -@@ -2087,14 +2152,22 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2087,14 +2152,22 @@ static netdev_tx_t ena_start_xmit(struct rc = ena_com_prepare_tx(tx_ring->ena_com_io_sq, &ena_tx_ctx, &nb_hw_desc); @@ -434,7 +434,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 goto error_unmap_dma; } -@@ -2157,35 +2230,11 @@ static netdev_tx_t ena_start_xmit(struct sk_buff *skb, struct net_device *dev) +@@ -2157,35 +2230,11 @@ static netdev_tx_t ena_start_xmit(struct return NETDEV_TX_OK; @@ -472,7 +472,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 dev_kfree_skb(skb); return NETDEV_TX_OK; } -@@ -2621,7 +2670,9 @@ static int ena_restore_device(struct ena_adapter *adapter) +@@ -2621,7 +2670,9 @@ static int ena_restore_device(struct ena netif_carrier_on(adapter->netdev); mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ)); @@ -483,7 +483,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 return rc; err_disable_msix: -@@ -2988,18 +3039,52 @@ static int ena_calc_io_queue_num(struct pci_dev *pdev, +@@ -2988,18 +3039,52 @@ static int ena_calc_io_queue_num(struct return io_queue_num; } @@ -542,7 +542,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 } static void ena_set_dev_offloads(struct ena_com_dev_get_features_ctx *feat, -@@ -3117,6 +3202,15 @@ static void ena_release_bars(struct ena_com_dev *ena_dev, struct pci_dev *pdev) +@@ -3117,6 +3202,15 @@ static void ena_release_bars(struct ena_ pci_release_selected_regions(pdev, release_bars); } @@ -558,7 +558,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 static int ena_calc_queue_size(struct pci_dev *pdev, struct ena_com_dev *ena_dev, u16 *max_tx_sgl_size, -@@ -3165,7 +3259,9 @@ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -3165,7 +3259,9 @@ static int ena_probe(struct pci_dev *pde static int version_printed; struct net_device *netdev; struct ena_adapter *adapter; @@ -568,7 +568,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 static int adapters_found; int io_queue_num, bars, rc; int queue_size; -@@ -3219,16 +3315,13 @@ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -3219,16 +3315,13 @@ static int ena_probe(struct pci_dev *pde goto err_free_region; } @@ -591,7 +591,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 } /* initial Tx interrupt delay, Assumes 1 usec granularity. -@@ -3243,8 +3336,10 @@ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -3243,8 +3336,10 @@ static int ena_probe(struct pci_dev *pde goto err_device_destroy; } @@ -604,7 +604,7 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 /* dev zeroed in init_etherdev */ netdev = alloc_etherdev_mq(sizeof(struct ena_adapter), io_queue_num); -@@ -3334,9 +3429,15 @@ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -3334,9 +3429,15 @@ static int ena_probe(struct pci_dev *pde timer_setup(&adapter->timer_service, ena_timer_service, 0); mod_timer(&adapter->timer_service, round_jiffies(jiffies + HZ)); @@ -622,10 +622,10 @@ index e732bd2ddd32..fcdfaf0ab8a7 100644 set_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags); -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index 7c7ae56c52cf..4fa7d2fda475 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -151,6 +151,9 @@ struct ena_tx_buffer { /* num of buffers used by this skb */ u32 num_of_bufs; @@ -653,6 +653,3 @@ index 7c7ae56c52cf..4fa7d2fda475 100644 int empty_rx_queue; } ____cacheline_aligned; --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch b/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch index 1c1cf4d38..59ea0566a 100644 --- a/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch +++ b/debian/patches/features/all/ena/0008-net-ena-explicit-casting-and-initialization-and-clea.patch @@ -12,11 +12,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 22 +++++------ 3 files changed, 36 insertions(+), 30 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c -index 5220c7578d6b..5c468b28723b 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_com.c -@@ -235,7 +235,7 @@ static struct ena_comp_ctx *__ena_com_submit_admin_cmd(struct ena_com_admin_queu +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c +@@ -235,7 +235,7 @@ static struct ena_comp_ctx *__ena_com_su tail_masked = admin_queue->sq.tail & queue_size_mask; /* In case of queue FULL */ @@ -25,7 +25,7 @@ index 5220c7578d6b..5c468b28723b 100644 if (cnt >= admin_queue->q_depth) { pr_debug("admin queue is full.\n"); admin_queue->stats.out_of_space++; -@@ -304,7 +304,7 @@ static struct ena_comp_ctx *ena_com_submit_admin_cmd(struct ena_com_admin_queue +@@ -304,7 +304,7 @@ static struct ena_comp_ctx *ena_com_subm struct ena_admin_acq_entry *comp, size_t comp_size_in_bytes) { @@ -34,7 +34,7 @@ index 5220c7578d6b..5c468b28723b 100644 struct ena_comp_ctx *comp_ctx; spin_lock_irqsave(&admin_queue->q_lock, flags); -@@ -332,7 +332,7 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev, +@@ -332,7 +332,7 @@ static int ena_com_init_io_sq(struct ena memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr)); @@ -43,7 +43,7 @@ index 5220c7578d6b..5c468b28723b 100644 io_sq->desc_entry_size = (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) ? sizeof(struct ena_eth_io_tx_desc) : -@@ -486,7 +486,7 @@ static void ena_com_handle_admin_completion(struct ena_com_admin_queue *admin_qu +@@ -486,7 +486,7 @@ static void ena_com_handle_admin_complet /* Go over all the completions */ while ((READ_ONCE(cqe->acq_common_descriptor.flags) & @@ -52,7 +52,7 @@ index 5220c7578d6b..5c468b28723b 100644 /* Do not read the rest of the completion entry before the * phase bit was validated */ -@@ -537,7 +537,8 @@ static int ena_com_comp_status_to_errno(u8 comp_status) +@@ -537,7 +537,8 @@ static int ena_com_comp_status_to_errno( static int ena_com_wait_and_process_admin_cq_polling(struct ena_comp_ctx *comp_ctx, struct ena_com_admin_queue *admin_queue) { @@ -62,7 +62,7 @@ index 5220c7578d6b..5c468b28723b 100644 int ret; timeout = jiffies + usecs_to_jiffies(admin_queue->completion_timeout); -@@ -736,7 +737,7 @@ static int ena_com_config_llq_info(struct ena_com_dev *ena_dev, +@@ -736,7 +737,7 @@ static int ena_com_config_llq_info(struc static int ena_com_wait_and_process_admin_cq_interrupts(struct ena_comp_ctx *comp_ctx, struct ena_com_admin_queue *admin_queue) { @@ -71,7 +71,7 @@ index 5220c7578d6b..5c468b28723b 100644 int ret; wait_for_completion_timeout(&comp_ctx->wait_event, -@@ -782,7 +783,7 @@ static u32 ena_com_reg_bar_read32(struct ena_com_dev *ena_dev, u16 offset) +@@ -782,7 +783,7 @@ static u32 ena_com_reg_bar_read32(struct volatile struct ena_admin_ena_mmio_req_read_less_resp *read_resp = mmio_read->read_resp; u32 mmio_read_reg, ret, i; @@ -80,7 +80,7 @@ index 5220c7578d6b..5c468b28723b 100644 u32 timeout = mmio_read->reg_read_to; might_sleep(); -@@ -1426,7 +1427,7 @@ void ena_com_abort_admin_commands(struct ena_com_dev *ena_dev) +@@ -1426,7 +1427,7 @@ void ena_com_abort_admin_commands(struct void ena_com_wait_for_abort_completion(struct ena_com_dev *ena_dev) { struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue; @@ -89,7 +89,7 @@ index 5220c7578d6b..5c468b28723b 100644 spin_lock_irqsave(&admin_queue->q_lock, flags); while (atomic_read(&admin_queue->outstanding_cmds) != 0) { -@@ -1470,7 +1471,7 @@ bool ena_com_get_admin_running_state(struct ena_com_dev *ena_dev) +@@ -1470,7 +1471,7 @@ bool ena_com_get_admin_running_state(str void ena_com_set_admin_running_state(struct ena_com_dev *ena_dev, bool state) { struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue; @@ -98,7 +98,7 @@ index 5220c7578d6b..5c468b28723b 100644 spin_lock_irqsave(&admin_queue->q_lock, flags); ena_dev->admin_queue.running_state = state; -@@ -1504,7 +1505,7 @@ int ena_com_set_aenq_config(struct ena_com_dev *ena_dev, u32 groups_flag) +@@ -1504,7 +1505,7 @@ int ena_com_set_aenq_config(struct ena_c } if ((get_resp.u.aenq.supported_groups & groups_flag) != groups_flag) { @@ -107,7 +107,7 @@ index 5220c7578d6b..5c468b28723b 100644 get_resp.u.aenq.supported_groups, groups_flag); return -EOPNOTSUPP; } -@@ -1652,7 +1653,7 @@ int ena_com_mmio_reg_read_request_init(struct ena_com_dev *ena_dev) +@@ -1652,7 +1653,7 @@ int ena_com_mmio_reg_read_request_init(s sizeof(*mmio_read->read_resp), &mmio_read->read_resp_dma_addr, GFP_KERNEL); if (unlikely(!mmio_read->read_resp)) @@ -116,7 +116,7 @@ index 5220c7578d6b..5c468b28723b 100644 ena_com_mmio_reg_read_request_write_dev_addr(ena_dev); -@@ -1661,6 +1662,10 @@ int ena_com_mmio_reg_read_request_init(struct ena_com_dev *ena_dev) +@@ -1661,6 +1662,10 @@ int ena_com_mmio_reg_read_request_init(s mmio_read->readless_supported = true; return 0; @@ -127,7 +127,7 @@ index 5220c7578d6b..5c468b28723b 100644 } void ena_com_set_mmio_read_mode(struct ena_com_dev *ena_dev, bool readless_supported) -@@ -1961,6 +1966,7 @@ void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data) +@@ -1961,6 +1966,7 @@ void ena_com_aenq_intr_handler(struct en struct ena_admin_aenq_entry *aenq_e; struct ena_admin_aenq_common_desc *aenq_common; struct ena_com_aenq *aenq = &dev->aenq; @@ -135,7 +135,7 @@ index 5220c7578d6b..5c468b28723b 100644 ena_aenq_handler handler_cb; u16 masked_head, processed = 0; u8 phase; -@@ -1978,10 +1984,11 @@ void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data) +@@ -1978,10 +1984,11 @@ void ena_com_aenq_intr_handler(struct en */ dma_rmb(); @@ -150,7 +150,7 @@ index 5220c7578d6b..5c468b28723b 100644 /* Handle specific event*/ handler_cb = ena_com_get_specific_aenq_cb(dev, -@@ -2623,8 +2630,8 @@ int ena_com_allocate_host_info(struct ena_com_dev *ena_dev) +@@ -2623,8 +2630,8 @@ int ena_com_allocate_host_info(struct en if (unlikely(!host_attr->host_info)) return -ENOMEM; @@ -161,11 +161,11 @@ index 5220c7578d6b..5c468b28723b 100644 (ENA_COMMON_SPEC_VERSION_MINOR)); return 0; -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index 35b0ce5db24b..e345220b4d9a 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -2604,15 +2604,14 @@ static void ena_destroy_device(struct ena_adapter *adapter, bool graceful) +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -2604,15 +2604,14 @@ static void ena_destroy_device(struct en dev_up = test_bit(ENA_FLAG_DEV_UP, &adapter->flags); adapter->dev_up_before_reset = dev_up; @@ -183,10 +183,10 @@ index 35b0ce5db24b..e345220b4d9a 100644 * In case the reset flag is set and the device is up, ena_down() * already perform the reset, so it can be skipped. */ -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index 2d62e2c7fed7..a16baf0124d5 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -61,6 +61,17 @@ #define ENA_ADMIN_MSIX_VEC 1 #define ENA_MAX_MSIX_VEC(io_queues) (ENA_ADMIN_MSIX_VEC + (io_queues)) @@ -205,7 +205,7 @@ index 2d62e2c7fed7..a16baf0124d5 100644 #define ENA_MIN_MSIX_VEC 2 #define ENA_REG_BAR 0 -@@ -362,15 +373,4 @@ void ena_dump_stats_to_buf(struct ena_adapter *adapter, u8 *buf); +@@ -362,15 +373,4 @@ void ena_dump_stats_to_buf(struct ena_ad int ena_get_sset_count(struct net_device *netdev, int sset); @@ -221,6 +221,3 @@ index 2d62e2c7fed7..a16baf0124d5 100644 -#endif - #endif /* !(ENA_H) */ --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch b/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch index f5352214f..3eaae9950 100644 --- a/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch +++ b/debian/patches/features/all/ena/0009-net-ena-limit-refill-Rx-threshold-to-256-to-avoid-la.patch @@ -19,11 +19,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index e345220b4d9a..c4c33b174e17 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -1122,7 +1122,9 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi, +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -1122,7 +1122,9 @@ static int ena_clean_rx_irq(struct ena_r rx_ring->next_to_clean = next_to_clean; refill_required = ena_com_free_desc(rx_ring->ena_com_io_sq); @@ -34,10 +34,10 @@ index e345220b4d9a..c4c33b174e17 100644 /* Optimization, try to batch new rx buffers */ if (refill_required > refill_threshold) { -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index a16baf0124d5..0cf35ae77884 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -106,10 +106,11 @@ */ #define ENA_TX_POLL_BUDGET_DIVIDER 4 @@ -52,6 +52,3 @@ index a16baf0124d5..0cf35ae77884 100644 /* Number of queues to check for missing queues per timer service */ #define ENA_MONITORED_TX_QUEUES 4 --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch b/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch index b8a92348b..6e493b217 100644 --- a/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch +++ b/debian/patches/features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch @@ -13,10 +13,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index 0cf35ae77884..d241dfc542ca 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -81,7 +81,7 @@ #define ENA_DEFAULT_RING_SIZE (1024) @@ -26,6 +26,3 @@ index 0cf35ae77884..d241dfc542ca 100644 /* limit the buffer size to 600 bytes to handle MTU changes from very * small to very large, in which case the number of buffers per packet --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch b/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch index defd3dab8..ac5ab95e5 100644 --- a/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch +++ b/debian/patches/features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch @@ -14,11 +14,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c -index 5c468b28723b..420cede41ca4 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.c -+++ b/drivers/net/ethernet/amazon/ena/ena_com.c -@@ -1701,8 +1701,7 @@ void ena_com_mmio_reg_read_request_write_dev_addr(struct ena_com_dev *ena_dev) +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.c +@@ -1701,8 +1701,7 @@ void ena_com_mmio_reg_read_request_write } int ena_com_admin_init(struct ena_com_dev *ena_dev, @@ -28,7 +28,7 @@ index 5c468b28723b..420cede41ca4 100644 { struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue; u32 aq_caps, acq_caps, dev_sts, addr_low, addr_high; -@@ -1728,8 +1727,7 @@ int ena_com_admin_init(struct ena_com_dev *ena_dev, +@@ -1728,8 +1727,7 @@ int ena_com_admin_init(struct ena_com_de atomic_set(&admin_queue->outstanding_cmds, 0); @@ -38,11 +38,11 @@ index 5c468b28723b..420cede41ca4 100644 ret = ena_com_init_comp_ctxt(admin_queue); if (ret) -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h -index 25af8d025919..ae8b4857fce3 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_com.h -@@ -436,8 +436,6 @@ void ena_com_mmio_reg_read_request_destroy(struct ena_com_dev *ena_dev); +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h +@@ -436,8 +436,6 @@ void ena_com_mmio_reg_read_request_destr /* ena_com_admin_init - Init the admin and the async queues * @ena_dev: ENA communication layer struct * @aenq_handlers: Those handlers to be called upon event. @@ -51,7 +51,7 @@ index 25af8d025919..ae8b4857fce3 100644 * * Initialize the admin submission and completion queues. * Initialize the asynchronous events notification queues. -@@ -445,8 +443,7 @@ void ena_com_mmio_reg_read_request_destroy(struct ena_com_dev *ena_dev); +@@ -445,8 +443,7 @@ void ena_com_mmio_reg_read_request_destr * @return - 0 on success, negative value on failure. */ int ena_com_admin_init(struct ena_com_dev *ena_dev, @@ -61,11 +61,11 @@ index 25af8d025919..ae8b4857fce3 100644 /* ena_com_admin_destroy - Destroy the admin and the async events queues. * @ena_dev: ENA communication layer struct -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index c4c33b174e17..284a0a612131 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -2508,7 +2508,7 @@ static int ena_device_init(struct ena_com_dev *ena_dev, struct pci_dev *pdev, +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -2508,7 +2508,7 @@ static int ena_device_init(struct ena_co } /* ENA admin level init */ @@ -74,6 +74,3 @@ index c4c33b174e17..284a0a612131 100644 if (rc) { dev_err(dev, "Can not initialize ena admin queue with device\n"); --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch b/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch index d8f2af9c4..ce4d8d8e0 100644 --- a/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch +++ b/debian/patches/features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch @@ -9,10 +9,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index d241dfc542ca..521873642339 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -43,9 +43,9 @@ #include "ena_com.h" #include "ena_eth_com.h" @@ -26,6 +26,3 @@ index d241dfc542ca..521873642339 100644 #define DRV_MODULE_NAME "ena" #ifndef DRV_MODULE_VERSION --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch b/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch index 4f922f0b9..2e0ad4279 100644 --- a/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch +++ b/debian/patches/features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch @@ -12,10 +12,10 @@ Signed-off-by: David S. Miller .../net/ethernet/amazon/ena/ena_regs_defs.h | 206 +++++------ 3 files changed, 338 insertions(+), 425 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h -index b439ec1b3edb..9f80b73f90b1 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_admin_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_admin_defs.h @@ -32,119 +32,81 @@ #ifndef _ENA_ADMIN_H_ #define _ENA_ADMIN_H_ @@ -237,7 +237,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 }; struct ena_admin_feature_rss_flow_hash_control { -@@ -692,50 +652,35 @@ struct ena_admin_feature_rss_flow_hash_function { +@@ -692,50 +652,35 @@ struct ena_admin_feature_rss_flow_hash_f /* RSS flow hash protocols */ enum ena_admin_flow_hash_proto { @@ -305,7 +305,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 }; struct ena_admin_proto_input { -@@ -774,19 +719,13 @@ struct ena_admin_feature_rss_flow_hash_input { +@@ -774,19 +719,13 @@ struct ena_admin_feature_rss_flow_hash_i }; enum ena_admin_os_type { @@ -367,7 +367,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 }; struct ena_admin_aenq_entry { -@@ -1034,27 +966,27 @@ struct ena_admin_ena_mmio_req_read_less_resp { +@@ -1034,27 +966,27 @@ struct ena_admin_ena_mmio_req_read_less_ }; /* aq_common_desc */ @@ -410,7 +410,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 #define ENA_ADMIN_AQ_CREATE_SQ_CMD_IS_PHYSICALLY_CONTIGUOUS_MASK BIT(0) /* aq_create_cq_cmd */ -@@ -1063,12 +995,12 @@ struct ena_admin_ena_mmio_req_read_less_resp { +@@ -1063,12 +995,12 @@ struct ena_admin_ena_mmio_req_read_less_ #define ENA_ADMIN_AQ_CREATE_CQ_CMD_CQ_ENTRY_SIZE_WORDS_MASK GENMASK(4, 0) /* get_set_feature_common_desc */ @@ -427,7 +427,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 /* feature_offload_desc */ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L3_CSUM_IPV4_MASK BIT(0) -@@ -1080,19 +1012,19 @@ struct ena_admin_ena_mmio_req_read_less_resp { +@@ -1080,19 +1012,19 @@ struct ena_admin_ena_mmio_req_read_less_ #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_PART_MASK BIT(3) #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_FULL_SHIFT 4 #define ENA_ADMIN_FEATURE_OFFLOAD_DESC_TX_L4_IPV6_CSUM_FULL_MASK BIT(4) @@ -455,7 +455,7 @@ index b439ec1b3edb..9f80b73f90b1 100644 /* feature_rss_flow_hash_function */ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_FUNCTION_FUNCS_MASK GENMASK(7, 0) -@@ -1100,32 +1032,32 @@ struct ena_admin_ena_mmio_req_read_less_resp { +@@ -1100,32 +1032,32 @@ struct ena_admin_ena_mmio_req_read_less_ /* feature_rss_flow_hash_input */ #define ENA_ADMIN_FEATURE_RSS_FLOW_HASH_INPUT_L3_SORT_SHIFT 1 @@ -504,10 +504,10 @@ index b439ec1b3edb..9f80b73f90b1 100644 +#define ENA_ADMIN_AENQ_LINK_CHANGE_DESC_LINK_STATUS_MASK BIT(0) #endif /*_ENA_ADMIN_H_ */ -diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h b/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h -index 4c5ccaa13c42..00e0f056a741 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h @@ -33,25 +33,18 @@ #define _ENA_ETH_IO_H_ @@ -759,10 +759,10 @@ index 4c5ccaa13c42..00e0f056a741 100644 +#define ENA_ETH_IO_NUMA_NODE_CFG_REG_ENABLED_MASK BIT(31) #endif /*_ENA_ETH_IO_H_ */ -diff --git a/drivers/net/ethernet/amazon/ena/ena_regs_defs.h b/drivers/net/ethernet/amazon/ena/ena_regs_defs.h -index 48ca97fbe7bc..04fcafcc059c 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_regs_defs.h -+++ b/drivers/net/ethernet/amazon/ena/ena_regs_defs.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_regs_defs.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_regs_defs.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_regs_defs.h @@ -33,137 +33,125 @@ #define _ENA_REGS_H_ @@ -998,6 +998,3 @@ index 48ca97fbe7bc..04fcafcc059c 100644 +#define ENA_REGS_RSS_IND_ENTRY_UPDATE_CQ_IDX_MASK 0xffff0000 #endif /*_ENA_REGS_H_ */ --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0014-net-ena-Fix-Kconfig-dependency-on-X86.patch b/debian/patches/features/all/ena/0014-net-ena-Fix-Kconfig-dependency-on-X86.patch index 2e01e665e..b8d22ae30 100644 --- a/debian/patches/features/all/ena/0014-net-ena-Fix-Kconfig-dependency-on-X86.patch +++ b/debian/patches/features/all/ena/0014-net-ena-Fix-Kconfig-dependency-on-X86.patch @@ -14,10 +14,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/amazon/Kconfig b/drivers/net/ethernet/amazon/Kconfig -index 99b30353541a..9e87d7b8360f 100644 ---- a/drivers/net/ethernet/amazon/Kconfig -+++ b/drivers/net/ethernet/amazon/Kconfig +Index: linux/drivers/net/ethernet/amazon/Kconfig +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/Kconfig ++++ linux/drivers/net/ethernet/amazon/Kconfig @@ -17,7 +17,7 @@ if NET_VENDOR_AMAZON config ENA_ETHERNET @@ -27,6 +27,3 @@ index 99b30353541a..9e87d7b8360f 100644 ---help--- This driver supports Elastic Network Adapter (ENA)" --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch b/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch index 8484fc977..6161a87ba 100644 --- a/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch +++ b/debian/patches/features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch @@ -11,11 +11,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index 284a0a612131..18956e7604a3 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -3022,20 +3022,10 @@ static int ena_calc_io_queue_num(struct pci_dev *pdev, +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -3022,20 +3022,10 @@ static int ena_calc_io_queue_num(struct int io_sq_num, io_queue_num; /* In case of LLQ use the llq number in the get feature cmd */ @@ -39,7 +39,7 @@ index 284a0a612131..18956e7604a3 100644 io_queue_num = min_t(int, num_online_cpus(), ENA_MAX_NUM_IO_QUEUES); io_queue_num = min_t(int, io_queue_num, io_sq_num); -@@ -3238,7 +3228,7 @@ static int ena_calc_queue_size(struct pci_dev *pdev, +@@ -3238,7 +3228,7 @@ static int ena_calc_queue_size(struct pc if (ena_dev->tx_mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) queue_size = min_t(u32, queue_size, @@ -48,6 +48,3 @@ index 284a0a612131..18956e7604a3 100644 queue_size = rounddown_pow_of_two(queue_size); --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch b/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch index a899dde0f..b37c7a169 100644 --- a/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch +++ b/debian/patches/features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch @@ -17,10 +17,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_com.h | 1 + 1 file changed, 1 insertion(+) -diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h -index ae8b4857fce3..078d6f2b4f39 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_com.h -+++ b/drivers/net/ethernet/amazon/ena/ena_com.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_com.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_com.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_com.h @@ -38,6 +38,7 @@ #include #include @@ -29,6 +29,3 @@ index ae8b4857fce3..078d6f2b4f39 100644 #include #include #include --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch b/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch index b93e5ca23..446f3d61d 100644 --- a/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch +++ b/debian/patches/features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch @@ -33,11 +33,11 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.c | 21 ++++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c -index 1d3cead0977e..a70bb1bb90e7 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.c -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c -@@ -1848,6 +1848,8 @@ static void ena_down(struct ena_adapter *adapter) +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -1848,6 +1848,8 @@ static void ena_down(struct ena_adapter rc = ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason); if (rc) dev_err(&adapter->pdev->dev, "Device reset failed\n"); @@ -46,7 +46,7 @@ index 1d3cead0977e..a70bb1bb90e7 100644 } ena_destroy_all_io_queues(adapter); -@@ -1914,6 +1916,9 @@ static int ena_close(struct net_device *netdev) +@@ -1914,6 +1916,9 @@ static int ena_close(struct net_device * netif_dbg(adapter, ifdown, netdev, "%s\n", __func__); @@ -56,7 +56,7 @@ index 1d3cead0977e..a70bb1bb90e7 100644 if (test_bit(ENA_FLAG_DEV_UP, &adapter->flags)) ena_down(adapter); -@@ -2613,9 +2618,7 @@ static void ena_destroy_device(struct ena_adapter *adapter, bool graceful) +@@ -2613,9 +2618,7 @@ static void ena_destroy_device(struct en ena_down(adapter); /* Stop the device from sending AENQ events (in case reset flag is set @@ -67,7 +67,7 @@ index 1d3cead0977e..a70bb1bb90e7 100644 */ if (!(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags) && dev_up)) ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason); -@@ -3452,6 +3455,8 @@ static int ena_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -3452,6 +3455,8 @@ err_rss: ena_com_rss_destroy(ena_dev); err_free_msix: ena_com_dev_reset(ena_dev, ENA_REGS_RESET_INIT_ERR); @@ -76,7 +76,7 @@ index 1d3cead0977e..a70bb1bb90e7 100644 ena_free_mgmnt_irq(adapter); ena_disable_msix(adapter); err_worker_destroy: -@@ -3498,18 +3503,12 @@ static void ena_remove(struct pci_dev *pdev) +@@ -3498,18 +3503,12 @@ static void ena_remove(struct pci_dev *p cancel_work_sync(&adapter->reset_task); @@ -97,6 +97,3 @@ index 1d3cead0977e..a70bb1bb90e7 100644 free_netdev(netdev); ena_com_rss_destroy(ena_dev); --- -2.19.2 - diff --git a/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch b/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch index 297cf33f7..68194bdc9 100644 --- a/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch +++ b/debian/patches/features/all/ena/0018-net-ena-update-driver-version-from-2.0.1-to-2.0.2.patch @@ -11,10 +11,10 @@ Signed-off-by: David S. Miller drivers/net/ethernet/amazon/ena/ena_netdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h -index 521873642339..dc8b6173d8d8 100644 ---- a/drivers/net/ethernet/amazon/ena/ena_netdev.h -+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h +Index: linux/drivers/net/ethernet/amazon/ena/ena_netdev.h +=================================================================== +--- linux.orig/drivers/net/ethernet/amazon/ena/ena_netdev.h ++++ linux/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -45,7 +45,7 @@ #define DRV_MODULE_VER_MAJOR 2 @@ -24,6 +24,3 @@ index 521873642339..dc8b6173d8d8 100644 #define DRV_MODULE_NAME "ena" #ifndef DRV_MODULE_VERSION --- -2.19.2 - diff --git a/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch b/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch index 271291015..9a8cd7c82 100644 --- a/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch +++ b/debian/patches/features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch @@ -21,11 +21,11 @@ Acked-by: James Morris 5 files changed, 96 insertions(+) create mode 100644 security/lock_down.c -diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 0ad4c3044cf9..362da2e4bf53 100644 ---- a/include/linux/kernel.h -+++ b/include/linux/kernel.h -@@ -287,6 +287,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err) +Index: linux/include/linux/kernel.h +=================================================================== +--- linux.orig/include/linux/kernel.h ++++ linux/include/linux/kernel.h +@@ -341,6 +341,23 @@ static inline void refcount_error_report { } #endif @@ -49,11 +49,11 @@ index 0ad4c3044cf9..362da2e4bf53 100644 /* Internal, do not use. */ int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res); int __must_check _kstrtol(const char *s, unsigned int base, long *res); -diff --git a/include/linux/security.h b/include/linux/security.h -index ce6265960d6c..310775476b68 100644 ---- a/include/linux/security.h -+++ b/include/linux/security.h -@@ -1753,5 +1753,13 @@ static inline void free_secdata(void *secdata) +Index: linux/include/linux/security.h +=================================================================== +--- linux.orig/include/linux/security.h ++++ linux/include/linux/security.h +@@ -1843,5 +1843,13 @@ static inline void free_secdata(void *se { } #endif /* CONFIG_SECURITY */ @@ -67,11 +67,11 @@ index ce6265960d6c..310775476b68 100644 + #endif /* ! __LINUX_SECURITY_H */ -diff --git a/security/Kconfig b/security/Kconfig -index e8e449444e65..8e01fd59ae7e 100644 ---- a/security/Kconfig -+++ b/security/Kconfig -@@ -205,6 +205,14 @@ config STATIC_USERMODEHELPER_PATH +Index: linux/security/Kconfig +=================================================================== +--- linux.orig/security/Kconfig ++++ linux/security/Kconfig +@@ -239,6 +239,14 @@ config STATIC_USERMODEHELPER_PATH If you wish for all usermode helper programs to be disabled, specify an empty string here (i.e. ""). @@ -86,22 +86,21 @@ index e8e449444e65..8e01fd59ae7e 100644 source security/selinux/Kconfig source security/smack/Kconfig source security/tomoyo/Kconfig -diff --git a/security/Makefile b/security/Makefile -index f2d71cdb8e19..8c4a43e3d4e0 100644 ---- a/security/Makefile -+++ b/security/Makefile -@@ -29,3 +29,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o +Index: linux/security/Makefile +=================================================================== +--- linux.orig/security/Makefile ++++ linux/security/Makefile +@@ -30,3 +30,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_c # Object integrity file lists subdir-$(CONFIG_INTEGRITY) += integrity obj-$(CONFIG_INTEGRITY) += integrity/ + +# Allow the kernel to be locked down +obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o -diff --git a/security/lock_down.c b/security/lock_down.c -new file mode 100644 -index 000000000000..d8595c0e6673 +Index: linux/security/lock_down.c +=================================================================== --- /dev/null -+++ b/security/lock_down.c ++++ linux/security/lock_down.c @@ -0,0 +1,60 @@ +/* Lock down the kernel + * diff --git a/debian/patches/features/all/lockdown/0002-Add-a-SysRq-option-to-lift-kernel-lockdown.patch b/debian/patches/features/all/lockdown/0002-Add-a-SysRq-option-to-lift-kernel-lockdown.patch index bcaa67678..faab06bcb 100644 --- a/debian/patches/features/all/lockdown/0002-Add-a-SysRq-option-to-lift-kernel-lockdown.patch +++ b/debian/patches/features/all/lockdown/0002-Add-a-SysRq-option-to-lift-kernel-lockdown.patch @@ -26,8 +26,10 @@ cc: x86@kernel.org security/lock_down.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 86 insertions(+), 8 deletions(-) ---- a/arch/x86/include/asm/setup.h -+++ b/arch/x86/include/asm/setup.h +Index: linux/arch/x86/include/asm/setup.h +=================================================================== +--- linux.orig/arch/x86/include/asm/setup.h ++++ linux/arch/x86/include/asm/setup.h @@ -9,6 +9,8 @@ #include #include @@ -37,9 +39,11 @@ cc: x86@kernel.org #ifdef __i386__ #include ---- a/drivers/input/misc/uinput.c -+++ b/drivers/input/misc/uinput.c -@@ -362,6 +362,7 @@ static int uinput_create_device(struct u +Index: linux/drivers/input/misc/uinput.c +=================================================================== +--- linux.orig/drivers/input/misc/uinput.c ++++ linux/drivers/input/misc/uinput.c +@@ -366,6 +366,7 @@ static int uinput_create_device(struct u dev->flush = uinput_dev_flush; } @@ -47,8 +51,10 @@ cc: x86@kernel.org dev->event = uinput_dev_event; input_set_drvdata(udev->dev, udev); ---- a/drivers/tty/sysrq.c -+++ b/drivers/tty/sysrq.c +Index: linux/drivers/tty/sysrq.c +=================================================================== +--- linux.orig/drivers/tty/sysrq.c ++++ linux/drivers/tty/sysrq.c @@ -487,6 +487,7 @@ static struct sysrq_key_op *sysrq_key_ta /* x: May be registered on mips for TLB dump */ /* x: May be registered on ppc/powerpc for xmon */ @@ -122,8 +128,10 @@ cc: x86@kernel.org } return count; ---- a/include/linux/input.h -+++ b/include/linux/input.h +Index: linux/include/linux/input.h +=================================================================== +--- linux.orig/include/linux/input.h ++++ linux/include/linux/input.h @@ -42,6 +42,7 @@ struct input_value { * @phys: physical path to the device in the system hierarchy * @uniq: unique identification code for the device (if device has it) @@ -150,8 +158,10 @@ cc: x86@kernel.org /* * Verify that we are in sync with input_device_id mod_devicetable.h #defines */ ---- a/include/linux/sysrq.h -+++ b/include/linux/sysrq.h +Index: linux/include/linux/sysrq.h +=================================================================== +--- linux.orig/include/linux/sysrq.h ++++ linux/include/linux/sysrq.h @@ -29,6 +29,8 @@ #define SYSRQ_ENABLE_BOOT 0x0080 #define SYSRQ_ENABLE_RTNICE 0x0100 @@ -175,9 +185,11 @@ cc: x86@kernel.org int register_sysrq_key(int key, struct sysrq_key_op *op); int unregister_sysrq_key(int key, struct sysrq_key_op *op); struct sysrq_key_op *__sysrq_get_key_op(int key); ---- a/kernel/debug/kdb/kdb_main.c -+++ b/kernel/debug/kdb/kdb_main.c -@@ -1970,7 +1970,7 @@ static int kdb_sr(int argc, const char * +Index: linux/kernel/debug/kdb/kdb_main.c +=================================================================== +--- linux.orig/kernel/debug/kdb/kdb_main.c ++++ linux/kernel/debug/kdb/kdb_main.c +@@ -1996,7 +1996,7 @@ static int kdb_sr(int argc, const char * return KDB_ARGCOUNT; kdb_trap_printk++; @@ -186,9 +198,11 @@ cc: x86@kernel.org kdb_trap_printk--; return 0; ---- a/security/Kconfig -+++ b/security/Kconfig -@@ -222,6 +222,16 @@ config LOCK_DOWN_KERNEL +Index: linux/security/Kconfig +=================================================================== +--- linux.orig/security/Kconfig ++++ linux/security/Kconfig +@@ -247,6 +247,16 @@ config LOCK_DOWN_KERNEL turns off various features that might otherwise allow access to the kernel image (eg. setting MSR registers). @@ -205,8 +219,10 @@ cc: x86@kernel.org source security/selinux/Kconfig source security/smack/Kconfig source security/tomoyo/Kconfig ---- a/security/lock_down.c -+++ b/security/lock_down.c +Index: linux/security/lock_down.c +=================================================================== +--- linux.orig/security/lock_down.c ++++ linux/security/lock_down.c @@ -11,8 +11,14 @@ #include diff --git a/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch b/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch index 0a69368da..0ab99ba64 100644 --- a/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch +++ b/debian/patches/features/all/lockdown/0003-ima-require-secure_boot-rules-in-lockdown-mode.patch @@ -16,8 +16,10 @@ Signed-off-by: David Howells security/integrity/ima/ima_policy.c | 39 +++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) ---- a/security/integrity/ima/ima_policy.c -+++ b/security/integrity/ima/ima_policy.c +Index: linux/security/integrity/ima/ima_policy.c +=================================================================== +--- linux.orig/security/integrity/ima/ima_policy.c ++++ linux/security/integrity/ima/ima_policy.c @@ -481,14 +481,21 @@ static int ima_appraise_flag(enum ima_ho */ void __init ima_init_policy(void) diff --git a/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch b/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch index 538ad6357..0ab5e258c 100644 --- a/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch +++ b/debian/patches/features/all/lockdown/0004-Enforce-module-signatures-if-the-kernel-is-locked-do.patch @@ -16,8 +16,10 @@ Reviewed-by: James Morris kernel/module.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) ---- a/kernel/module.c -+++ b/kernel/module.c +Index: linux/kernel/module.c +=================================================================== +--- linux.orig/kernel/module.c ++++ linux/kernel/module.c @@ -64,6 +64,7 @@ #include #include @@ -26,7 +28,7 @@ Reviewed-by: James Morris #include #include "module-internal.h" -@@ -2761,7 +2762,8 @@ static inline void kmemleak_load_module( +@@ -2784,7 +2785,8 @@ static inline void kmemleak_load_module( #endif #ifdef CONFIG_MODULE_SIG @@ -36,7 +38,7 @@ Reviewed-by: James Morris { int err = -ENOKEY; const unsigned long markerlen = sizeof(MODULE_SIG_STRING) - 1; -@@ -2785,13 +2787,16 @@ static int module_sig_check(struct load_ +@@ -2808,13 +2810,16 @@ static int module_sig_check(struct load_ } /* Not having a signature is only an error if we're strict. */ @@ -55,7 +57,7 @@ Reviewed-by: James Morris { return 0; } -@@ -3640,7 +3645,7 @@ static int unknown_module_param_cb(char +@@ -3662,7 +3667,7 @@ static int unknown_module_param_cb(char /* Allocate and load the module: note that size of section 0 is always zero, and we rely on this for optional sections. */ static int load_module(struct load_info *info, const char __user *uargs, @@ -64,7 +66,7 @@ Reviewed-by: James Morris { struct module *mod; long err = 0; -@@ -3659,7 +3664,7 @@ static int load_module(struct load_info +@@ -3681,7 +3686,7 @@ static int load_module(struct load_info goto free_copy; } @@ -73,7 +75,7 @@ Reviewed-by: James Morris if (err) goto free_copy; -@@ -3854,7 +3859,7 @@ SYSCALL_DEFINE3(init_module, void __user +@@ -3876,7 +3881,7 @@ SYSCALL_DEFINE3(init_module, void __user if (err) return err; @@ -82,7 +84,7 @@ Reviewed-by: James Morris } SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags) -@@ -3881,7 +3886,7 @@ SYSCALL_DEFINE3(finit_module, int, fd, c +@@ -3903,7 +3908,7 @@ SYSCALL_DEFINE3(finit_module, int, fd, c info.hdr = hdr; info.len = size; diff --git a/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch b/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch index 436885d77..625f8f763 100644 --- a/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch +++ b/debian/patches/features/all/lockdown/0005-Restrict-dev-mem-kmem-port-when-the-kernel-is-locked.patch @@ -20,11 +20,11 @@ Reviewed-by: "Lee, Chun-Yi" drivers/char/mem.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index 593a8818aca9..0ce5ac0a5c6b 100644 ---- a/drivers/char/mem.c -+++ b/drivers/char/mem.c -@@ -762,6 +762,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig) +Index: linux/drivers/char/mem.c +=================================================================== +--- linux.orig/drivers/char/mem.c ++++ linux/drivers/char/mem.c +@@ -807,6 +807,8 @@ static loff_t memory_lseek(struct file * static int open_port(struct inode *inode, struct file *filp) { diff --git a/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch b/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch index 06668c0d1..522387d9a 100644 --- a/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch +++ b/debian/patches/features/all/lockdown/0006-kexec-Disable-at-runtime-if-the-kernel-is-locked-dow.patch @@ -22,8 +22,10 @@ cc: kexec@lists.infradead.org kernel/kexec.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/kernel/kexec.c -+++ b/kernel/kexec.c +Index: linux/kernel/kexec.c +=================================================================== +--- linux.orig/kernel/kexec.c ++++ linux/kernel/kexec.c @@ -208,6 +208,13 @@ static inline int kexec_load_check(unsig return result; diff --git a/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch b/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch index d93a737db..2024c04a6 100644 --- a/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch +++ b/debian/patches/features/all/lockdown/0007-Copy-secure_boot-flag-in-boot-params-across-kexec-re.patch @@ -22,11 +22,11 @@ cc: kexec@lists.infradead.org arch/x86/kernel/kexec-bzimage64.c | 1 + 1 file changed, 1 insertion(+) -diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c -index fb095ba0c02f..7d0fac5bcbbe 100644 ---- a/arch/x86/kernel/kexec-bzimage64.c -+++ b/arch/x86/kernel/kexec-bzimage64.c -@@ -179,6 +179,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr, +Index: linux/arch/x86/kernel/kexec-bzimage64.c +=================================================================== +--- linux.orig/arch/x86/kernel/kexec-bzimage64.c ++++ linux/arch/x86/kernel/kexec-bzimage64.c +@@ -182,6 +182,7 @@ setup_efi_state(struct boot_params *para if (efi_enabled(EFI_OLD_MEMMAP)) return 0; diff --git a/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch b/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch index 130e4488d..056936427 100644 --- a/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch +++ b/debian/patches/features/all/lockdown/0008-kexec_file-Restrict-at-runtime-if-the-kernel-is-lock.patch @@ -19,11 +19,11 @@ cc: kexec@lists.infradead.org kernel/kexec_file.c | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c -index 9f48f4412297..3ba28fc3fab0 100644 ---- a/kernel/kexec_file.c -+++ b/kernel/kexec_file.c -@@ -255,6 +255,14 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, +Index: linux/kernel/kexec_file.c +=================================================================== +--- linux.orig/kernel/kexec_file.c ++++ linux/kernel/kexec_file.c +@@ -328,6 +328,14 @@ SYSCALL_DEFINE5(kexec_file_load, int, ke if (!capable(CAP_SYS_BOOT) || kexec_load_disabled) return -EPERM; diff --git a/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch b/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch index 80f5be580..56060f80a 100644 --- a/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch +++ b/debian/patches/features/all/lockdown/0009-hibernate-Disable-when-the-kernel-is-locked-down.patch @@ -16,11 +16,11 @@ cc: linux-pm@vger.kernel.org kernel/power/hibernate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c -index a5c36e9c56a6..f2eafefeec50 100644 ---- a/kernel/power/hibernate.c -+++ b/kernel/power/hibernate.c -@@ -70,7 +70,7 @@ static const struct platform_hibernation_ops *hibernation_ops; +Index: linux/kernel/power/hibernate.c +=================================================================== +--- linux.orig/kernel/power/hibernate.c ++++ linux/kernel/power/hibernate.c +@@ -70,7 +70,7 @@ static const struct platform_hibernation bool hibernation_available(void) { diff --git a/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch b/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch index 3d164554f..79b5f3461 100644 --- a/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch +++ b/debian/patches/features/all/lockdown/0010-uswsusp-Disable-when-the-kernel-is-locked-down.patch @@ -16,11 +16,11 @@ cc: linux-pm@vger.kernel.org kernel/power/user.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/kernel/power/user.c b/kernel/power/user.c -index 22df9f7ff672..678ade9decfe 100644 ---- a/kernel/power/user.c -+++ b/kernel/power/user.c -@@ -52,6 +52,9 @@ static int snapshot_open(struct inode *inode, struct file *filp) +Index: linux/kernel/power/user.c +=================================================================== +--- linux.orig/kernel/power/user.c ++++ linux/kernel/power/user.c +@@ -52,6 +52,9 @@ static int snapshot_open(struct inode *i if (!hibernation_available()) return -EPERM; diff --git a/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch b/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch index 39d493cbe..1f9186ab3 100644 --- a/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch +++ b/debian/patches/features/all/lockdown/0011-PCI-Lock-down-BAR-access-when-the-kernel-is-locked-d.patch @@ -20,9 +20,11 @@ cc: linux-pci@vger.kernel.org drivers/pci/syscall.c | 3 ++- 3 files changed, 19 insertions(+), 2 deletions(-) ---- a/drivers/pci/pci-sysfs.c -+++ b/drivers/pci/pci-sysfs.c -@@ -930,6 +930,9 @@ static ssize_t pci_write_config(struct f +Index: linux/drivers/pci/pci-sysfs.c +=================================================================== +--- linux.orig/drivers/pci/pci-sysfs.c ++++ linux/drivers/pci/pci-sysfs.c +@@ -905,6 +905,9 @@ static ssize_t pci_write_config(struct f loff_t init_off = off; u8 *data = (u8 *) buf; @@ -32,7 +34,7 @@ cc: linux-pci@vger.kernel.org if (off > dev->cfg_size) return 0; if (off + count > dev->cfg_size) { -@@ -1224,6 +1227,9 @@ static int pci_mmap_resource(struct kobj +@@ -1167,6 +1170,9 @@ static int pci_mmap_resource(struct kobj enum pci_mmap_state mmap_type; struct resource *res = &pdev->resource[bar]; @@ -42,7 +44,7 @@ cc: linux-pci@vger.kernel.org if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start)) return -EINVAL; -@@ -1299,6 +1305,9 @@ static ssize_t pci_write_resource_io(str +@@ -1242,6 +1248,9 @@ static ssize_t pci_write_resource_io(str struct bin_attribute *attr, char *buf, loff_t off, size_t count) { @@ -52,8 +54,10 @@ cc: linux-pci@vger.kernel.org return pci_resource_io(filp, kobj, attr, buf, off, count, true); } ---- a/drivers/pci/proc.c -+++ b/drivers/pci/proc.c +Index: linux/drivers/pci/proc.c +=================================================================== +--- linux.orig/drivers/pci/proc.c ++++ linux/drivers/pci/proc.c @@ -117,6 +117,9 @@ static ssize_t proc_bus_pci_write(struct int size = dev->cfg_size; int cnt; @@ -84,9 +88,11 @@ cc: linux-pci@vger.kernel.org return -EPERM; if (fpriv->mmap_state == pci_mmap_io) { ---- a/drivers/pci/syscall.c -+++ b/drivers/pci/syscall.c -@@ -93,7 +93,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigne +Index: linux/drivers/pci/syscall.c +=================================================================== +--- linux.orig/drivers/pci/syscall.c ++++ linux/drivers/pci/syscall.c +@@ -90,7 +90,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigne u32 dword; int err = 0; diff --git a/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch b/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch index f3b4e39aa..3a9d69dcb 100644 --- a/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch +++ b/debian/patches/features/all/lockdown/0012-x86-Lock-down-IO-port-access-when-the-kernel-is-lock.patch @@ -20,11 +20,11 @@ cc: x86@kernel.org arch/x86/kernel/ioport.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c -index 9c3cf0944bce..2c0f058651c5 100644 ---- a/arch/x86/kernel/ioport.c -+++ b/arch/x86/kernel/ioport.c -@@ -30,7 +30,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) +Index: linux/arch/x86/kernel/ioport.c +=================================================================== +--- linux.orig/arch/x86/kernel/ioport.c ++++ linux/arch/x86/kernel/ioport.c +@@ -31,7 +31,8 @@ long ksys_ioperm(unsigned long from, uns if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) return -EINVAL; @@ -34,7 +34,7 @@ index 9c3cf0944bce..2c0f058651c5 100644 return -EPERM; /* -@@ -120,7 +121,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, level) +@@ -126,7 +127,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, leve return -EINVAL; /* Trying to gain more privileges? */ if (level > old) { diff --git a/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch b/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch index 00c295bc2..1a7a4d879 100644 --- a/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch +++ b/debian/patches/features/all/lockdown/0013-x86-msr-Restrict-MSR-access-when-the-kernel-is-locke.patch @@ -20,11 +20,11 @@ cc: x86@kernel.org arch/x86/kernel/msr.c | 10 ++++++++++ 1 file changed, 10 insertions(+) -diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c -index ef688804f80d..dfb61d358196 100644 ---- a/arch/x86/kernel/msr.c -+++ b/arch/x86/kernel/msr.c -@@ -84,6 +84,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf, +Index: linux/arch/x86/kernel/msr.c +=================================================================== +--- linux.orig/arch/x86/kernel/msr.c ++++ linux/arch/x86/kernel/msr.c +@@ -84,6 +84,11 @@ static ssize_t msr_write(struct file *fi int err = 0; ssize_t bytes = 0; @@ -36,7 +36,7 @@ index ef688804f80d..dfb61d358196 100644 if (count % 8) return -EINVAL; /* Invalid chunk size */ -@@ -135,6 +140,11 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg) +@@ -135,6 +140,11 @@ static long msr_ioctl(struct file *file, err = -EFAULT; break; } diff --git a/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch b/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch index 433316650..295b46e88 100644 --- a/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch +++ b/debian/patches/features/all/lockdown/0014-asus-wmi-Restrict-debugfs-interface-when-the-kernel-.patch @@ -19,11 +19,11 @@ cc: platform-driver-x86@vger.kernel.org drivers/platform/x86/asus-wmi.c | 9 +++++++++ 1 file changed, 9 insertions(+) -diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 48e1541dc8d4..ef5587469337 100644 ---- a/drivers/platform/x86/asus-wmi.c -+++ b/drivers/platform/x86/asus-wmi.c -@@ -1905,6 +1905,9 @@ static int show_dsts(struct seq_file *m, void *data) +Index: linux/drivers/platform/x86/asus-wmi.c +=================================================================== +--- linux.orig/drivers/platform/x86/asus-wmi.c ++++ linux/drivers/platform/x86/asus-wmi.c +@@ -2002,6 +2002,9 @@ static int show_dsts(struct seq_file *m, int err; u32 retval = -1; @@ -33,7 +33,7 @@ index 48e1541dc8d4..ef5587469337 100644 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval); if (err < 0) -@@ -1921,6 +1924,9 @@ static int show_devs(struct seq_file *m, void *data) +@@ -2018,6 +2021,9 @@ static int show_devs(struct seq_file *m, int err; u32 retval = -1; @@ -43,7 +43,7 @@ index 48e1541dc8d4..ef5587469337 100644 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param, &retval); -@@ -1945,6 +1951,9 @@ static int show_call(struct seq_file *m, void *data) +@@ -2042,6 +2048,9 @@ static int show_call(struct seq_file *m, union acpi_object *obj; acpi_status status; diff --git a/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch b/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch index a184f3c83..17778da72 100644 --- a/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch +++ b/debian/patches/features/all/lockdown/0015-ACPI-Limit-access-to-custom_method-when-the-kernel-i.patch @@ -16,11 +16,11 @@ cc: linux-acpi@vger.kernel.org drivers/acpi/custom_method.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c -index c68e72414a67..b33fba70ec51 100644 ---- a/drivers/acpi/custom_method.c -+++ b/drivers/acpi/custom_method.c -@@ -29,6 +29,9 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf, +Index: linux/drivers/acpi/custom_method.c +=================================================================== +--- linux.orig/drivers/acpi/custom_method.c ++++ linux/drivers/acpi/custom_method.c +@@ -29,6 +29,9 @@ static ssize_t cm_write(struct file *fil struct acpi_table_header table; acpi_status status; diff --git a/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch b/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch index 124f93cda..f8ee397c8 100644 --- a/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch +++ b/debian/patches/features/all/lockdown/0016-acpi-Ignore-acpi_rsdp-kernel-param-when-the-kernel-h.patch @@ -17,9 +17,11 @@ cc: linux-acpi@vger.kernel.org drivers/acpi/osl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- a/drivers/acpi/osl.c -+++ b/drivers/acpi/osl.c -@@ -192,7 +192,7 @@ acpi_physical_address __init acpi_os_get +Index: linux/drivers/acpi/osl.c +=================================================================== +--- linux.orig/drivers/acpi/osl.c ++++ linux/drivers/acpi/osl.c +@@ -194,7 +194,7 @@ acpi_physical_address __init acpi_os_get acpi_physical_address pa; #ifdef CONFIG_KEXEC diff --git a/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch b/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch index 3da877bb6..fd12eedb2 100644 --- a/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch +++ b/debian/patches/features/all/lockdown/0017-acpi-Disable-ACPI-table-override-if-the-kernel-is-lo.patch @@ -22,11 +22,11 @@ cc: linux-acpi@vger.kernel.org drivers/acpi/tables.c | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c -index 80ce2a7d224b..5cc13c42daf9 100644 ---- a/drivers/acpi/tables.c -+++ b/drivers/acpi/tables.c -@@ -526,6 +526,11 @@ void __init acpi_table_upgrade(void) +Index: linux/drivers/acpi/tables.c +=================================================================== +--- linux.orig/drivers/acpi/tables.c ++++ linux/drivers/acpi/tables.c +@@ -532,6 +532,11 @@ void __init acpi_table_upgrade(void) if (table_nr == 0) return; diff --git a/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch b/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch index 3ce9cdfc6..396a506ac 100644 --- a/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch +++ b/debian/patches/features/all/lockdown/0018-acpi-Disable-APEI-error-injection-if-the-kernel-is-l.patch @@ -27,11 +27,11 @@ cc: linux-acpi@vger.kernel.org drivers/acpi/apei/einj.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c -index b38737c83a24..6d71e1e97b20 100644 ---- a/drivers/acpi/apei/einj.c -+++ b/drivers/acpi/apei/einj.c -@@ -518,6 +518,9 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, +Index: linux/drivers/acpi/apei/einj.c +=================================================================== +--- linux.orig/drivers/acpi/apei/einj.c ++++ linux/drivers/acpi/apei/einj.c +@@ -518,6 +518,9 @@ static int einj_error_inject(u32 type, u int rc; u64 base_addr, size; diff --git a/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch b/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch index 058d543b8..2ed56ad5b 100644 --- a/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch +++ b/debian/patches/features/all/lockdown/0020-Prohibit-PCMCIA-CIS-storage-when-the-kernel-is-locke.patch @@ -13,11 +13,11 @@ cc: linux-pcmcia@lists.infradead.org drivers/pcmcia/cistpl.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c -index 55ef7d1fd8da..b7a0e42eeb25 100644 ---- a/drivers/pcmcia/cistpl.c -+++ b/drivers/pcmcia/cistpl.c -@@ -1578,6 +1578,9 @@ static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj, +Index: linux/drivers/pcmcia/cistpl.c +=================================================================== +--- linux.orig/drivers/pcmcia/cistpl.c ++++ linux/drivers/pcmcia/cistpl.c +@@ -1578,6 +1578,9 @@ static ssize_t pccard_store_cis(struct f struct pcmcia_socket *s; int error; diff --git a/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch b/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch index a8d6a339f..d906326a9 100644 --- a/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch +++ b/debian/patches/features/all/lockdown/0021-Lock-down-TIOCSSERIAL.patch @@ -15,11 +15,11 @@ cc: Jiri Slaby drivers/tty/serial/serial_core.c | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c -index 3a14cccbd7ff..41f0922ad842 100644 ---- a/drivers/tty/serial/serial_core.c -+++ b/drivers/tty/serial/serial_core.c -@@ -842,6 +842,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port, +Index: linux/drivers/tty/serial/serial_core.c +=================================================================== +--- linux.orig/drivers/tty/serial/serial_core.c ++++ linux/drivers/tty/serial/serial_core.c +@@ -850,6 +850,12 @@ static int uart_set_info(struct tty_stru new_flags = (__force upf_t)new_info->flags; old_custom_divisor = uport->custom_divisor; diff --git a/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch b/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch index a925ad01b..3582e3106 100644 --- a/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch +++ b/debian/patches/features/all/lockdown/0022-Lock-down-module-params-that-specify-hardware-parame.patch @@ -14,8 +14,10 @@ Signed-off-by: David Howells kernel/params.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) ---- a/kernel/params.c -+++ b/kernel/params.c +Index: linux/kernel/params.c +=================================================================== +--- linux.orig/kernel/params.c ++++ linux/kernel/params.c @@ -108,13 +108,19 @@ bool parameq(const char *a, const char * return parameqn(a, b, strlen(a)+1); } diff --git a/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch b/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch index f3e9a7602..47edb3442 100644 --- a/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch +++ b/debian/patches/features/all/lockdown/0023-x86-mmiotrace-Lock-down-the-testmmiotrace-module.patch @@ -17,10 +17,10 @@ cc: x86@kernel.org arch/x86/mm/testmmiotrace.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/arch/x86/mm/testmmiotrace.c b/arch/x86/mm/testmmiotrace.c -index f6ae6830b341..bbaad357f5d7 100644 ---- a/arch/x86/mm/testmmiotrace.c -+++ b/arch/x86/mm/testmmiotrace.c +Index: linux/arch/x86/mm/testmmiotrace.c +=================================================================== +--- linux.orig/arch/x86/mm/testmmiotrace.c ++++ linux/arch/x86/mm/testmmiotrace.c @@ -115,6 +115,9 @@ static int __init init(void) { unsigned long size = (read_far) ? (8 << 20) : (16 << 10); diff --git a/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch b/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch index 6c38911d9..2dd3fa020 100644 --- a/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch +++ b/debian/patches/features/all/lockdown/0024-debugfs-Disallow-use-of-debugfs-files-when-the-kerne.patch @@ -27,8 +27,10 @@ cc: Thomas Gleixner fs/debugfs/file.c | 6 ++++++ 1 file changed, 6 insertions(+) ---- a/fs/debugfs/file.c -+++ b/fs/debugfs/file.c +Index: linux/fs/debugfs/file.c +=================================================================== +--- linux.orig/fs/debugfs/file.c ++++ linux/fs/debugfs/file.c @@ -142,6 +142,9 @@ static int open_proxy_open(struct inode const struct file_operations *real_fops = NULL; int r; diff --git a/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch b/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch index 335afcebc..58df9739b 100644 --- a/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch +++ b/debian/patches/features/all/lockdown/0025-Lock-down-proc-kcore.patch @@ -12,11 +12,11 @@ Reviewed-by: James Morris fs/proc/kcore.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c -index 45629f4b5402..176cf749e650 100644 ---- a/fs/proc/kcore.c -+++ b/fs/proc/kcore.c -@@ -549,6 +549,8 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) +Index: linux/fs/proc/kcore.c +=================================================================== +--- linux.orig/fs/proc/kcore.c ++++ linux/fs/proc/kcore.c +@@ -545,6 +545,8 @@ out: static int open_kcore(struct inode *inode, struct file *filp) { diff --git a/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch b/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch index bbf000a4b..e7d9f0b4e 100644 --- a/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch +++ b/debian/patches/features/all/lockdown/0026-Lock-down-kprobes.patch @@ -13,11 +13,11 @@ Signed-off-by: David Howells kernel/kprobes.c | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/kernel/kprobes.c b/kernel/kprobes.c -index a1606a4224e1..f06023b0936c 100644 ---- a/kernel/kprobes.c -+++ b/kernel/kprobes.c -@@ -1530,6 +1530,9 @@ int register_kprobe(struct kprobe *p) +Index: linux/kernel/kprobes.c +=================================================================== +--- linux.orig/kernel/kprobes.c ++++ linux/kernel/kprobes.c +@@ -1548,6 +1548,9 @@ int register_kprobe(struct kprobe *p) struct module *probed_mod; kprobe_opcode_t *addr; diff --git a/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch b/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch index bd79ea1a6..87273834c 100644 --- a/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch +++ b/debian/patches/features/all/lockdown/0027-bpf-Restrict-kernel-image-access-functions-when-the-.patch @@ -23,9 +23,11 @@ cc: Alexei Starovoitov kernel/bpf/syscall.c | 3 +++ 1 file changed, 3 insertions(+) ---- a/kernel/bpf/syscall.c -+++ b/kernel/bpf/syscall.c -@@ -2327,6 +2327,9 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf +Index: linux/kernel/bpf/syscall.c +=================================================================== +--- linux.orig/kernel/bpf/syscall.c ++++ linux/kernel/bpf/syscall.c +@@ -2378,6 +2378,9 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf if (sysctl_unprivileged_bpf_disabled && !capable(CAP_SYS_ADMIN)) return -EPERM; diff --git a/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch b/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch index 04099fd75..be357055b 100644 --- a/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch +++ b/debian/patches/features/all/lockdown/0028-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch @@ -22,8 +22,10 @@ cc: linux-efi@vger.kernel.org 4 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 drivers/firmware/efi/secureboot.c ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c +Index: linux/arch/x86/kernel/setup.c +=================================================================== +--- linux.orig/arch/x86/kernel/setup.c ++++ linux/arch/x86/kernel/setup.c @@ -1159,19 +1159,7 @@ void __init setup_arch(char **cmdline_p) /* Allocate bigger log buffer */ setup_log_buf(1); @@ -45,8 +47,10 @@ cc: linux-efi@vger.kernel.org reserve_initrd(); ---- a/drivers/firmware/efi/Makefile -+++ b/drivers/firmware/efi/Makefile +Index: linux/drivers/firmware/efi/Makefile +=================================================================== +--- linux.orig/drivers/firmware/efi/Makefile ++++ linux/drivers/firmware/efi/Makefile @@ -24,6 +24,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_m obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o obj-$(CONFIG_EFI_TEST) += test/ @@ -55,8 +59,10 @@ cc: linux-efi@vger.kernel.org obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o arm-obj-$(CONFIG_EFI) := arm-init.o arm-runtime.o +Index: linux/drivers/firmware/efi/secureboot.c +=================================================================== --- /dev/null -+++ b/drivers/firmware/efi/secureboot.c ++++ linux/drivers/firmware/efi/secureboot.c @@ -0,0 +1,38 @@ +/* Core kernel secure boot support. + * @@ -96,8 +102,10 @@ cc: linux-efi@vger.kernel.org + } + } +} ---- a/include/linux/efi.h -+++ b/include/linux/efi.h +Index: linux/include/linux/efi.h +=================================================================== +--- linux.orig/include/linux/efi.h ++++ linux/include/linux/efi.h @@ -1152,6 +1152,14 @@ extern int __init efi_setup_pcdp_console #define EFI_DBG 8 /* Print additional debug info at runtime */ #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ diff --git a/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch b/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch index e1eb03bfa..cbca76f5f 100644 --- a/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch +++ b/debian/patches/features/all/lockdown/0029-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch @@ -18,11 +18,11 @@ cc: linux-efi@vger.kernel.org security/lock_down.c | 1 + 3 files changed, 19 insertions(+), 2 deletions(-) -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 7c2162f9e769..4e38327efb2e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -64,6 +64,7 @@ +Index: linux/arch/x86/kernel/setup.c +=================================================================== +--- linux.orig/arch/x86/kernel/setup.c ++++ linux/arch/x86/kernel/setup.c +@@ -65,6 +65,7 @@ #include #include #include @@ -30,7 +30,7 @@ index 7c2162f9e769..4e38327efb2e 100644 #include #include -@@ -1039,6 +1040,9 @@ void __init setup_arch(char **cmdline_p) +@@ -1005,6 +1006,9 @@ void __init setup_arch(char **cmdline_p) if (efi_enabled(EFI_BOOT)) efi_init(); @@ -40,7 +40,7 @@ index 7c2162f9e769..4e38327efb2e 100644 dmi_scan_machine(); dmi_memdev_walk(); dmi_set_dump_stack_arch_desc(); -@@ -1197,8 +1201,6 @@ void __init setup_arch(char **cmdline_p) +@@ -1159,8 +1163,6 @@ void __init setup_arch(char **cmdline_p) /* Allocate bigger log buffer */ setup_log_buf(1); @@ -49,11 +49,11 @@ index 7c2162f9e769..4e38327efb2e 100644 reserve_initrd(); acpi_table_upgrade(); -diff --git a/security/Kconfig b/security/Kconfig -index 1e997be94ba2..a4fa8b826039 100644 ---- a/security/Kconfig -+++ b/security/Kconfig -@@ -222,6 +222,20 @@ config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ +Index: linux/security/Kconfig +=================================================================== +--- linux.orig/security/Kconfig ++++ linux/security/Kconfig +@@ -256,6 +256,20 @@ config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ Allow the lockdown on a kernel to be lifted, by pressing a SysRq key combination on a wired keyboard. @@ -74,10 +74,10 @@ index 1e997be94ba2..a4fa8b826039 100644 source security/selinux/Kconfig source security/smack/Kconfig -diff --git a/security/lock_down.c b/security/lock_down.c -index 2c6b00f0c229..527f7e51dc8d 100644 ---- a/security/lock_down.c -+++ b/security/lock_down.c +Index: linux/security/lock_down.c +=================================================================== +--- linux.orig/security/lock_down.c ++++ linux/security/lock_down.c @@ -12,6 +12,7 @@ #include #include diff --git a/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch b/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch index 1f8fac6c4..beb09c3e6 100644 --- a/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch +++ b/debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch @@ -30,8 +30,10 @@ Signed-off-by: Linn Crosetto include/linux/efi.h | 1 + 7 files changed, 32 insertions(+), 2 deletions(-) ---- a/drivers/firmware/efi/arm-init.c -+++ b/drivers/firmware/efi/arm-init.c +Index: linux/drivers/firmware/efi/arm-init.c +=================================================================== +--- linux.orig/drivers/firmware/efi/arm-init.c ++++ linux/drivers/firmware/efi/arm-init.c @@ -21,6 +21,7 @@ #include #include @@ -50,9 +52,11 @@ Signed-off-by: Linn Crosetto reserve_regions(); efi_esrt_init(); ---- a/drivers/firmware/efi/efi.c -+++ b/drivers/firmware/efi/efi.c -@@ -657,7 +657,8 @@ static __initdata struct params fdt_para +Index: linux/drivers/firmware/efi/efi.c +=================================================================== +--- linux.orig/drivers/firmware/efi/efi.c ++++ linux/drivers/firmware/efi/efi.c +@@ -660,7 +660,8 @@ static __initdata struct params fdt_para UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap), UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size), UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size), @@ -62,8 +66,10 @@ Signed-off-by: Linn Crosetto }; static __initdata struct params xen_fdt_params[] = { ---- a/drivers/firmware/efi/libstub/fdt.c -+++ b/drivers/firmware/efi/libstub/fdt.c +Index: linux/drivers/firmware/efi/libstub/fdt.c +=================================================================== +--- linux.orig/drivers/firmware/efi/libstub/fdt.c ++++ linux/drivers/firmware/efi/libstub/fdt.c @@ -159,6 +159,12 @@ static efi_status_t update_fdt(efi_syste } } @@ -77,8 +83,10 @@ Signed-off-by: Linn Crosetto /* shrink the FDT back to its minimum size */ fdt_pack(fdt); ---- a/include/linux/efi.h -+++ b/include/linux/efi.h +Index: linux/include/linux/efi.h +=================================================================== +--- linux.orig/include/linux/efi.h ++++ linux/include/linux/efi.h @@ -786,6 +786,7 @@ struct efi_fdt_params { u32 mmap_size; u32 desc_size; diff --git a/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch b/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch index 793858708..7a3b8e9bb 100644 --- a/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch +++ b/debian/patches/features/all/lockdown/enable-cold-boot-attack-mitigation.patch @@ -8,11 +8,11 @@ Origin: https://github.com/mjg59/linux/commit/02d999574936dd234a508c0112a0200c13 arch/x86/boot/compressed/eboot.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c -index 8b4c5e001157..0813490ca6e0 100644 ---- a/arch/x86/boot/compressed/eboot.c -+++ b/arch/x86/boot/compressed/eboot.c -@@ -371,6 +371,22 @@ void setup_graphics(struct boot_params *boot_params) +Index: linux/arch/x86/boot/compressed/eboot.c +=================================================================== +--- linux.orig/arch/x86/boot/compressed/eboot.c ++++ linux/arch/x86/boot/compressed/eboot.c +@@ -372,6 +372,22 @@ void setup_graphics(struct boot_params * } } @@ -35,16 +35,16 @@ index 8b4c5e001157..0813490ca6e0 100644 /* * Because the x86 boot code expects to be passed a boot_params we * need to create one ourselves (usually the bootloader would create -@@ -765,6 +781,12 @@ efi_main(struct efi_config *c, struct boot_params *boot_params) - ((u64)boot_params->ext_cmd_line_ptr << 32)); +@@ -783,6 +799,12 @@ efi_main(struct efi_config *c, struct bo efi_parse_options((char *)cmdline_paddr); -+ /* + /* + * Ask the firmware to clear memory if we don't have a clean + * shutdown + */ + enable_reset_attack_mitigation(); + - /* ++ /* * If the boot loader gave us a value for secure_boot then we use that, * otherwise we ask the BIOS. + */ diff --git a/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch b/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch index 1d03d27d8..586be8cab 100644 --- a/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch +++ b/debian/patches/features/all/lockdown/lockdown-refer-to-debian-wiki-until-manual-page-exists.patch @@ -10,8 +10,10 @@ doesn't even seem to have been submitted yet. For now, refer to the Debian wiki. --- ---- a/security/lock_down.c -+++ b/security/lock_down.c +Index: linux/security/lock_down.c +=================================================================== +--- linux.orig/security/lock_down.c ++++ linux/security/lock_down.c @@ -28,7 +28,7 @@ static void __init lock_kernel_down(cons { if (!kernel_locked_down) { diff --git a/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch b/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch index 7a7f46580..f02392f10 100644 --- a/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch +++ b/debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch @@ -11,9 +11,11 @@ if locked down. Signed-off-by: Ben Hutchings --- ---- a/drivers/mtd/devices/phram.c -+++ b/drivers/mtd/devices/phram.c -@@ -226,6 +226,9 @@ static int phram_setup(const char *val) +Index: linux/drivers/mtd/devices/phram.c +=================================================================== +--- linux.orig/drivers/mtd/devices/phram.c ++++ linux/drivers/mtd/devices/phram.c +@@ -219,6 +219,9 @@ static int phram_setup(const char *val) uint64_t len; int i, ret; @@ -23,9 +25,11 @@ Signed-off-by: Ben Hutchings if (strnlen(val, sizeof(buf)) >= sizeof(buf)) parse_err("parameter too long\n"); ---- a/drivers/mtd/devices/slram.c -+++ b/drivers/mtd/devices/slram.c -@@ -231,6 +231,9 @@ static int parse_cmdline(char *devname, +Index: linux/drivers/mtd/devices/slram.c +=================================================================== +--- linux.orig/drivers/mtd/devices/slram.c ++++ linux/drivers/mtd/devices/slram.c +@@ -226,6 +226,9 @@ static int parse_cmdline(char *devname, unsigned long devstart; unsigned long devlength; diff --git a/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch b/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch index 6acd429db..22cd1283a 100644 --- a/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch +++ b/debian/patches/features/all/security-perf-allow-further-restriction-of-perf_event_open.patch @@ -15,9 +15,11 @@ at run-time regardless of whether the default is changed. Signed-off-by: Ben Hutchings --- ---- a/include/linux/perf_event.h -+++ b/include/linux/perf_event.h -@@ -1145,6 +1145,11 @@ extern int perf_cpu_time_max_percent_han +Index: linux/include/linux/perf_event.h +=================================================================== +--- linux.orig/include/linux/perf_event.h ++++ linux/include/linux/perf_event.h +@@ -1189,6 +1189,11 @@ extern int perf_cpu_time_max_percent_han int perf_event_max_stack_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos); @@ -29,9 +31,11 @@ Signed-off-by: Ben Hutchings static inline bool perf_paranoid_tracepoint_raw(void) { return sysctl_perf_event_paranoid > -1; ---- a/kernel/events/core.c -+++ b/kernel/events/core.c -@@ -389,8 +389,13 @@ static struct srcu_struct pmus_srcu; +Index: linux/kernel/events/core.c +=================================================================== +--- linux.orig/kernel/events/core.c ++++ linux/kernel/events/core.c +@@ -397,8 +397,13 @@ static cpumask_var_t perf_online_mask; * 0 - disallow raw tracepoint access for unpriv * 1 - disallow cpu events for unpriv * 2 - disallow kernel profiling for unpriv @@ -45,7 +49,7 @@ Signed-off-by: Ben Hutchings /* Minimum for 512 kiB + 1 user control page */ int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ -@@ -9395,6 +9400,9 @@ SYSCALL_DEFINE5(perf_event_open, +@@ -10485,6 +10490,9 @@ SYSCALL_DEFINE5(perf_event_open, if (flags & ~PERF_FLAG_ALL) return -EINVAL; @@ -55,8 +59,10 @@ Signed-off-by: Ben Hutchings err = perf_copy_attr(attr_uptr, &attr); if (err) return err; ---- a/security/Kconfig -+++ b/security/Kconfig +Index: linux/security/Kconfig +=================================================================== +--- linux.orig/security/Kconfig ++++ linux/security/Kconfig @@ -18,6 +18,15 @@ config SECURITY_DMESG_RESTRICT If you are unsure how to answer this question, answer N. diff --git a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch index bed22fe2e..e746f9e1a 100644 --- a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch +++ b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch @@ -20,10 +20,10 @@ Signed-off-by: Stefan Wahren create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index b5bd3de87c33..35c749fe22eb 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile +Index: linux/arch/arm/boot/dts/Makefile +=================================================================== +--- linux.orig/arch/arm/boot/dts/Makefile ++++ linux/arch/arm/boot/dts/Makefile @@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2836-rpi-2-b.dtb \ bcm2837-rpi-3-b.dtb \ @@ -32,11 +32,10 @@ index b5bd3de87c33..35c749fe22eb 100644 bcm2835-rpi-zero.dtb \ bcm2835-rpi-zero-w.dtb dtb-$(CONFIG_ARCH_BCM_5301X) += \ -diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts -new file mode 100644 -index 000000000000..6c8233a36d86 +Index: linux/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +=================================================================== --- /dev/null -+++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts ++++ linux/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; @@ -125,11 +124,10 @@ index 000000000000..6c8233a36d86 + pinctrl-0 = <&uart0_gpio14>; + status = "okay"; +}; -diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi -new file mode 100644 -index 000000000000..7b7ab6aea988 +Index: linux/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +=================================================================== --- /dev/null -+++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi ++++ linux/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; diff --git a/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch b/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch index 357c45a33..c87b9f1a9 100644 --- a/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch +++ b/debian/patches/features/arm64/arm64-dts-allwinner-a64-Add-Pine64-LTS-device-tree-f.patch @@ -23,11 +23,11 @@ Signed-off-by: Chen-Yu Tsai 2 files changed, 14 insertions(+) create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 9ffa7a038791..b7034327b28b 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb +Index: linux/arch/arm64/boot/dts/allwinner/Makefile +=================================================================== +--- linux.orig/arch/arm64/boot/dts/allwinner/Makefile ++++ linux/arch/arm64/boot/dts/allwinner/Makefile +@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-b dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb @@ -35,11 +35,10 @@ index 9ffa7a038791..b7034327b28b 100644 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts -new file mode 100644 -index 000000000000..72d6961dc312 +Index: linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts +=================================================================== --- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts ++++ linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch index bf1739a06..1d34ce743 100644 --- a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch +++ b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch @@ -13,10 +13,10 @@ Signed-off-by: Stefan Wahren 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts -diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile -index 1193a9e34bbb..3d98f5f5ab88 100644 ---- a/arch/arm64/boot/dts/broadcom/Makefile -+++ b/arch/arm64/boot/dts/broadcom/Makefile +Index: linux/arch/arm64/boot/dts/broadcom/Makefile +=================================================================== +--- linux.orig/arch/arm64/boot/dts/broadcom/Makefile ++++ linux/arch/arm64/boot/dts/broadcom/Makefile @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ @@ -26,11 +26,10 @@ index 1193a9e34bbb..3d98f5f5ab88 100644 subdir-y += northstar2 subdir-y += stingray -diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts -new file mode 100644 -index 000000000000..b1c4ab212c64 +Index: linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts +=================================================================== --- /dev/null -+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts ++++ linux/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts @@ -0,0 +1,2 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "arm/bcm2837-rpi-cm3-io3.dts" diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch index c2fa1d527..d2c9849bb 100644 --- a/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch +++ b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch @@ -17,10 +17,10 @@ Signed-off-by: Olof Johansson arch/arm64/boot/dts/broadcom/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile -index 3d98f5f5ab88..667ca989c11b 100644 ---- a/arch/arm64/boot/dts/broadcom/Makefile -+++ b/arch/arm64/boot/dts/broadcom/Makefile +Index: linux/arch/arm64/boot/dts/broadcom/Makefile +=================================================================== +--- linux.orig/arch/arm64/boot/dts/broadcom/Makefile ++++ linux/arch/arm64/boot/dts/broadcom/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ diff --git a/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch b/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch index a40d273dc..73f420b6c 100644 --- a/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch +++ b/debian/patches/features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch @@ -15,8 +15,10 @@ Signed-off-by: Aurelien Jarno arch/mips/loongson64/common/uart_base.c | 1 + 4 files changed, 4 insertions(+) ---- a/arch/mips/include/asm/bootinfo.h -+++ b/arch/mips/include/asm/bootinfo.h +Index: linux/arch/mips/include/asm/bootinfo.h +=================================================================== +--- linux.orig/arch/mips/include/asm/bootinfo.h ++++ linux/arch/mips/include/asm/bootinfo.h @@ -71,6 +71,7 @@ enum loongson_machine_type { MACH_LEMOTE_NAS, MACH_LEMOTE_LL2F, @@ -25,8 +27,10 @@ Signed-off-by: Aurelien Jarno MACH_LOONGSON_END }; ---- a/arch/mips/loongson64/common/machtype.c -+++ b/arch/mips/loongson64/common/machtype.c +Index: linux/arch/mips/loongson64/common/machtype.c +=================================================================== +--- linux.orig/arch/mips/loongson64/common/machtype.c ++++ linux/arch/mips/loongson64/common/machtype.c @@ -28,6 +28,7 @@ static const char *system_types[] = { [MACH_LEMOTE_NAS] = "lemote-nas-2f", [MACH_LEMOTE_LL2F] = "lemote-lynloong-2f", @@ -35,8 +39,10 @@ Signed-off-by: Aurelien Jarno [MACH_LOONGSON_END] = NULL, }; ---- a/arch/mips/loongson64/common/serial.c -+++ b/arch/mips/loongson64/common/serial.c +Index: linux/arch/mips/loongson64/common/serial.c +=================================================================== +--- linux.orig/arch/mips/loongson64/common/serial.c ++++ linux/arch/mips/loongson64/common/serial.c @@ -48,6 +48,7 @@ static struct plat_serial8250_port uart8 [MACH_LEMOTE_NAS] = {PORT_M(3, 3686400), {} }, [MACH_LEMOTE_LL2F] = {PORT(3, 1843200), {} }, @@ -45,8 +51,10 @@ Signed-off-by: Aurelien Jarno [MACH_LOONGSON_END] = {}, }; ---- a/arch/mips/loongson64/common/uart_base.c -+++ b/arch/mips/loongson64/common/uart_base.c +Index: linux/arch/mips/loongson64/common/uart_base.c +=================================================================== +--- linux.orig/arch/mips/loongson64/common/uart_base.c ++++ linux/arch/mips/loongson64/common/uart_base.c @@ -25,6 +25,7 @@ void prom_init_loongson_uart_base(void) { switch (mips_machtype) { diff --git a/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch b/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch index 320c651de..3de14026f 100644 --- a/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch +++ b/debian/patches/features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch @@ -9,11 +9,11 @@ Loongson-3, define it conditionally. Note: this should be replace by upstream fix when available. -diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h -index b1071c1..778dca7 100644 ---- a/arch/mips/include/asm/sparsemem.h -+++ b/arch/mips/include/asm/sparsemem.h -@@ -11,7 +11,12 @@ +Index: linux/arch/mips/include/asm/sparsemem.h +=================================================================== +--- linux.orig/arch/mips/include/asm/sparsemem.h ++++ linux/arch/mips/include/asm/sparsemem.h +@@ -12,7 +12,12 @@ #else # define SECTION_SIZE_BITS 28 #endif diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch index b8ba740ab..d56f9f289 100644 --- a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch +++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-for-boot-params-.patch @@ -32,11 +32,11 @@ Signed-off-by: Ingo Molnar arch/x86/kernel/x86_init.c | 3 +-- 3 files changed, 14 insertions(+), 2 deletions(-) -diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h -index a303d7b7d763..2f01eb4d6208 100644 ---- a/arch/x86/include/asm/acpi.h -+++ b/arch/x86/include/asm/acpi.h -@@ -142,6 +142,8 @@ static inline u64 acpi_arch_get_root_pointer(void) +Index: linux/arch/x86/include/asm/acpi.h +=================================================================== +--- linux.orig/arch/x86/include/asm/acpi.h ++++ linux/arch/x86/include/asm/acpi.h +@@ -142,6 +142,8 @@ static inline u64 acpi_arch_get_root_poi void acpi_generic_reduced_hw_init(void); @@ -45,7 +45,7 @@ index a303d7b7d763..2f01eb4d6208 100644 #else /* !CONFIG_ACPI */ #define acpi_lapic 0 -@@ -153,6 +155,11 @@ static inline void disable_acpi(void) { } +@@ -153,6 +155,11 @@ static inline void disable_acpi(void) { static inline void acpi_generic_reduced_hw_init(void) { } @@ -57,10 +57,10 @@ index a303d7b7d763..2f01eb4d6208 100644 #endif /* !CONFIG_ACPI */ #define ARCH_HAS_POWER_INIT 1 -diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c -index 3b20607d581b..e8fea7ffa306 100644 ---- a/arch/x86/kernel/acpi/boot.c -+++ b/arch/x86/kernel/acpi/boot.c +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c @@ -48,6 +48,7 @@ #include #include @@ -69,7 +69,7 @@ index 3b20607d581b..e8fea7ffa306 100644 #include "sleep.h" /* To include x86_acpi_suspend_lowlevel */ static int __initdata acpi_force = 0; -@@ -1771,3 +1772,8 @@ void __init arch_reserve_mem_area(acpi_physical_address addr, size_t size) +@@ -1771,3 +1772,8 @@ void __init arch_reserve_mem_area(acpi_p e820__range_add(addr, size, E820_TYPE_ACPI); e820__update_table_print(); } @@ -78,11 +78,11 @@ index 3b20607d581b..e8fea7ffa306 100644 +{ + return boot_params.hdr.acpi_rsdp_addr; +} -diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c -index 2792b5573818..50a2b492fdd6 100644 ---- a/arch/x86/kernel/x86_init.c -+++ b/arch/x86/kernel/x86_init.c -@@ -31,7 +31,6 @@ static int __init iommu_init_noop(void) { return 0; } +Index: linux/arch/x86/kernel/x86_init.c +=================================================================== +--- linux.orig/arch/x86/kernel/x86_init.c ++++ linux/arch/x86/kernel/x86_init.c +@@ -31,7 +31,6 @@ static int __init iommu_init_noop(void) static void iommu_shutdown_noop(void) { } static bool __init bool_x86_init_noop(void) { return false; } static void x86_op_int_noop(int cpu) { } @@ -90,7 +90,7 @@ index 2792b5573818..50a2b492fdd6 100644 /* * The platform setup functions are preset with the default functions -@@ -96,7 +95,7 @@ struct x86_init_ops x86_init __initdata = { +@@ -96,7 +95,7 @@ struct x86_init_ops x86_init __initdata }, .acpi = { @@ -99,6 +99,3 @@ index 2792b5573818..50a2b492fdd6 100644 .reduced_hw_early_init = acpi_generic_reduced_hw_init, }, }; --- -2.19.2 - diff --git a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch index 5dcf83117..5382acce3 100644 --- a/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch +++ b/debian/patches/features/x86/x86-acpi-x86-boot-Take-RSDP-address-from-boot-params.patch @@ -24,10 +24,10 @@ Signed-off-by: Ingo Molnar arch/x86/kernel/acpi/boot.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) -diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h -index a06cbf019744..60733f137e9a 100644 ---- a/arch/x86/include/uapi/asm/bootparam.h -+++ b/arch/x86/include/uapi/asm/bootparam.h +Index: linux/arch/x86/include/uapi/asm/bootparam.h +=================================================================== +--- linux.orig/arch/x86/include/uapi/asm/bootparam.h ++++ linux/arch/x86/include/uapi/asm/bootparam.h @@ -155,7 +155,8 @@ struct boot_params { __u8 _pad2[4]; /* 0x054 */ __u64 tboot_addr; /* 0x058 */ @@ -38,17 +38,14 @@ index a06cbf019744..60733f137e9a 100644 __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ struct sys_desc_table sys_desc_table; /* obsolete! */ /* 0x0a0 */ -diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c -index fb3b1f3a5aba..06635fbca81c 100644 ---- a/arch/x86/kernel/acpi/boot.c -+++ b/arch/x86/kernel/acpi/boot.c -@@ -1776,5 +1776,5 @@ void __init arch_reserve_mem_area(acpi_physical_address addr, size_t size) +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c +@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p u64 x86_default_get_root_pointer(void) { - return 0; + return boot_params.acpi_rsdp_addr; } --- -2.19.2 - diff --git a/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch b/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch index cd64a8fdd..55b116db9 100644 --- a/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch +++ b/debian/patches/features/x86/x86-boot-Add-ACPI-RSDP-address-to-setup_header.patch @@ -49,11 +49,11 @@ Signed-off-by: Ingo Molnar arch/x86/kernel/setup.c | 17 ++++++++++++++ 7 files changed, 62 insertions(+), 2 deletions(-) -diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt -index 5e9b826b5f62..7727db8f94bc 100644 ---- a/Documentation/x86/boot.txt -+++ b/Documentation/x86/boot.txt -@@ -61,6 +61,18 @@ Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields +Index: linux/Documentation/x86/boot.txt +=================================================================== +--- linux.orig/Documentation/x86/boot.txt ++++ linux/Documentation/x86/boot.txt +@@ -61,6 +61,18 @@ Protocol 2.12: (Kernel 3.8) Added the xl to struct boot_params for loading bzImage and ramdisk above 4G in 64bit. @@ -120,10 +120,10 @@ index 5e9b826b5f62..7727db8f94bc 100644 **** THE IMAGE CHECKSUM -diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S -index 850b8762e889..4c881c850125 100644 ---- a/arch/x86/boot/header.S -+++ b/arch/x86/boot/header.S +Index: linux/arch/x86/boot/header.S +=================================================================== +--- linux.orig/arch/x86/boot/header.S ++++ linux/arch/x86/boot/header.S @@ -300,7 +300,7 @@ _start: # Part 2 of the header, from the old setup.S @@ -133,7 +133,7 @@ index 850b8762e889..4c881c850125 100644 # or else old loadlin-1.5 will fail) .globl realmode_swtch realmode_swtch: .word 0, 0 # default_switch, SETUPSEG -@@ -558,6 +558,10 @@ pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr +@@ -558,6 +558,10 @@ pref_address: .quad LOAD_PHYSICAL_ADDR init_size: .long INIT_SIZE # kernel initialization size handover_offset: .long 0 # Filled in by build.c @@ -144,10 +144,10 @@ index 850b8762e889..4c881c850125 100644 # End of setup header ##################################################### .section ".entrytext", "ax" -diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h -index b85a7c54c6a1..0f842104862c 100644 ---- a/arch/x86/include/asm/x86_init.h -+++ b/arch/x86/include/asm/x86_init.h +Index: linux/arch/x86/include/asm/x86_init.h +=================================================================== +--- linux.orig/arch/x86/include/asm/x86_init.h ++++ linux/arch/x86/include/asm/x86_init.h @@ -303,4 +303,6 @@ extern void x86_init_noop(void); extern void x86_init_uint_noop(unsigned int unused); extern bool x86_pnpbios_disabled(void); @@ -155,10 +155,10 @@ index b85a7c54c6a1..0f842104862c 100644 +void x86_verify_bootdata_version(void); + #endif -diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h -index a06cbf019744..22f89d040ddd 100644 ---- a/arch/x86/include/uapi/asm/bootparam.h -+++ b/arch/x86/include/uapi/asm/bootparam.h +Index: linux/arch/x86/include/uapi/asm/bootparam.h +=================================================================== +--- linux.orig/arch/x86/include/uapi/asm/bootparam.h ++++ linux/arch/x86/include/uapi/asm/bootparam.h @@ -16,6 +16,9 @@ #define RAMDISK_PROMPT_FLAG 0x8000 #define RAMDISK_LOAD_FLAG 0x4000 @@ -177,11 +177,11 @@ index a06cbf019744..22f89d040ddd 100644 } __attribute__((packed)); struct sys_desc_table { -diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c -index ec6fefbfd3c0..76fa3b836598 100644 ---- a/arch/x86/kernel/head32.c -+++ b/arch/x86/kernel/head32.c -@@ -37,6 +37,7 @@ asmlinkage __visible void __init i386_start_kernel(void) +Index: linux/arch/x86/kernel/head32.c +=================================================================== +--- linux.orig/arch/x86/kernel/head32.c ++++ linux/arch/x86/kernel/head32.c +@@ -37,6 +37,7 @@ asmlinkage __visible void __init i386_st cr4_init_shadow(); sanitize_boot_params(&boot_params); @@ -189,11 +189,11 @@ index ec6fefbfd3c0..76fa3b836598 100644 x86_early_init_platform_quirks(); -diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c -index ddee1f0870c4..5dc377dc9d7b 100644 ---- a/arch/x86/kernel/head64.c -+++ b/arch/x86/kernel/head64.c -@@ -457,6 +457,8 @@ void __init x86_64_start_reservations(char *real_mode_data) +Index: linux/arch/x86/kernel/head64.c +=================================================================== +--- linux.orig/arch/x86/kernel/head64.c ++++ linux/arch/x86/kernel/head64.c +@@ -477,6 +477,8 @@ void __init x86_64_start_reservations(ch if (!boot_params.hdr.version) copy_bootdata(__va(real_mode_data)); @@ -202,10 +202,10 @@ index ddee1f0870c4..5dc377dc9d7b 100644 x86_early_init_platform_quirks(); switch (boot_params.hdr.hardware_subarch) { -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index b4866badb235..8e226b7a1753 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c +Index: linux/arch/x86/kernel/setup.c +=================================================================== +--- linux.orig/arch/x86/kernel/setup.c ++++ linux/arch/x86/kernel/setup.c @@ -1281,6 +1281,23 @@ void __init setup_arch(char **cmdline_p) unwind_init(); } @@ -230,6 +230,3 @@ index b4866badb235..8e226b7a1753 100644 #ifdef CONFIG_X86_32 static struct resource video_ram_resource = { --- -2.19.2 - diff --git a/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch index e5585c806..d2b67f4ea 100644 --- a/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch +++ b/debian/patches/features/x86/x86-boot-Mostly-revert-commit-ae7e1238e68f2a-Add-ACP.patch @@ -42,11 +42,11 @@ Signed-off-by: Ingo Molnar arch/x86/kernel/setup.c | 17 -------------- 8 files changed, 3 insertions(+), 63 deletions(-) -diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt -index 7727db8f94bc..5e9b826b5f62 100644 ---- a/Documentation/x86/boot.txt -+++ b/Documentation/x86/boot.txt -@@ -61,18 +61,6 @@ Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields +Index: linux/Documentation/x86/boot.txt +=================================================================== +--- linux.orig/Documentation/x86/boot.txt ++++ linux/Documentation/x86/boot.txt +@@ -61,18 +61,6 @@ Protocol 2.12: (Kernel 3.8) Added the xl to struct boot_params for loading bzImage and ramdisk above 4G in 64bit. @@ -113,10 +113,10 @@ index 7727db8f94bc..5e9b826b5f62 100644 **** THE IMAGE CHECKSUM -diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S -index 4c881c850125..850b8762e889 100644 ---- a/arch/x86/boot/header.S -+++ b/arch/x86/boot/header.S +Index: linux/arch/x86/boot/header.S +=================================================================== +--- linux.orig/arch/x86/boot/header.S ++++ linux/arch/x86/boot/header.S @@ -300,7 +300,7 @@ _start: # Part 2 of the header, from the old setup.S @@ -126,7 +126,7 @@ index 4c881c850125..850b8762e889 100644 # or else old loadlin-1.5 will fail) .globl realmode_swtch realmode_swtch: .word 0, 0 # default_switch, SETUPSEG -@@ -558,10 +558,6 @@ pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr +@@ -558,10 +558,6 @@ pref_address: .quad LOAD_PHYSICAL_ADDR init_size: .long INIT_SIZE # kernel initialization size handover_offset: .long 0 # Filled in by build.c @@ -137,10 +137,10 @@ index 4c881c850125..850b8762e889 100644 # End of setup header ##################################################### .section ".entrytext", "ax" -diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h -index 0f842104862c..b85a7c54c6a1 100644 ---- a/arch/x86/include/asm/x86_init.h -+++ b/arch/x86/include/asm/x86_init.h +Index: linux/arch/x86/include/asm/x86_init.h +=================================================================== +--- linux.orig/arch/x86/include/asm/x86_init.h ++++ linux/arch/x86/include/asm/x86_init.h @@ -303,6 +303,4 @@ extern void x86_init_noop(void); extern void x86_init_uint_noop(unsigned int unused); extern bool x86_pnpbios_disabled(void); @@ -148,10 +148,10 @@ index 0f842104862c..b85a7c54c6a1 100644 -void x86_verify_bootdata_version(void); - #endif -diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h -index 22f89d040ddd..a06cbf019744 100644 ---- a/arch/x86/include/uapi/asm/bootparam.h -+++ b/arch/x86/include/uapi/asm/bootparam.h +Index: linux/arch/x86/include/uapi/asm/bootparam.h +=================================================================== +--- linux.orig/arch/x86/include/uapi/asm/bootparam.h ++++ linux/arch/x86/include/uapi/asm/bootparam.h @@ -16,9 +16,6 @@ #define RAMDISK_PROMPT_FLAG 0x8000 #define RAMDISK_LOAD_FLAG 0x4000 @@ -170,22 +170,22 @@ index 22f89d040ddd..a06cbf019744 100644 } __attribute__((packed)); struct sys_desc_table { -diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c -index 92c76bf97ad8..fb3b1f3a5aba 100644 ---- a/arch/x86/kernel/acpi/boot.c -+++ b/arch/x86/kernel/acpi/boot.c -@@ -1776,5 +1776,5 @@ void __init arch_reserve_mem_area(acpi_physical_address addr, size_t size) +Index: linux/arch/x86/kernel/acpi/boot.c +=================================================================== +--- linux.orig/arch/x86/kernel/acpi/boot.c ++++ linux/arch/x86/kernel/acpi/boot.c +@@ -1775,5 +1775,5 @@ void __init arch_reserve_mem_area(acpi_p u64 x86_default_get_root_pointer(void) { - return boot_params.hdr.acpi_rsdp_addr; + return 0; } -diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c -index 76fa3b836598..ec6fefbfd3c0 100644 ---- a/arch/x86/kernel/head32.c -+++ b/arch/x86/kernel/head32.c -@@ -37,7 +37,6 @@ asmlinkage __visible void __init i386_start_kernel(void) +Index: linux/arch/x86/kernel/head32.c +=================================================================== +--- linux.orig/arch/x86/kernel/head32.c ++++ linux/arch/x86/kernel/head32.c +@@ -37,7 +37,6 @@ asmlinkage __visible void __init i386_st cr4_init_shadow(); sanitize_boot_params(&boot_params); @@ -193,11 +193,11 @@ index 76fa3b836598..ec6fefbfd3c0 100644 x86_early_init_platform_quirks(); -diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c -index 7663a8eb602b..16b1cbd3a61e 100644 ---- a/arch/x86/kernel/head64.c -+++ b/arch/x86/kernel/head64.c -@@ -457,8 +457,6 @@ void __init x86_64_start_reservations(char *real_mode_data) +Index: linux/arch/x86/kernel/head64.c +=================================================================== +--- linux.orig/arch/x86/kernel/head64.c ++++ linux/arch/x86/kernel/head64.c +@@ -477,8 +477,6 @@ void __init x86_64_start_reservations(ch if (!boot_params.hdr.version) copy_bootdata(__va(real_mode_data)); @@ -206,11 +206,11 @@ index 7663a8eb602b..16b1cbd3a61e 100644 x86_early_init_platform_quirks(); switch (boot_params.hdr.hardware_subarch) { -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index b74e7bfed6ab..d494b9bfe618 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1280,23 +1280,6 @@ void __init setup_arch(char **cmdline_p) +Index: linux/arch/x86/kernel/setup.c +=================================================================== +--- linux.orig/arch/x86/kernel/setup.c ++++ linux/arch/x86/kernel/setup.c +@@ -1281,23 +1281,6 @@ void __init setup_arch(char **cmdline_p) unwind_init(); } @@ -234,6 +234,3 @@ index b74e7bfed6ab..d494b9bfe618 100644 #ifdef CONFIG_X86_32 static struct resource video_ram_resource = { --- -2.19.2 - diff --git a/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch index b93f62b35..3dde15cce 100644 --- a/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch +++ b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch @@ -28,9 +28,11 @@ Signed-off-by: Ben Hutchings arch/x86/include/asm/unistd.h | 4 +- 7 files changed, 80 insertions(+), 5 deletions(-) ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4142,6 +4142,10 @@ +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt +@@ -4501,6 +4501,10 @@ switches= [HW,M68k] @@ -41,9 +43,11 @@ Signed-off-by: Ben Hutchings sysfs.deprecated=0|1 [KNL] Enable/disable old style sysfs layout for old udev on older distributions. When this option is enabled ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -2910,6 +2910,14 @@ config COMPAT_32 +Index: linux/arch/x86/Kconfig +=================================================================== +--- linux.orig/arch/x86/Kconfig ++++ linux/arch/x86/Kconfig +@@ -2884,6 +2884,14 @@ config COMPAT_32 select HAVE_UID16 select OLD_SIGSUSPEND3 @@ -58,9 +62,11 @@ Signed-off-by: Ben Hutchings config COMPAT def_bool y depends on IA32_EMULATION || X86_X32 ---- a/arch/x86/entry/common.c -+++ b/arch/x86/entry/common.c -@@ -281,12 +281,21 @@ __visible void do_syscall_64(unsigned lo +Index: linux/arch/x86/entry/common.c +=================================================================== +--- linux.orig/arch/x86/entry/common.c ++++ linux/arch/x86/entry/common.c +@@ -287,12 +287,21 @@ __visible void do_syscall_64(unsigned lo * table. The only functional difference is the x32 bit in * regs->orig_ax, which changes the behavior of some syscalls. */ @@ -85,8 +91,10 @@ Signed-off-by: Ben Hutchings syscall_return_slowpath(regs); } #endif ---- a/arch/x86/entry/syscall_64.c -+++ b/arch/x86/entry/syscall_64.c +Index: linux/arch/x86/entry/syscall_64.c +=================================================================== +--- linux.orig/arch/x86/entry/syscall_64.c ++++ linux/arch/x86/entry/syscall_64.c @@ -4,6 +4,9 @@ #include #include @@ -148,8 +156,10 @@ Signed-off-by: Ben Hutchings +arch_param_cb(x32, &x32_param_ops, NULL, 0444); + +#endif ---- a/arch/x86/include/asm/elf.h -+++ b/arch/x86/include/asm/elf.h +Index: linux/arch/x86/include/asm/elf.h +=================================================================== +--- linux.orig/arch/x86/include/asm/elf.h ++++ linux/arch/x86/include/asm/elf.h @@ -10,6 +10,7 @@ #include #include @@ -168,8 +178,10 @@ Signed-off-by: Ben Hutchings #if __USER32_DS != __USER_DS # error "The following code assumes __USER32_DS == __USER_DS" ---- a/arch/x86/include/asm/syscall.h -+++ b/arch/x86/include/asm/syscall.h +Index: linux/arch/x86/include/asm/syscall.h +=================================================================== +--- linux.orig/arch/x86/include/asm/syscall.h ++++ linux/arch/x86/include/asm/syscall.h @@ -16,6 +16,7 @@ #include #include @@ -197,8 +209,10 @@ Signed-off-by: Ben Hutchings /* * Only the low 32 bits of orig_ax are meaningful, so we return int. * This importantly ignores the high bits on 64-bit, so comparisons ---- a/arch/x86/include/asm/unistd.h -+++ b/arch/x86/include/asm/unistd.h +Index: linux/arch/x86/include/asm/unistd.h +=================================================================== +--- linux.orig/arch/x86/include/asm/unistd.h ++++ linux/arch/x86/include/asm/unistd.h @@ -6,9 +6,9 @@ diff --git a/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch index 7a7952003..87b90de80 100644 --- a/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch +++ b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch @@ -13,9 +13,11 @@ Signed-off-by: Ben Hutchings mm/memtest.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) ---- a/mm/memtest.c -+++ b/mm/memtest.c -@@ -26,6 +26,10 @@ static u64 patterns[] __initdata = { +Index: linux/mm/memtest.c +=================================================================== +--- linux.orig/mm/memtest.c ++++ linux/mm/memtest.c +@@ -27,6 +27,10 @@ static u64 patterns[] __initdata = { static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad) {