b43: refuse to load unsupported firmware
Rafał Miłecki [Tue, 8 Nov 2011 16:15:03 +0000 (17:15 +0100)]
[This patch is supposed to be applied in 3.1 (and maybe older) branches only.]

New kernels support newer firmware that users may try to incorrectly use
with older kernels. Display error and explain the problem in such a case

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

drivers/net/wireless/b43/main.c

index e293a79..fdb4df2 100644 (file)
@@ -2508,6 +2508,13 @@ static int b43_upload_microcode(struct b43_wldev *dev)
                b43_print_fw_helptext(dev->wl, 1);
                err = -EOPNOTSUPP;
                goto error;
+       } else if (fwrev >= 598) {
+               b43err(dev->wl, "YOUR FIRMWARE IS TOO NEW. Support for "
+                      "firmware 598 and up requires kernel 3.2 or newer. You "
+                      "have to install older firmware or upgrade kernel.\n");
+               b43_print_fw_helptext(dev->wl, 1);
+               err = -EOPNOTSUPP;
+               goto error;
        }
        dev->fw.rev = fwrev;
        dev->fw.patch = fwpatch;