diff options
author | André Fabian Silva Delgado <andre@pc-01.localdomain> | 2012-04-23 21:37:08 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <andre@pc-01.localdomain> | 2012-04-23 21:37:08 -0300 |
commit | cc3c3464ef3f45a3469e05a6137e9ebf7a21f115 (patch) | |
tree | e47880c2e23be2a6c9e40981307853136db2644e /libre | |
parent | bf2b9f248f7011fe83ec02476d47f67b235b3878 (diff) | |
download | abslibre-cc3c3464ef3f45a3469e05a6137e9ebf7a21f115.tar.gz abslibre-cc3c3464ef3f45a3469e05a6137e9ebf7a21f115.tar.bz2 abslibre-cc3c3464ef3f45a3469e05a6137e9ebf7a21f115.zip |
linux-libre-3.3.3-1: updating version and adding patches
Diffstat (limited to 'libre')
-rw-r--r-- | libre/linux-libre/PKGBUILD | 25 | ||||
-rw-r--r-- | libre/linux-libre/config.i686 | 158 | ||||
-rw-r--r-- | libre/linux-libre/config.x86_64 | 109 | ||||
-rw-r--r-- | libre/linux-libre/fix-memblock-3.3.x.patch | 65 | ||||
-rw-r--r-- | libre/linux-libre/fix-r8712u-3.3.2.patch | 56 | ||||
-rw-r--r-- | libre/linux-libre/linux-libre.install | 2 |
6 files changed, 402 insertions, 13 deletions
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 20fa125b5..45eeafda7 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -12,9 +12,9 @@ pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock - # pkgname=linux-custom # Build kernel with a different name _kernelname=-LIBRE _basekernel=3.3 -_sublevel=2 +_sublevel=3 pkgver=${_basekernel}.${_sublevel} -_lxopkgver=${_basekernel}.0 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.1 # nearly always the same as pkgver pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" @@ -32,20 +32,24 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'boot-logo.patch' 'change-default-console-loglevel.patch' 'i915-fix-ghost-tv-output.patch' + 'fix-memblock-3.3.x.patch' + 'fix-r8712u-3.3.2.patch' 'ext4-options.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('5487da14ca81715a469c7594d39722fa' - 'b43d3bdecfa355bf45bd1154819e3687' - '559487f3e438ad95f1c80aa11abf2ed0' - 'f3749180b53d042091a483300ef04f8d' + 'b3584346eba0031be9e08c0c6d64fa85' + 'dea11f490f67e00ed62b214dacd3726f' + 'da4ddcab31f209baccf8ffe5b5ebf289' 'a8a3843046926eb7ab81312cd438c5c5' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' '04b21c79df0a952c22d681dd4f4562df' '9d3c56a4b999c8bfbd4018089a62f662' '263725f20c0b9eb9c353040792d644e5' + 'ecf75895eddc92efcc797dea367ca692' + '4be6f77e4c1533c4587dd48cfd50759e' 'bb7fd1aa23016c8057046b84fd4eb528' - 'acdce5260b0fb711cb9a0fbce984f0ef') + '107729418380124db470dda99425fdce') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -71,6 +75,15 @@ build() { # needed. patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch" + # Patch submitted upstream, waiting for inclusion: + # fix https://bugzilla.kernel.org/show_bug.cgi?id=43098 + # Arch Linux bug report #29351 + patch -Np1 -i "${srcdir}/fix-memblock-3.3.x.patch" + + # Patch submitted upstream, waiting for inclusion: + # Arch Linux bug report #29339 + # probably 3.3.4 will include it + patch -Np1 -i "${srcdir}/fix-r8712u-3.3.2.patch" # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 718c4f3b6..d9e4dced4 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.3.0-1 Kernel Configuration +# Linux/i386 3.3.3-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1166,7 +1166,30 @@ CONFIG_BQL=y # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y -# CONFIG_HAMRADIO is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m # CONFIG_CAN is not set CONFIG_IRDA=m @@ -4774,7 +4797,135 @@ CONFIG_USBIP_HOST=m CONFIG_W35UND=m CONFIG_PRISM2_USB=m CONFIG_ECHO=m -# CONFIG_COMEDI is not set +CONFIG_COMEDI=m +# CONFIG_COMEDI_DEBUG is not set +CONFIG_COMEDI_MISC_DRIVERS=m +CONFIG_COMEDI_KCOMEDILIB=m +CONFIG_COMEDI_BOND=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_SERIAL2002=m +CONFIG_COMEDI_SKEL=m +CONFIG_COMEDI_ISA_DRIVERS=m +CONFIG_COMEDI_ACL7225B=m +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=m +CONFIG_COMEDI_PCL725=m +CONFIG_COMEDI_PCL726=m +CONFIG_COMEDI_PCL730=m +CONFIG_COMEDI_PCL812=m +CONFIG_COMEDI_PCL816=m +CONFIG_COMEDI_PCL818=m +CONFIG_COMEDI_PCM3724=m +CONFIG_COMEDI_PCM3730=m +CONFIG_COMEDI_RTI800=m +CONFIG_COMEDI_RTI802=m +CONFIG_COMEDI_DAS16M1=m +CONFIG_COMEDI_DAS16=m +CONFIG_COMEDI_DAS800=m +CONFIG_COMEDI_DAS1800=m +CONFIG_COMEDI_DAS6402=m +CONFIG_COMEDI_DT2801=m +CONFIG_COMEDI_DT2811=m +CONFIG_COMEDI_DT2814=m +CONFIG_COMEDI_DT2815=m +CONFIG_COMEDI_DT2817=m +CONFIG_COMEDI_DT282X=m +CONFIG_COMEDI_DMM32AT=m +CONFIG_COMEDI_FL512=m +CONFIG_COMEDI_AIO_AIO12_8=m +CONFIG_COMEDI_AIO_IIRO_16=m +CONFIG_COMEDI_C6XDIGIO=m +CONFIG_COMEDI_MPC624=m +CONFIG_COMEDI_ADQ12B=m +CONFIG_COMEDI_NI_AT_A2150=m +CONFIG_COMEDI_NI_AT_AO=m +CONFIG_COMEDI_NI_ATMIO=m +CONFIG_COMEDI_NI_ATMIO16D=m +CONFIG_COMEDI_PCMAD=m +CONFIG_COMEDI_PCMDA12=m +CONFIG_COMEDI_PCMMIO=m +CONFIG_COMEDI_PCMUIO=m +CONFIG_COMEDI_MULTIQ3=m +CONFIG_COMEDI_POC=m +CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_ADDI_APCI_035=m +CONFIG_COMEDI_ADDI_APCI_1032=m +CONFIG_COMEDI_ADDI_APCI_1500=m +CONFIG_COMEDI_ADDI_APCI_1516=m +CONFIG_COMEDI_ADDI_APCI_1564=m +CONFIG_COMEDI_ADDI_APCI_16XX=m +CONFIG_COMEDI_ADDI_APCI_2016=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3001=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7230=m +CONFIG_COMEDI_ADL_PCI7296=m +CONFIG_COMEDI_ADL_PCI7432=m +CONFIG_COMEDI_ADL_PCI8164=m +CONFIG_COMEDI_ADL_PCI9111=m +CONFIG_COMEDI_ADL_PCI9118=m +CONFIG_COMEDI_ADV_PCI1710=m +CONFIG_COMEDI_ADV_PCI1723=m +CONFIG_COMEDI_ADV_PCI_DIO=m +CONFIG_COMEDI_AMPLC_DIO200=m +CONFIG_COMEDI_AMPLC_PC236=m +CONFIG_COMEDI_AMPLC_PC263=m +CONFIG_COMEDI_AMPLC_PCI224=m +CONFIG_COMEDI_AMPLC_PCI230=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DYNA_PCI10XX=m +CONFIG_COMEDI_UNIOXX5=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_JR3_PCI=m +CONFIG_COMEDI_KE_COUNTER=m +CONFIG_COMEDI_CB_PCIDAS64=m +CONFIG_COMEDI_CB_PCIDAS=m +CONFIG_COMEDI_CB_PCIDDA=m +CONFIG_COMEDI_CB_PCIDIO=m +# CONFIG_COMEDI_CB_PCIMDAS is not set +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_ME4000=m +CONFIG_COMEDI_ME_DAQ=m +CONFIG_COMEDI_NI_6527=m +CONFIG_COMEDI_NI_65XX=m +CONFIG_COMEDI_NI_660X=m +CONFIG_COMEDI_NI_670X=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_RTD520=m +CONFIG_COMEDI_S526=m +CONFIG_COMEDI_S626=m +CONFIG_COMEDI_SSV_DNP=m +CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_CB_DAS16_CS=m +CONFIG_COMEDI_DAS08_CS=m +CONFIG_COMEDI_NI_DAQ_700_CS=m +CONFIG_COMEDI_NI_DAQ_DIO24_CS=m +CONFIG_COMEDI_NI_LABPC_CS=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_QUATECH_DAQP_CS=m +CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_DT9812=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMEDI_NI_COMMON=m +CONFIG_COMEDI_MITE=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_NI_LABPC=m +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_DAS08=m +CONFIG_COMEDI_FC=m # CONFIG_FB_OLPC_DCON is not set CONFIG_ASUS_OLED=m # CONFIG_PANEL is not set @@ -4786,7 +4937,6 @@ CONFIG_RTLLIB_CRYPTO_TKIP=m CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m CONFIG_R8712U=m -CONFIG_R8712_AP=y CONFIG_RTS_PSTOR=m # CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 454a61b84..d626945da 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1126,11 +1126,30 @@ CONFIG_BPF_JIT=y # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y -# CONFIG_HAMRADIO is not set +CONFIG_HAMRADIO=y # CONFIG_CAN is not set CONFIG_IRDA=m # +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m + +# # IrDA protocols # CONFIG_IRLAN=m @@ -4593,7 +4612,93 @@ CONFIG_USBIP_HOST=m CONFIG_W35UND=m CONFIG_PRISM2_USB=m CONFIG_ECHO=m -# CONFIG_COMEDI is not set +CONFIG_COMEDI=m +# CONFIG_COMEDI_DEBUG is not set +CONFIG_COMEDI_MISC_DRIVERS=m +CONFIG_COMEDI_KCOMEDILIB=m +CONFIG_COMEDI_BOND=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_SERIAL2002=m +CONFIG_COMEDI_SKEL=m +CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_ADDI_APCI_035=m +CONFIG_COMEDI_ADDI_APCI_1032=m +CONFIG_COMEDI_ADDI_APCI_1500=m +CONFIG_COMEDI_ADDI_APCI_1516=m +CONFIG_COMEDI_ADDI_APCI_1564=m +CONFIG_COMEDI_ADDI_APCI_16XX=m +CONFIG_COMEDI_ADDI_APCI_2016=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3001=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7230=m +CONFIG_COMEDI_ADL_PCI7296=m +CONFIG_COMEDI_ADL_PCI7432=m +CONFIG_COMEDI_ADL_PCI8164=m +CONFIG_COMEDI_ADL_PCI9111=m +CONFIG_COMEDI_ADL_PCI9118=m +CONFIG_COMEDI_ADV_PCI1710=m +CONFIG_COMEDI_ADV_PCI1723=m +CONFIG_COMEDI_ADV_PCI_DIO=m +CONFIG_COMEDI_AMPLC_DIO200=m +CONFIG_COMEDI_AMPLC_PC236=m +CONFIG_COMEDI_AMPLC_PC263=m +CONFIG_COMEDI_AMPLC_PCI224=m +CONFIG_COMEDI_AMPLC_PCI230=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DYNA_PCI10XX=m +CONFIG_COMEDI_UNIOXX5=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_JR3_PCI=m +CONFIG_COMEDI_KE_COUNTER=m +CONFIG_COMEDI_CB_PCIDAS64=m +CONFIG_COMEDI_CB_PCIDAS=m +CONFIG_COMEDI_CB_PCIDDA=m +CONFIG_COMEDI_CB_PCIDIO=m +CONFIG_COMEDI_CB_PCIMDAS=m +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_ME4000=m +CONFIG_COMEDI_ME_DAQ=m +CONFIG_COMEDI_NI_6527=m +CONFIG_COMEDI_NI_65XX=m +CONFIG_COMEDI_NI_660X=m +CONFIG_COMEDI_NI_670X=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_RTD520=m +CONFIG_COMEDI_S526=m +CONFIG_COMEDI_S626=m +CONFIG_COMEDI_SSV_DNP=m +CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_CB_DAS16_CS=m +CONFIG_COMEDI_DAS08_CS=m +CONFIG_COMEDI_NI_DAQ_700_CS=m +CONFIG_COMEDI_NI_DAQ_DIO24_CS=m +CONFIG_COMEDI_NI_LABPC_CS=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_QUATECH_DAQP_CS=m +CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_DT9812=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMEDI_NI_COMMON=m +CONFIG_COMEDI_MITE=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_NI_LABPC=m +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_DAS08=m +CONFIG_COMEDI_FC=m CONFIG_ASUS_OLED=m # CONFIG_PANEL is not set CONFIG_R8187SE=m diff --git a/libre/linux-libre/fix-memblock-3.3.x.patch b/libre/linux-libre/fix-memblock-3.3.x.patch new file mode 100644 index 000000000..3f6c984f4 --- /dev/null +++ b/libre/linux-libre/fix-memblock-3.3.x.patch @@ -0,0 +1,65 @@ +From: Tejun Heo <tj <at> kernel.org> +Subject: [PATCH 3.4-rc3] memblock: memblock should be able to handle zero length operations +Newsgroups: gmane.linux.kernel, gmane.linux.kernel.stable +Date: 2012-04-20 15:31:34 GMT (2 days, 14 hours and 59 minutes ago) +24aa07882b "memblock, x86: Replace memblock_x86_reserve/free_range() +with generic ones" replaced x86 specific memblock operations with the +generic ones; unfortunately, it lost zero length operation handling in +the process making the kernel panic if somebody tries to reserve zero +length area. + +There isn't much to be gained by being cranky to zero length +operations and panicking is almost the worst response. Drop the +BUG_ON() in memblock_reserve() and update +memblock_add_region/isolate_range() so that all zero length operations +are handled as noops. + +Signed-off-by: Tejun Heo <tj <at> kernel.org> +Cc: stable <at> vger.kernel.org +Reported-by: Valere Monseur <valere.monseur <at> ymail.com> +Bisected-by: Joseph Freeman <jfree143dev <at> gmail.com> +Tested-by: Joseph Freeman <jfree143dev <at> gmail.com> +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43098 +--- +This is causing early panics if anyone tries to reserve zero len area, +which unfortunately isn't too uncommon depending on BIOS. The fix is +fairly safe. Unsure which tree it should go through. Cc'ing Linus +and Ingo. + +Thanks. + + mm/memblock.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/mm/memblock.c b/mm/memblock.c +index 99f2855..a44eab3 100644 +--- a/mm/memblock.c ++++ b/mm/memblock.c +@@ -330,6 +330,9 @@ static int __init_memblock memblock_add_region(struct memblock_type *type, + phys_addr_t end = base + memblock_cap_size(base, &size); + int i, nr_new; + ++ if (!size) ++ return 0; ++ + /* special case for empty array */ + if (type->regions[0].size == 0) { + WARN_ON(type->cnt != 1 || type->total_size); +@@ -430,6 +433,9 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type, + + *start_rgn = *end_rgn = 0; + ++ if (!size) ++ return 0; ++ + /* we'll create at most two more regions */ + while (type->cnt + 2 > type->max) + if (memblock_double_array(type) < 0) +@@ -514,7 +520,6 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) + (unsigned long long)base, + (unsigned long long)base + size, + (void *)_RET_IP_); +- BUG_ON(0 == size); + + return memblock_add_region(_rgn, base, size, MAX_NUMNODES); + } diff --git a/libre/linux-libre/fix-r8712u-3.3.2.patch b/libre/linux-libre/fix-r8712u-3.3.2.patch new file mode 100644 index 000000000..a83618dcd --- /dev/null +++ b/libre/linux-libre/fix-r8712u-3.3.2.patch @@ -0,0 +1,56 @@ +commit 2080913e017ab9f88379d93fd09546ad95faf87b +Author: Larry Finger <Larry.Finger@lwfinger.net> +Date: Sat Feb 25 18:10:21 2012 -0600 + + staging: r8712u: Fix regression caused by commit 8c213fa + + In commit 8c213fa "staging: r8712u: Use asynchronous firmware loading", + the command to release the firmware was placed in the wrong routine. + + In combination with the bug introduced in commit a5ee652 "staging: r8712u: + Interface-state not fully tracked", the driver attempts to upload firmware + that had already been released. This bug is the source of one of the + problems in https://bugs.archlinux.org/task/27996#comment89833. + + Tested-by: Alberto Lago Ballesteros <saniukeokusainaya@gmail.com> + Tested-by: Adrian <agib@gmx.de> + Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> + Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + +diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c +index 4cf175f..7bbd53a 100644 +--- a/drivers/staging/rtl8712/os_intfs.c ++++ b/drivers/staging/rtl8712/os_intfs.c +@@ -475,9 +475,6 @@ static int netdev_close(struct net_device *pnetdev) + r8712_free_assoc_resources(padapter); + /*s2-4.*/ + r8712_free_network_queue(padapter); +- release_firmware(padapter->fw); +- /* never exit with a firmware callback pending */ +- wait_for_completion(&padapter->rtl8712_fw_ready); + return 0; + } + +diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c +index fe0e2ff..e01fe14 100644 +--- a/drivers/staging/rtl8712/usb_intf.c ++++ b/drivers/staging/rtl8712/usb_intf.c +@@ -30,6 +30,7 @@ + + #include <linux/usb.h> + #include <linux/module.h> ++#include <linux/firmware.h> + + #include "osdep_service.h" + #include "drv_types.h" +@@ -620,6 +621,10 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf) + struct _adapter *padapter = netdev_priv(pnetdev); + struct usb_device *udev = interface_to_usbdev(pusb_intf); + ++ if (padapter->fw_found) ++ release_firmware(padapter->fw); ++ /* never exit with a firmware callback pending */ ++ wait_for_completion(&padapter->rtl8712_fw_ready); + usb_set_intfdata(pusb_intf, NULL); + if (padapter) { + if (drvpriv.drv_registered == true) diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install index 861ce1f51..dd133c2b1 100644 --- a/libre/linux-libre/linux-libre.install +++ b/libre/linux-libre/linux-libre.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME= -KERNEL_VERSION=3.3.2-1-LIBRE +KERNEL_VERSION=3.3.3-1-LIBRE post_install () { # updating module dependencies |