From 9988621f899d7d4ae5fd0a4a32a4ba3abc5a527d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 24 Apr 2012 03:46:09 +0000 Subject: Tue Apr 24 03:46:09 UTC 2012 --- libre/linux-libre/ChangeLog | 11 +- libre/linux-libre/PKGBUILD | 25 +++-- libre/linux-libre/config.i686 | 160 ++++++++++++++++++++++++++++- libre/linux-libre/config.x86_64 | 111 +++++++++++++++++++- libre/linux-libre/fix-memblock-3.3.x.patch | 65 ++++++++++++ libre/linux-libre/fix-r8712u-3.3.2.patch | 56 ++++++++++ libre/linux-libre/linux-libre.install | 2 +- 7 files changed, 412 insertions(+), 18 deletions(-) create mode 100644 libre/linux-libre/fix-memblock-3.3.x.patch create mode 100644 libre/linux-libre/fix-r8712u-3.3.2.patch (limited to 'libre/linux-libre') diff --git a/libre/linux-libre/ChangeLog b/libre/linux-libre/ChangeLog index 173a6c3cd..bbf62fc7c 100644 --- a/libre/linux-libre/ChangeLog +++ b/libre/linux-libre/ChangeLog @@ -1,9 +1,14 @@ +2012-04-24 André Silva + + * linux-libre-3.3.3-1 + * Disabled CONFIG_STUB_POULSBO module https://labs.parabola.nu/issues/90 + 2012-04-08 André Silva - * linux-libre 3.3.1-1.1 - * Disable CONFIG_IPW2100 and CONFIG_IPW2200 modules https://labs.parabola.nu/issues/47 + * linux-libre-3.3.1-1.1 + * Disabled CONFIG_IPW2100 and CONFIG_IPW2200 modules https://labs.parabola.nu/issues/47 2012-03-03 André Silva * linux-libre-2.3.9-2 - * Enable CONFIG_FB_VT8623 module https://labs.parabola.nu/issues/14 + * Enabled CONFIG_FB_VT8623 module https://labs.parabola.nu/issues/14 diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 20fa125b5..47dfecba8 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' + '8c97845fa581b5d8172694d85577d817' + '60c740318d677350ac5251300f6cbe73' 'a8a3843046926eb7ab81312cd438c5c5' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' '04b21c79df0a952c22d681dd4f4562df' '9d3c56a4b999c8bfbd4018089a62f662' '263725f20c0b9eb9c353040792d644e5' + 'bfbac6688a9031372638438adccd4595' + '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..c58fe0e40 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 @@ -3892,7 +3915,7 @@ CONFIG_DRM_VMWGFX=m CONFIG_DRM_GMA500=m CONFIG_DRM_GMA600=y CONFIG_DRM_GMA3600=y -CONFIG_STUB_POULSBO=m +# CONFIG_STUB_POULSBO is not set CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -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..279c94035 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1126,10 +1126,29 @@ 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 # @@ -3735,7 +3754,7 @@ CONFIG_DRM_VMWGFX=m CONFIG_DRM_GMA500=m CONFIG_DRM_GMA600=y CONFIG_DRM_GMA3600=y -CONFIG_STUB_POULSBO=m +# CONFIG_STUB_POULSBO is not set CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -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 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 kernel.org> +Cc: stable vger.kernel.org +Reported-by: Valere Monseur ymail.com> +Bisected-by: Joseph Freeman gmail.com> +Tested-by: Joseph Freeman 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 +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 + Tested-by: Adrian + Signed-off-by: Larry Finger + Signed-off-by: Greg Kroah-Hartman + +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 + #include ++#include + + #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 -- cgit v1.2.3-54-g00ecf