summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-04-23 21:37:08 -0300
committerAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-04-23 21:37:08 -0300
commitcc3c3464ef3f45a3469e05a6137e9ebf7a21f115 (patch)
treee47880c2e23be2a6c9e40981307853136db2644e /libre
parentbf2b9f248f7011fe83ec02476d47f67b235b3878 (diff)
linux-libre-3.3.3-1: updating version and adding patches
Diffstat (limited to 'libre')
-rw-r--r--libre/linux-libre/PKGBUILD25
-rw-r--r--libre/linux-libre/config.i686158
-rw-r--r--libre/linux-libre/config.x86_64109
-rw-r--r--libre/linux-libre/fix-memblock-3.3.x.patch65
-rw-r--r--libre/linux-libre/fix-r8712u-3.3.2.patch56
-rw-r--r--libre/linux-libre/linux-libre.install2
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