--- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -3663,8 +3663,9 @@ static inline bool netif_attr_test_online(unsigned long j, static inline unsigned int netif_attrmask_next(int n, const unsigned long *srcp, unsigned int nr_bits) { - /* n is a prior cpu */ - cpu_max_bits_warn(n + 1, nr_bits); + /* -1 is a legal arg here. */ + if (n != -1) + cpu_max_bits_warn(n, nr_bits); if (srcp) return find_next_bit(srcp, nr_bits, n + 1); @@ -3685,8 +3686,9 @@ static inline int netif_attrmask_next_and(int n, const unsigned long *src1p, const unsigned long *src2p, unsigned int nr_bits) { - /* n is a prior cpu */ - cpu_max_bits_warn(n + 1, nr_bits); + /* -1 is a legal arg here. */ + if (n != -1) + cpu_max_bits_warn(n, nr_bits); if (src1p && src2p) return find_next_and_bit(src1p, src2p, nr_bits, n + 1); --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c @@ -597,9 +597,8 @@ static int uea_send_modem_cmd(struct usb } static void uea_upload_pre_firmware(const struct firmware *fw_entry, - void *context) + struct usb_device *usb) { - struct usb_device *usb = context; const u8 *pfw; u8 value; u32 crc = 0; @@ -679,6 +678,7 @@ static int uea_load_firmware(struct usb_ { int ret; char *fw_name = EAGLE_FIRMWARE; + const struct firmware *fw; uea_enters(usb); uea_info(usb, "pre-firmware device, uploading firmware\n"); @@ -701,13 +701,13 @@ static int uea_load_firmware(struct usb_ break; } - ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, - GFP_KERNEL, usb, - uea_upload_pre_firmware); + ret = request_firmware(&fw, fw_name, &usb->dev); if (ret) uea_err(usb, "firmware %s is not available\n", fw_name); - else + else { uea_info(usb, "loading firmware %s\n", fw_name); + uea_upload_pre_firmware(fw, usb); + } uea_leaves(usb); return ret;