diff options
14 files changed, 290 insertions, 818 deletions
diff --git a/debian/changelog b/debian/changelog index d2f916b849b0..4e2200612fec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,11 @@ -linux (5.8.7-2) UNRELEASED; urgency=medium +linux (5.9~rc4-1~exp1) UNRELEASED; urgency=medium + * New upstream release candidate + + [ Ben Hutchings ] * Un-export symbols no longer needed by the Android ashmem and binder drivers + * aufs: Disable support patchset until it is updated for Linux 5.9 + * Makefile: Do not check for libelf when building OOT module -- Ben Hutchings <benh@debian.org> Mon, 07 Sep 2020 02:19:34 +0100 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 4a42ac80639f..106d57ec9725 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,11 +9,9 @@ many other log messages can be removed from drivers. This will probably need to be split up into multiple patches prior to upstream submission. -diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c -index 3f6b137ef4e6..a02e17a9ae14 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c -@@ -901,10 +901,8 @@ static enum ucode_state request_microcode_amd(int cpu, struct device *device, +@@ -901,10 +901,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); @@ -25,11 +23,9 @@ index 3f6b137ef4e6..a02e17a9ae14 100644 ret = UCODE_ERROR; if (!verify_container(fw->data, fw->size, false)) -diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c -index c039b8a4fefe..e28b965059c0 100644 --- a/drivers/atm/ambassador.c +++ b/drivers/atm/ambassador.c -@@ -1914,10 +1914,8 @@ static int ucode_init(loader_block *lb, amb_dev *dev) +@@ -1914,10 +1914,8 @@ static int ucode_init(loader_block *lb, int res; res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev); @@ -41,11 +37,9 @@ index c039b8a4fefe..e28b965059c0 100644 /* First record contains just the start address */ rec = (const struct ihex_binrec *)fw->data; -diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c -index f4ad7ce25ae8..44b8d9f4c7b5 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c -@@ -2425,10 +2425,9 @@ static int fore200e_load_and_start_fw(struct fore200e *fore200e) +@@ -2400,10 +2400,9 @@ static int fore200e_load_and_start_fw(st int err; sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT); @@ -58,11 +52,9 @@ index f4ad7ce25ae8..44b8d9f4c7b5 100644 fw_data = (const __le32 *)firmware->data; fw_size = firmware->size / sizeof(u32); -diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c -index 4ce270513695..a2945781827b 100644 --- a/drivers/bluetooth/ath3k.c +++ b/drivers/bluetooth/ath3k.c -@@ -417,10 +417,8 @@ static int ath3k_load_patch(struct usb_device *udev) +@@ -417,10 +417,8 @@ static int ath3k_load_patch(struct usb_d le32_to_cpu(fw_version.rom_version)); ret = request_firmware(&firmware, filename, &udev->dev); @@ -74,7 +66,7 @@ index 4ce270513695..a2945781827b 100644 pt_rom_version = get_unaligned_le32(firmware->data + firmware->size - 8); -@@ -480,10 +478,8 @@ static int ath3k_load_syscfg(struct usb_device *udev) +@@ -480,10 +478,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); @@ -86,11 +78,9 @@ index 4ce270513695..a2945781827b 100644 ret = ath3k_load_fwfile(udev, firmware); release_firmware(firmware); -diff --git a/drivers/bluetooth/bcm203x.c b/drivers/bluetooth/bcm203x.c -index 3b176257b993..9f70b2588916 100644 --- a/drivers/bluetooth/bcm203x.c +++ b/drivers/bluetooth/bcm203x.c -@@ -174,7 +174,6 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id +@@ -174,7 +174,6 @@ static int bcm203x_probe(struct usb_inte return -ENOMEM; if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) { @@ -98,7 +88,7 @@ index 3b176257b993..9f70b2588916 100644 usb_free_urb(data->urb); return -EIO; } -@@ -199,7 +198,6 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id +@@ -199,7 +198,6 @@ static int bcm203x_probe(struct usb_inte release_firmware(firmware); if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) { @@ -106,11 +96,9 @@ index 3b176257b993..9f70b2588916 100644 usb_free_urb(data->urb); kfree(data->buffer); return -EIO; -diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c -index 5a321b4076aa..fb39d705e2df 100644 --- a/drivers/bluetooth/bfusb.c +++ b/drivers/bluetooth/bfusb.c -@@ -636,10 +636,8 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i +@@ -636,10 +636,8 @@ static int bfusb_probe(struct usb_interf skb_queue_head_init(&data->pending_q); skb_queue_head_init(&data->completed_q); @@ -122,11 +110,9 @@ index 5a321b4076aa..fb39d705e2df 100644 BT_DBG("firmware data %p size %zu", firmware->data, firmware->size); -diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c -index 54713833951a..341ed2d9be1e 100644 --- a/drivers/bluetooth/bt3c_cs.c +++ b/drivers/bluetooth/bt3c_cs.c -@@ -569,10 +569,8 @@ static int bt3c_open(struct bt3c_info *info) +@@ -569,10 +569,8 @@ static int bt3c_open(struct bt3c_info *i /* Load firmware */ err = request_firmware(&firmware, "BT3CPCC.bin", &info->p_dev->dev); @@ -138,11 +124,9 @@ index 54713833951a..341ed2d9be1e 100644 err = bt3c_load_firmware(info, firmware->data, firmware->size); -diff --git a/drivers/bluetooth/btmrvl_sdio.c b/drivers/bluetooth/btmrvl_sdio.c -index a296f8526433..27121cb404a6 100644 --- a/drivers/bluetooth/btmrvl_sdio.c +++ b/drivers/bluetooth/btmrvl_sdio.c -@@ -526,8 +526,6 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card) +@@ -529,8 +529,6 @@ static int btmrvl_sdio_download_helper(s ret = request_firmware(&fw_helper, card->helper, &card->func->dev); if ((ret < 0) || !fw_helper) { @@ -151,7 +135,7 @@ index a296f8526433..27121cb404a6 100644 ret = -ENOENT; goto done; } -@@ -626,8 +624,6 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card) +@@ -629,8 +627,6 @@ static int btmrvl_sdio_download_fw_w_hel ret = request_firmware(&fw_firmware, card->firmware, &card->func->dev); if ((ret < 0) || !fw_firmware) { @@ -160,11 +144,9 @@ index a296f8526433..27121cb404a6 100644 ret = -ENOENT; goto done; } -diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c -index 06749e295ada..27cd3e4121a1 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c -@@ -140,11 +140,8 @@ static int dsp56k_upload(u_char __user *bin, int len) +@@ -140,11 +140,8 @@ static int dsp56k_upload(u_char __user * } err = request_firmware(&fw, fw_name, &pdev->dev); platform_device_unregister(pdev); @@ -177,11 +159,9 @@ index 06749e295ada..27cd3e4121a1 100644 if (fw->size % 3) { printk(KERN_ERR "Bogus length %d in image \"%s\"\n", fw->size, fw_name); -diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c -index 91774039ae5d..4a4e83c19563 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c -@@ -1735,11 +1735,8 @@ static void sdma_load_firmware(const struct firmware *fw, void *context) +@@ -1734,11 +1734,8 @@ static void sdma_load_firmware(const str const struct sdma_script_start_addrs *addr; unsigned short *ram_code; @@ -194,11 +174,9 @@ index 91774039ae5d..4a4e83c19563 100644 if (fw->size < sizeof(*header)) goto err_firmware; -diff --git a/drivers/gpu/drm/mga/mga_warp.c b/drivers/gpu/drm/mga/mga_warp.c -index b5ef1d2c8b1c..cb0d2fa4c2a8 100644 --- a/drivers/gpu/drm/mga/mga_warp.c +++ b/drivers/gpu/drm/mga/mga_warp.c -@@ -77,11 +77,8 @@ int mga_warp_install_microcode(drm_mga_private_t *dev_priv) +@@ -77,11 +77,8 @@ int mga_warp_install_microcode(drm_mga_p } rc = request_ihex_firmware(&fw, firmware_name, &pdev->dev); platform_device_unregister(pdev); @@ -211,11 +189,9 @@ index b5ef1d2c8b1c..cb0d2fa4c2a8 100644 size = 0; where = 0; -diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -index f2f5636efac4..0499f6a34a21 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -@@ -2445,10 +2445,8 @@ gf100_gr_load_fw(struct gf100_gr *gr, const char *name, +@@ -2445,10 +2445,8 @@ gf100_gr_load_fw(struct gf100_gr *gr, co if (ret) { snprintf(f, sizeof(f), "nouveau/%s", name); ret = request_firmware(&fw, f, device->dev); @@ -227,11 +203,9 @@ index f2f5636efac4..0499f6a34a21 100644 } blob->size = fw->size; -diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c -index 138af32480d4..be891fcd91ab 100644 --- a/drivers/gpu/drm/r128/r128_cce.c +++ b/drivers/gpu/drm/r128/r128_cce.c -@@ -162,11 +162,8 @@ static int r128_cce_load_microcode(drm_r128_private_t *dev_priv) +@@ -162,11 +162,8 @@ static int r128_cce_load_microcode(drm_r } rc = request_firmware(&fw, FIRMWARE_NAME, &pdev->dev); platform_device_unregister(pdev); @@ -244,11 +218,9 @@ index 138af32480d4..be891fcd91ab 100644 if (fw->size != 256 * 8) { pr_err("r128_cce: Bogus length %zu in firmware \"%s\"\n", -diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c -index 02feb0801fd3..663fcad69e22 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c -@@ -833,9 +833,6 @@ int ni_init_microcode(struct radeon_device *rdev) +@@ -833,9 +833,6 @@ int ni_init_microcode(struct radeon_devi out: if (err) { @@ -258,11 +230,9 @@ index 02feb0801fd3..663fcad69e22 100644 release_firmware(rdev->pfp_fw); rdev->pfp_fw = NULL; release_firmware(rdev->me_fw); -diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c -index 24c8db673931..ae3acbaa3d0c 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c -@@ -1047,9 +1047,7 @@ static int r100_cp_init_microcode(struct radeon_device *rdev) +@@ -1047,9 +1047,7 @@ static int r100_cp_init_microcode(struct } err = request_firmware(&rdev->me_fw, fw_name, rdev->dev); @@ -273,11 +243,9 @@ index 24c8db673931..ae3acbaa3d0c 100644 pr_err("radeon_cp: Bogus length %zu in firmware \"%s\"\n", rdev->me_fw->size, fw_name); err = -EINVAL; -diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c -index d9a33ca768f3..6f2c599fd64b 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c -@@ -2599,9 +2599,6 @@ int r600_init_microcode(struct radeon_device *rdev) +@@ -2599,9 +2599,6 @@ int r600_init_microcode(struct radeon_de out: if (err) { @@ -287,11 +255,9 @@ index d9a33ca768f3..6f2c599fd64b 100644 release_firmware(rdev->pfp_fw); rdev->pfp_fw = NULL; release_firmware(rdev->me_fw); -diff --git a/drivers/infiniband/hw/qib/qib_sd7220.c b/drivers/infiniband/hw/qib/qib_sd7220.c -index 4f4a09c2dbcd..7bf90abe699c 100644 --- a/drivers/infiniband/hw/qib/qib_sd7220.c +++ b/drivers/infiniband/hw/qib/qib_sd7220.c -@@ -406,10 +406,8 @@ int qib_sd7220_init(struct qib_devdata *dd) +@@ -406,10 +406,8 @@ int qib_sd7220_init(struct qib_devdata * } ret = request_firmware(&fw, SD7220_FW_NAME, &dd->pcidev->dev); @@ -303,11 +269,9 @@ index 4f4a09c2dbcd..7bf90abe699c 100644 /* Substitute our deduced value for was_reset */ ret = qib_ibsd_ucode_loaded(dd->pport, fw); -diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c -index a2189739e30f..e552000b71cd 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c -@@ -2777,10 +2777,8 @@ static int mxt_load_fw(struct device *dev, const char *fn) +@@ -2827,10 +2827,8 @@ static int mxt_load_fw(struct device *de int ret; ret = request_firmware(&fw, fn, dev); @@ -319,8 +283,6 @@ index a2189739e30f..e552000b71cd 100644 /* Check for incorrect enc file */ ret = mxt_check_firmware_format(dev, fw); -diff --git a/drivers/isdn/hardware/mISDN/speedfax.c b/drivers/isdn/hardware/mISDN/speedfax.c -index b530c78eca8e..a336db7a8135 100644 --- a/drivers/isdn/hardware/mISDN/speedfax.c +++ b/drivers/isdn/hardware/mISDN/speedfax.c @@ -379,11 +379,8 @@ setup_instance(struct sfax_hw *card) @@ -336,11 +298,9 @@ index b530c78eca8e..a336db7a8135 100644 if (debug & DEBUG_HW) pr_notice("%s: got firmware %zu bytes\n", card->name, firmware->size); -diff --git a/drivers/media/common/siano/smscoreapi.c b/drivers/media/common/siano/smscoreapi.c -index c1511094fdc7..b5e915b21baf 100644 --- a/drivers/media/common/siano/smscoreapi.c +++ b/drivers/media/common/siano/smscoreapi.c -@@ -1156,10 +1156,8 @@ static int smscore_load_firmware_from_file(struct smscore_device_t *coredev, +@@ -1156,10 +1156,8 @@ static int smscore_load_firmware_from_fi return -EINVAL; rc = request_firmware(&fw, fw_filename, coredev->device); @@ -352,11 +312,9 @@ index c1511094fdc7..b5e915b21baf 100644 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); -diff --git a/drivers/media/dvb-frontends/af9013.c b/drivers/media/dvb-frontends/af9013.c -index 7281899bd7ae..a1ddafb4f21a 100644 --- a/drivers/media/dvb-frontends/af9013.c +++ b/drivers/media/dvb-frontends/af9013.c -@@ -1049,14 +1049,8 @@ static int af9013_download_firmware(struct af9013_state *state) +@@ -1049,14 +1049,8 @@ static int af9013_download_firmware(stru /* Request the firmware, will block and timeout */ ret = request_firmware(&firmware, name, &client->dev); @@ -372,11 +330,9 @@ index 7281899bd7ae..a1ddafb4f21a 100644 /* Write firmware checksum & size */ for (i = 0; i < firmware->size; i++) -diff --git a/drivers/media/dvb-frontends/bcm3510.c b/drivers/media/dvb-frontends/bcm3510.c -index e92542b92d34..cd10feb1f883 100644 --- a/drivers/media/dvb-frontends/bcm3510.c +++ b/drivers/media/dvb-frontends/bcm3510.c -@@ -636,10 +636,9 @@ static int bcm3510_download_firmware(struct dvb_frontend* fe) +@@ -636,10 +636,9 @@ static int bcm3510_download_firmware(str int ret,i; deb_info("requesting firmware\n"); @@ -389,11 +345,9 @@ index e92542b92d34..cd10feb1f883 100644 deb_info("got firmware: %zu\n", fw->size); b = fw->data; -diff --git a/drivers/media/dvb-frontends/cx24116.c b/drivers/media/dvb-frontends/cx24116.c -index ea8264ccbb4e..becc7dc68477 100644 --- a/drivers/media/dvb-frontends/cx24116.c +++ b/drivers/media/dvb-frontends/cx24116.c -@@ -479,13 +479,8 @@ static int cx24116_firmware_ondemand(struct dvb_frontend *fe) +@@ -479,13 +479,8 @@ static int cx24116_firmware_ondemand(str __func__, CX24116_DEFAULT_FIRMWARE); ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, state->i2c->dev.parent); @@ -408,11 +362,9 @@ index ea8264ccbb4e..becc7dc68477 100644 /* Make sure we don't recurse back through here * during loading */ -diff --git a/drivers/media/dvb-frontends/drxd_hard.c b/drivers/media/dvb-frontends/drxd_hard.c -index fae6f3763364..751e240bad9f 100644 --- a/drivers/media/dvb-frontends/drxd_hard.c +++ b/drivers/media/dvb-frontends/drxd_hard.c -@@ -891,10 +891,8 @@ static int load_firmware(struct drxd_state *state, const char *fw_name) +@@ -891,10 +891,8 @@ static int load_firmware(struct drxd_sta { const struct firmware *fw; @@ -424,11 +376,9 @@ index fae6f3763364..751e240bad9f 100644 state->microcode = kmemdup(fw->data, fw->size, GFP_KERNEL); if (!state->microcode) { -diff --git a/drivers/media/dvb-frontends/drxk_hard.c b/drivers/media/dvb-frontends/drxk_hard.c -index 7e8e5c308d1c..dbbf29759098 100644 --- a/drivers/media/dvb-frontends/drxk_hard.c +++ b/drivers/media/dvb-frontends/drxk_hard.c -@@ -6271,10 +6271,6 @@ static void load_firmware_cb(const struct firmware *fw, +@@ -6260,10 +6260,6 @@ static void load_firmware_cb(const struc dprintk(1, ": %s\n", fw ? "firmware loaded" : "firmware not loaded"); if (!fw) { @@ -439,11 +389,9 @@ index 7e8e5c308d1c..dbbf29759098 100644 state->microcode_name = NULL; /* -diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c -index 20fcf31af165..d8008d582854 100644 --- a/drivers/media/dvb-frontends/ds3000.c +++ b/drivers/media/dvb-frontends/ds3000.c -@@ -348,12 +348,8 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe) +@@ -348,12 +348,8 @@ static int ds3000_firmware_ondemand(stru DS3000_DEFAULT_FIRMWARE); ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, state->i2c->dev.parent); @@ -457,11 +405,9 @@ index 20fcf31af165..d8008d582854 100644 ret = ds3000_load_firmware(fe, fw); if (ret) -diff --git a/drivers/media/dvb-frontends/nxt200x.c b/drivers/media/dvb-frontends/nxt200x.c -index 35b83b1dd82c..564003075325 100644 --- a/drivers/media/dvb-frontends/nxt200x.c +++ b/drivers/media/dvb-frontends/nxt200x.c -@@ -876,12 +876,8 @@ static int nxt2002_init(struct dvb_frontend* fe) +@@ -876,12 +876,8 @@ static int nxt2002_init(struct dvb_front __func__, NXT2002_DEFAULT_FIRMWARE); ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, state->i2c->dev.parent); @@ -475,7 +421,7 @@ index 35b83b1dd82c..564003075325 100644 ret = nxt2002_load_firmware(fe, fw); release_firmware(fw); -@@ -943,12 +939,8 @@ static int nxt2004_init(struct dvb_frontend* fe) +@@ -943,12 +939,8 @@ static int nxt2004_init(struct dvb_front __func__, NXT2004_DEFAULT_FIRMWARE); ret = request_firmware(&fw, NXT2004_DEFAULT_FIRMWARE, state->i2c->dev.parent); @@ -489,11 +435,9 @@ index 35b83b1dd82c..564003075325 100644 ret = nxt2004_load_firmware(fe, fw); release_firmware(fw); -diff --git a/drivers/media/dvb-frontends/or51132.c b/drivers/media/dvb-frontends/or51132.c -index 35a3e47497c2..d89dd35059aa 100644 --- a/drivers/media/dvb-frontends/or51132.c +++ b/drivers/media/dvb-frontends/or51132.c -@@ -326,10 +326,8 @@ static int or51132_set_parameters(struct dvb_frontend *fe) +@@ -326,10 +326,8 @@ static int or51132_set_parameters(struct printk("or51132: Waiting for firmware upload(%s)...\n", fwname); ret = request_firmware(&fw, fwname, state->i2c->dev.parent); @@ -505,11 +449,9 @@ index 35a3e47497c2..d89dd35059aa 100644 ret = or51132_load_firmware(fe, fw); release_firmware(fw); if (ret) { -diff --git a/drivers/media/dvb-frontends/or51211.c b/drivers/media/dvb-frontends/or51211.c -index ddcaea5c9941..fb198eb3181a 100644 --- a/drivers/media/dvb-frontends/or51211.c +++ b/drivers/media/dvb-frontends/or51211.c -@@ -361,11 +361,8 @@ static int or51211_init(struct dvb_frontend* fe) +@@ -361,11 +361,8 @@ static int or51211_init(struct dvb_front OR51211_DEFAULT_FIRMWARE); ret = config->request_firmware(fe, &fw, OR51211_DEFAULT_FIRMWARE); @@ -522,11 +464,9 @@ index ddcaea5c9941..fb198eb3181a 100644 ret = or51211_load_firmware(fe, fw); release_firmware(fw); -diff --git a/drivers/media/dvb-frontends/sp8870.c b/drivers/media/dvb-frontends/sp8870.c -index 655db8272268..5c3ff08e924b 100644 --- a/drivers/media/dvb-frontends/sp8870.c +++ b/drivers/media/dvb-frontends/sp8870.c -@@ -304,10 +304,8 @@ static int sp8870_init (struct dvb_frontend* fe) +@@ -304,10 +304,8 @@ static int sp8870_init (struct dvb_front /* request the firmware, this will block until someone uploads it */ printk("sp8870: waiting for firmware upload (%s)...\n", SP8870_DEFAULT_FIRMWARE); @@ -538,11 +478,9 @@ index 655db8272268..5c3ff08e924b 100644 if (sp8870_firmware_upload(state, fw)) { printk("sp8870: writing firmware to device failed\n"); -diff --git a/drivers/media/dvb-frontends/sp887x.c b/drivers/media/dvb-frontends/sp887x.c -index c89a91a3daf4..9fdf51248c29 100644 --- a/drivers/media/dvb-frontends/sp887x.c +++ b/drivers/media/dvb-frontends/sp887x.c -@@ -527,10 +527,8 @@ static int sp887x_init(struct dvb_frontend* fe) +@@ -527,10 +527,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); ret = state->config->request_firmware(fe, &fw, SP887X_DEFAULT_FIRMWARE); @@ -554,11 +492,9 @@ index c89a91a3daf4..9fdf51248c29 100644 ret = sp887x_initial_setup(fe, fw); release_firmware(fw); -diff --git a/drivers/media/dvb-frontends/tda10048.c b/drivers/media/dvb-frontends/tda10048.c -index d1d206ebdedd..110961be6a0c 100644 --- a/drivers/media/dvb-frontends/tda10048.c +++ b/drivers/media/dvb-frontends/tda10048.c -@@ -483,8 +483,6 @@ static int tda10048_firmware_upload(struct dvb_frontend *fe) +@@ -483,8 +483,6 @@ static int tda10048_firmware_upload(stru ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, state->i2c->dev.parent); if (ret) { @@ -567,11 +503,9 @@ index d1d206ebdedd..110961be6a0c 100644 return -EIO; } else { printk(KERN_INFO "%s: firmware read %zu bytes.\n", -diff --git a/drivers/media/dvb-frontends/tda1004x.c b/drivers/media/dvb-frontends/tda1004x.c -index 83a798ca9b00..f36cc486edf7 100644 --- a/drivers/media/dvb-frontends/tda1004x.c +++ b/drivers/media/dvb-frontends/tda1004x.c -@@ -388,10 +388,8 @@ static int tda10045_fwupload(struct dvb_frontend* fe) +@@ -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); ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE); @@ -583,7 +517,7 @@ index 83a798ca9b00..f36cc486edf7 100644 /* reset chip */ tda1004x_write_mask(state, TDA1004X_CONFC4, 0x10, 0); -@@ -532,7 +530,6 @@ static int tda10046_fwupload(struct dvb_frontend* fe) +@@ -532,7 +530,6 @@ static int tda10046_fwupload(struct dvb_ /* remain compatible to old bug: try to load with tda10045 image name */ ret = state->config->request_firmware(fe, &fw, TDA10045_DEFAULT_FIRMWARE); if (ret) { @@ -591,11 +525,9 @@ index 83a798ca9b00..f36cc486edf7 100644 return ret; } else { printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n", -diff --git a/drivers/media/dvb-frontends/tda10071.c b/drivers/media/dvb-frontends/tda10071.c -index 685c0ac71819..60ee1f6ed146 100644 --- a/drivers/media/dvb-frontends/tda10071.c +++ b/drivers/media/dvb-frontends/tda10071.c -@@ -838,12 +838,8 @@ static int tda10071_init(struct dvb_frontend *fe) +@@ -838,12 +838,8 @@ static int tda10071_init(struct dvb_fron /* request the firmware, this will block and timeout */ ret = request_firmware(&fw, fw_file, &client->dev); @@ -609,11 +541,9 @@ index 685c0ac71819..60ee1f6ed146 100644 /* init */ for (i = 0; i < ARRAY_SIZE(tab2); i++) { -diff --git a/drivers/media/i2c/cx25840/cx25840-firmware.c b/drivers/media/i2c/cx25840/cx25840-firmware.c -index 02df45ccf57c..9ce75298c6ec 100644 --- a/drivers/media/i2c/cx25840/cx25840-firmware.c +++ b/drivers/media/i2c/cx25840/cx25840-firmware.c -@@ -113,10 +113,8 @@ int cx25840_loadfw(struct i2c_client *client) +@@ -113,10 +113,8 @@ int cx25840_loadfw(struct i2c_client *cl if (is_cx231xx(state) && max_buf_size > 16) max_buf_size = 16; @@ -625,8 +555,6 @@ index 02df45ccf57c..9ce75298c6ec 100644 start_fw_load(client); -diff --git a/drivers/media/pci/bt8xx/bttv-cards.c b/drivers/media/pci/bt8xx/bttv-cards.c -index 16148802dabb..c2afea668c66 100644 --- a/drivers/media/pci/bt8xx/bttv-cards.c +++ b/drivers/media/pci/bt8xx/bttv-cards.c @@ -3904,10 +3904,8 @@ static int pvr_boot(struct bttv *btv) @@ -641,8 +569,6 @@ index 16148802dabb..c2afea668c66 100644 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"); -diff --git a/drivers/media/pci/cx18/cx18-av-firmware.c b/drivers/media/pci/cx18/cx18-av-firmware.c -index 61aeb8c9af7f..b93b04885e0a 100644 --- a/drivers/media/pci/cx18/cx18-av-firmware.c +++ b/drivers/media/pci/cx18/cx18-av-firmware.c @@ -70,10 +70,8 @@ int cx18_av_loadfw(struct cx18 *cx) @@ -657,11 +583,9 @@ index 61aeb8c9af7f..b93b04885e0a 100644 /* The firmware load often has byte errors, so allow for several retries, both at byte level and at the firmware load level. */ -diff --git a/drivers/media/pci/cx18/cx18-dvb.c b/drivers/media/pci/cx18/cx18-dvb.c -index 4c57a294b9fa..5d4a00c8e289 100644 --- a/drivers/media/pci/cx18/cx18-dvb.c +++ b/drivers/media/pci/cx18/cx18-dvb.c -@@ -127,9 +127,7 @@ static int yuan_mpc718_mt352_reqfw(struct cx18_stream *stream, +@@ -127,9 +127,7 @@ static int yuan_mpc718_mt352_reqfw(struc int ret; ret = request_firmware(fw, fn, &cx->pci_dev->dev); @@ -672,11 +596,9 @@ index 4c57a294b9fa..5d4a00c8e289 100644 size_t sz = (*fw)->size; if (sz < 2 || sz > 64 || (sz % 2) != 0) { CX18_ERR("Firmware %s has a bad size: %lu bytes\n", -diff --git a/drivers/media/pci/cx18/cx18-firmware.c b/drivers/media/pci/cx18/cx18-firmware.c -index 876b96c11290..098dafd22276 100644 --- a/drivers/media/pci/cx18/cx18-firmware.c +++ b/drivers/media/pci/cx18/cx18-firmware.c -@@ -92,11 +92,8 @@ static int load_cpu_fw_direct(const char *fn, u8 __iomem *mem, struct cx18 *cx) +@@ -92,11 +92,8 @@ static int load_cpu_fw_direct(const char u32 __iomem *dst = (u32 __iomem *)mem; const u32 *src; @@ -689,7 +611,7 @@ index 876b96c11290..098dafd22276 100644 src = (const u32 *)fw->data; -@@ -137,8 +134,6 @@ static int load_apu_fw_direct(const char *fn, u8 __iomem *dst, struct cx18 *cx, +@@ -137,8 +134,6 @@ static int load_apu_fw_direct(const char int sz; if (request_firmware(&fw, fn, &cx->pci_dev->dev)) { @@ -698,11 +620,9 @@ index 876b96c11290..098dafd22276 100644 cx18_setup_page(cx, 0); return -ENOMEM; } -diff --git a/drivers/media/pci/cx23885/cx23885-417.c b/drivers/media/pci/cx23885/cx23885-417.c -index 434677bd4ad1..ccf477b778b5 100644 --- a/drivers/media/pci/cx23885/cx23885-417.c +++ b/drivers/media/pci/cx23885/cx23885-417.c -@@ -920,12 +920,8 @@ static int cx23885_load_firmware(struct cx23885_dev *dev) +@@ -920,12 +920,8 @@ static int cx23885_load_firmware(struct retval = request_firmware(&firmware, CX23885_FIRM_IMAGE_NAME, &dev->pci->dev); @@ -716,11 +636,9 @@ index 434677bd4ad1..ccf477b778b5 100644 if (firmware->size != CX23885_FIRM_IMAGE_SIZE) { pr_err("ERROR: Firmware size mismatch (have %zu, expected %d)\n", -diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c -index 570a4a09c387..591bfec4569f 100644 --- a/drivers/media/pci/cx23885/cx23885-cards.c +++ b/drivers/media/pci/cx23885/cx23885-cards.c -@@ -2480,10 +2480,7 @@ void cx23885_card_setup(struct cx23885_dev *dev) +@@ -2480,10 +2480,7 @@ void cx23885_card_setup(struct cx23885_d cinfo.rev, filename); ret = request_firmware(&fw, filename, &dev->pci->dev); @@ -732,11 +650,9 @@ index 570a4a09c387..591bfec4569f 100644 altera_init(&netup_config, fw); release_firmware(fw); -diff --git a/drivers/media/pci/cx88/cx88-blackbird.c b/drivers/media/pci/cx88/cx88-blackbird.c -index fa4ca002ed19..cb8be2cd91c8 100644 --- a/drivers/media/pci/cx88/cx88-blackbird.c +++ b/drivers/media/pci/cx88/cx88-blackbird.c -@@ -462,12 +462,8 @@ static int blackbird_load_firmware(struct cx8802_dev *dev) +@@ -462,12 +462,8 @@ static int blackbird_load_firmware(struc retval = request_firmware(&firmware, CX2341X_FIRM_ENC_FILENAME, &dev->pci->dev); @@ -750,11 +666,9 @@ index fa4ca002ed19..cb8be2cd91c8 100644 if (firmware->size != BLACKBIRD_FIRM_IMAGE_SIZE) { pr_err("Firmware size mismatch (have %zd, expected %d)\n", -diff --git a/drivers/media/pci/ivtv/ivtv-firmware.c b/drivers/media/pci/ivtv/ivtv-firmware.c -index 56b25255faf5..ee9c227c4ec3 100644 --- a/drivers/media/pci/ivtv/ivtv-firmware.c +++ b/drivers/media/pci/ivtv/ivtv-firmware.c -@@ -68,8 +68,6 @@ static int load_fw_direct(const char *fn, volatile u8 __iomem *mem, struct ivtv +@@ -68,8 +68,6 @@ retry: release_firmware(fw); return size; } @@ -763,11 +677,9 @@ index 56b25255faf5..ee9c227c4ec3 100644 return -ENOMEM; } -diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c -index af15ca1c501b..7198ab37a655 100644 --- a/drivers/media/pci/ngene/ngene-core.c +++ b/drivers/media/pci/ngene/ngene-core.c -@@ -1236,19 +1236,14 @@ static int ngene_load_firm(struct ngene *dev) +@@ -1236,19 +1236,14 @@ static int ngene_load_firm(struct ngene break; } @@ -788,11 +700,9 @@ index af15ca1c501b..7198ab37a655 100644 ngene_fw = (u8 *) fw->data; err = ngene_command_load_firmware(dev, ngene_fw, size); } -diff --git a/drivers/media/pci/saa7164/saa7164-fw.c b/drivers/media/pci/saa7164/saa7164-fw.c -index 363689484c54..447fa2dab1b5 100644 --- a/drivers/media/pci/saa7164/saa7164-fw.c +++ b/drivers/media/pci/saa7164/saa7164-fw.c -@@ -406,11 +406,8 @@ int saa7164_downloadfirmware(struct saa7164_dev *dev) +@@ -406,11 +406,8 @@ int saa7164_downloadfirmware(struct saa7 __func__, fwname); ret = request_firmware(&fw, fwname, &dev->pci->dev); @@ -805,11 +715,9 @@ index 363689484c54..447fa2dab1b5 100644 printk(KERN_INFO "%s() firmware read %zu bytes.\n", __func__, fw->size); -diff --git a/drivers/media/pci/ttpci/av7110.c b/drivers/media/pci/ttpci/av7110.c -index d0cdee1c6eb0..9e5e444d2fbe 100644 --- a/drivers/media/pci/ttpci/av7110.c +++ b/drivers/media/pci/ttpci/av7110.c -@@ -1500,13 +1500,8 @@ static int get_firmware(struct av7110* av7110) +@@ -1501,13 +1501,8 @@ static int get_firmware(struct av7110* a /* request the av7110 firmware, this will block until someone uploads it */ ret = request_firmware(&fw, "dvb-ttpci-01.fw", &av7110->dev->pci->dev); if (ret) { @@ -825,11 +733,9 @@ index d0cdee1c6eb0..9e5e444d2fbe 100644 return -EINVAL; } -diff --git a/drivers/media/pci/ttpci/av7110_hw.c b/drivers/media/pci/ttpci/av7110_hw.c -index e8a8ec5405e2..c26c21190a12 100644 --- a/drivers/media/pci/ttpci/av7110_hw.c +++ b/drivers/media/pci/ttpci/av7110_hw.c -@@ -235,11 +235,8 @@ int av7110_bootarm(struct av7110 *av7110) +@@ -235,11 +235,8 @@ int av7110_bootarm(struct av7110 *av7110 //saa7146_setgpio(dev, 3, SAA7146_GPIO_INPUT); ret = request_firmware(&fw, fw_name, &dev->pci->dev); @@ -842,11 +748,9 @@ index e8a8ec5405e2..c26c21190a12 100644 mwdebi(av7110, DEBISWAB, DPRAM_BASE, fw->data, fw->size); release_firmware(fw); -diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c -index da138c314963..226a1a2ecfbd 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c -@@ -65,10 +65,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc_dev *dev) +@@ -65,10 +65,8 @@ int s5p_mfc_load_firmware(struct s5p_mfc } } @@ -858,11 +762,9 @@ index da138c314963..226a1a2ecfbd 100644 if (fw_blob->size > dev->fw_buf.size) { mfc_err("MFC firmware is too big to be loaded\n"); release_firmware(fw_blob); -diff --git a/drivers/media/radio/radio-wl1273.c b/drivers/media/radio/radio-wl1273.c -index 112376873167..812303937958 100644 --- a/drivers/media/radio/radio-wl1273.c +++ b/drivers/media/radio/radio-wl1273.c -@@ -502,11 +502,8 @@ static int wl1273_fm_upload_firmware_patch(struct wl1273_device *radio) +@@ -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. */ @@ -875,11 +777,9 @@ index 112376873167..812303937958 100644 ptr = (__u8 *) fw_p->data; packet_num = ptr[0]; -diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c -index cce97c9d5409..23df585447bf 100644 --- a/drivers/media/radio/wl128x/fmdrv_common.c +++ b/drivers/media/radio/wl128x/fmdrv_common.c -@@ -1236,10 +1236,8 @@ static int fm_download_firmware(struct fmdev *fmdev, const u8 *fw_name) +@@ -1236,10 +1236,8 @@ static int fm_download_firmware(struct f ret = request_firmware(&fw_entry, fw_name, &fmdev->radio_dev->dev); @@ -891,11 +791,9 @@ index cce97c9d5409..23df585447bf 100644 fmdbg("Firmware(%s) length : %zu bytes\n", fw_name, fw_entry->size); fw_data = (void *)fw_entry->data; -diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c -index 574c3bb135d7..16ce85a02480 100644 --- a/drivers/media/tuners/tuner-xc2028.c +++ b/drivers/media/tuners/tuner-xc2028.c -@@ -1366,7 +1366,6 @@ static void load_firmware_cb(const struct firmware *fw, +@@ -1366,7 +1366,6 @@ static void load_firmware_cb(const struc tuner_dbg("request_firmware_nowait(): %s\n", fw ? "OK" : "error"); if (!fw) { @@ -903,11 +801,9 @@ index 574c3bb135d7..16ce85a02480 100644 priv->state = XC2028_NODEV; return; } -diff --git a/drivers/media/usb/cpia2/cpia2_core.c b/drivers/media/usb/cpia2/cpia2_core.c -index 20c50c2d042e..b8a081264516 100644 --- a/drivers/media/usb/cpia2/cpia2_core.c +++ b/drivers/media/usb/cpia2/cpia2_core.c -@@ -912,11 +912,8 @@ static int apply_vp_patch(struct camera_data *cam) +@@ -912,11 +912,8 @@ static int apply_vp_patch(struct camera_ struct cpia2_command cmd; ret = request_firmware(&fw, fw_name, &cam->dev->dev); @@ -920,11 +816,9 @@ index 20c50c2d042e..b8a081264516 100644 cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP; cmd.direction = TRANSFER_WRITE; -diff --git a/drivers/media/usb/cx231xx/cx231xx-417.c b/drivers/media/usb/cx231xx/cx231xx-417.c -index b0cd51134654..57e7d1292a1b 100644 --- a/drivers/media/usb/cx231xx/cx231xx-417.c +++ b/drivers/media/usb/cx231xx/cx231xx-417.c -@@ -983,11 +983,6 @@ static int cx231xx_load_firmware(struct cx231xx *dev) +@@ -983,11 +983,6 @@ static int cx231xx_load_firmware(struct dev->dev); if (retval != 0) { @@ -936,11 +830,9 @@ index b0cd51134654..57e7d1292a1b 100644 vfree(p_current_fw); vfree(p_buffer); return retval; -diff --git a/drivers/media/usb/dvb-usb/dib0700_devices.c b/drivers/media/usb/dvb-usb/dib0700_devices.c -index 4ef3fa98d20f..651d59e17473 100644 --- a/drivers/media/usb/dvb-usb/dib0700_devices.c +++ b/drivers/media/usb/dvb-usb/dib0700_devices.c -@@ -2413,12 +2413,9 @@ static int stk9090m_frontend_attach(struct dvb_usb_adapter *adap) +@@ -2413,12 +2413,9 @@ static int stk9090m_frontend_attach(stru dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x10, 0x80); @@ -955,7 +847,7 @@ index 4ef3fa98d20f..651d59e17473 100644 stk9090m_config.microcode_B_fe_size = state->frontend_firmware->size; stk9090m_config.microcode_B_fe_buffer = state->frontend_firmware->data; -@@ -2483,12 +2480,9 @@ static int nim9090md_frontend_attach(struct dvb_usb_adapter *adap) +@@ -2483,12 +2480,9 @@ static int nim9090md_frontend_attach(str msleep(20); dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1); @@ -970,11 +862,9 @@ index 4ef3fa98d20f..651d59e17473 100644 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; -diff --git a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c -index 0fb3fa6100e4..9788f48f99f2 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c -@@ -90,13 +90,9 @@ int dvb_usb_download_firmware(struct usb_device *udev, +@@ -90,13 +90,9 @@ int dvb_usb_download_firmware(struct usb int ret; const struct firmware *fw = NULL; @@ -990,11 +880,9 @@ index 0fb3fa6100e4..9788f48f99f2 100644 switch (props->usb_ctrl) { case CYPRESS_AN2135: -diff --git a/drivers/media/usb/dvb-usb/gp8psk.c b/drivers/media/usb/dvb-usb/gp8psk.c -index c07f46f5176e..5cac8e04bcfe 100644 --- a/drivers/media/usb/dvb-usb/gp8psk.c +++ b/drivers/media/usb/dvb-usb/gp8psk.c -@@ -131,19 +131,14 @@ static int gp8psk_load_bcm4500fw(struct dvb_usb_device *d) +@@ -131,19 +131,14 @@ static int gp8psk_load_bcm4500fw(struct const u8 *ptr; u8 *buf; if ((ret = request_firmware(&fw, bcm4500_firmware, @@ -1015,11 +903,9 @@ index c07f46f5176e..5cac8e04bcfe 100644 ptr = fw->data; buf = kmalloc(64, GFP_KERNEL); if (!buf) { -diff --git a/drivers/media/usb/dvb-usb/opera1.c b/drivers/media/usb/dvb-usb/opera1.c -index e8d784b9d119..d11fefab842f 100644 --- a/drivers/media/usb/dvb-usb/opera1.c +++ b/drivers/media/usb/dvb-usb/opera1.c -@@ -450,8 +450,6 @@ static int opera1_xilinx_load_firmware(struct usb_device *dev, +@@ -450,8 +450,6 @@ static int opera1_xilinx_load_firmware(s info("start downloading fpga firmware %s",filename); if ((ret = request_firmware(&fw, filename, &dev->dev)) != 0) { @@ -1028,11 +914,9 @@ index e8d784b9d119..d11fefab842f 100644 return ret; } else { p = kmalloc(fw->size, GFP_KERNEL); -diff --git a/drivers/media/usb/go7007/go7007-driver.c b/drivers/media/usb/go7007/go7007-driver.c -index 153a0c3e3da6..2b6ffdde3931 100644 --- a/drivers/media/usb/go7007/go7007-driver.c +++ b/drivers/media/usb/go7007/go7007-driver.c -@@ -84,10 +84,8 @@ static int go7007_load_encoder(struct go7007 *go) +@@ -84,10 +84,8 @@ static int go7007_load_encoder(struct go u16 intr_val, intr_data; if (go->boot_fw == NULL) { @@ -1044,11 +928,9 @@ index 153a0c3e3da6..2b6ffdde3931 100644 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); -diff --git a/drivers/media/usb/go7007/go7007-fw.c b/drivers/media/usb/go7007/go7007-fw.c -index 018019ba47d4..2226047843c7 100644 --- a/drivers/media/usb/go7007/go7007-fw.c +++ b/drivers/media/usb/go7007/go7007-fw.c -@@ -1565,12 +1565,8 @@ int go7007_construct_fw_image(struct go7007 *go, u8 **fw, int *fwlen) +@@ -1565,12 +1565,8 @@ int go7007_construct_fw_image(struct go7 default: return -1; } @@ -1062,11 +944,9 @@ index 018019ba47d4..2226047843c7 100644 code = kcalloc(codespace, 2, GFP_KERNEL); if (code == NULL) goto fw_failed; -diff --git a/drivers/media/usb/go7007/go7007-loader.c b/drivers/media/usb/go7007/go7007-loader.c -index 243aa0ad074c..575bddaa61db 100644 --- a/drivers/media/usb/go7007/go7007-loader.c +++ b/drivers/media/usb/go7007/go7007-loader.c -@@ -67,11 +67,8 @@ static int go7007_loader_probe(struct usb_interface *interface, +@@ -67,11 +67,8 @@ static int go7007_loader_probe(struct us dev_info(&interface->dev, "loading firmware %s\n", fw1); @@ -1079,7 +959,7 @@ index 243aa0ad074c..575bddaa61db 100644 ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); release_firmware(fw); if (0 != ret) { -@@ -82,11 +79,8 @@ static int go7007_loader_probe(struct usb_interface *interface, +@@ -82,11 +79,8 @@ static int go7007_loader_probe(struct us if (fw2 == NULL) return 0; @@ -1092,11 +972,9 @@ index 243aa0ad074c..575bddaa61db 100644 ret = cypress_load_firmware(usbdev, fw, CYPRESS_FX2); release_firmware(fw); if (0 != ret) { -diff --git a/drivers/media/usb/gspca/vicam.c b/drivers/media/usb/gspca/vicam.c -index 179b2ec3df57..45b24bd52cb5 100644 --- a/drivers/media/usb/gspca/vicam.c +++ b/drivers/media/usb/gspca/vicam.c -@@ -230,10 +230,8 @@ static int sd_init(struct gspca_dev *gspca_dev) +@@ -230,10 +230,8 @@ static int sd_init(struct gspca_dev *gsp ret = request_ihex_firmware(&fw, VICAM_FIRMWARE, &gspca_dev->dev->dev); @@ -1108,11 +986,9 @@ index 179b2ec3df57..45b24bd52cb5 100644 firmware_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!firmware_buf) { -diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -index 1cfb7cf64131..04e52705366a 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -@@ -1371,25 +1371,6 @@ static int pvr2_locate_firmware(struct pvr2_hdw *hdw, +@@ -1371,25 +1371,6 @@ static int pvr2_locate_firmware(struct p "request_firmware fatal error with code=%d",ret); return ret; } @@ -1138,11 +1014,9 @@ index 1cfb7cf64131..04e52705366a 100644 return ret; } -diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c -index 4af55e2478be..360bde1184d0 100644 --- a/drivers/media/usb/s2255/s2255drv.c +++ b/drivers/media/usb/s2255/s2255drv.c -@@ -2278,10 +2278,8 @@ static int s2255_probe(struct usb_interface *interface, +@@ -2278,10 +2278,8 @@ static int s2255_probe(struct usb_interf } /* load the first chunk */ if (request_firmware(&dev->fw_data->fw, @@ -1154,11 +1028,9 @@ index 4af55e2478be..360bde1184d0 100644 /* check the firmware is valid */ fw_size = dev->fw_data->fw->size; pdata = (__le32 *) &dev->fw_data->fw->data[fw_size - 8]; -diff --git a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c -index 4e56ff83566b..fe8224361a64 100644 --- a/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c +++ b/drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c -@@ -291,10 +291,8 @@ static int ttusb_boot_dsp(struct ttusb *ttusb) +@@ -291,10 +291,8 @@ static int ttusb_boot_dsp(struct ttusb * err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin", &ttusb->dev->dev); @@ -1170,11 +1042,9 @@ index 4e56ff83566b..fe8224361a64 100644 /* BootBlock */ b[0] = 0xaa; -diff --git a/drivers/media/usb/ttusb-dec/ttusb_dec.c b/drivers/media/usb/ttusb-dec/ttusb_dec.c -index b8d39b2f777f..4f921a74d8a8 100644 --- a/drivers/media/usb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c -@@ -1325,11 +1325,8 @@ static int ttusb_dec_boot_dsp(struct ttusb_dec *dec) +@@ -1325,11 +1325,8 @@ static int ttusb_dec_boot_dsp(struct ttu dprintk("%s\n", __func__); result = request_firmware(&fw_entry, dec->firmware_name, &dec->udev->dev); @@ -1187,11 +1057,9 @@ index b8d39b2f777f..4f921a74d8a8 100644 firmware = fw_entry->data; firmware_size = fw_entry->size; -diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c -index a36ed1ff5967..f80321b4a317 100644 --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c -@@ -288,11 +288,8 @@ static long download_firmware(struct kim_data_s *kim_gdata) +@@ -295,11 +295,8 @@ static long download_firmware(struct kim request_firmware(&kim_gdata->fw_entry, bts_scr_name, &kim_gdata->kim_pdev->dev); if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) || @@ -1203,12 +1071,10 @@ index a36ed1ff5967..f80321b4a317 100644 - } ptr = (void *)kim_gdata->fw_entry->data; len = kim_gdata->fw_entry->size; - /* bts_header to remove out magic number and -diff --git a/drivers/net/can/softing/softing_fw.c b/drivers/net/can/softing/softing_fw.c -index 8f44fdd8804b..9490198e6dcb 100644 + /* --- a/drivers/net/can/softing/softing_fw.c +++ b/drivers/net/can/softing/softing_fw.c -@@ -226,11 +226,8 @@ int softing_load_app_fw(const char *file, struct softing *card) +@@ -226,11 +226,8 @@ int softing_load_app_fw(const char *file int8_t type_end = 0, type_entrypoint = 0; ret = request_firmware(&fw, file, &card->pdev->dev); @@ -1221,11 +1087,9 @@ index 8f44fdd8804b..9490198e6dcb 100644 dev_dbg(&card->pdev->dev, "firmware(%s) got %lu bytes\n", file, (unsigned long)fw->size); /* parse the firmware */ -diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c -index 5ed33c2c4742..6840f35d9095 100644 --- a/drivers/net/ethernet/3com/typhoon.c +++ b/drivers/net/ethernet/3com/typhoon.c -@@ -1282,11 +1282,8 @@ typhoon_request_firmware(struct typhoon *tp) +@@ -1282,11 +1282,8 @@ typhoon_request_firmware(struct typhoon return 0; err = request_firmware(&typhoon_fw, FIRMWARE_NAME, &tp->pdev->dev); @@ -1238,11 +1102,9 @@ index 5ed33c2c4742..6840f35d9095 100644 image_data = typhoon_fw->data; remaining = typhoon_fw->size; -diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c -index a64191fc2af9..703e272b8c12 100644 --- a/drivers/net/ethernet/adaptec/starfire.c +++ b/drivers/net/ethernet/adaptec/starfire.c -@@ -1000,11 +1000,8 @@ static int netdev_open(struct net_device *dev) +@@ -1000,11 +1000,8 @@ static int netdev_open(struct net_device #endif /* VLAN_SUPPORT */ retval = request_firmware(&fw_rx, FIRMWARE_RX, &np->pci_dev->dev); @@ -1255,7 +1117,7 @@ index a64191fc2af9..703e272b8c12 100644 if (fw_rx->size % 4) { printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", fw_rx->size, FIRMWARE_RX); -@@ -1012,11 +1009,8 @@ static int netdev_open(struct net_device *dev) +@@ -1012,11 +1009,8 @@ static int netdev_open(struct net_device goto out_rx; } retval = request_firmware(&fw_tx, FIRMWARE_TX, &np->pci_dev->dev); @@ -1268,11 +1130,9 @@ index a64191fc2af9..703e272b8c12 100644 if (fw_tx->size % 4) { printk(KERN_ERR "starfire: bogus length %zu in \"%s\"\n", fw_tx->size, FIRMWARE_TX); -diff --git a/drivers/net/ethernet/alacritech/slicoss.c b/drivers/net/ethernet/alacritech/slicoss.c -index 6234fcd844ee..99ee1f064b08 100644 --- a/drivers/net/ethernet/alacritech/slicoss.c +++ b/drivers/net/ethernet/alacritech/slicoss.c -@@ -1051,11 +1051,8 @@ static int slic_load_rcvseq_firmware(struct slic_device *sdev) +@@ -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; err = request_firmware(&fw, file, &sdev->pdev->dev); @@ -1285,7 +1145,7 @@ index 6234fcd844ee..99ee1f064b08 100644 /* Do an initial sanity check concerning firmware size now. A further * check follows below. */ -@@ -1126,10 +1123,8 @@ static int slic_load_firmware(struct slic_device *sdev) +@@ -1126,10 +1123,8 @@ static int slic_load_firmware(struct sli file = (sdev->model == SLIC_MODEL_OASIS) ? SLIC_FIRMWARE_OASIS : SLIC_FIRMWARE_MOJAVE; err = request_firmware(&fw, file, &sdev->pdev->dev); @@ -1297,11 +1157,9 @@ index 6234fcd844ee..99ee1f064b08 100644 /* Do an initial sanity check concerning firmware size now. A further * check follows below. */ -diff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c -index 5d192d551623..e41a4a94af90 100644 --- a/drivers/net/ethernet/alteon/acenic.c +++ b/drivers/net/ethernet/alteon/acenic.c -@@ -2885,11 +2885,8 @@ static int ace_load_firmware(struct net_device *dev) +@@ -2880,11 +2880,8 @@ static int ace_load_firmware(struct net_ fw_name = "acenic/tg1.bin"; ret = request_firmware(&fw, fw_name, &ap->pdev->dev); @@ -1314,11 +1172,9 @@ index 5d192d551623..e41a4a94af90 100644 fw_data = (void *)fw->data; -diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c -index e1c236cab2a7..6b0d1f018772 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c -@@ -3712,16 +3712,13 @@ static int bnx2_request_uncached_firmware(struct bnx2 *bp) +@@ -3712,16 +3712,13 @@ static int bnx2_request_uncached_firmwar } rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev); @@ -1338,11 +1194,9 @@ index e1c236cab2a7..6b0d1f018772 100644 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) || -diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c -index db5107e7937c..c6f4f7cfeb91 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c -@@ -13547,11 +13547,8 @@ static int bnx2x_init_firmware(struct bnx2x *bp) +@@ -13475,11 +13475,8 @@ static int bnx2x_init_firmware(struct bn BNX2X_DEV_INFO("Loading %s\n", fw_file_name); rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev); @@ -1355,11 +1209,9 @@ index db5107e7937c..c6f4f7cfeb91 100644 rc = bnx2x_check_firmware(bp); if (rc) { -diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c -index ebff1fc0d8ce..1d55e95d0d53 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c -@@ -11404,11 +11404,8 @@ static int tg3_request_firmware(struct tg3 *tp) +@@ -11413,11 +11413,8 @@ static int tg3_request_firmware(struct t { const struct tg3_firmware_hdr *fw_hdr; @@ -1372,11 +1224,9 @@ index ebff1fc0d8ce..1d55e95d0d53 100644 fw_hdr = (struct tg3_firmware_hdr *)tp->fw->data; -diff --git a/drivers/net/ethernet/brocade/bna/cna_fwimg.c b/drivers/net/ethernet/brocade/bna/cna_fwimg.c -index 824eaef30704..17b9de83a281 100644 --- a/drivers/net/ethernet/brocade/bna/cna_fwimg.c +++ b/drivers/net/ethernet/brocade/bna/cna_fwimg.c -@@ -24,10 +24,8 @@ cna_read_firmware(struct pci_dev *pdev, u32 **bfi_image, +@@ -24,10 +24,8 @@ cna_read_firmware(struct pci_dev *pdev, const struct firmware *fw; u32 n; @@ -1388,11 +1238,9 @@ index 824eaef30704..17b9de83a281 100644 *bfi_image = (u32 *)fw->data; *bfi_image_size = fw->size/sizeof(u32); -diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c -index 42c6e9379882..33efb526eed4 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c -@@ -1036,12 +1036,8 @@ int t3_get_edc_fw(struct cphy *phy, int edc_idx, int size) +@@ -1036,12 +1036,8 @@ int t3_get_edc_fw(struct cphy *phy, int fw_name = get_edc_fw_name(edc_idx); if (fw_name) ret = request_firmware(&fw, fw_name, &adapter->pdev->dev); @@ -1406,7 +1254,7 @@ index 42c6e9379882..33efb526eed4 100644 /* check size, take checksum in account */ if (fw->size > size + 4) { -@@ -1078,11 +1074,8 @@ static int upgrade_fw(struct adapter *adap) +@@ -1078,11 +1074,8 @@ static int upgrade_fw(struct adapter *ad struct device *dev = &adap->pdev->dev; ret = request_firmware(&fw, FW_FNAME, dev); @@ -1419,7 +1267,7 @@ index 42c6e9379882..33efb526eed4 100644 ret = t3_load_fw(adap, fw->data, fw->size); release_firmware(fw); -@@ -1127,11 +1120,8 @@ static int update_tpsram(struct adapter *adap) +@@ -1127,11 +1120,8 @@ static int update_tpsram(struct adapter snprintf(buf, sizeof(buf), TPSRAM_NAME, rev); ret = request_firmware(&tpsram, buf, dev); @@ -1432,11 +1280,9 @@ index 42c6e9379882..33efb526eed4 100644 ret = t3_check_tpsram(adap, tpsram->data, tpsram->size); if (ret) -diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c -index 1b8d015ebfb0..eefb8cb681b9 100644 --- a/drivers/net/ethernet/intel/e100.c +++ b/drivers/net/ethernet/intel/e100.c -@@ -1265,9 +1265,6 @@ static const struct firmware *e100_request_firmware(struct nic *nic) +@@ -1262,9 +1262,6 @@ static const struct firmware *e100_reque if (err) { if (required) { @@ -1446,11 +1292,9 @@ index 1b8d015ebfb0..eefb8cb681b9 100644 return ERR_PTR(err); } else { netif_info(nic, probe, nic->netdev, -diff --git a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c -index e1e1f4e3639e..638bee3a27d2 100644 --- a/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ b/drivers/net/ethernet/myricom/myri10ge/myri10ge.c -@@ -580,8 +580,6 @@ static int myri10ge_load_hotplug_firmware(struct myri10ge_priv *mgp, u32 * size) +@@ -580,8 +580,6 @@ static int myri10ge_load_hotplug_firmwar unsigned i; if ((status = request_firmware(&fw, mgp->fw_name, dev)) < 0) { @@ -1459,11 +1303,9 @@ index e1e1f4e3639e..638bee3a27d2 100644 status = -EINVAL; goto abort_with_nothing; } -diff --git a/drivers/net/ethernet/smsc/smc91c92_cs.c b/drivers/net/ethernet/smsc/smc91c92_cs.c -index f2a50eb3c1e0..ce754906fc36 100644 --- a/drivers/net/ethernet/smsc/smc91c92_cs.c +++ b/drivers/net/ethernet/smsc/smc91c92_cs.c -@@ -647,10 +647,8 @@ static int osi_load_firmware(struct pcmcia_device *link) +@@ -647,10 +647,8 @@ static int osi_load_firmware(struct pcmc int i, err; err = request_firmware(&fw, FIRMWARE_NAME, &link->dev); @@ -1475,11 +1317,9 @@ index f2a50eb3c1e0..ce754906fc36 100644 /* Download the Seven of Diamonds firmware */ for (i = 0; i < fw->size; i++) { -diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c -index debd3c3fa6fb..a51df2646ec7 100644 --- a/drivers/net/ethernet/sun/cassini.c +++ b/drivers/net/ethernet/sun/cassini.c -@@ -793,11 +793,8 @@ static void cas_saturn_firmware_init(struct cas *cp) +@@ -793,11 +793,8 @@ static void cas_saturn_firmware_init(str return; err = request_firmware(&fw, fw_name, &cp->pdev->dev); @@ -1492,11 +1332,9 @@ index debd3c3fa6fb..a51df2646ec7 100644 if (fw->size < 2) { pr_err("bogus length %zu in \"%s\"\n", fw->size, fw_name); -diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c -index 5ab53e9942f3..b05798b5f5e2 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c -@@ -357,11 +357,8 @@ static unsigned char *add_mcs(unsigned char *bits, int bitrate, +@@ -357,11 +357,8 @@ static unsigned char *add_mcs(unsigned c } err = request_firmware(&fw, fw_name[predef], &pdev->dev); platform_device_unregister(pdev); @@ -1509,11 +1347,9 @@ index 5ab53e9942f3..b05798b5f5e2 100644 if (fw->size != YAM_FPGA_SIZE) { printk(KERN_ERR "Bogus length %zu in firmware \"%s\"\n", fw->size, fw_name[predef]); -diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c -index ed01dc964c99..376920410ec1 100644 --- a/drivers/net/usb/kaweth.c +++ b/drivers/net/usb/kaweth.c -@@ -378,10 +378,8 @@ static int kaweth_download_firmware(struct kaweth_device *kaweth, +@@ -378,10 +378,8 @@ static int kaweth_download_firmware(stru int ret; ret = request_firmware(&fw, fwname, &kaweth->dev->dev); @@ -1525,11 +1361,9 @@ index ed01dc964c99..376920410ec1 100644 if (fw->size > KAWETH_FIRMWARE_BUF_SIZE) { dev_err(&kaweth->intf->dev, "Firmware too big: %zu\n", -diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c -index 6c9a41bff2e0..03e2df8690c9 100644 --- a/drivers/net/wimax/i2400m/fw.c +++ b/drivers/net/wimax/i2400m/fw.c -@@ -1578,11 +1578,8 @@ int i2400m_dev_bootstrap(struct i2400m *i2400m, enum i2400m_bri flags) +@@ -1578,11 +1578,8 @@ int i2400m_dev_bootstrap(struct i2400m * } d_printf(1, dev, "trying firmware %s (%d)\n", fw_name, itr); ret = request_firmware(&fw, fw_name, dev); @@ -1542,7 +1376,7 @@ index 6c9a41bff2e0..03e2df8690c9 100644 i2400m->fw_name = fw_name; ret = i2400m_fw_bootstrap(i2400m, fw, flags); release_firmware(fw); -@@ -1625,8 +1622,6 @@ void i2400m_fw_cache(struct i2400m *i2400m) +@@ -1625,8 +1622,6 @@ void i2400m_fw_cache(struct i2400m *i240 kref_init(&i2400m_fw->kref); result = request_firmware(&i2400m_fw->fw, i2400m->fw_name, dev); if (result < 0) { @@ -1551,11 +1385,9 @@ index 6c9a41bff2e0..03e2df8690c9 100644 kfree(i2400m_fw); i2400m_fw = (void *) ~0; } else -diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c -index 4ed21dad6a8e..a41bfc6a7483 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c -@@ -1195,9 +1195,6 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) +@@ -1197,9 +1197,6 @@ static void ath9k_hif_usb_firmware_cb(co if (!ret) return; @@ -1565,11 +1397,9 @@ index 4ed21dad6a8e..a41bfc6a7483 100644 goto err_fw; } -diff --git a/drivers/net/wireless/ath/carl9170/usb.c b/drivers/net/wireless/ath/carl9170/usb.c -index 486957a04bd1..799e2aefab52 100644 --- a/drivers/net/wireless/ath/carl9170/usb.c +++ b/drivers/net/wireless/ath/carl9170/usb.c -@@ -1029,7 +1029,6 @@ static void carl9170_usb_firmware_step2(const struct firmware *fw, +@@ -1029,7 +1029,6 @@ static void carl9170_usb_firmware_step2( return; } @@ -1577,11 +1407,9 @@ index 486957a04bd1..799e2aefab52 100644 carl9170_usb_firmware_failed(ar); } -diff --git a/drivers/net/wireless/atmel/at76c50x-usb.c b/drivers/net/wireless/atmel/at76c50x-usb.c -index 3b2680772f03..cede709a8a40 100644 --- a/drivers/net/wireless/atmel/at76c50x-usb.c +++ b/drivers/net/wireless/atmel/at76c50x-usb.c -@@ -1617,13 +1617,8 @@ static struct fwentry *at76_load_firmware(struct usb_device *udev, +@@ -1617,13 +1617,8 @@ static struct fwentry *at76_load_firmwar at76_dbg(DBG_FW, "downloading firmware %s", fwe->fwname); ret = request_firmware(&fwe->fw, fwe->fwname, &udev->dev); @@ -1596,11 +1424,9 @@ index 3b2680772f03..cede709a8a40 100644 at76_dbg(DBG_FW, "got it."); fwh = (struct at76_fw_header *)(fwe->fw->data); -diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/net/wireless/atmel/atmel.c -index d5875836068c..463db8ae8cda 100644 --- a/drivers/net/wireless/atmel/atmel.c +++ b/drivers/net/wireless/atmel/atmel.c -@@ -3892,12 +3892,8 @@ static int reset_atmel_card(struct net_device *dev) +@@ -3892,12 +3892,8 @@ static int reset_atmel_card(struct net_d strcpy(priv->firmware_id, "atmel_at76c502.bin"); } err = request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev); @@ -1614,11 +1440,9 @@ index d5875836068c..463db8ae8cda 100644 } else { int fw_index = 0; int success = 0; -diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireless/broadcom/b43/main.c -index 3ad94dad2d89..3fb9f2e29a15 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c -@@ -2243,19 +2243,8 @@ int b43_do_request_fw(struct b43_request_fw_context *ctx, +@@ -2243,19 +2243,8 @@ int b43_do_request_fw(struct b43_request } err = request_firmware(&ctx->blob, ctx->fwname, ctx->dev->dev->dev); @@ -1627,23 +1451,21 @@ index 3ad94dad2d89..3fb9f2e29a15 100644 - sizeof(ctx->errors[ctx->req_type]), - "Firmware file \"%s\" not found\n", - ctx->fwname); -- return err; ++ if (err) + return err; - } else if (err) { - snprintf(ctx->errors[ctx->req_type], - sizeof(ctx->errors[ctx->req_type]), - "Firmware file \"%s\" request failed (err=%d)\n", - ctx->fwname, err); -+ if (err) - return err; +- return err; - } fw_ready: if (ctx->blob->size < sizeof(struct b43_fw_header)) goto err_format; -diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c -index 5208a39fd6f7..247c99a04bfd 100644 --- a/drivers/net/wireless/broadcom/b43legacy/main.c +++ b/drivers/net/wireless/broadcom/b43legacy/main.c -@@ -1523,11 +1523,8 @@ static int do_request_fw(struct b43legacy_wldev *dev, +@@ -1523,11 +1523,8 @@ static int do_request_fw(struct b43legac } else { err = request_firmware(fw, path, dev->dev->dev); } @@ -1656,11 +1478,9 @@ index 5208a39fd6f7..247c99a04bfd 100644 if ((*fw)->size < sizeof(struct b43legacy_fw_header)) goto err_format; hdr = (struct b43legacy_fw_header *)((*fw)->data); -diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c -index 648efcbc819f..949f260fa521 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c -@@ -378,19 +378,13 @@ static int brcms_request_fw(struct brcms_info *wl, struct bcma_device *pdev) +@@ -378,19 +378,13 @@ static int brcms_request_fw(struct brcms sprintf(fw_name, "%s-%d.fw", brcms_firmwares[i], UCODE_LOADER_API_VER); status = request_firmware(&wl->fw.fw_bin[i], fw_name, device); @@ -1682,11 +1502,9 @@ index 648efcbc819f..949f260fa521 100644 wl->fw.hdr_num_entries[i] = wl->fw.fw_hdr[i]->size / (sizeof(struct firmware_hdr)); } -diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c -index 624fe721e2b5..ad8c9d0dbc78 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c -@@ -8392,12 +8392,8 @@ static int ipw2100_get_firmware(struct ipw2100_priv *priv, +@@ -8372,12 +8372,8 @@ static int ipw2100_get_firmware(struct i rc = request_firmware(&fw->fw_entry, fw_name, &priv->pci_dev->dev); @@ -1700,11 +1518,9 @@ index 624fe721e2b5..ad8c9d0dbc78 100644 IPW_DEBUG_INFO("firmware data %p size %zd\n", fw->fw_entry->data, fw->fw_entry->size); -diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c -index 661e63bfc892..4fa3eb0cc112 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c -@@ -3397,10 +3397,8 @@ static int ipw_get_fw(struct ipw_priv *priv, +@@ -3397,10 +3397,8 @@ static int ipw_get_fw(struct ipw_priv *p /* ask firmware_class module to get the boot firmware off disk */ rc = request_firmware(raw, name, &priv->pci_dev->dev); @@ -1716,8 +1532,6 @@ index 661e63bfc892..4fa3eb0cc112 100644 if ((*raw)->size < sizeof(*fw)) { IPW_ERROR("%s is too small (%zd)\n", name, (*raw)->size); -diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c -index 9167c3d2711d..c506917d3afa 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -1837,7 +1837,6 @@ il3945_read_ucode(struct il_priv *il) @@ -1728,11 +1542,9 @@ index 9167c3d2711d..c506917d3afa 100644 if (ret == -ENOENT) continue; else -diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -index 04f14bfdd091..3b4ceb28d487 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -@@ -231,8 +231,6 @@ static int iwl_request_firmware(struct iwl_drv *drv, bool first) +@@ -231,8 +231,6 @@ static int iwl_request_firmware(struct i } if (drv->fw_index < cfg->ucode_api_min) { @@ -1741,11 +1553,9 @@ index 04f14bfdd091..3b4ceb28d487 100644 if (cfg->ucode_api_min == cfg->ucode_api_max) { IWL_ERR(drv, "%s%d is required\n", cfg->fw_name_pre, cfg->ucode_api_max); -diff --git a/drivers/net/wireless/intersil/orinoco/fw.c b/drivers/net/wireless/intersil/orinoco/fw.c -index 015af782881b..b8727000c415 100644 --- a/drivers/net/wireless/intersil/orinoco/fw.c +++ b/drivers/net/wireless/intersil/orinoco/fw.c -@@ -132,7 +132,6 @@ orinoco_dl_firmware(struct orinoco_private *priv, +@@ -132,7 +132,6 @@ orinoco_dl_firmware(struct orinoco_priva err = request_firmware(&fw_entry, firmware, priv->dev); if (err) { @@ -1753,7 +1563,7 @@ index 015af782881b..b8727000c415 100644 err = -ENOENT; goto free; } -@@ -292,10 +291,8 @@ symbol_dl_firmware(struct orinoco_private *priv, +@@ -292,10 +291,8 @@ symbol_dl_firmware(struct orinoco_privat const struct firmware *fw_entry; if (!orinoco_cached_fw_get(priv, true)) { @@ -1765,7 +1575,7 @@ index 015af782881b..b8727000c415 100644 } else fw_entry = orinoco_cached_fw_get(priv, true); -@@ -311,10 +308,8 @@ symbol_dl_firmware(struct orinoco_private *priv, +@@ -311,10 +308,8 @@ symbol_dl_firmware(struct orinoco_privat } if (!orinoco_cached_fw_get(priv, false)) { @@ -1777,11 +1587,9 @@ index 015af782881b..b8727000c415 100644 } else fw_entry = orinoco_cached_fw_get(priv, false); -diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c -index 651c676b5506..4ccd70437563 100644 --- a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c +++ b/drivers/net/wireless/intersil/orinoco/orinoco_usb.c -@@ -1664,7 +1664,6 @@ static int ezusb_probe(struct usb_interface *interface, +@@ -1664,7 +1664,6 @@ static int ezusb_probe(struct usb_interf if (ezusb_firmware_download(upriv, &firmware) < 0) goto error; } else { @@ -1789,11 +1597,9 @@ index 651c676b5506..4ccd70437563 100644 goto error; } -diff --git a/drivers/net/wireless/intersil/p54/p54pci.c b/drivers/net/wireless/intersil/p54/p54pci.c -index 80ad0b7eaef4..909b92e1eca9 100644 --- a/drivers/net/wireless/intersil/p54/p54pci.c +++ b/drivers/net/wireless/intersil/p54/p54pci.c -@@ -496,7 +496,6 @@ static void p54p_firmware_step2(const struct firmware *fw, +@@ -500,7 +500,6 @@ static void p54p_firmware_step2(const st int err; if (!fw) { @@ -1801,11 +1607,9 @@ index 80ad0b7eaef4..909b92e1eca9 100644 err = -ENOENT; goto out; } -diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c -index ab0fe8565851..9c57aab8a224 100644 --- a/drivers/net/wireless/intersil/p54/p54spi.c +++ b/drivers/net/wireless/intersil/p54/p54spi.c -@@ -157,10 +157,8 @@ static int p54spi_request_firmware(struct ieee80211_hw *dev) +@@ -157,10 +157,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); @@ -1817,11 +1621,9 @@ index ab0fe8565851..9c57aab8a224 100644 ret = p54_parse_firmware(dev, priv->firmware); if (ret) { -diff --git a/drivers/net/wireless/intersil/p54/p54usb.c b/drivers/net/wireless/intersil/p54/p54usb.c -index ff0e30c0c14c..234e6b53338d 100644 --- a/drivers/net/wireless/intersil/p54/p54usb.c +++ b/drivers/net/wireless/intersil/p54/p54usb.c -@@ -929,7 +929,6 @@ static void p54u_load_firmware_cb(const struct firmware *firmware, +@@ -929,7 +929,6 @@ static void p54u_load_firmware_cb(const err = p54u_start_ops(priv); } else { err = -ENOENT; @@ -1829,11 +1631,9 @@ index ff0e30c0c14c..234e6b53338d 100644 } complete(&priv->fw_wait_load); -diff --git a/drivers/net/wireless/intersil/prism54/islpci_dev.c b/drivers/net/wireless/intersil/prism54/islpci_dev.c -index a9bae69222dc..1e9d25d296a9 100644 --- a/drivers/net/wireless/intersil/prism54/islpci_dev.c +++ b/drivers/net/wireless/intersil/prism54/islpci_dev.c -@@ -80,12 +80,9 @@ isl_upload_firmware(islpci_private *priv) +@@ -80,12 +80,9 @@ isl_upload_firmware(islpci_private *priv const u32 *fw_ptr; rc = request_firmware(&fw_entry, priv->firmware, PRISM_FW_PDEV); @@ -1848,11 +1648,9 @@ index a9bae69222dc..1e9d25d296a9 100644 /* prepare the Direct Memory Base register */ reg = ISL38XX_DEV_FIRMWARE_ADDRES; -diff --git a/drivers/net/wireless/marvell/libertas_tf/if_usb.c b/drivers/net/wireless/marvell/libertas_tf/if_usb.c -index bedc09215088..cdf74d42d9ac 100644 --- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c +++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c -@@ -817,8 +817,6 @@ static int if_usb_prog_firmware(struct lbtf_private *priv) +@@ -817,8 +817,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); if (ret < 0) { @@ -1861,11 +1659,9 @@ index bedc09215088..cdf74d42d9ac 100644 kernel_param_unlock(THIS_MODULE); goto done; } -diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c -index 529099137644..3a397c304d8f 100644 --- a/drivers/net/wireless/marvell/mwifiex/main.c +++ b/drivers/net/wireless/marvell/mwifiex/main.c -@@ -525,11 +525,8 @@ static int _mwifiex_fw_dpc(const struct firmware *firmware, void *context) +@@ -525,11 +525,8 @@ static int _mwifiex_fw_dpc(const struct struct wireless_dev *wdev; struct completion *fw_done = adapter->fw_done; @@ -1878,11 +1674,9 @@ index 529099137644..3a397c304d8f 100644 memset(&fw, 0, sizeof(struct mwifiex_fw_image)); adapter->firmware = firmware; -diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c -index 97f23f93f6e7..a38fb5eea7bd 100644 --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c -@@ -5727,16 +5727,12 @@ static int mwl8k_firmware_load_success(struct mwl8k_priv *priv); +@@ -5727,16 +5727,12 @@ static int mwl8k_firmware_load_success(s static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) { struct mwl8k_priv *priv = context; @@ -1900,7 +1694,7 @@ index 97f23f93f6e7..a38fb5eea7bd 100644 priv->fw_helper = fw; rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode, true); -@@ -5771,11 +5767,8 @@ static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) +@@ -5771,11 +5767,8 @@ static void mwl8k_fw_state_machine(const break; case FW_STATE_LOADING_ALT: @@ -1913,7 +1707,7 @@ index 97f23f93f6e7..a38fb5eea7bd 100644 priv->fw_ucode = fw; rc = mwl8k_firmware_load_success(priv); if (rc) -@@ -5813,10 +5806,8 @@ static int mwl8k_init_firmware(struct ieee80211_hw *hw, char *fw_image, +@@ -5813,10 +5806,8 @@ retry: /* Ask userland hotplug daemon for the device firmware */ rc = mwl8k_request_firmware(priv, fw_image, nowait); @@ -1925,11 +1719,9 @@ index 97f23f93f6e7..a38fb5eea7bd 100644 if (nowait) return rc; -diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c b/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c -index c20886b02e64..e7ec16d56b4b 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00firmware.c -@@ -38,10 +38,8 @@ static int rt2x00lib_request_firmware(struct rt2x00_dev *rt2x00dev) +@@ -38,10 +38,8 @@ static int rt2x00lib_request_firmware(st rt2x00_info(rt2x00dev, "Loading firmware file '%s'\n", fw_name); retval = request_firmware(&fw, fw_name, device); @@ -1941,11 +1733,9 @@ index c20886b02e64..e7ec16d56b4b 100644 if (!fw || !fw->size || !fw->data) { rt2x00_err(rt2x00dev, "Failed to read Firmware\n"); -diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c -index 4dd82c6052f0..8f37c02eaad0 100644 --- a/drivers/net/wireless/realtek/rtlwifi/core.c +++ b/drivers/net/wireless/realtek/rtlwifi/core.c -@@ -89,7 +89,6 @@ static void rtl_fw_do_work(const struct firmware *firmware, void *context, +@@ -89,7 +89,6 @@ static void rtl_fw_do_work(const struct if (!err) goto found_alt; } @@ -1953,11 +1743,9 @@ index 4dd82c6052f0..8f37c02eaad0 100644 rtlpriv->max_fw_size = 0; return; } -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c -index 7a54497b7df2..f0dab3b26ebb 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c -@@ -63,13 +63,11 @@ static void rtl92se_fw_cb(const struct firmware *firmware, void *context) +@@ -63,13 +63,11 @@ static void rtl92se_fw_cb(const struct f struct ieee80211_hw *hw = context; struct rtl_priv *rtlpriv = rtl_priv(hw); struct rt_firmware *pfirmware = NULL; @@ -1971,11 +1759,9 @@ index 7a54497b7df2..f0dab3b26ebb 100644 rtlpriv->max_fw_size = 0; return; } -diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c -index 480a8d084878..4e9d99efe0b8 100644 --- a/drivers/net/wireless/ti/wl1251/main.c +++ b/drivers/net/wireless/ti/wl1251/main.c -@@ -57,10 +57,8 @@ static int wl1251_fetch_firmware(struct wl1251 *wl) +@@ -57,10 +57,8 @@ static int wl1251_fetch_firmware(struct ret = request_firmware(&fw, WL1251_FW_NAME, dev); @@ -1987,7 +1773,7 @@ index 480a8d084878..4e9d99efe0b8 100644 if (fw->size % 4) { wl1251_error("firmware size is not multiple of 32 bits: %zu", -@@ -96,10 +94,8 @@ static int wl1251_fetch_nvs(struct wl1251 *wl) +@@ -96,10 +94,8 @@ static int wl1251_fetch_nvs(struct wl125 ret = request_firmware(&fw, WL1251_NVS_NAME, dev); @@ -1999,11 +1785,9 @@ index 480a8d084878..4e9d99efe0b8 100644 if (fw->size % 4) { wl1251_error("nvs size is not multiple of 32 bits: %zu", -diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c -index de6c8a7589ca..ff3fd1ed2b8d 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c -@@ -756,10 +756,8 @@ static int wl12xx_fetch_firmware(struct wl1271 *wl, bool plt) +@@ -765,10 +765,8 @@ static int wl12xx_fetch_firmware(struct ret = request_firmware(&fw, fw_name, wl->dev); @@ -2015,11 +1799,9 @@ index de6c8a7589ca..ff3fd1ed2b8d 100644 if (fw->size % 4) { wl1271_error("firmware size is not multiple of 32 bits: %zu", -diff --git a/drivers/net/wireless/zydas/zd1201.c b/drivers/net/wireless/zydas/zd1201.c -index 41641fc2be74..d05323f24aa1 100644 --- a/drivers/net/wireless/zydas/zd1201.c +++ b/drivers/net/wireless/zydas/zd1201.c -@@ -62,8 +62,6 @@ static int zd1201_fw_upload(struct usb_device *dev, int apfw) +@@ -62,8 +62,6 @@ static int zd1201_fw_upload(struct usb_d err = request_firmware(&fw_entry, fwfile, &dev->dev); if (err) { @@ -2028,11 +1810,9 @@ index 41641fc2be74..d05323f24aa1 100644 dev_err(&dev->dev, "Goto http://linux-lc100020.sourceforge.net for more info.\n"); return err; } -diff --git a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c -index 8ff0374126e4..3b00e98581c1 100644 --- a/drivers/net/wireless/zydas/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zydas/zd1211rw/zd_usb.c -@@ -108,16 +108,9 @@ static void int_urb_complete(struct urb *urb); +@@ -108,16 +108,9 @@ static void int_urb_complete(struct urb static int request_fw_file( const struct firmware **fw, const char *name, struct device *device) { @@ -2050,11 +1830,9 @@ index 8ff0374126e4..3b00e98581c1 100644 } static inline u16 get_bcdDevice(const struct usb_device *udev) -diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c -index c2c7850ff7b4..77a50f790173 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c -@@ -4103,8 +4103,6 @@ static int AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc) +@@ -4103,8 +4103,6 @@ static int AscInitAsc1000Driver(ASC_DVC_ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); if (err) { @@ -2063,7 +1841,7 @@ index c2c7850ff7b4..77a50f790173 100644 asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM; return err; } -@@ -4469,8 +4467,6 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc) +@@ -4469,8 +4467,6 @@ static int AdvInitAsc3550Driver(ADV_DVC_ err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); if (err) { @@ -2072,7 +1850,7 @@ index c2c7850ff7b4..77a50f790173 100644 asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; return err; } -@@ -4969,8 +4965,6 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc) +@@ -4969,8 +4965,6 @@ static int AdvInitAsc38C0800Driver(ADV_D err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); if (err) { @@ -2081,7 +1859,7 @@ index c2c7850ff7b4..77a50f790173 100644 asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; return err; } -@@ -5457,8 +5451,6 @@ static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc) +@@ -5457,8 +5451,6 @@ static int AdvInitAsc38C1600Driver(ADV_D err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev); if (err) { @@ -2090,11 +1868,9 @@ index c2c7850ff7b4..77a50f790173 100644 asc_dvc->err_code = ASC_IERR_MCODE_CHKSUM; return err; } -diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c -index bef47f38dd0d..43559ec352a2 100644 --- a/drivers/scsi/aic94xx/aic94xx_init.c +++ b/drivers/scsi/aic94xx/aic94xx_init.c -@@ -369,8 +369,6 @@ static ssize_t asd_store_update_bios(struct device *dev, +@@ -369,8 +369,6 @@ static ssize_t asd_store_update_bios(str filename_ptr, &asd_ha->pcidev->dev); if (err) { @@ -2103,11 +1879,9 @@ index bef47f38dd0d..43559ec352a2 100644 err = FAIL_OPEN_BIOS_FILE; goto out1; } -diff --git a/drivers/scsi/aic94xx/aic94xx_seq.c b/drivers/scsi/aic94xx/aic94xx_seq.c -index 11853ec29d87..f2015d705186 100644 --- a/drivers/scsi/aic94xx/aic94xx_seq.c +++ b/drivers/scsi/aic94xx/aic94xx_seq.c -@@ -1299,11 +1299,8 @@ int asd_init_seqs(struct asd_ha_struct *asd_ha) +@@ -1302,11 +1302,8 @@ int asd_init_seqs(struct asd_ha_struct * err = asd_request_firmware(asd_ha); @@ -2120,11 +1894,9 @@ index 11853ec29d87..f2015d705186 100644 err = asd_seq_download_seqs(asd_ha); if (err) { -diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c -index bc5d84f87d8f..9d5abf731ec9 100644 --- a/drivers/scsi/bfa/bfad.c +++ b/drivers/scsi/bfa/bfad.c -@@ -1748,7 +1748,6 @@ bfad_read_firmware(struct pci_dev *pdev, u32 **bfi_image, +@@ -1748,7 +1748,6 @@ bfad_read_firmware(struct pci_dev *pdev, const struct firmware *fw; if (request_firmware(&fw, fw_name, &pdev->dev)) { @@ -2132,11 +1904,9 @@ index bc5d84f87d8f..9d5abf731ec9 100644 *bfi_image = NULL; goto out; } -diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c -index 7d86f4ca266c..8f2f9f6f8332 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c -@@ -4091,10 +4091,8 @@ static ssize_t ipr_store_update_fw(struct device *dev, +@@ -4102,10 +4102,8 @@ static ssize_t ipr_store_update_fw(struc if (endline) *endline = '\0'; @@ -2148,11 +1918,9 @@ index 7d86f4ca266c..8f2f9f6f8332 100644 image_hdr = (struct ipr_ucode_image_header *)fw_entry->data; -diff --git a/drivers/scsi/pm8001/pm8001_ctl.c b/drivers/scsi/pm8001/pm8001_ctl.c -index 3c9f42779dd0..80cf4f4546de 100644 --- a/drivers/scsi/pm8001/pm8001_ctl.c +++ b/drivers/scsi/pm8001/pm8001_ctl.c -@@ -818,10 +818,6 @@ static ssize_t pm8001_store_update_fw(struct device *cdev, +@@ -839,10 +839,6 @@ static ssize_t pm8001_store_update_fw(st pm8001_ha->dev); if (ret) { @@ -2163,11 +1931,9 @@ index 3c9f42779dd0..80cf4f4546de 100644 pm8001_ha->fw_status = FAIL_OPEN_BIOS_FILE; goto out; } -diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c -index 441a45349349..a420757e51c7 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c -@@ -1515,8 +1515,6 @@ qla1280_request_firmware(struct scsi_qla_host *ha) +@@ -1515,8 +1515,6 @@ qla1280_request_firmware(struct scsi_qla err = request_firmware(&fw, fwname, &ha->pdev->dev); if (err) { @@ -2176,11 +1942,9 @@ index 441a45349349..a420757e51c7 100644 fw = ERR_PTR(err); goto unlock; } -diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c -index 2436a17f5cd9..cc8afd4216ab 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c -@@ -7859,10 +7859,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, uint32_t *srisc_addr) +@@ -7864,10 +7864,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -2191,7 +1955,7 @@ index 2436a17f5cd9..cc8afd4216ab 100644 return QLA_FUNCTION_FAILED; } -@@ -7965,9 +7961,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t *vha, uint32_t *srisc_addr) +@@ -7970,9 +7966,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * blob = qla2x00_request_firmware(vha); if (!blob) { @@ -2201,11 +1965,9 @@ index 2436a17f5cd9..cc8afd4216ab 100644 return QLA_FUNCTION_FAILED; } -diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c -index 0baf55b7e88f..80396c7c95e9 100644 --- a/drivers/scsi/qla2xxx/qla_nx.c +++ b/drivers/scsi/qla2xxx/qla_nx.c -@@ -2436,11 +2436,8 @@ qla82xx_load_fw(scsi_qla_host_t *vha) +@@ -2432,11 +2432,8 @@ try_blob_fw: /* Load firmware blob. */ blob = ha->hablob = qla2x00_request_firmware(vha); @@ -2218,11 +1980,9 @@ index 0baf55b7e88f..80396c7c95e9 100644 /* Validating firmware blob */ if (qla82xx_validate_firmware_blob(vha, -diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c -index e92fad99338c..89aba7307a51 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c -@@ -7409,8 +7409,6 @@ qla2x00_request_firmware(scsi_qla_host_t *vha) +@@ -7439,8 +7439,6 @@ qla2x00_request_firmware(scsi_qla_host_t goto out; if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) { @@ -2231,11 +1991,9 @@ index e92fad99338c..89aba7307a51 100644 blob->fw = NULL; blob = NULL; } -diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c -index 3790e8b70bba..252bf8a56e25 100644 --- a/drivers/scsi/qlogicpti.c +++ b/drivers/scsi/qlogicpti.c -@@ -486,11 +486,8 @@ static int qlogicpti_load_firmware(struct qlogicpti *qpti) +@@ -486,11 +486,8 @@ static int qlogicpti_load_firmware(struc int i, timeout; err = request_firmware(&fw, fwname, &qpti->op->dev); @@ -2248,11 +2006,9 @@ index 3790e8b70bba..252bf8a56e25 100644 if (fw->size % 2) { printk(KERN_ERR "Bogus length %zu in image \"%s\"\n", fw->size, fwname); -diff --git a/drivers/staging/rtl8192u/r819xU_firmware.c b/drivers/staging/rtl8192u/r819xU_firmware.c -index dd81d210bd49..933fdc31925a 100644 --- a/drivers/staging/rtl8192u/r819xU_firmware.c +++ b/drivers/staging/rtl8192u/r819xU_firmware.c -@@ -245,10 +245,8 @@ bool init_firmware(struct net_device *dev) +@@ -245,10 +245,8 @@ bool init_firmware(struct net_device *de */ if (rst_opt == OPT_SYSTEM_RESET) { rc = request_firmware(&fw_entry, fw_name[init_step], &priv->udev->dev); @@ -2264,11 +2020,9 @@ index dd81d210bd49..933fdc31925a 100644 if (fw_entry->size > sizeof(pfirmware->firmware_buf)) { RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n"); -diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c -index 40145c0338e4..c3107bb03b00 100644 --- a/drivers/staging/rtl8712/hal_init.c +++ b/drivers/staging/rtl8712/hal_init.c -@@ -59,8 +59,6 @@ int rtl871x_load_fw(struct _adapter *padapter) +@@ -60,8 +60,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, GFP_KERNEL, padapter, rtl871x_load_fw_cb); @@ -2277,11 +2031,9 @@ index 40145c0338e4..c3107bb03b00 100644 return rc; } MODULE_FIRMWARE("rtlwifi/rtl8712u.bin"); -diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c -index 8bf851c53f4e..953029373285 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c -@@ -109,11 +109,8 @@ static int vnt_download_firmware(struct vnt_private *priv) +@@ -109,11 +109,8 @@ static int vnt_download_firmware(struct dev_dbg(dev, "---->Download firmware\n"); ret = request_firmware(&fw, FIRMWARE_NAME, dev); @@ -2294,11 +2046,9 @@ index 8bf851c53f4e..953029373285 100644 for (ii = 0; ii < fw->size; ii += FIRMWARE_CHUNK_SIZE) { length = min_t(int, fw->size - ii, FIRMWARE_CHUNK_SIZE); -diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c -index a6aabfd6e2da..cc36faef39bd 100644 --- a/drivers/tty/cyclades.c +++ b/drivers/tty/cyclades.c -@@ -3484,10 +3484,8 @@ static int cyz_load_fw(struct pci_dev *pdev, void __iomem *base_addr, +@@ -3484,10 +3484,8 @@ static int cyz_load_fw(struct pci_dev *p int retval; retval = request_firmware(&fw, "cyzfirm.bin", &pdev->dev); @@ -2310,11 +2060,9 @@ index a6aabfd6e2da..cc36faef39bd 100644 /* Check whether the firmware is already loaded and running. If positive, skip this board */ -diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c -index 9f13f7d49dd7..ba3316c073b3 100644 --- a/drivers/tty/moxa.c +++ b/drivers/tty/moxa.c -@@ -854,13 +854,8 @@ static int moxa_init_board(struct moxa_board_conf *brd, struct device *dev) +@@ -854,13 +854,8 @@ static int moxa_init_board(struct moxa_b } ret = request_firmware(&fw, file, dev); @@ -2329,11 +2077,9 @@ index 9f13f7d49dd7..ba3316c073b3 100644 ret = moxa_load_fw(brd, fw); -diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c -index 624f3d541c68..fb39c425614d 100644 --- a/drivers/tty/serial/icom.c +++ b/drivers/tty/serial/icom.c -@@ -358,7 +358,6 @@ static void load_code(struct icom_port *icom_port) +@@ -358,7 +358,6 @@ static void load_code(struct icom_port * /* Load Call Setup into Adapter */ if (request_firmware(&fw, "icom_call_setup.bin", &dev->dev) < 0) { @@ -2341,7 +2087,7 @@ index 624f3d541c68..fb39c425614d 100644 status = -1; goto load_code_exit; } -@@ -378,7 +377,6 @@ static void load_code(struct icom_port *icom_port) +@@ -378,7 +377,6 @@ static void load_code(struct icom_port * /* Load Resident DCE portion of Adapter */ if (request_firmware(&fw, "icom_res_dce.bin", &dev->dev) < 0) { @@ -2349,7 +2095,7 @@ index 624f3d541c68..fb39c425614d 100644 status = -1; goto load_code_exit; } -@@ -423,7 +421,6 @@ static void load_code(struct icom_port *icom_port) +@@ -423,7 +421,6 @@ static void load_code(struct icom_port * } if (request_firmware(&fw, "icom_asc.bin", &dev->dev) < 0) { @@ -2357,11 +2103,9 @@ index 624f3d541c68..fb39c425614d 100644 status = -1; goto load_code_exit; } -diff --git a/drivers/tty/serial/ucc_uart.c b/drivers/tty/serial/ucc_uart.c -index 3c8c662c69e2..89cb6c851e04 100644 --- a/drivers/tty/serial/ucc_uart.c +++ b/drivers/tty/serial/ucc_uart.c -@@ -1161,10 +1161,8 @@ static void uart_firmware_cont(const struct firmware *fw, void *context) +@@ -1161,10 +1161,8 @@ static void uart_firmware_cont(const str struct device *dev = context; int ret; @@ -2373,11 +2117,9 @@ index 3c8c662c69e2..89cb6c851e04 100644 firmware = (struct qe_firmware *) fw->data; -diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c -index 5d41f85a7445..df78902cc942 100644 --- a/drivers/usb/atm/cxacru.c +++ b/drivers/usb/atm/cxacru.c -@@ -1088,8 +1088,6 @@ static int cxacru_find_firmware(struct cxacru_data *instance, +@@ -1088,8 +1088,6 @@ static int cxacru_find_firmware(struct c return -ENOENT; } @@ -2386,11 +2128,9 @@ index 5d41f85a7445..df78902cc942 100644 return 0; } -diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c -index e9fed9a88737..f159494258bd 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c -@@ -606,10 +606,8 @@ static void uea_upload_pre_firmware(const struct firmware *fw_entry, +@@ -606,10 +606,8 @@ static void uea_upload_pre_firmware(cons int ret, size; uea_enters(usb); @@ -2402,7 +2142,7 @@ index e9fed9a88737..f159494258bd 100644 pfw = fw_entry->data; size = fw_entry->size; -@@ -704,10 +702,6 @@ static int uea_load_firmware(struct usb_device *usb, unsigned int ver) +@@ -704,10 +702,6 @@ static int uea_load_firmware(struct usb_ ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, GFP_KERNEL, usb, uea_upload_pre_firmware); @@ -2413,7 +2153,7 @@ index e9fed9a88737..f159494258bd 100644 uea_leaves(usb); return ret; -@@ -869,12 +863,8 @@ static int request_dsp(struct uea_softc *sc) +@@ -869,12 +863,8 @@ static int request_dsp(struct uea_softc } ret = request_firmware(&sc->dsp_firm, dsp_name, &sc->usb_dev->dev); @@ -2427,7 +2167,7 @@ index e9fed9a88737..f159494258bd 100644 if (UEA_CHIP_VERSION(sc) == EAGLE_IV) ret = check_dsp_e4(sc->dsp_firm->data, sc->dsp_firm->size); -@@ -1587,12 +1577,8 @@ static int request_cmvs_old(struct uea_softc *sc, +@@ -1587,12 +1577,8 @@ static int request_cmvs_old(struct uea_s cmvs_file_name(sc, cmv_name, 1); ret = request_firmware(fw, cmv_name, &sc->usb_dev->dev); @@ -2441,7 +2181,7 @@ index e9fed9a88737..f159494258bd 100644 data = (u8 *) (*fw)->data; size = (*fw)->size; -@@ -1629,9 +1615,6 @@ static int request_cmvs(struct uea_softc *sc, +@@ -1629,9 +1615,6 @@ static int request_cmvs(struct uea_softc "try to get older cmvs\n", cmv_name); return request_cmvs_old(sc, cmvs, fw); } @@ -2451,7 +2191,7 @@ index e9fed9a88737..f159494258bd 100644 return ret; } -@@ -1914,11 +1897,8 @@ static int load_XILINX_firmware(struct uea_softc *sc) +@@ -1914,11 +1897,8 @@ static int load_XILINX_firmware(struct u uea_enters(INS_TO_USBDEV(sc)); ret = request_firmware(&fw_entry, fw_name, &sc->usb_dev->dev); @@ -2464,11 +2204,9 @@ index e9fed9a88737..f159494258bd 100644 pfw = fw_entry->data; size = fw_entry->size; -diff --git a/drivers/usb/misc/emi26.c b/drivers/usb/misc/emi26.c -index 24d841850e05..84e62e60c8a5 100644 --- a/drivers/usb/misc/emi26.c +++ b/drivers/usb/misc/emi26.c -@@ -85,21 +85,17 @@ static int emi26_load_firmware (struct usb_device *dev) +@@ -85,21 +85,17 @@ static int emi26_load_firmware (struct u err = request_ihex_firmware(&loader_fw, "emi26/loader.fw", &dev->dev); if (err) @@ -2493,11 +2231,9 @@ index 24d841850e05..84e62e60c8a5 100644 /* Assert reset (stop the CPU in the EMI) */ err = emi26_set_reset(dev,1); -diff --git a/drivers/usb/misc/ezusb.c b/drivers/usb/misc/ezusb.c -index f058d8029761..4457095c5dde 100644 --- a/drivers/usb/misc/ezusb.c +++ b/drivers/usb/misc/ezusb.c -@@ -76,12 +76,8 @@ static int ezusb_ihex_firmware_download(struct usb_device *dev, +@@ -76,12 +76,8 @@ static int ezusb_ihex_firmware_download( const struct ihex_binrec *record; if (request_ihex_firmware(&firmware, firmware_path, @@ -2511,11 +2247,9 @@ index f058d8029761..4457095c5dde 100644 ret = ezusb_set_reset(dev, fx.cpucs_reg, 0); if (ret < 0) -diff --git a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c -index 4d30095d6ad2..e217999b1923 100644 --- a/drivers/usb/misc/isight_firmware.c +++ b/drivers/usb/misc/isight_firmware.c -@@ -45,7 +45,6 @@ static int isight_firmware_load(struct usb_interface *intf, +@@ -45,7 +45,6 @@ static int isight_firmware_load(struct u return -ENOMEM; if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) { @@ -2523,11 +2257,9 @@ index 4d30095d6ad2..e217999b1923 100644 ret = -ENODEV; goto out; } -diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c -index 4cca0b836f43..81a96791f74e 100644 --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c -@@ -375,11 +375,8 @@ static void update_edgeport_E2PROM(struct edgeport_serial *edge_serial) +@@ -375,11 +375,8 @@ static void update_edgeport_E2PROM(struc response = request_ihex_firmware(&fw, fw_name, &edge_serial->serial->dev->dev); @@ -2540,11 +2272,9 @@ index 4cca0b836f43..81a96791f74e 100644 rec = (const struct ihex_binrec *)fw->data; BootMajorVersion = rec->data[0]; -diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c -index c327d4cf7928..ac3c2ae52f7b 100644 --- a/drivers/usb/serial/io_ti.c +++ b/drivers/usb/serial/io_ti.c -@@ -1010,8 +1010,6 @@ static int download_fw(struct edgeport_serial *serial) +@@ -1010,8 +1010,6 @@ static int download_fw(struct edgeport_s status = request_firmware(&fw, fw_name, dev); if (status) { @@ -2553,11 +2283,9 @@ index c327d4cf7928..ac3c2ae52f7b 100644 return status; } -diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c -index 73075b9351c5..aecf9c21cd0f 100644 --- a/drivers/usb/serial/ti_usb_3410_5052.c +++ b/drivers/usb/serial/ti_usb_3410_5052.c -@@ -1663,10 +1663,8 @@ static int ti_download_firmware(struct ti_device *tdev) +@@ -1663,10 +1663,8 @@ static int ti_download_firmware(struct t } check_firmware: @@ -2569,11 +2297,9 @@ index 73075b9351c5..aecf9c21cd0f 100644 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); -diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c -index fd66f4d4a621..ef5a29f865b5 100644 --- a/drivers/video/fbdev/broadsheetfb.c +++ b/drivers/video/fbdev/broadsheetfb.c -@@ -743,10 +743,8 @@ static ssize_t broadsheet_loadstore_waveform(struct device *dev, +@@ -743,10 +743,8 @@ static ssize_t broadsheet_loadstore_wave return -EINVAL; err = request_firmware(&fw_entry, "broadsheet.wbf", dev); @@ -2585,11 +2311,9 @@ index fd66f4d4a621..ef5a29f865b5 100644 /* try to enforce reasonable min max on waveform */ if ((fw_entry->size < 8*1024) || (fw_entry->size > 64*1024)) { -diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c -index a42e2eceee48..13bf75b4dd02 100644 --- a/drivers/video/fbdev/metronomefb.c +++ b/drivers/video/fbdev/metronomefb.c -@@ -679,10 +679,8 @@ static int metronomefb_probe(struct platform_device *dev) +@@ -679,10 +679,8 @@ static int metronomefb_probe(struct plat a) request the waveform file from userspace b) process waveform and decode into metromem */ retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev); @@ -2601,11 +2325,9 @@ index a42e2eceee48..13bf75b4dd02 100644 retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 3, 31, par); -diff --git a/sound/drivers/vx/vx_hwdep.c b/sound/drivers/vx/vx_hwdep.c -index 01baa6d872e9..0f01e78c0d9c 100644 --- a/sound/drivers/vx/vx_hwdep.c +++ b/sound/drivers/vx/vx_hwdep.c -@@ -58,10 +58,8 @@ int snd_vx_setup_firmware(struct vx_core *chip) +@@ -58,10 +58,8 @@ int snd_vx_setup_firmware(struct vx_core if (! fw_files[chip->type][i]) continue; sprintf(path, "vx/%s", fw_files[chip->type][i]); @@ -2617,11 +2339,9 @@ index 01baa6d872e9..0f01e78c0d9c 100644 err = chip->ops->load_dsp(chip, i, fw); if (err < 0) { release_firmware(fw); -diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c -index 24b34ecf5e5b..8bb05d10ae70 100644 --- a/sound/isa/msnd/msnd_pinnacle.c +++ b/sound/isa/msnd/msnd_pinnacle.c -@@ -376,15 +376,11 @@ static int upload_dsp_code(struct snd_card *card) +@@ -376,15 +376,11 @@ static int upload_dsp_code(struct snd_ca outb(HPBLKSEL_0, chip->io + HP_BLKS); err = request_firmware(&init_fw, INITCODEFILE, card->dev); @@ -2639,11 +2359,9 @@ index 24b34ecf5e5b..8bb05d10ae70 100644 memcpy_toio(chip->mappedbase, perm_fw->data, perm_fw->size); if (snd_msnd_upload_host(chip, init_fw->data, init_fw->size) < 0) { -diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c -index 5363d88cc4b9..209e645be532 100644 --- a/sound/isa/sscape.c +++ b/sound/isa/sscape.c -@@ -531,10 +531,8 @@ static int sscape_upload_bootblock(struct snd_card *card) +@@ -531,10 +531,8 @@ static int sscape_upload_bootblock(struc int ret; ret = request_firmware(&init_fw, "scope.cod", card->dev); @@ -2655,7 +2373,7 @@ index 5363d88cc4b9..209e645be532 100644 ret = upload_dma_data(sscape, init_fw->data, init_fw->size); release_firmware(init_fw); -@@ -571,11 +569,8 @@ static int sscape_upload_microcode(struct snd_card *card, int version) +@@ -571,11 +569,8 @@ static int sscape_upload_microcode(struc snprintf(name, sizeof(name), "sndscape.co%d", version); err = request_firmware(&init_fw, name, card->dev); @@ -2668,11 +2386,9 @@ index 5363d88cc4b9..209e645be532 100644 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", -diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c -index d6420d224d09..824c8570cee8 100644 --- a/sound/isa/wavefront/wavefront_synth.c +++ b/sound/isa/wavefront/wavefront_synth.c -@@ -1959,10 +1959,8 @@ wavefront_download_firmware (snd_wavefront_t *dev, char *path) +@@ -1959,10 +1959,8 @@ wavefront_download_firmware (snd_wavefro const struct firmware *firmware; err = request_firmware(&firmware, path, dev->card->dev); @@ -2684,11 +2400,9 @@ index d6420d224d09..824c8570cee8 100644 len = 0; buf = firmware->data; -diff --git a/sound/pci/asihpi/hpidspcd.c b/sound/pci/asihpi/hpidspcd.c -index 9acc0ac75eca..7c1ebc8ec8ec 100644 --- a/sound/pci/asihpi/hpidspcd.c +++ b/sound/pci/asihpi/hpidspcd.c -@@ -35,8 +35,6 @@ short hpi_dsp_code_open(u32 adapter, void *os_data, struct dsp_code *dsp_code, +@@ -35,8 +35,6 @@ short hpi_dsp_code_open(u32 adapter, voi err = request_firmware(&firmware, fw_name, &dev->dev); if (err || !firmware) { @@ -2697,11 +2411,9 @@ index 9acc0ac75eca..7c1ebc8ec8ec 100644 goto error1; } if (firmware->size < sizeof(header)) { -diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c -index a080d63a9b45..c4ab9e51c0ee 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c -@@ -3235,11 +3235,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46xx *chip) +@@ -3235,11 +3235,8 @@ int snd_cs46xx_start_dsp(struct snd_cs46 #ifdef CONFIG_SND_CS46XX_NEW_DSP for (i = 0; i < CS46XX_DSP_MODULES; i++) { err = load_firmware(chip, &chip->modules[i], module_names[i]); @@ -2714,11 +2426,9 @@ index a080d63a9b45..c4ab9e51c0ee 100644 err = cs46xx_dsp_load_module(chip, chip->modules[i]); if (err < 0) { dev_err(chip->card->dev, "image download error [%s]\n", -diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c -index 0941a7a17623..bdb8b7a0b637 100644 --- a/sound/pci/echoaudio/echoaudio.c +++ b/sound/pci/echoaudio/echoaudio.c -@@ -48,11 +48,8 @@ static int get_firmware(const struct firmware **fw_entry, +@@ -49,11 +49,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); err = request_firmware(fw_entry, name, &chip->pci->dev); @@ -2731,11 +2441,9 @@ index 0941a7a17623..bdb8b7a0b637 100644 chip->fw_cache[fw_index] = *fw_entry; #endif return err; -diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c -index 6ff581733a19..2cac43270e0c 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c -@@ -873,10 +873,8 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu) +@@ -873,10 +873,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); @@ -2747,11 +2455,9 @@ index 6ff581733a19..2cac43270e0c 100644 /* ID, should read & 0x7f = 0x55 when FPGA programmed. */ snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®); -diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c -index 3565e2ab0965..4a630892560d 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c -@@ -2037,8 +2037,6 @@ static void azx_firmware_cb(const struct firmware *fw, void *context) +@@ -2046,8 +2046,6 @@ static void azx_firmware_cb(const struct if (fw) chip->fw = fw; @@ -2760,11 +2466,9 @@ index 3565e2ab0965..4a630892560d 100644 if (!chip->disabled) { /* continue probing */ azx_probe_continue(chip); -diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c -index 65a887b217ee..d0c664166e5b 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c -@@ -2333,7 +2333,6 @@ static int snd_korg1212_create(struct snd_card *card, struct pci_dev *pci, +@@ -2335,7 +2335,6 @@ static int snd_korg1212_create(struct sn err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev); if (err < 0) { @@ -2772,11 +2476,9 @@ index 65a887b217ee..d0c664166e5b 100644 snd_korg1212_free(korg1212); return err; } -diff --git a/sound/pci/mixart/mixart_hwdep.c b/sound/pci/mixart/mixart_hwdep.c -index 13dcb2fd0a85..1f77e42fba16 100644 --- a/sound/pci/mixart/mixart_hwdep.c +++ b/sound/pci/mixart/mixart_hwdep.c -@@ -558,11 +558,8 @@ int snd_mixart_setup_firmware(struct mixart_mgr *mgr) +@@ -558,11 +558,8 @@ int snd_mixart_setup_firmware(struct mix for (i = 0; i < 3; i++) { sprintf(path, "mixart/%s", fw_files[i]); @@ -2789,11 +2491,9 @@ index 13dcb2fd0a85..1f77e42fba16 100644 /* fake hwdep dsp record */ err = mixart_dsp_load(mgr, i, fw_entry); release_firmware(fw_entry); -diff --git a/sound/pci/pcxhr/pcxhr_hwdep.c b/sound/pci/pcxhr/pcxhr_hwdep.c -index 2258bd698844..9df5c4b2cc21 100644 --- a/sound/pci/pcxhr/pcxhr_hwdep.c +++ b/sound/pci/pcxhr/pcxhr_hwdep.c -@@ -372,12 +372,8 @@ int pcxhr_setup_firmware(struct pcxhr_mgr *mgr) +@@ -372,12 +372,8 @@ int pcxhr_setup_firmware(struct pcxhr_mg if (!fw_files[fw_set][i]) continue; sprintf(path, "pcxhr/%s", fw_files[fw_set][i]); @@ -2807,11 +2507,9 @@ index 2258bd698844..9df5c4b2cc21 100644 /* fake hwdep dsp record */ err = pcxhr_dsp_load(mgr, i, fw_entry); release_firmware(fw_entry); -diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c -index b4f300281822..21edef8027c4 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c -@@ -1216,11 +1216,8 @@ static int try_to_load_firmware(struct cmdif *cif, struct snd_riptide *chip) +@@ -1216,11 +1216,8 @@ static int try_to_load_firmware(struct c if (!chip->fw_entry) { err = request_firmware(&chip->fw_entry, "riptide.hex", &chip->pci->dev); @@ -2824,11 +2522,9 @@ index b4f300281822..21edef8027c4 100644 } err = loadfirmware(cif, chip->fw_entry->data, chip->fw_entry->size); if (err) { -diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c -index 227aece17e39..06003bae69ad 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c -@@ -5112,11 +5112,8 @@ static int hdsp_request_fw_loader(struct hdsp *hdsp) +@@ -5112,11 +5112,8 @@ static int hdsp_request_fw_loader(struct return -EINVAL; } @@ -2841,11 +2537,9 @@ index 227aece17e39..06003bae69ad 100644 if (fw->size < HDSP_FIRMWARE_SIZE) { dev_err(hdsp->card->dev, "too short firmware size %d (expected %d)\n", -diff --git a/sound/soc/codecs/wm2000.c b/sound/soc/codecs/wm2000.c -index 72e165cc6443..d73cc2abdb9a 100644 --- a/sound/soc/codecs/wm2000.c +++ b/sound/soc/codecs/wm2000.c -@@ -894,10 +894,8 @@ static int wm2000_i2c_probe(struct i2c_client *i2c, +@@ -894,10 +894,8 @@ static int wm2000_i2c_probe(struct i2c_c } ret = request_firmware(&fw, filename, &i2c->dev); @@ -2857,8 +2551,6 @@ index 72e165cc6443..d73cc2abdb9a 100644 /* Pre-cook the concatenation of the register address onto the image */ wm2000->anc_download_size = fw->size + 2; -diff --git a/sound/usb/6fire/firmware.c b/sound/usb/6fire/firmware.c -index 69137c14d0dc..f410bd6f839d 100644 --- a/sound/usb/6fire/firmware.c +++ b/sound/usb/6fire/firmware.c @@ -215,8 +215,6 @@ static int usb6fire_fw_ezusb_upload( @@ -2879,6 +2571,3 @@ index 69137c14d0dc..f410bd6f839d 100644 kfree(buffer); return -EIO; } --- -2.27.0 - diff --git a/debian/patches/bugfix/all/iwlwifi-yoyo-don-t-print-failure-if-debug-firmware-i.patch b/debian/patches/bugfix/all/iwlwifi-yoyo-don-t-print-failure-if-debug-firmware-i.patch deleted file mode 100644 index 0fb0a66f80b6..000000000000 --- a/debian/patches/bugfix/all/iwlwifi-yoyo-don-t-print-failure-if-debug-firmware-i.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Wolfram Sang <wsa@kernel.org> -Date: Thu, 25 Jun 2020 18:52:10 +0200 -Subject: iwlwifi: yoyo: don't print failure if debug firmware is missing -Origin: https://git.kernel.org/linus/3f4600de8c93917594a8b3c9ca713160ee4d563c -Bug-Debian: https://bugs.debian.org/966218 - -Missing this firmware is not fatal, my wifi card still works. Even more, -I couldn't find any documentation what it is or where to get it. So, I -don't think the users should be notified if it is missing. If you browse -the net, you see the message is present is in quite some logs. Better -remove it. - -Signed-off-by: Wolfram Sang <wsa@kernel.org> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> -Link: https://lore.kernel.org/r/20200625165210.14904-1-wsa@kernel.org ---- - drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c -index 7987a288917b..f180db2936e3 100644 ---- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c -@@ -468,7 +468,7 @@ void iwl_dbg_tlv_load_bin(struct device *dev, struct iwl_trans *trans) - if (!iwlwifi_mod_params.enable_ini) - return; - -- res = request_firmware(&fw, "iwl-debug-yoyo.bin", dev); -+ res = firmware_request_nowarn(&fw, "iwl-debug-yoyo.bin", dev); - if (res) - return; - --- -2.28.0 - diff --git a/debian/patches/bugfix/all/net-packet-fix-overflow-in-tpacket_rcv.patch b/debian/patches/bugfix/all/net-packet-fix-overflow-in-tpacket_rcv.patch deleted file mode 100644 index d7b45e77364f..000000000000 --- a/debian/patches/bugfix/all/net-packet-fix-overflow-in-tpacket_rcv.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Or Cohen <orcohen@paloaltonetworks.com> -Date: Thu, 3 Sep 2020 21:05:28 -0700 -Subject: net/packet: fix overflow in tpacket_rcv -Origin: https://git.kernel.org/linus/acf69c946233259ab4d64f8869d4037a198c7f06 -Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2020-14386 - -Using tp_reserve to calculate netoff can overflow as -tp_reserve is unsigned int and netoff is unsigned short. - -This may lead to macoff receving a smaller value then -sizeof(struct virtio_net_hdr), and if po->has_vnet_hdr -is set, an out-of-bounds write will occur when -calling virtio_net_hdr_from_skb. - -The bug is fixed by converting netoff to unsigned int -and checking if it exceeds USHRT_MAX. - -This addresses CVE-2020-14386 - -Fixes: 8913336a7e8d ("packet: add PACKET_RESERVE sockopt") -Signed-off-by: Or Cohen <orcohen@paloaltonetworks.com> -Signed-off-by: Eric Dumazet <edumazet@google.com> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - net/packet/af_packet.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c -index da8254e680f9..2b33e977a905 100644 ---- a/net/packet/af_packet.c -+++ b/net/packet/af_packet.c -@@ -2170,7 +2170,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, - int skb_len = skb->len; - unsigned int snaplen, res; - unsigned long status = TP_STATUS_USER; -- unsigned short macoff, netoff, hdrlen; -+ unsigned short macoff, hdrlen; -+ unsigned int netoff; - struct sk_buff *copy_skb = NULL; - struct timespec64 ts; - __u32 ts_status; -@@ -2239,6 +2240,10 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, - } - macoff = netoff - maclen; - } -+ if (netoff > USHRT_MAX) { -+ atomic_inc(&po->tp_drops); -+ goto drop_n_restore; -+ } - if (po->tp_version <= TPACKET_V2) { - if (macoff + snaplen > po->rx_ring.frame_size) { - if (po->copy_thresh && --- -2.28.0 - diff --git a/debian/patches/bugfix/all/usbip-tools-fix-build-error-for-multiple-definition.patch b/debian/patches/bugfix/all/usbip-tools-fix-build-error-for-multiple-definition.patch deleted file mode 100644 index af8544f6c677..000000000000 --- a/debian/patches/bugfix/all/usbip-tools-fix-build-error-for-multiple-definition.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Antonio Borneo <borneo.antonio@gmail.com> -Date: Thu, 18 Jun 2020 02:08:44 +0200 -Subject: usbip: tools: fix build error for multiple definition -Origin: https://lore.kernel.org/lkml/20200618000844.1048309-1-borneo.antonio@gmail.com/ - -With GCC 10, building usbip triggers error for multiple definition -of 'udev_context', in: -- libsrc/vhci_driver.c:18 and -- libsrc/usbip_host_common.c:27. - -Declare as extern the definition in libsrc/usbip_host_common.c. - -Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> ---- - tools/usb/usbip/libsrc/usbip_host_common.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/usb/usbip/libsrc/usbip_host_common.c b/tools/usb/usbip/libsrc/usbip_host_common.c -index d1d8ba2a4a40..ca78aa368476 100644 ---- a/tools/usb/usbip/libsrc/usbip_host_common.c -+++ b/tools/usb/usbip/libsrc/usbip_host_common.c -@@ -23,7 +23,7 @@ - #include "list.h" - #include "sysfs_utils.h" - --struct udev *udev_context; -+extern struct udev *udev_context; - - static int32_t read_attr_usbip_status(struct usbip_usb_device *udev) - { --- -2.28.0.rc1 - 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 a3c69f88f478..25e5b1044298 100644 --- a/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch +++ b/debian/patches/bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch @@ -23,11 +23,9 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk> arch/sh/boot/romimage/Makefile | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) -diff --git a/arch/sh/Makefile b/arch/sh/Makefile -index 974bbd9dcfcf..bb952611af6a 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile -@@ -106,16 +106,16 @@ UTS_MACHINE := sh +@@ -102,16 +102,16 @@ UTS_MACHINE := sh LDFLAGS_vmlinux += -e _stext ifdef CONFIG_CPU_LITTLE_ENDIAN @@ -49,8 +47,6 @@ index 974bbd9dcfcf..bb952611af6a 100644 head-y := arch/sh/kernel/head_32.o -diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile -index 58592dfa5cb6..296b25474395 100644 --- a/arch/sh/boot/Makefile +++ b/arch/sh/boot/Makefile @@ -19,12 +19,12 @@ CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000 @@ -72,7 +68,7 @@ index 58592dfa5cb6..296b25474395 100644 targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz \ uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin -@@ -106,10 +106,10 @@ OBJCOPYFLAGS_uImage.srec := -I binary -O srec +@@ -106,10 +106,10 @@ OBJCOPYFLAGS_uImage.srec := -I binary -O $(obj)/uImage.srec: $(obj)/uImage $(call if_changed,objcopy) @@ -85,20 +81,18 @@ index 58592dfa5cb6..296b25474395 100644 CONFIG_PHYSICAL_START CONFIG_ZERO_PAGE_OFFSET CONFIG_ENTRY_OFFSET \ - KERNEL_MEMORY suffix-y + KERNEL_MEMORY suffix_y -diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile -index ad0e2403e56f..c711416699bd 100644 --- a/arch/sh/boot/compressed/Makefile +++ b/arch/sh/boot/compressed/Makefile -@@ -33,7 +33,7 @@ ORIG_CFLAGS := $(KBUILD_CFLAGS) - KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) - endif +@@ -30,7 +30,7 @@ endif + + ccflags-remove-$(CONFIG_MCOUNT) += -pg -LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \ +LDFLAGS_vmlinux := --oformat $(ld_bfd) -Ttext $(IMAGE_OFFSET) -e startup \ -T $(obj)/../../kernel/vmlinux.lds # -@@ -71,7 +71,7 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE +@@ -68,7 +68,7 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.al OBJCOPYFLAGS += -R .empty_zero_page @@ -108,11 +102,9 @@ index ad0e2403e56f..c711416699bd 100644 -$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE +$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE $(call if_changed,ld) -diff --git a/arch/sh/boot/romimage/Makefile b/arch/sh/boot/romimage/Makefile -index c7c8be58400c..17b03df0a8de 100644 --- a/arch/sh/boot/romimage/Makefile +++ b/arch/sh/boot/romimage/Makefile -@@ -13,7 +13,7 @@ mmcif-obj-$(CONFIG_CPU_SUBTYPE_SH7724) := $(obj)/mmcif-sh7724.o +@@ -13,7 +13,7 @@ mmcif-obj-$(CONFIG_CPU_SUBTYPE_SH7724) : load-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-load-y) obj-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-obj-y) @@ -130,6 +122,3 @@ index c7c8be58400c..17b03df0a8de 100644 $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/zeropage.bin arch/sh/boot/zImage FORCE $(call if_changed,ld) --- -2.27.0 - diff --git a/debian/patches/bugfix/sh/sh-implement-__get_user_u64.patch b/debian/patches/bugfix/sh/sh-implement-__get_user_u64.patch deleted file mode 100644 index 0af66991f9fb..000000000000 --- a/debian/patches/bugfix/sh/sh-implement-__get_user_u64.patch +++ /dev/null @@ -1,91 +0,0 @@ -From c3e23bbfbaebff42df99e11f6f9041ed316be809 Mon Sep 17 00:00:00 2001 -From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> -Date: Thu, 11 Jun 2020 09:52:15 +0200 -Subject: [PATCH] sh: Implement __get_user_u64() required for 64-bit get_user() - -Trying to build the kernel with CONFIG_INFINIBAND_USER_ACCESS enabled fails - - ERROR: "__get_user_unknown" [drivers/infiniband/core/ib_uverbs.ko] undefined! - -with on SH since the kernel misses a 64-bit implementation of get_user(). - -Implement the missing 64-bit get_user() as __get_user_u64(), matching the -already existing __put_user_u64() which implements the 64-bit put_user(). ---- - arch/sh/include/asm/uaccess_32.h | 53 ++++++++++++++++++++++++++++++++ - 1 file changed, 53 insertions(+) - -diff --git a/arch/sh/include/asm/uaccess_32.h b/arch/sh/include/asm/uaccess_32.h -index 624cf55acc27..5d7ddc092afd 100644 ---- a/arch/sh/include/asm/uaccess_32.h -+++ b/arch/sh/include/asm/uaccess_32.h -@@ -26,6 +26,9 @@ do { \ - case 4: \ - __get_user_asm(x, ptr, retval, "l"); \ - break; \ -+ case 8: \ -+ __get_user_u64(x, ptr, retval); \ -+ break; \ - default: \ - __get_user_unknown(); \ - break; \ -@@ -66,6 +69,56 @@ do { \ - - extern void __get_user_unknown(void); - -+#if defined(CONFIG_CPU_LITTLE_ENDIAN) -+#define __get_user_u64(x, addr, err) \ -+({ \ -+__asm__ __volatile__( \ -+ "1:\n\t" \ -+ "mov.l %2,%R1\n\t" \ -+ "mov.l %T2,%S1\n\t" \ -+ "2:\n" \ -+ ".section .fixup,\"ax\"\n" \ -+ "3:\n\t" \ -+ "mov #0,%R1\n\t" \ -+ "mov #0,%S1\n\t" \ -+ "mov.l 4f, %0\n\t" \ -+ "jmp @%0\n\t" \ -+ " mov %3, %0\n\t" \ -+ ".balign 4\n" \ -+ "4: .long 2b\n\t" \ -+ ".previous\n" \ -+ ".section __ex_table,\"a\"\n\t" \ -+ ".long 1b, 3b\n\t" \ -+ ".long 1b + 2, 3b\n\t" \ -+ ".previous" \ -+ :"=&r" (err), "=&r" (x) \ -+ :"m" (__m(addr)), "i" (-EFAULT), "0" (err)); }) -+#else -+#define __get_user_u64(x, addr, err) \ -+({ \ -+__asm__ __volatile__( \ -+ "1:\n\t" \ -+ "mov.l %2,%S1\n\t" \ -+ "mov.l %T2,%R1\n\t" \ -+ "2:\n" \ -+ ".section .fixup,\"ax\"\n" \ -+ "3:\n\t" \ -+ "mov #0,%S1\n\t" \ -+ "mov #0,%R1\n\t" \ -+ "mov.l 4f, %0\n\t" \ -+ "jmp @%0\n\t" \ -+ " mov %3, %0\n\t" \ -+ ".balign 4\n" \ -+ "4: .long 2b\n\t" \ -+ ".previous\n" \ -+ ".section __ex_table,\"a\"\n\t" \ -+ ".long 1b, 3b\n\t" \ -+ ".long 1b + 2, 3b\n\t" \ -+ ".previous" \ -+ :"=&r" (err), "=&r" (x) \ -+ :"m" (__m(addr)), "i" (-EFAULT), "0" (err)); }) -+#endif -+ - #define __put_user_size(x,ptr,size,retval) \ - do { \ - retval = 0; \ --- -2.27.0 - diff --git a/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch index c2c966b2e86a..e4c020be41f7 100644 --- a/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch +++ b/debian/patches/debian/dfsg/drivers-net-appletalk-cops.patch @@ -8,11 +8,9 @@ Forwarded: not-needed drivers/net/appletalk/Makefile | 1 - 2 files changed, 27 deletions(-) -diff --git a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig -index 09f94d4b14e2..14f8cf40f035 100644 --- a/drivers/net/appletalk/Kconfig +++ b/drivers/net/appletalk/Kconfig -@@ -50,32 +50,6 @@ config LTPC +@@ -50,33 +50,6 @@ config LTPC This driver is experimental, which means that it may not work. See the file <file:Documentation/networking/ltpc.rst>. @@ -25,7 +23,8 @@ index 09f94d4b14e2..14f8cf40f035 100644 - package. This driver is experimental, which means that it may not - work. This driver will only work if you choose "AppleTalk DDP" - networking support, above. -- Please read the file <file:Documentation/networking/cops.rst>. +- Please read the file +- <file:Documentation/networking/device_drivers/appletalk/cops.rst>. - -config COPS_DAYNA - bool "Dayna firmware support" @@ -45,8 +44,6 @@ index 09f94d4b14e2..14f8cf40f035 100644 config IPDDP tristate "Appletalk-IP driver support" depends on DEV_APPLETALK && ATALK -diff --git a/drivers/net/appletalk/Makefile b/drivers/net/appletalk/Makefile -index 903da3303f41..7482020f7e77 100644 --- a/drivers/net/appletalk/Makefile +++ b/drivers/net/appletalk/Makefile @@ -4,5 +4,4 @@ @@ -55,6 +52,3 @@ index 903da3303f41..7482020f7e77 100644 obj-$(CONFIG_IPDDP) += ipddp.o -obj-$(CONFIG_COPS) += cops.o obj-$(CONFIG_LTPC) += ltpc.o --- -2.27.0 - 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 d2d9d70f41dd..82cdda18eef5 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 @@ -12,9 +12,9 @@ actually used. --- --- a/fs/notify/fanotify/fanotify_user.c +++ b/fs/notify/fanotify/fanotify_user.c -@@ -846,6 +846,14 @@ static int do_fanotify_mark(int fanotify - if (mask & ~valid_mask) - return -EINVAL; +@@ -1170,6 +1170,14 @@ static int do_fanotify_mark(int fanotify + if (ignored) + mask &= ~FANOTIFY_EVENT_FLAGS; +#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS + if (mask & FANOTIFY_PERM_EVENTS) { diff --git a/debian/patches/debian/makefile-do-not-check-for-libelf-when-building-oot-module.patch b/debian/patches/debian/makefile-do-not-check-for-libelf-when-building-oot-module.patch new file mode 100644 index 000000000000..f71c2e185246 --- /dev/null +++ b/debian/patches/debian/makefile-do-not-check-for-libelf-when-building-oot-module.patch @@ -0,0 +1,72 @@ +From: Ben Hutchings <ben@decadent.org.uk> +Date: Mon, 07 Sep 2020 03:38:04 +0100 +Subject: Makefile: Do not check for libelf when building OOT module + +When building out-of-tree modules, the necessary tools should have +already been built. We therefore do not need libelf-dev to be +installed. + +This effectively reverts commit 9f0c18aec620 "objtool: Fix +CONFIG_STACK_VALIDATION=y warning for out-of-tree modules", and +similarly moves the check introduced by commit 33a57ce0a54d "bpf: +Compile resolve_btfids tool at kernel compilation start". +--- + Makefile | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +--- a/Makefile ++++ b/Makefile +@@ -1071,26 +1071,6 @@ export mod_sign_cmd + + HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) + +-has_libelf = $(call try-run,\ +- echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) +- +-ifdef CONFIG_STACK_VALIDATION +- ifeq ($(has_libelf),1) +- objtool_target := tools/objtool FORCE +- else +- SKIP_STACK_VALIDATION := 1 +- export SKIP_STACK_VALIDATION +- endif +-endif +- +-ifdef CONFIG_DEBUG_INFO_BTF +- ifeq ($(has_libelf),1) +- resolve_btfids_target := tools/bpf/resolve_btfids FORCE +- else +- ERROR_RESOLVE_BTFIDS := 1 +- endif +-endif +- + PHONY += prepare0 + + export MODORDER := $(extmod-prefix)modules.order +@@ -1214,6 +1194,26 @@ uapi-asm-generic: + $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \ + generic=include/uapi/asm-generic + ++has_libelf = $(call try-run,\ ++ echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) ++ ++ifdef CONFIG_STACK_VALIDATION ++ ifeq ($(has_libelf),1) ++ objtool_target := tools/objtool FORCE ++ else ++ SKIP_STACK_VALIDATION := 1 ++ export SKIP_STACK_VALIDATION ++ endif ++endif ++ ++ifdef CONFIG_DEBUG_INFO_BTF ++ ifeq ($(has_libelf),1) ++ resolve_btfids_target := tools/bpf/resolve_btfids FORCE ++ else ++ ERROR_RESOLVE_BTFIDS := 1 ++ endif ++endif ++ + PHONY += prepare-objtool prepare-resolve_btfids + prepare-objtool: $(objtool_target) + ifeq ($(SKIP_STACK_VALIDATION),1) diff --git a/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch b/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch deleted file mode 100644 index 1693933529a8..000000000000 --- a/debian/patches/debian/revert-objtool-fix-config_stack_validation-y-warning.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Ben Hutchings <ben@decadent.org.uk> -Date: Sun, 14 Jan 2018 19:27:18 +0000 -Subject: Revert "objtool: Fix CONFIG_STACK_VALIDATION=y warning for - out-of-tree modules" - -This reverts commit 9f0c18aec620bc9d82268b3cb937568dd07b43ff. This -check doesn't make sense for OOT modules as they should always use -a pre-built objtool. ---- - Makefile | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -Index: debian-kernel/Makefile -=================================================================== ---- debian-kernel.orig/Makefile -+++ debian-kernel/Makefile -@@ -993,17 +993,6 @@ export mod_sign_cmd - - HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) - --ifdef CONFIG_STACK_VALIDATION -- has_libelf := $(call try-run,\ -- echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) -- ifeq ($(has_libelf),1) -- objtool_target := tools/objtool FORCE -- else -- SKIP_STACK_VALIDATION := 1 -- export SKIP_STACK_VALIDATION -- endif --endif -- - PHONY += prepare0 - - export MODORDER := $(extmod-prefix)modules.order -@@ -1122,6 +1111,17 @@ uapi-asm-generic: - $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \ - generic=include/uapi/asm-generic - -+ifdef CONFIG_STACK_VALIDATION -+ has_libelf := $(call try-run,\ -+ echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) -+ ifeq ($(has_libelf),1) -+ objtool_target := tools/objtool FORCE -+ else -+ SKIP_STACK_VALIDATION := 1 -+ export SKIP_STACK_VALIDATION -+ endif -+endif -+ - PHONY += prepare-objtool - prepare-objtool: $(objtool_target) - ifeq ($(SKIP_STACK_VALIDATION),1) 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 f8a163e39faa..1840fc4bdd44 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,9 @@ corresponding to "on", "off", and "on,intgpu_off". Signed-off-by: Ben Hutchings <ben@decadent.org.uk> --- ---- a/drivers/iommu/Kconfig -+++ b/drivers/iommu/Kconfig -@@ -221,14 +221,28 @@ config INTEL_IOMMU_SVM +--- a/drivers/iommu/intel/Kconfig ++++ b/drivers/iommu/intel/Kconfig +@@ -45,14 +45,28 @@ config INTEL_IOMMU_SVM to access DMA resources through process address space by means of a Process Address Space ID (PASID). @@ -53,7 +53,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk> bool "Workaround broken graphics drivers (going away soon)" --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c -@@ -368,11 +368,7 @@ static int intel_iommu_attach_device(str +@@ -338,11 +338,7 @@ static int intel_iommu_attach_device(str static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova); @@ -66,7 +66,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk> #ifdef CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON int intel_iommu_sm = 1; -@@ -384,7 +380,7 @@ int intel_iommu_enabled = 0; +@@ -354,7 +350,7 @@ int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; @@ -75,7 +75,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk> static int dmar_forcedac; static int intel_iommu_strict; static int intel_iommu_superpage = 1; -@@ -464,6 +460,7 @@ static int __init intel_iommu_setup(char +@@ -442,6 +438,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 aa223bd46dc0..1717d8fe2485 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,21 +20,17 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk> drivers/iommu/intel/iommu.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index fb95fad81c79..d387ff772ae5 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -1814,6 +1814,8 @@ +@@ -1837,6 +1837,8 @@ bypassed by not enabling DMAR with this option. In this case, gfx device will use physical address for DMA. + intgpu_off [Default Off] + Bypass the DMAR unit for an integrated GPU only. - forcedac [x86_64] + forcedac [X86-64] With this option iommu will not optimize to look for io virtual address below 32-bit forcing dual -diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c -index d759e7234e98..cf38b7c496b6 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -54,6 +54,9 @@ @@ -55,7 +51,7 @@ index d759e7234e98..cf38b7c496b6 100644 static int dmar_forcedac; static int intel_iommu_strict; static int intel_iommu_superpage = 1; -@@ -359,6 +363,7 @@ static int intel_no_bounce; +@@ -360,6 +364,7 @@ static int iommu_skip_te_disable; #define IDENTMAP_GFX 2 #define IDENTMAP_AZALIA 4 @@ -63,7 +59,7 @@ index d759e7234e98..cf38b7c496b6 100644 int intel_iommu_gfx_mapped; EXPORT_SYMBOL_GPL(intel_iommu_gfx_mapped); -@@ -446,6 +451,9 @@ static int __init intel_iommu_setup(char *str) +@@ -445,6 +450,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"); @@ -73,7 +69,7 @@ index d759e7234e98..cf38b7c496b6 100644 } else if (!strncmp(str, "forcedac", 8)) { pr_info("Forcing DAC for PCI devices\n"); dmar_forcedac = 1; -@@ -2838,6 +2846,9 @@ static int device_def_domain_type(struct device *dev) +@@ -2890,6 +2898,9 @@ static int device_def_domain_type(struct if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev)) return IOMMU_DOMAIN_IDENTITY; @@ -83,7 +79,7 @@ index d759e7234e98..cf38b7c496b6 100644 } return 0; -@@ -3273,6 +3284,9 @@ static int __init init_dmars(void) +@@ -3325,6 +3336,9 @@ static int __init init_dmars(void) if (!dmar_map_gfx) iommu_identity_mapping |= IDENTMAP_GFX; @@ -93,6 +89,3 @@ index d759e7234e98..cf38b7c496b6 100644 check_tylersburg_isoch(); ret = si_domain_init(hw_pass_through); --- -2.20.1 - diff --git a/debian/patches/series b/debian/patches/series index 38e9c8e8b317..8b05377db2d3 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -34,9 +34,9 @@ debian/firmware_class-refer-to-debian-wiki-firmware-page.patch # Patches from aufs5 repository, imported with debian/bin/genpatch-aufs. # These are only the changes needed to allow aufs to be built out-of-tree. -features/all/aufs5/aufs5-base.patch -features/all/aufs5/aufs5-mmap.patch -features/all/aufs5/aufs5-standalone.patch +#features/all/aufs5/aufs5-base.patch +#features/all/aufs5/aufs5-mmap.patch +#features/all/aufs5/aufs5-standalone.patch # Change some defaults for security reasons debian/af_802154-Disable-auto-loading-as-mitigation-against.patch @@ -69,7 +69,6 @@ bugfix/arm/arm-dts-kirkwood-fix-sata-pinmux-ing-for-ts419.patch bugfix/arm64/dts-rockchip-correct-voltage-selector-firefly-RK3399.patch bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch -bugfix/sh/sh-implement-__get_user_u64.patch bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch bugfix/powerpc/powerpc-boot-fix-missing-crc32poly.h-when-building-with-kernel_xz.patch bugfix/arm64/arm64-acpi-Add-fixup-for-HPE-m400-quirks.patch @@ -83,10 +82,8 @@ features/x86/x86-make-x32-syscall-support-conditional.patch bugfix/all/disable-some-marvell-phys.patch bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch -debian/revert-objtool-fix-config_stack_validation-y-warning.patch +debian/makefile-do-not-check-for-libelf-when-building-oot-module.patch bugfix/all/partially-revert-net-socket-implement-64-bit-timestamps.patch -bugfix/all/usbip-tools-fix-build-error-for-multiple-definition.patch -bugfix/all/iwlwifi-yoyo-don-t-print-failure-if-debug-firmware-i.patch # Miscellaneous features @@ -109,7 +106,6 @@ features/all/db-mok-keyring/KEYS-Make-use-of-platform-keyring-for-module-signatu # Security fixes debian/i386-686-pae-pci-set-pci-nobios-by-default.patch debian/ntfs-mark-it-as-broken.patch -bugfix/all/net-packet-fix-overflow-in-tpacket_rcv.patch # Fix exported symbol versions bugfix/all/module-disable-matching-missing-version-crc.patch |