Comment 118 for bug 1049466

Revision history for this message
David Samuels (davidmsamuels-e) wrote : Re: [Bug 1049466] Re: Need support of Ralink RT3290 wifi support

Guess what? An automatic Kernel update this morning (presumably to fix
some other problem) wiped out all that hard work. At least I only had to
re-install what I did yesterday and didn't have to rebuild it all!

This is on HP Pavilion dm1 4300sa.

David

On 19/10/13 17:14, James Dafoe wrote:
> For those on Ubuntu 13.10 with kernel 3.11, problem is caused by changes
> to rt2x00pci kernel module:
> https://bugzilla.kernel.org/show_bug.cgi?id=61621. Patch has been
> submitted to kernel developers:
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/net/wireless/rt2x00/rt2x00pci.c?id=9483f40d8d01918b399b4e24d0c1111db0afffeb.
> To get it to work before those changes are included in Ubuntu, rebuild
> the kernel with the patch:
>
>
> Rebuild kernel with patch:
> ------------------------
> apt-get source linux-image-$(uname -r)
> sudo apt-get build-dep linux-image-$(uname -r)
> cd linux-3.11.0
> patch -p1 < ../rt2x00pci.diff
> fakeroot debian/rules clean
> fakeroot debian/rules binary-headers binary-generic
>
>
> Install:
> ------------------------
> cd ..
> sudo dpkg -i linux-headers*
> sudo dpkg -i linux-image*
> sudo reboot
>
>
> Copy everything between ===== to rt2x00pci.diff
>
> ==================================================================================================
> diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
> index 76d95de..dc49e52 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
> @@ -105,13 +105,11 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops)
> goto exit_release_regions;
> }
>
> - pci_enable_msi(pci_dev);
> -
> hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw);
> if (!hw) {
> rt2x00_probe_err("Failed to allocate hardware\n");
> retval = -ENOMEM;
> - goto exit_disable_msi;
> + goto exit_release_regions;
> }
>
> pci_set_drvdata(pci_dev, hw);
> @@ -152,9 +150,6 @@ exit_free_reg:
> exit_free_device:
> ieee80211_free_hw(hw);
>
> -exit_disable_msi:
> - pci_disable_msi(pci_dev);
> -
> exit_release_regions:
> pci_release_regions(pci_dev);
>
> @@ -179,8 +174,6 @@ void rt2x00pci_remove(struct pci_dev *pci_dev)
> rt2x00pci_free_reg(rt2x00dev);
> ieee80211_free_hw(hw);
>
> - pci_disable_msi(pci_dev);
> -
> /*
> * Free the PCI device data.
> */
> ==================================================================================================
>
> ** Bug watch added: Linux Kernel Bug Tracker #61621
> http://bugzilla.kernel.org/show_bug.cgi?id=61621
>