diff --git a/debian/changelog b/debian/changelog index cbce444..183af8f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +linux (6.6.57-1~tileos) bookworm; urgency=medium + + * New upstream release + + -- Aleksey Samoilov Sat, 19 Oct 2024 13:32:24 +0400 + linux (6.6.33-2~tileos) bookworm; urgency=medium * Refresh patches 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 e6eec33..1ff2cbe 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/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 @@ -912,10 +912,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); @@ -23,8 +25,10 @@ upstream submission. ret = UCODE_ERROR; if (!verify_container(fw->data, fw->size, false)) ---- 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 @@ -2398,10 +2398,9 @@ static int fore200e_load_and_start_fw(st int err; @@ -38,9 +42,11 @@ upstream submission. fw_data = (const __le32 *)firmware->data; fw_size = firmware->size / sizeof(u32); ---- a/drivers/bluetooth/ath3k.c -+++ b/drivers/bluetooth/ath3k.c -@@ -381,10 +381,8 @@ static int ath3k_load_patch(struct usb_d +Index: linux/drivers/bluetooth/ath3k.c +=================================================================== +--- linux.orig/drivers/bluetooth/ath3k.c ++++ linux/drivers/bluetooth/ath3k.c +@@ -379,10 +379,8 @@ static int ath3k_load_patch(struct usb_d le32_to_cpu(fw_version.rom_version)); ret = request_firmware(&firmware, filename, &udev->dev); @@ -52,8 +58,8 @@ upstream submission. pt_rom_version = get_unaligned_le32(firmware->data + firmware->size - 8); -@@ -444,10 +442,8 @@ static int ath3k_load_syscfg(struct usb_ - le32_to_cpu(fw_version.rom_version), clk_value, ".dfu"); +@@ -441,10 +439,8 @@ static int ath3k_load_syscfg(struct usb_ + le32_to_cpu(fw_version.rom_version), clk_value, ".dfu"); ret = request_firmware(&firmware, filename, &udev->dev); - if (ret < 0) { @@ -64,8 +70,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 @@ -173,7 +173,6 @@ static int bcm203x_probe(struct usb_inte return -ENOMEM; @@ -82,8 +90,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 @@ -639,10 +639,8 @@ static int bfusb_probe(struct usb_interf skb_queue_head_init(&data->pending_q); skb_queue_head_init(&data->completed_q); @@ -96,8 +106,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 @@ -569,10 +569,8 @@ static int bt3c_open(struct bt3c_info *i /* Load firmware */ @@ -110,9 +122,11 @@ upstream submission. err = bt3c_load_firmware(info, firmware->data, firmware->size); ---- a/drivers/bluetooth/btmrvl_sdio.c -+++ b/drivers/bluetooth/btmrvl_sdio.c -@@ -470,8 +470,6 @@ static int btmrvl_sdio_download_helper(s +Index: linux/drivers/bluetooth/btmrvl_sdio.c +=================================================================== +--- linux.orig/drivers/bluetooth/btmrvl_sdio.c ++++ linux/drivers/bluetooth/btmrvl_sdio.c +@@ -469,8 +469,6 @@ static int btmrvl_sdio_download_helper(s ret = request_firmware(&fw_helper, card->helper, &card->func->dev); if ((ret < 0) || !fw_helper) { @@ -121,7 +135,7 @@ upstream submission. ret = -ENOENT; goto done; } -@@ -570,8 +568,6 @@ static int btmrvl_sdio_download_fw_w_hel +@@ -569,8 +567,6 @@ static int btmrvl_sdio_download_fw_w_hel ret = request_firmware(&fw_firmware, card->firmware, &card->func->dev); if ((ret < 0) || !fw_firmware) { @@ -130,8 +144,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 @@ -142,11 +142,8 @@ static int dsp56k_upload(u_char __user * } err = request_firmware(&fw, fw_name, &pdev->dev); @@ -145,8 +161,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 @@ -1933,11 +1933,8 @@ static void sdma_load_firmware(const str const struct sdma_script_start_addrs *addr; unsigned short *ram_code; @@ -160,8 +178,10 @@ upstream submission. if (fw->size < sizeof(*header)) goto err_firmware; ---- 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 @@ -2579,10 +2579,8 @@ gf100_gr_load_fw(struct gf100_gr *gr, co if (ret) { snprintf(f, sizeof(f), "nouveau/%s", name); @@ -174,8 +194,10 @@ upstream submission. } blob->size = fw->size; ---- 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 @@ -820,9 +820,6 @@ int ni_init_microcode(struct radeon_devi out: @@ -186,9 +208,11 @@ 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 -@@ -1057,9 +1057,7 @@ static int r100_cp_init_microcode(struct +Index: linux/drivers/gpu/drm/radeon/r100.c +=================================================================== +--- linux.orig/drivers/gpu/drm/radeon/r100.c ++++ linux/drivers/gpu/drm/radeon/r100.c +@@ -1077,9 +1077,7 @@ static int r100_cp_init_microcode(struct } err = request_firmware(&rdev->me_fw, fw_name, rdev->dev); @@ -199,8 +223,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 @@ -2600,9 +2600,6 @@ int r600_init_microcode(struct radeon_de out: @@ -211,8 +237,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 * } @@ -225,8 +253,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 @@ -2927,10 +2927,8 @@ static int mxt_load_fw(struct device *de int ret; @@ -239,8 +269,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 @@ -379,11 +379,8 @@ setup_instance(struct sfax_hw *card) card->isar.owner = THIS_MODULE; @@ -254,8 +286,10 @@ upstream submission. if (debug & DEBUG_HW) pr_notice("%s: got firmware %zu bytes\n", card->name, firmware->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 @@ -1152,10 +1152,8 @@ static int smscore_load_firmware_from_fi return -EINVAL; @@ -268,8 +302,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/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 @@ -1049,14 +1049,8 @@ static int af9013_download_firmware(stru /* Request the firmware, will block and timeout */ @@ -286,8 +322,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; @@ -301,8 +339,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 @@ -479,13 +479,8 @@ static int cx24116_firmware_ondemand(str __func__, CX24116_DEFAULT_FIRMWARE); ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, @@ -318,8 +358,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 @@ -891,10 +891,8 @@ static int load_firmware(struct drxd_sta { const struct firmware *fw; @@ -332,8 +374,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 @@ -6228,10 +6228,6 @@ static void load_firmware_cb(const struc dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded"); @@ -345,8 +389,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 @@ -348,12 +348,8 @@ static int ds3000_firmware_ondemand(stru DS3000_DEFAULT_FIRMWARE); ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, @@ -361,8 +407,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 @@ -861,12 +861,8 @@ static int nxt2002_init(struct dvb_front __func__, NXT2002_DEFAULT_FIRMWARE); ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, @@ -391,8 +439,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 @@ -326,10 +326,8 @@ static int or51132_set_parameters(struct printk("or51132: Waiting for firmware upload(%s)...\n", fwname); @@ -405,8 +455,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 @@ -361,11 +361,8 @@ static int or51211_init(struct dvb_front OR51211_DEFAULT_FIRMWARE); ret = config->request_firmware(fe, &fw, @@ -420,8 +472,10 @@ upstream submission. ret = or51211_load_firmware(fe, fw); release_firmware(fw); ---- 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 @@ -525,10 +525,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); @@ -434,9 +488,11 @@ 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 -@@ -483,8 +483,6 @@ static int tda10048_firmware_upload(stru +Index: linux/drivers/media/dvb-frontends/tda10048.c +=================================================================== +--- linux.orig/drivers/media/dvb-frontends/tda10048.c ++++ linux/drivers/media/dvb-frontends/tda10048.c +@@ -486,8 +486,6 @@ static int tda10048_firmware_upload(stru ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, state->i2c->dev.parent); if (ret) { @@ -445,8 +501,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 @@ -388,10 +388,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); @@ -467,8 +525,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 @@ -838,12 +838,8 @@ static int tda10071_init(struct dvb_fron /* request the firmware, this will block and timeout */ @@ -483,8 +543,10 @@ upstream submission. /* init */ for (i = 0; i < ARRAY_SIZE(tab2); i++) { ---- 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 @@ -113,10 +113,8 @@ int cx25840_loadfw(struct i2c_client *cl if (is_cx231xx(state) && max_buf_size > 16) max_buf_size = 16; @@ -497,8 +559,10 @@ upstream submission. start_fw_load(client); ---- 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 @@ -3901,10 +3901,8 @@ static int pvr_boot(struct bttv *btv) int rc; @@ -511,8 +575,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/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 @@ -70,10 +70,8 @@ int cx18_av_loadfw(struct cx18 *cx) int i; int retries1 = 0; @@ -525,8 +591,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 @@ -127,9 +127,7 @@ static int yuan_mpc718_mt352_reqfw(struc int ret; @@ -538,8 +606,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 @@ -92,11 +92,8 @@ static int load_cpu_fw_direct(const char u32 __iomem *dst = (u32 __iomem *)mem; const u32 *src; @@ -562,8 +632,10 @@ upstream submission. cx18_setup_page(cx, 0); return -ENOMEM; } ---- 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 @@ -920,12 +920,8 @@ static int cx23885_load_firmware(struct retval = request_firmware(&firmware, CX23885_FIRM_IMAGE_NAME, &dev->pci->dev); @@ -578,8 +650,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 @@ -2480,10 +2480,7 @@ void cx23885_card_setup(struct cx23885_d cinfo.rev, filename); @@ -592,8 +666,10 @@ upstream submission. altera_init(&netup_config, fw); release_firmware(fw); ---- 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 @@ -462,12 +462,8 @@ static int blackbird_load_firmware(struc retval = request_firmware(&firmware, CX2341X_FIRM_ENC_FILENAME, &dev->pci->dev); @@ -608,8 +684,10 @@ upstream submission. if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) { pr_err("Firmware size mismatch (have %zd, expected %d)\n", ---- 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 @@ -68,8 +68,6 @@ retry: release_firmware(fw); return size; @@ -619,8 +697,10 @@ upstream submission. return -ENOMEM; } ---- 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 @@ -1236,19 +1236,14 @@ static int ngene_load_firm(struct ngene break; } @@ -642,8 +722,10 @@ upstream submission. ngene_fw = (u8 *) fw->data; err = ngene_command_load_firmware(dev, ngene_fw, size); } ---- 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 @@ -405,11 +405,8 @@ int saa7164_downloadfirmware(struct saa7 __func__, fwname); @@ -657,8 +739,10 @@ upstream submission. printk(KERN_INFO "%s() firmware read %zu bytes.\n", __func__, fw->size); ---- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c -+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c +Index: linux/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c +=================================================================== +--- linux.orig/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c ++++ linux/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c @@ -65,10 +65,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc } } @@ -671,8 +755,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/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 @@ -502,11 +502,8 @@ static int wl1273_fm_upload_firmware_pat * Uploading the firmware patch is not always necessary, * so we only print an info message. @@ -686,8 +772,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 @@ -1240,10 +1240,8 @@ static int fm_download_firmware(struct f ret = request_firmware(&fw_entry, fw_name, @@ -700,9 +788,11 @@ upstream submission. fmdbg("Firmware(%s) length : %zu bytes\n", fw_name, fw_entry->size); fw_data = (void *)fw_entry->data; ---- a/drivers/media/tuners/xc2028.c -+++ b/drivers/media/tuners/xc2028.c -@@ -1366,7 +1366,6 @@ static void load_firmware_cb(const struc +Index: linux/drivers/media/tuners/xc2028.c +=================================================================== +--- linux.orig/drivers/media/tuners/xc2028.c ++++ linux/drivers/media/tuners/xc2028.c +@@ -1373,7 +1373,6 @@ static void load_firmware_cb(const struc tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error"); if (!fw) { @@ -710,8 +800,10 @@ upstream submission. priv->state = XC2028_NODEV; return; } ---- 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 @@ -983,11 +983,6 @@ static int cx231xx_load_firmware(struct dev->dev); @@ -724,8 +816,10 @@ upstream submission. vfree(p_current_fw); vfree(p_buffer); return retval; ---- 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 @@ -2401,12 +2401,9 @@ static int stk9090m_frontend_attach(stru dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80); @@ -741,7 +835,7 @@ upstream submission. stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size; stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data; -@@ -2471,12 +2468,9 @@ static int nim9090md_frontend_attach(str +@@ -2476,12 +2473,9 @@ static int nim9090md_frontend_attach(str msleep(20); dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); @@ -756,8 +850,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 @@ -90,13 +90,9 @@ int dvb_usb_download_firmware(struct usb int ret; const struct firmware *fw = NULL; @@ -774,8 +870,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 @@ -131,19 +131,14 @@ static int gp8psk_load_bcm4500fw(struct const u8 *ptr; u8 *buf; @@ -797,8 +895,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 @@ -459,8 +459,6 @@ static int opera1_xilinx_load_firmware(s info("start downloading fpga firmware %s",filename); @@ -808,8 +908,10 @@ upstream submission. return ret; } else { p = kmalloc(fw->size, GFP_KERNEL); ---- 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 @@ -84,10 +84,8 @@ static int go7007_load_encoder(struct go u16 intr_val, intr_data; @@ -822,8 +924,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 @@ -1565,12 +1565,8 @@ int go7007_construct_fw_image(struct go7 default: return -1; @@ -838,8 +942,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 @@ -67,11 +67,8 @@ static int go7007_loader_probe(struct us dev_info(&interface->dev, "loading firmware %s\n", fw1); @@ -866,8 +972,10 @@ upstream submission. ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); release_firmware(fw); if (0 != ret) { ---- 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 @@ -230,10 +230,8 @@ static int sd_init(struct gspca_dev *gsp ret = request_ihex_firmware(&fw, VICAM_FIRMWARE, @@ -880,8 +988,10 @@ upstream submission. firmware_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!firmware_buf) { ---- 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 @@ -1370,25 +1370,6 @@ static int pvr2_locate_firmware(struct p "request_firmware fatal error with code=%d",ret); return ret; @@ -908,8 +1018,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 @@ -2276,10 +2276,8 @@ static int s2255_probe(struct usb_interf } /* load the first chunk */ @@ -922,8 +1034,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/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 @@ -282,10 +282,8 @@ static int ttusb_boot_dsp(struct ttusb * err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin", @@ -936,8 +1050,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 @@ -1317,11 +1317,8 @@ static int ttusb_dec_boot_dsp(struct ttu dprintk("%s\n", __func__); @@ -951,8 +1067,10 @@ upstream submission. firmware = fw_entry->data; firmware_size = fw_entry->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 @@ -288,11 +288,8 @@ static long download_firmware(struct kim request_firmware(&kim_gdata->fw_entry, bts_scr_name, &kim_gdata->kim_pdev->dev); @@ -966,8 +1084,10 @@ upstream submission. ptr = (void *)kim_gdata->fw_entry->data; len = kim_gdata->fw_entry->size; /* ---- 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 @@ -226,11 +226,8 @@ int softing_load_app_fw(const char *file int8_t type_end = 0, type_entrypoint = 0; @@ -981,8 +1101,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 @@ -1279,11 +1279,8 @@ typhoon_request_firmware(struct typhoon return 0; @@ -996,8 +1118,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 @@ -1004,11 +1004,8 @@ static int netdev_open(struct net_device #endif /* VLAN_SUPPORT */ @@ -1024,8 +1148,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/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 @@ -1051,11 +1051,8 @@ static int slic_load_rcvseq_firmware(str file = (sdev->model == SLIC_MODEL_OASIS) ? SLIC_RCV_FIRMWARE_OASIS : SLIC_RCV_FIRMWARE_MOJAVE; @@ -1051,8 +1177,10 @@ upstream submission. /* Do an initial sanity check concerning firmware size now. A further * check follows below. */ ---- 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 @@ -2877,11 +2877,8 @@ static int ace_load_firmware(struct net_ fw_name = "acenic/tg1.bin"; @@ -1066,8 +1194,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 @@ -3710,16 +3710,13 @@ static int bnx2_request_uncached_firmwar } @@ -1088,9 +1218,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/tg3.c -+++ b/drivers/net/ethernet/broadcom/tg3.c -@@ -11394,11 +11394,8 @@ static int tg3_request_firmware(struct t +Index: linux/drivers/net/ethernet/broadcom/tg3.c +=================================================================== +--- linux.orig/drivers/net/ethernet/broadcom/tg3.c ++++ linux/drivers/net/ethernet/broadcom/tg3.c +@@ -11412,11 +11412,8 @@ static int tg3_request_firmware(struct t { const struct tg3_firmware_hdr *fw_hdr; @@ -1103,8 +1235,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 @@ -24,10 +24,8 @@ cna_read_firmware(struct pci_dev *pdev, const struct firmware *fw; u32 n; @@ -1117,8 +1251,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 @@ -1035,12 +1035,8 @@ int t3_get_edc_fw(struct cphy *phy, int fw_name = get_edc_fw_name(edc_idx); if (fw_name) @@ -1159,8 +1295,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 @@ -1262,9 +1262,6 @@ static const struct firmware *e100_reque if (err) { @@ -1171,8 +1309,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 @@ -580,8 +580,6 @@ static int myri10ge_load_hotplug_firmwar unsigned i; @@ -1182,8 +1322,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 @@ -651,10 +651,8 @@ static int osi_load_firmware(struct pcmc int i, err; @@ -1196,8 +1338,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 @@ -792,11 +792,8 @@ static void cas_saturn_firmware_init(str return; @@ -1211,8 +1355,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 @@ -357,11 +357,8 @@ static unsigned char *add_mcs(unsigned c } err = request_firmware(&fw, fw_name[predef], &pdev->dev); @@ -1226,8 +1372,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 @@ -305,10 +305,8 @@ static int kaweth_download_firmware(stru int ret; @@ -1240,9 +1388,11 @@ upstream submission. if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) { dev_err(&kaweth->intf->dev, "Firmware too big: %zu\n", ---- a/drivers/net/wireless/ath/ath9k/hif_usb.c -+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c -@@ -1250,9 +1250,6 @@ static void ath9k_hif_usb_firmware_cb(co +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 +@@ -1248,9 +1248,6 @@ static void ath9k_hif_usb_firmware_cb(co if (!ret) return; @@ -1252,8 +1402,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; } @@ -1262,8 +1414,10 @@ upstream submission. carl9170_usb_firmware_failed(ar); } ---- 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 @@ -1616,13 +1616,8 @@ static struct fwentry *at76_load_firmwar at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname); @@ -1279,8 +1433,10 @@ upstream submission. at76_dbg(DBG_FW, "got it."); fwh = (struct at76_fw_header *)(fwe->fw->data); ---- 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 @@ -3892,12 +3892,8 @@ static int reset_atmel_card(struct net_d strcpy(priv->firmware_id, "atmel_at76c502.bin"); } @@ -1295,8 +1451,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 @@ -2245,19 +2245,8 @@ int b43_do_request_fw(struct b43_request } err = request_firmware(&ctx->blob, ctx->fwname, @@ -1318,8 +1476,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 @@ -1524,11 +1524,8 @@ static int do_request_fw(struct b43legac } else { err = request_firmware(fw, path, dev->dev->dev); @@ -1333,8 +1493,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 @@ -376,19 +376,13 @@ static int brcms_request_fw(struct brcms sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i], UCODE_LOADER_API_VER); @@ -1357,8 +1519,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 @@ -8359,12 +8359,8 @@ static int ipw2100_get_firmware(struct i rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev); @@ -1373,8 +1537,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 @@ -3350,10 +3350,8 @@ static int ipw_get_fw(struct ipw_priv *p /* ask firmware_class module to get the boot firmware off disk */ @@ -1387,8 +1553,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 @@ -1829,7 +1829,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); @@ -1397,9 +1565,11 @@ 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 -@@ -241,8 +241,6 @@ static int iwl_request_firmware(struct i +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 +@@ -242,8 +242,6 @@ static int iwl_request_firmware(struct i drv->fw_index--; if (drv->fw_index < cfg->ucode_api_min) { @@ -1408,8 +1578,10 @@ upstream submission. if (cfg->ucode_api_min == cfg->ucode_api_max) { IWL_ERR(drv, "%s-%d is required\n", fw_name_pre, cfg->ucode_api_max); ---- 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); @@ -1442,8 +1614,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 @@ -1708,7 +1708,6 @@ static int ezusb_probe(struct usb_interf if (ezusb_firmware_download(upriv, &firmware) < 0) goto error; @@ -1452,8 +1626,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 @@ -502,7 +502,6 @@ static void p54p_firmware_step2(const st int err; @@ -1462,8 +1638,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 @@ -158,10 +158,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); @@ -1476,8 +1654,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 @@ -929,7 +929,6 @@ static void p54u_load_firmware_cb(const err = p54u_start_ops(priv); } else { @@ -1486,8 +1666,10 @@ upstream submission. } complete(&priv->fw_wait_load); ---- 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 @@ -820,8 +820,6 @@ static int if_usb_prog_firmware(struct l kernel_param_lock(THIS_MODULE); ret = request_firmware(&cardp->fw, lbtf_fw_name, &cardp->udev->dev); @@ -1497,8 +1679,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 @@ -549,11 +549,8 @@ static int _mwifiex_fw_dpc(const struct struct wireless_dev *wdev; struct completion *fw_done = adapter->fw_done; @@ -1512,8 +1696,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 @@ -5736,16 +5736,12 @@ static int mwl8k_firmware_load_success(s static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) { @@ -1557,8 +1743,10 @@ upstream submission. if (nowait) return rc; ---- 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 @@ -38,10 +38,8 @@ static int rt2x00lib_request_firmware(st rt2x00_info(rt2x00dev, "Loading firmware file '%s'\n", fw_name); @@ -1571,8 +1759,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 @@ -88,7 +88,6 @@ static void rtl_fw_do_work(const struct if (!err) goto found_alt; @@ -1581,8 +1771,10 @@ upstream submission. rtlpriv->max_fw_size = 0; goto exit; } ---- 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 @@ -63,13 +63,11 @@ static void rtl92se_fw_cb(const struct f struct ieee80211_hw *hw = context; struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -1597,8 +1789,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 @@ -57,10 +57,8 @@ static int wl1251_fetch_firmware(struct ret = request_firmware(&fw, WL1251_FW_NAME, dev); @@ -1623,8 +1817,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 @@ -756,10 +756,8 @@ static int wl12xx_fetch_firmware(struct ret = request_firmware(&fw, fw_name, wl->dev); @@ -1637,8 +1833,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 @@ -62,8 +62,6 @@ static int zd1201_fw_upload(struct usb_d err = request_firmware(&fw_entry, fwfile, &dev->dev); @@ -1648,8 +1846,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 @@ -107,16 +107,9 @@ static void int_urb_complete(struct urb static int request_fw_file( const struct firmware **fw, const char *name, struct device *device) @@ -1668,8 +1868,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 @@ -4054,8 +4054,6 @@ static int AscInitAsc1000Driver(ASC_DVC_ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); @@ -1706,8 +1908,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 @@ -370,8 +370,6 @@ static ssize_t asd_store_update_bios(str filename_ptr, &asd_ha->pcidev->dev); @@ -1717,8 +1921,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 @@ -1302,11 +1302,8 @@ int asd_init_seqs(struct asd_ha_struct * err = asd_request_firmware(asd_ha); @@ -1732,8 +1938,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 @@ -1737,7 +1737,6 @@ bfad_read_firmware(struct pci_dev *pdev, const struct firmware *fw; @@ -1742,8 +1950,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 @@ -4009,10 +4009,8 @@ static ssize_t ipr_store_update_fw(struc if (endline) *endline = '\0'; @@ -1756,8 +1966,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 @@ -842,9 +842,6 @@ static ssize_t pm8001_store_update_fw(st pm8001_ha->dev); @@ -1768,8 +1980,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 @@ -1504,8 +1504,6 @@ qla1280_request_firmware(struct scsi_qla err = request_firmware(&fw, fwname, &ha->pdev->dev); @@ -1779,9 +1993,11 @@ upstream submission. fw = ERR_PTR(err); goto unlock; } ---- a/drivers/scsi/qla2xxx/qla_init.c -+++ b/drivers/scsi/qla2xxx/qla_init.c -@@ -8560,10 +8560,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 +@@ -8610,10 +8610,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -1792,7 +2008,7 @@ upstream submission. return QLA_FUNCTION_FAILED; } -@@ -8666,9 +8662,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * +@@ -8716,9 +8712,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * blob = qla2x00_request_firmware(vha); if (!blob) { @@ -1802,8 +2018,10 @@ upstream submission. return QLA_FUNCTION_FAILED; } ---- 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 @@ -2427,11 +2427,8 @@ try_blob_fw: /* Load firmware blob. */ @@ -1817,8 +2035,10 @@ 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 +Index: linux/drivers/scsi/qla2xxx/qla_os.c +=================================================================== +--- linux.orig/drivers/scsi/qla2xxx/qla_os.c ++++ linux/drivers/scsi/qla2xxx/qla_os.c @@ -7696,8 +7696,6 @@ qla2x00_request_firmware(scsi_qla_host_t goto out; @@ -1828,8 +2048,10 @@ upstream submission. blob->fw = NULL; blob = NULL; } ---- 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 @@ -486,11 +486,8 @@ static int qlogicpti_load_firmware(struc int i, timeout; @@ -1843,8 +2065,10 @@ upstream submission. if (fw->size % 2) { printk(KERN_ERR "Bogus length %zu in image \"%s\"\n", fw->size, fwname); ---- 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 @@ -240,10 +240,8 @@ bool init_firmware(struct net_device *de */ if (rst_opt == OPT_SYSTEM_RESET) { @@ -1857,8 +2081,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 @@ -72,8 +72,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, @@ -1868,8 +2094,10 @@ upstream submission. return rc; } MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); ---- a/drivers/staging/vt6656/main_usb.c -+++ b/drivers/staging/vt6656/main_usb.c +Index: linux/drivers/staging/vt6656/main_usb.c +=================================================================== +--- linux.orig/drivers/staging/vt6656/main_usb.c ++++ linux/drivers/staging/vt6656/main_usb.c @@ -107,11 +107,8 @@ static int vnt_download_firmware(struct dev_dbg(dev, "---->Download firmware\n"); @@ -1883,8 +2111,10 @@ upstream submission. for (ii = 0; ii < fw->size; ii += FIRMWARE_CHUNK_SIZE) { length = min_t(int, fw->size - ii, FIRMWARE_CHUNK_SIZE); ---- 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 @@ -1154,13 +1154,8 @@ static int moxa_init_board(struct moxa_b } @@ -1900,8 +2130,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 @@ -621,7 +621,6 @@ static void load_code(struct icom_port * /* Load Call Setup into Adapter */ @@ -1926,8 +2158,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 @@ -1149,10 +1149,8 @@ static void uart_firmware_cont(const str struct device *dev = context; int ret; @@ -1940,8 +2174,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 @@ -1084,8 +1084,6 @@ static int cxacru_find_firmware(struct c return -ENOENT; } @@ -1951,8 +2187,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 @@ -606,10 +606,8 @@ static void uea_upload_pre_firmware(cons int ret, size; @@ -2027,8 +2265,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); @@ -2054,8 +2294,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 @@ -64,12 +64,8 @@ static int ezusb_ihex_firmware_download( const struct ihex_binrec *record; @@ -2070,8 +2312,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; @@ -2080,8 +2324,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 @@ -332,11 +332,8 @@ static void update_edgeport_E2PROM(struc response = request_ihex_firmware(&fw, fw_name, @@ -2095,8 +2341,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 @@ -1009,8 +1009,6 @@ static int download_fw(struct edgeport_s status = request_firmware(&fw, fw_name, dev); @@ -2106,8 +2354,10 @@ upstream submission. return status; } ---- a/drivers/usb/serial/ti_usb_3410_5052.c -+++ b/drivers/usb/serial/ti_usb_3410_5052.c +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 @@ -1635,10 +1635,8 @@ static int ti_download_firmware(struct t } @@ -2120,8 +2370,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; @@ -2134,8 +2386,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 @@ -621,10 +621,8 @@ static int metronomefb_probe(struct plat a) request the waveform file from userspace b) process waveform and decode into metromem */ @@ -2148,8 +2402,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 @@ -58,10 +58,8 @@ int snd_vx_setup_firmware(struct vx_core if (! fw_files[chip->type][i]) continue; @@ -2162,8 +2418,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 @@ -376,15 +376,11 @@ static int upload_dsp_code(struct snd_ca outb(HPBLKSEL_0, chip->io + HP_BLKS); @@ -2182,8 +2440,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 @@ -520,10 +520,8 @@ static int sscape_upload_bootblock(struc int ret; @@ -2209,8 +2469,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 @@ -1970,10 +1970,8 @@ wavefront_download_firmware (snd_wavefro const struct firmware *firmware; @@ -2223,8 +2485,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 @@ -35,8 +35,6 @@ short hpi_dsp_code_open(u32 adapter, voi err = request_firmware(&firmware, fw_name, &dev->dev); @@ -2234,8 +2498,10 @@ upstream submission. goto error1; } if (firmware->size < sizeof(header)) { ---- 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 @@ -3196,11 +3196,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46 #ifdef CONFIG_SND_CS46XX_NEW_DSP for (i = 0; i < CS46XX_DSP_MODULES; i++) { @@ -2249,8 +2515,10 @@ upstream submission. err = cs46xx_dsp_load_module(chip, chip->modules[i]); if (err < 0) { dev_err(chip->card->dev, "image download error [%s]\n", ---- 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 @@ -48,11 +48,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); @@ -2264,9 +2532,11 @@ 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 -@@ -864,10 +864,8 @@ static int snd_emu10k1_emu1010_init(stru +Index: linux/sound/pci/emu10k1/emu10k1_main.c +=================================================================== +--- linux.orig/sound/pci/emu10k1/emu10k1_main.c ++++ linux/sound/pci/emu10k1/emu10k1_main.c +@@ -881,10 +881,8 @@ static int snd_emu10k1_emu1010_init(stru dev_info(emu->card->dev, "emu1010: EMU_HANA_ID = 0x%x\n", reg); err = snd_emu1010_load_firmware(emu, 0, &emu->firmware); @@ -2278,9 +2548,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 -@@ -2040,8 +2040,6 @@ 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 +@@ -2042,8 +2042,6 @@ static void azx_firmware_cb(const struct if (fw) chip->fw = fw; @@ -2289,8 +2561,10 @@ upstream submission. if (!chip->disabled) { /* continue probing */ azx_probe_continue(chip); ---- 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 @@ -2232,7 +2232,6 @@ static int snd_korg1212_create(struct sn err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev); @@ -2299,8 +2573,10 @@ upstream submission. 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 @@ -566,11 +566,8 @@ int snd_mixart_setup_firmware(struct mix for (i = 0; i < 3; i++) { @@ -2314,8 +2590,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 @@ -375,12 +375,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg if (!fw_files[fw_set][i]) continue; @@ -2330,8 +2608,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 @@ -1222,11 +1222,8 @@ static int try_to_load_firmware(struct c if (!chip->fw_entry) { err = request_firmware(&chip->fw_entry, "riptide.hex", @@ -2345,9 +2625,11 @@ 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 -@@ -5171,11 +5171,8 @@ static int hdsp_request_fw_loader(struct +Index: linux/sound/pci/rme9652/hdsp.c +=================================================================== +--- linux.orig/sound/pci/rme9652/hdsp.c ++++ linux/sound/pci/rme9652/hdsp.c +@@ -5173,11 +5173,8 @@ static int hdsp_request_fw_loader(struct return -EINVAL; } @@ -2360,8 +2642,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 } @@ -2374,8 +2658,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 @@ -203,8 +203,6 @@ static int usb6fire_fw_ezusb_upload( ret = request_firmware(&fw, fwname, &device->dev); if (ret < 0) { 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 092a744..4e8a9fa 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 @@ -25,9 +25,11 @@ format to detect missing firmware. drivers/base/firmware_loader/main.c | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) ---- a/drivers/base/firmware_loader/fallback.c -+++ b/drivers/base/firmware_loader/fallback.c -@@ -558,7 +558,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 +@@ -135,7 +135,7 @@ static int fw_load_from_user_helper(stru if (opt_flags & FW_OPT_NOWAIT) { timeout = usermodehelper_read_lock_wait(timeout); if (!timeout) { @@ -36,9 +38,11 @@ format to detect missing firmware. name); return -EBUSY; } ---- a/drivers/base/firmware_loader/main.c -+++ b/drivers/base/firmware_loader/main.c -@@ -535,18 +535,15 @@ 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 +@@ -550,18 +550,15 @@ fw_get_filesystem_firmware(struct device file_size_ptr, READING_FIRMWARE); if (rc < 0) { @@ -61,7 +65,7 @@ format to detect missing firmware. if (decompress) { dev_dbg(device, "f/w decompressing %s\n", fw_priv->fw_name); -@@ -559,8 +556,6 @@ fw_get_filesystem_firmware(struct device +@@ -574,8 +571,6 @@ fw_get_filesystem_firmware(struct device continue; } } else { @@ -70,7 +74,7 @@ format to detect missing firmware. if (!fw_priv->data) fw_priv->data = buffer; fw_priv->size = size; -@@ -570,6 +565,10 @@ fw_get_filesystem_firmware(struct device +@@ -585,6 +580,10 @@ fw_get_filesystem_firmware(struct device } __putname(path); diff --git a/debian/patches/bugfix/alpha/alpha-fix-missing-symbol-versions-for-str-n-cat-cpy.patch b/debian/patches/bugfix/alpha/alpha-fix-missing-symbol-versions-for-str-n-cat-cpy.patch index 3da6988..aac5941 100644 --- a/debian/patches/bugfix/alpha/alpha-fix-missing-symbol-versions-for-str-n-cat-cpy.patch +++ b/debian/patches/bugfix/alpha/alpha-fix-missing-symbol-versions-for-str-n-cat-cpy.patch @@ -23,10 +23,10 @@ Signed-off-by: Ben Hutchings create mode 100644 arch/alpha/lib/stycpy.S create mode 100644 arch/alpha/lib/styncpy.S -diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile -index 1cc74f7b50ef..8f1c32a25a40 100644 ---- a/arch/alpha/lib/Makefile -+++ b/arch/alpha/lib/Makefile +Index: linux/arch/alpha/lib/Makefile +=================================================================== +--- linux.orig/arch/alpha/lib/Makefile ++++ linux/arch/alpha/lib/Makefile @@ -45,17 +45,3 @@ AFLAGS___remlu.o = -DREM -DINTSIZE $(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \ $(src)/$(ev6-y)divide.S FORCE @@ -45,11 +45,10 @@ index 1cc74f7b50ef..8f1c32a25a40 100644 -$(obj)/styncpy.o: $(obj)/strncpy.o $(obj)/$(ev67-y)strncat.o \ - $(obj)/$(ev6-y)stxncpy.o FORCE - $(call if_changed,ld) -diff --git a/arch/alpha/lib/stycpy.S b/arch/alpha/lib/stycpy.S -new file mode 100644 -index 000000000000..b4376834c91f +Index: linux/arch/alpha/lib/stycpy.S +=================================================================== --- /dev/null -+++ b/arch/alpha/lib/stycpy.S ++++ linux/arch/alpha/lib/stycpy.S @@ -0,0 +1,8 @@ +#include "strcpy.S" +#ifdef CONFIG_ALPHA_EV6 @@ -59,11 +58,10 @@ index 000000000000..b4376834c91f +#include "strcat.S" +#include "stxcpy.S" +#endif -diff --git a/arch/alpha/lib/styncpy.S b/arch/alpha/lib/styncpy.S -new file mode 100644 -index 000000000000..c393f816ff98 +Index: linux/arch/alpha/lib/styncpy.S +=================================================================== --- /dev/null -+++ b/arch/alpha/lib/styncpy.S ++++ linux/arch/alpha/lib/styncpy.S @@ -0,0 +1,8 @@ +#include "strncpy.S" +#ifdef CONFIG_ALPHA_EV6 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 cd5b36f..768b46f 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,11 +17,11 @@ Signed-off-by: Ben Hutchings arch/arm/mm/flush.c | 1 + 1 file changed, 1 insertion(+) -Index: debian-kernel/arch/arm/mm/flush.c +Index: linux/arch/arm/mm/flush.c =================================================================== ---- debian-kernel.orig/arch/arm/mm/flush.c -+++ debian-kernel/arch/arm/mm/flush.c -@@ -292,6 +292,7 @@ void __sync_icache_dcache(pte_t pteval) +--- linux.orig/arch/arm/mm/flush.c ++++ linux/arch/arm/mm/flush.c +@@ -310,6 +310,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 7a866fd..d12e5ea 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 @@ -28,7 +28,7 @@ Index: linux/arch/arm64/kernel/acpi.c =================================================================== --- linux.orig/arch/arm64/kernel/acpi.c +++ linux/arch/arm64/kernel/acpi.c -@@ -32,6 +32,8 @@ +@@ -34,6 +34,8 @@ #include #include @@ -37,7 +37,7 @@ Index: linux/arch/arm64/kernel/acpi.c int acpi_noirq = 1; /* skip ACPI IRQ initialization */ int acpi_disabled = 1; EXPORT_SYMBOL(acpi_disabled); -@@ -178,6 +180,33 @@ out: +@@ -173,6 +175,33 @@ out: } /* @@ -71,7 +71,7 @@ Index: linux/arch/arm64/kernel/acpi.c * 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 -@@ -232,11 +261,14 @@ done: +@@ -226,11 +255,14 @@ done: if (acpi_disabled) { if (earlycon_acpi_spcr_enable) early_init_dt_scan_chosen_stdout(); 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 a00a2a4..87c25d8 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 @@ -28,7 +28,7 @@ Index: linux/arch/powerpc/boot/Makefile =================================================================== --- linux.orig/arch/powerpc/boot/Makefile +++ linux/arch/powerpc/boot/Makefile -@@ -70,7 +70,7 @@ BOOTCFLAGS += -fno-stack-protector +@@ -99,7 +99,7 @@ BOOTCFLAGS += -fno-stack-protector endif BOOTCFLAGS += -include $(srctree)/include/linux/compiler_attributes.h 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 31eb2eb..c142dfd 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 @@ -53,7 +53,7 @@ Index: linux/arch/sh/boot/compressed/Makefile =================================================================== --- linux.orig/arch/sh/boot/compressed/Makefile +++ linux/arch/sh/boot/compressed/Makefile -@@ -36,7 +36,7 @@ endif +@@ -29,7 +29,7 @@ endif ccflags-remove-$(CONFIG_MCOUNT) += -pg @@ -62,7 +62,7 @@ Index: linux/arch/sh/boot/compressed/Makefile -T $(obj)/../../kernel/vmlinux.lds KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING -@@ -60,7 +60,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b +@@ -53,7 +53,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b OBJCOPYFLAGS += -R .empty_zero_page 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 f9baa7b..e8727ef 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/viafb-autoload-on-olpc-xo1.5-only.patch b/debian/patches/bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch index 62b4eb7..8ec918a 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 -@@ -695,7 +695,14 @@ static const struct pci_device_id via_pc +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 +@@ -700,7 +700,14 @@ static const struct pci_device_id via_pc .driver_data = UNICHROME_VX900 }, { } }; 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 205510d..f6c2820 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 @@ -18,7 +18,7 @@ Index: linux/kernel/fork.c =================================================================== --- linux.orig/kernel/fork.c +++ linux/kernel/fork.c -@@ -108,6 +108,11 @@ +@@ -110,6 +110,11 @@ #define CREATE_TRACE_POINTS #include @@ -30,7 +30,7 @@ Index: linux/kernel/fork.c /* * Minimum number of threads to boot the kernel -@@ -2008,6 +2013,10 @@ static __latent_entropy struct task_stru +@@ -2257,6 +2262,10 @@ __latent_entropy struct task_struct *cop if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -41,7 +41,7 @@ Index: linux/kernel/fork.c /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -3166,6 +3175,12 @@ int ksys_unshare(unsigned long unshare_f +@@ -3409,6 +3418,12 @@ int ksys_unshare(unsigned long unshare_f if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -58,7 +58,7 @@ Index: linux/kernel/sysctl.c =================================================================== --- linux.orig/kernel/sysctl.c +++ linux/kernel/sysctl.c -@@ -136,6 +136,10 @@ static enum sysctl_writes_mode sysctl_wr +@@ -135,6 +135,10 @@ static enum sysctl_writes_mode sysctl_wr int sysctl_legacy_va_layout; #endif @@ -69,7 +69,7 @@ Index: linux/kernel/sysctl.c #endif /* CONFIG_SYSCTL */ /* -@@ -1659,6 +1663,15 @@ static struct ctl_table kern_table[] = { +@@ -1623,6 +1627,15 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = proc_dointvec, }, 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 3b33f84..6f82f8a 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 +@@ -1137,4 +1137,4 @@ module_init(af_ieee802154_init); module_exit(af_ieee802154_remove); MODULE_LICENSE("GPL"); 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 abc4cc2..cf92957 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 @@ -17,9 +17,11 @@ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git/commit/?id fs/btrfs/disk-io.c | 8 ++++++++ 1 file changed, 8 insertions(+) ---- a/fs/btrfs/disk-io.c -+++ b/fs/btrfs/disk-io.c -@@ -3832,6 +3832,15 @@ int __cold open_ctree(struct super_block *sb, +Index: linux/fs/btrfs/disk-io.c +=================================================================== +--- linux.orig/fs/btrfs/disk-io.c ++++ linux/fs/btrfs/disk-io.c +@@ -3503,6 +3503,15 @@ int __cold open_ctree(struct super_block 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 70b4468..fd49184 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,9 +11,11 @@ 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 -@@ -53,11 +53,7 @@ +Index: linux/drivers/net/usb/cdc_ncm.c +=================================================================== +--- linux.orig/drivers/net/usb/cdc_ncm.c ++++ linux/drivers/net/usb/cdc_ncm.c +@@ -54,11 +54,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 8358318..212471e 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 +@@ -1096,8 +1096,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 +@@ -1172,8 +1172,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/fanotify-taint-on-use-of-fanotify_access_permissions.patch b/debian/patches/debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch index 88a2b15..8bebe21 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 -@@ -1661,6 +1661,14 @@ static int do_fanotify_mark(int fanotify +Index: linux/fs/notify/fanotify/fanotify_user.c +=================================================================== +--- linux.orig/fs/notify/fanotify/fanotify_user.c ++++ linux/fs/notify/fanotify/fanotify_user.c +@@ -1732,6 +1732,14 @@ static int do_fanotify_mark(int fanotify umask = FANOTIFY_EVENT_FLAGS; } 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 eab0e78..254db1e 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,9 +7,11 @@ 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 -@@ -1020,8 +1020,8 @@ static inline void put_link(struct namei +Index: linux/fs/namei.c +=================================================================== +--- linux.orig/fs/namei.c ++++ linux/fs/namei.c +@@ -1028,8 +1028,8 @@ static inline void put_link(struct namei path_put(&last->link); } diff --git a/debian/patches/debian/hamradio-disable-auto-loading-as-mitigation-against-local-exploits.patch b/debian/patches/debian/hamradio-disable-auto-loading-as-mitigation-against-local-exploits.patch index b532d00..9763150 100644 --- a/debian/patches/debian/hamradio-disable-auto-loading-as-mitigation-against-local-exploits.patch +++ b/debian/patches/debian/hamradio-disable-auto-loading-as-mitigation-against-local-exploits.patch @@ -13,9 +13,11 @@ maintained or widely used. Therefore disable auto-loading. Signed-off-by: Ben Hutchings --- ---- a/net/ax25/af_ax25.c -+++ b/net/ax25/af_ax25.c -@@ -1986,7 +1986,7 @@ module_init(ax25_init); +Index: linux/net/ax25/af_ax25.c +=================================================================== +--- linux.orig/net/ax25/af_ax25.c ++++ linux/net/ax25/af_ax25.c +@@ -2066,7 +2066,7 @@ module_init(ax25_init); MODULE_AUTHOR("Jonathan Naylor G4KLX "); MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol"); MODULE_LICENSE("GPL"); @@ -24,9 +26,11 @@ Signed-off-by: Ben Hutchings static void __exit ax25_exit(void) { ---- a/net/netrom/af_netrom.c -+++ b/net/netrom/af_netrom.c -@@ -1486,7 +1486,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE +Index: linux/net/netrom/af_netrom.c +=================================================================== +--- linux.orig/net/netrom/af_netrom.c ++++ linux/net/netrom/af_netrom.c +@@ -1498,7 +1498,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE MODULE_AUTHOR("Jonathan Naylor G4KLX "); MODULE_DESCRIPTION("The amateur radio NET/ROM network and transport layer protocol"); MODULE_LICENSE("GPL"); @@ -35,9 +39,11 @@ Signed-off-by: Ben Hutchings static void __exit nr_exit(void) { ---- a/net/rose/af_rose.c -+++ b/net/rose/af_rose.c -@@ -1577,7 +1577,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of +Index: linux/net/rose/af_rose.c +=================================================================== +--- linux.orig/net/rose/af_rose.c ++++ linux/net/rose/af_rose.c +@@ -1630,7 +1630,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of MODULE_AUTHOR("Jonathan Naylor G4KLX "); MODULE_DESCRIPTION("The amateur radio ROSE network layer protocol"); MODULE_LICENSE("GPL"); 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 3343aec..008e29d 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 +@@ -959,4 +959,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/sched-autogroup-disabled.patch b/debian/patches/debian/sched-autogroup-disabled.patch index c616fa4..34a2313 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 @@ -4,7 +4,7 @@ * Auto-group scheduling implementation: */ 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 9ca7803..b714b8e 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 @@ -20,9 +20,11 @@ Signed-off-by: Ben Hutchings security/Kconfig | 9 +++++++++ 3 files changed, 22 insertions(+) ---- a/include/linux/perf_event.h -+++ b/include/linux/perf_event.h -@@ -1387,6 +1387,11 @@ int perf_cpu_time_max_percent_handler(st +Index: linux/include/linux/perf_event.h +=================================================================== +--- linux.orig/include/linux/perf_event.h ++++ linux/include/linux/perf_event.h +@@ -1586,6 +1586,11 @@ int perf_cpu_time_max_percent_handler(st int perf_event_max_stack_handler(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos); @@ -34,9 +36,11 @@ Signed-off-by: Ben Hutchings /* Access to perf_event_open(2) syscall. */ #define PERF_SECURITY_OPEN 0 ---- a/kernel/events/core.c -+++ b/kernel/events/core.c -@@ -415,8 +415,13 @@ static struct kmem_cache *perf_event_cac +Index: linux/kernel/events/core.c +=================================================================== +--- linux.orig/kernel/events/core.c ++++ linux/kernel/events/core.c +@@ -419,8 +419,13 @@ static struct kmem_cache *perf_event_cac * 0 - disallow raw tracepoint access for unpriv * 1 - disallow cpu events for unpriv * 2 - disallow kernel profiling for unpriv @@ -50,7 +54,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 */ -@@ -12325,6 +12330,9 @@ SYSCALL_DEFINE5(perf_event_open, +@@ -12478,6 +12483,9 @@ SYSCALL_DEFINE5(perf_event_open, if (err) return err; @@ -60,11 +64,13 @@ Signed-off-by: Ben Hutchings /* Do we allow access to perf_event_open(2) ? */ err = security_perf_event_open(&attr, PERF_SECURITY_OPEN); if (err) ---- a/security/Kconfig -+++ b/security/Kconfig -@@ -19,6 +19,15 @@ config SECURITY_DMESG_RESTRICT +Index: linux/security/Kconfig +=================================================================== +--- linux.orig/security/Kconfig ++++ linux/security/Kconfig +@@ -51,6 +51,15 @@ config PROC_MEM_NO_FORCE - If you are unsure how to answer this question, answer N. + endchoice +config SECURITY_PERF_EVENTS_RESTRICT + bool "Restrict unprivileged use of performance events" diff --git a/debian/patches/features/x86/intel-iommu-add-kconfig-option-to-exclude-igpu-by-default.patch b/debian/patches/features/x86/intel-iommu-add-kconfig-option-to-exclude-igpu-by-default.patch index 16cac66..f4fac82 100644 --- a/debian/patches/features/x86/intel-iommu-add-kconfig-option-to-exclude-igpu-by-default.patch +++ b/debian/patches/features/x86/intel-iommu-add-kconfig-option-to-exclude-igpu-by-default.patch @@ -13,9 +13,11 @@ corresponding to "on", "off", and "on,intgpu_off". Signed-off-by: Ben Hutchings --- ---- a/drivers/iommu/intel/Kconfig -+++ b/drivers/iommu/intel/Kconfig -@@ -56,14 +56,25 @@ config INTEL_IOMMU_SVM +Index: linux/drivers/iommu/intel/Kconfig +=================================================================== +--- linux.orig/drivers/iommu/intel/Kconfig ++++ linux/drivers/iommu/intel/Kconfig +@@ -55,14 +55,25 @@ config INTEL_IOMMU_SVM to access DMA resources through process address space by means of a Process Address Space ID (PASID). @@ -47,9 +49,11 @@ Signed-off-by: Ben Hutchings config INTEL_IOMMU_BROKEN_GFX_WA bool "Workaround broken graphics drivers (going away soon)" depends on BROKEN && X86 ---- a/drivers/iommu/intel/iommu.c -+++ b/drivers/iommu/intel/iommu.c -@@ -283,14 +283,14 @@ static LIST_HEAD(dmar_satc_units); +Index: linux/drivers/iommu/intel/iommu.c +=================================================================== +--- linux.orig/drivers/iommu/intel/iommu.c ++++ linux/drivers/iommu/intel/iommu.c +@@ -288,14 +288,14 @@ static LIST_HEAD(dmar_satc_units); static void device_block_translation(struct device *dev); static void intel_iommu_domain_free(struct iommu_domain *domain); @@ -66,7 +70,7 @@ Signed-off-by: Ben Hutchings static int intel_iommu_superpage = 1; static int iommu_identity_mapping; static int iommu_skip_te_disable; -@@ -328,6 +328,7 @@ static int __init intel_iommu_setup(char +@@ -333,6 +333,7 @@ static int __init intel_iommu_setup(char while (*str) { if (!strncmp(str, "on", 2)) { dmar_disabled = 0; diff --git a/debian/patches/features/x86/intel-iommu-add-option-to-exclude-integrated-gpu-only.patch b/debian/patches/features/x86/intel-iommu-add-option-to-exclude-integrated-gpu-only.patch index a3543d9..9da6f21 100644 --- a/debian/patches/features/x86/intel-iommu-add-option-to-exclude-integrated-gpu-only.patch +++ b/debian/patches/features/x86/intel-iommu-add-option-to-exclude-integrated-gpu-only.patch @@ -20,9 +20,11 @@ Signed-off-by: Ben Hutchings drivers/iommu/intel/iommu.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -2053,6 +2053,8 @@ +Index: linux/Documentation/admin-guide/kernel-parameters.txt +=================================================================== +--- linux.orig/Documentation/admin-guide/kernel-parameters.txt ++++ linux/Documentation/admin-guide/kernel-parameters.txt +@@ -2129,6 +2129,8 @@ bypassed by not enabling DMAR with this option. In this case, gfx device will use physical address for DMA. @@ -31,9 +33,11 @@ Signed-off-by: Ben Hutchings strict [Default Off] Deprecated, equivalent to iommu.strict=1. sp_off [Default Off] ---- a/drivers/iommu/intel/iommu.c -+++ b/drivers/iommu/intel/iommu.c -@@ -35,6 +35,9 @@ +Index: linux/drivers/iommu/intel/iommu.c +=================================================================== +--- linux.orig/drivers/iommu/intel/iommu.c ++++ linux/drivers/iommu/intel/iommu.c +@@ -36,6 +36,9 @@ #define CONTEXT_SIZE VTD_PAGE_SIZE #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY) @@ -43,7 +47,7 @@ Signed-off-by: Ben Hutchings #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e) -@@ -293,12 +296,14 @@ int intel_iommu_enabled = 0; +@@ -292,12 +295,14 @@ int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; @@ -58,7 +62,7 @@ Signed-off-by: Ben Hutchings const struct iommu_ops intel_iommu_ops; -@@ -337,6 +342,9 @@ static int __init intel_iommu_setup(char +@@ -336,6 +341,9 @@ static int __init intel_iommu_setup(char } else if (!strncmp(str, "igfx_off", 8)) { dmar_map_gfx = 0; pr_info("Disable GFX device mapping\n"); @@ -68,7 +72,7 @@ Signed-off-by: Ben Hutchings } else if (!strncmp(str, "forcedac", 8)) { pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n"); iommu_dma_forcedac = true; -@@ -2582,6 +2590,9 @@ static int device_def_domain_type(struct +@@ -2545,6 +2553,9 @@ static int device_def_domain_type(struct if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev)) return IOMMU_DOMAIN_IDENTITY; @@ -78,7 +82,7 @@ Signed-off-by: Ben Hutchings } return 0; -@@ -2985,6 +2996,9 @@ static int __init init_dmars(void) +@@ -2852,6 +2863,9 @@ static int __init init_dmars(void) if (!dmar_map_gfx) iommu_identity_mapping |= IDENTMAP_GFX; 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 e8bc1b0..98d7fb4 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 +@@ -31,6 +31,10 @@ static u64 patterns[] __initdata = { static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad) {