From: Greg Kroah-Hartman Date: Wed, 20 May 2009 05:14:34 +0000 (-0700) Subject: Linux 2.6.29.4 release X-Git-Tag: v2.6.29.4^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=73c488be12d1b81fedac0cddff58a010119455de;p=thirdparty%2Fkernel%2Fstable-queue.git Linux 2.6.29.4 release --- diff --git a/review-2.6.29/alsa-hda-fix-line-in-on-mac-mini-core2-duo.patch b/releases/2.6.29.4/alsa-hda-fix-line-in-on-mac-mini-core2-duo.patch similarity index 100% rename from review-2.6.29/alsa-hda-fix-line-in-on-mac-mini-core2-duo.patch rename to releases/2.6.29.4/alsa-hda-fix-line-in-on-mac-mini-core2-duo.patch diff --git a/review-2.6.29/asoc-fix-errors-in-wm8990.patch b/releases/2.6.29.4/asoc-fix-errors-in-wm8990.patch similarity index 100% rename from review-2.6.29/asoc-fix-errors-in-wm8990.patch rename to releases/2.6.29.4/asoc-fix-errors-in-wm8990.patch diff --git a/review-2.6.29/cifs-fix-buffer-size-for-tcon-nativefilesystem-field.patch b/releases/2.6.29.4/cifs-fix-buffer-size-for-tcon-nativefilesystem-field.patch similarity index 100% rename from review-2.6.29/cifs-fix-buffer-size-for-tcon-nativefilesystem-field.patch rename to releases/2.6.29.4/cifs-fix-buffer-size-for-tcon-nativefilesystem-field.patch diff --git a/review-2.6.29/cifs-fix-buffer-size-in-cifs_convertucspath.patch b/releases/2.6.29.4/cifs-fix-buffer-size-in-cifs_convertucspath.patch similarity index 100% rename from review-2.6.29/cifs-fix-buffer-size-in-cifs_convertucspath.patch rename to releases/2.6.29.4/cifs-fix-buffer-size-in-cifs_convertucspath.patch diff --git a/review-2.6.29/cifs-fix-endian-conversion-of-vcnum-field.patch b/releases/2.6.29.4/cifs-fix-endian-conversion-of-vcnum-field.patch similarity index 100% rename from review-2.6.29/cifs-fix-endian-conversion-of-vcnum-field.patch rename to releases/2.6.29.4/cifs-fix-endian-conversion-of-vcnum-field.patch diff --git a/review-2.6.29/cifs-fix-incorrect-destination-buffer-size-in-cifs_strncpy_to_host.patch b/releases/2.6.29.4/cifs-fix-incorrect-destination-buffer-size-in-cifs_strncpy_to_host.patch similarity index 100% rename from review-2.6.29/cifs-fix-incorrect-destination-buffer-size-in-cifs_strncpy_to_host.patch rename to releases/2.6.29.4/cifs-fix-incorrect-destination-buffer-size-in-cifs_strncpy_to_host.patch diff --git a/review-2.6.29/cifs-fix-unicode-string-area-word-alignment-in-session-setup.patch b/releases/2.6.29.4/cifs-fix-unicode-string-area-word-alignment-in-session-setup.patch similarity index 100% rename from review-2.6.29/cifs-fix-unicode-string-area-word-alignment-in-session-setup.patch rename to releases/2.6.29.4/cifs-fix-unicode-string-area-word-alignment-in-session-setup.patch diff --git a/review-2.6.29/cifs-increase-size-of-tmp_buf-in-cifs_readdir-to-avoid-potential-overflows.patch b/releases/2.6.29.4/cifs-increase-size-of-tmp_buf-in-cifs_readdir-to-avoid-potential-overflows.patch similarity index 100% rename from review-2.6.29/cifs-increase-size-of-tmp_buf-in-cifs_readdir-to-avoid-potential-overflows.patch rename to releases/2.6.29.4/cifs-increase-size-of-tmp_buf-in-cifs_readdir-to-avoid-potential-overflows.patch diff --git a/review-2.6.29/dmatest-fix-max-channels-handling.patch b/releases/2.6.29.4/dmatest-fix-max-channels-handling.patch similarity index 100% rename from review-2.6.29/dmatest-fix-max-channels-handling.patch rename to releases/2.6.29.4/dmatest-fix-max-channels-handling.patch diff --git a/review-2.6.29/dup2-fix-return-value-with-oldfd-newfd-and-invalid-fd.patch b/releases/2.6.29.4/dup2-fix-return-value-with-oldfd-newfd-and-invalid-fd.patch similarity index 100% rename from review-2.6.29/dup2-fix-return-value-with-oldfd-newfd-and-invalid-fd.patch rename to releases/2.6.29.4/dup2-fix-return-value-with-oldfd-newfd-and-invalid-fd.patch diff --git a/review-2.6.29/e1000-fix-virtualization-bug.patch b/releases/2.6.29.4/e1000-fix-virtualization-bug.patch similarity index 100% rename from review-2.6.29/e1000-fix-virtualization-bug.patch rename to releases/2.6.29.4/e1000-fix-virtualization-bug.patch diff --git a/review-2.6.29/ehea-fix-invalid-pointer-access.patch b/releases/2.6.29.4/ehea-fix-invalid-pointer-access.patch similarity index 100% rename from review-2.6.29/ehea-fix-invalid-pointer-access.patch rename to releases/2.6.29.4/ehea-fix-invalid-pointer-access.patch diff --git a/review-2.6.29/epoll-fix-size-check-in-epoll_create.patch b/releases/2.6.29.4/epoll-fix-size-check-in-epoll_create.patch similarity index 100% rename from review-2.6.29/epoll-fix-size-check-in-epoll_create.patch rename to releases/2.6.29.4/epoll-fix-size-check-in-epoll_create.patch diff --git a/review-2.6.29/fiemap-fix-problem-with-setting-fiemap_extent_last.patch b/releases/2.6.29.4/fiemap-fix-problem-with-setting-fiemap_extent_last.patch similarity index 100% rename from review-2.6.29/fiemap-fix-problem-with-setting-fiemap_extent_last.patch rename to releases/2.6.29.4/fiemap-fix-problem-with-setting-fiemap_extent_last.patch diff --git a/review-2.6.29/fix-for-enabling-branch-profiling-makes-sparse-unusable.patch b/releases/2.6.29.4/fix-for-enabling-branch-profiling-makes-sparse-unusable.patch similarity index 100% rename from review-2.6.29/fix-for-enabling-branch-profiling-makes-sparse-unusable.patch rename to releases/2.6.29.4/fix-for-enabling-branch-profiling-makes-sparse-unusable.patch diff --git a/review-2.6.29/fs-fix-page_mkwrite-error-cases-in-core-code-and-btrfs.patch b/releases/2.6.29.4/fs-fix-page_mkwrite-error-cases-in-core-code-and-btrfs.patch similarity index 100% rename from review-2.6.29/fs-fix-page_mkwrite-error-cases-in-core-code-and-btrfs.patch rename to releases/2.6.29.4/fs-fix-page_mkwrite-error-cases-in-core-code-and-btrfs.patch diff --git a/review-2.6.29/fuse-destroy-bdi-on-error.patch b/releases/2.6.29.4/fuse-destroy-bdi-on-error.patch similarity index 100% rename from review-2.6.29/fuse-destroy-bdi-on-error.patch rename to releases/2.6.29.4/fuse-destroy-bdi-on-error.patch diff --git a/review-2.6.29/gfs2-fix-page_mkwrite-return-code.patch b/releases/2.6.29.4/gfs2-fix-page_mkwrite-return-code.patch similarity index 100% rename from review-2.6.29/gfs2-fix-page_mkwrite-return-code.patch rename to releases/2.6.29.4/gfs2-fix-page_mkwrite-return-code.patch diff --git a/review-2.6.29/hid-add-noget-quirk-for-devices-from-ch-products.patch b/releases/2.6.29.4/hid-add-noget-quirk-for-devices-from-ch-products.patch similarity index 100% rename from review-2.6.29/hid-add-noget-quirk-for-devices-from-ch-products.patch rename to releases/2.6.29.4/hid-add-noget-quirk-for-devices-from-ch-products.patch diff --git a/review-2.6.29/hwmon-fix-w83782d-support.patch b/releases/2.6.29.4/hwmon-fix-w83782d-support.patch similarity index 100% rename from review-2.6.29/hwmon-fix-w83782d-support.patch rename to releases/2.6.29.4/hwmon-fix-w83782d-support.patch diff --git a/review-2.6.29/i2c-algo-bit-fix-timeout-test.patch b/releases/2.6.29.4/i2c-algo-bit-fix-timeout-test.patch similarity index 100% rename from review-2.6.29/i2c-algo-bit-fix-timeout-test.patch rename to releases/2.6.29.4/i2c-algo-bit-fix-timeout-test.patch diff --git a/review-2.6.29/i2c-algo-pca-let-pca9564-recover-from-unacked-data-byte.patch b/releases/2.6.29.4/i2c-algo-pca-let-pca9564-recover-from-unacked-data-byte.patch similarity index 100% rename from review-2.6.29/i2c-algo-pca-let-pca9564-recover-from-unacked-data-byte.patch rename to releases/2.6.29.4/i2c-algo-pca-let-pca9564-recover-from-unacked-data-byte.patch diff --git a/review-2.6.29/kvm-make-efer-reads-safe-when-efer-does-not-exist.patch b/releases/2.6.29.4/kvm-make-efer-reads-safe-when-efer-does-not-exist.patch similarity index 100% rename from review-2.6.29/kvm-make-efer-reads-safe-when-efer-does-not-exist.patch rename to releases/2.6.29.4/kvm-make-efer-reads-safe-when-efer-does-not-exist.patch diff --git a/review-2.6.29/kvm-svm-remove-port-80-passthrough.patch b/releases/2.6.29.4/kvm-svm-remove-port-80-passthrough.patch similarity index 100% rename from review-2.6.29/kvm-svm-remove-port-80-passthrough.patch rename to releases/2.6.29.4/kvm-svm-remove-port-80-passthrough.patch diff --git a/review-2.6.29/lockd-fix-list-corruption-on-lockd-restart.patch b/releases/2.6.29.4/lockd-fix-list-corruption-on-lockd-restart.patch similarity index 100% rename from review-2.6.29/lockd-fix-list-corruption-on-lockd-restart.patch rename to releases/2.6.29.4/lockd-fix-list-corruption-on-lockd-restart.patch diff --git a/review-2.6.29/lsm-relocate-the-ipv4-security_inet_conn_request-hooks.patch b/releases/2.6.29.4/lsm-relocate-the-ipv4-security_inet_conn_request-hooks.patch similarity index 100% rename from review-2.6.29/lsm-relocate-the-ipv4-security_inet_conn_request-hooks.patch rename to releases/2.6.29.4/lsm-relocate-the-ipv4-security_inet_conn_request-hooks.patch diff --git a/review-2.6.29/md-fix-loading-of-out-of-date-bitmap.patch b/releases/2.6.29.4/md-fix-loading-of-out-of-date-bitmap.patch similarity index 100% rename from review-2.6.29/md-fix-loading-of-out-of-date-bitmap.patch rename to releases/2.6.29.4/md-fix-loading-of-out-of-date-bitmap.patch diff --git a/review-2.6.29/md-fix-some-errors-with-bitmaps-on-devices-larger-than-2tb.patch b/releases/2.6.29.4/md-fix-some-errors-with-bitmaps-on-devices-larger-than-2tb.patch similarity index 100% rename from review-2.6.29/md-fix-some-errors-with-bitmaps-on-devices-larger-than-2tb.patch rename to releases/2.6.29.4/md-fix-some-errors-with-bitmaps-on-devices-larger-than-2tb.patch diff --git a/review-2.6.29/md-raid10-don-t-clear-bitmap-during-recovery-if-array-will-still-be-degraded.patch b/releases/2.6.29.4/md-raid10-don-t-clear-bitmap-during-recovery-if-array-will-still-be-degraded.patch similarity index 100% rename from review-2.6.29/md-raid10-don-t-clear-bitmap-during-recovery-if-array-will-still-be-degraded.patch rename to releases/2.6.29.4/md-raid10-don-t-clear-bitmap-during-recovery-if-array-will-still-be-degraded.patch diff --git a/review-2.6.29/md-remove-ability-to-explicit-set-an-inactive-array-to-clean.patch b/releases/2.6.29.4/md-remove-ability-to-explicit-set-an-inactive-array-to-clean.patch similarity index 100% rename from review-2.6.29/md-remove-ability-to-explicit-set-an-inactive-array-to-clean.patch rename to releases/2.6.29.4/md-remove-ability-to-explicit-set-an-inactive-array-to-clean.patch diff --git a/review-2.6.29/mm-close-page_mkwrite-races.patch b/releases/2.6.29.4/mm-close-page_mkwrite-races.patch similarity index 100% rename from review-2.6.29/mm-close-page_mkwrite-races.patch rename to releases/2.6.29.4/mm-close-page_mkwrite-races.patch diff --git a/review-2.6.29/mm-page_mkwrite-change-prototype-to-match-fault.patch b/releases/2.6.29.4/mm-page_mkwrite-change-prototype-to-match-fault.patch similarity index 100% rename from review-2.6.29/mm-page_mkwrite-change-prototype-to-match-fault.patch rename to releases/2.6.29.4/mm-page_mkwrite-change-prototype-to-match-fault.patch diff --git a/review-2.6.29/ne2k-pci-do-not-register-device-until-initialized.patch b/releases/2.6.29.4/ne2k-pci-do-not-register-device-until-initialized.patch similarity index 100% rename from review-2.6.29/ne2k-pci-do-not-register-device-until-initialized.patch rename to releases/2.6.29.4/ne2k-pci-do-not-register-device-until-initialized.patch diff --git a/review-2.6.29/netlabel-add-cipso-set-del-attr-request_sock-functions.patch b/releases/2.6.29.4/netlabel-add-cipso-set-del-attr-request_sock-functions.patch similarity index 100% rename from review-2.6.29/netlabel-add-cipso-set-del-attr-request_sock-functions.patch rename to releases/2.6.29.4/netlabel-add-cipso-set-del-attr-request_sock-functions.patch diff --git a/review-2.6.29/netlabel-add-new-netlabel-kapi-interfaces-for-request_sock-security-attributes.patch b/releases/2.6.29.4/netlabel-add-new-netlabel-kapi-interfaces-for-request_sock-security-attributes.patch similarity index 100% rename from review-2.6.29/netlabel-add-new-netlabel-kapi-interfaces-for-request_sock-security-attributes.patch rename to releases/2.6.29.4/netlabel-add-new-netlabel-kapi-interfaces-for-request_sock-security-attributes.patch diff --git a/review-2.6.29/nfs-close-page_mkwrite-races.patch b/releases/2.6.29.4/nfs-close-page_mkwrite-races.patch similarity index 100% rename from review-2.6.29/nfs-close-page_mkwrite-races.patch rename to releases/2.6.29.4/nfs-close-page_mkwrite-races.patch diff --git a/review-2.6.29/nfs-fix-the-notifications-when-renaming-onto-an-existing-file.patch b/releases/2.6.29.4/nfs-fix-the-notifications-when-renaming-onto-an-existing-file.patch similarity index 100% rename from review-2.6.29/nfs-fix-the-notifications-when-renaming-onto-an-existing-file.patch rename to releases/2.6.29.4/nfs-fix-the-notifications-when-renaming-onto-an-existing-file.patch diff --git a/review-2.6.29/nfs-fix-the-return-value-in-nfs_page_mkwrite.patch b/releases/2.6.29.4/nfs-fix-the-return-value-in-nfs_page_mkwrite.patch similarity index 100% rename from review-2.6.29/nfs-fix-the-return-value-in-nfs_page_mkwrite.patch rename to releases/2.6.29.4/nfs-fix-the-return-value-in-nfs_page_mkwrite.patch diff --git a/review-2.6.29/nfsd4-check-for-negative-dentry-before-use-in-nfsv4-readdir.patch b/releases/2.6.29.4/nfsd4-check-for-negative-dentry-before-use-in-nfsv4-readdir.patch similarity index 100% rename from review-2.6.29/nfsd4-check-for-negative-dentry-before-use-in-nfsv4-readdir.patch rename to releases/2.6.29.4/nfsd4-check-for-negative-dentry-before-use-in-nfsv4-readdir.patch diff --git a/review-2.6.29/ocfs2-fix-i_mutex-locking-in-ocfs2_splice_to_file.patch b/releases/2.6.29.4/ocfs2-fix-i_mutex-locking-in-ocfs2_splice_to_file.patch similarity index 100% rename from review-2.6.29/ocfs2-fix-i_mutex-locking-in-ocfs2_splice_to_file.patch rename to releases/2.6.29.4/ocfs2-fix-i_mutex-locking-in-ocfs2_splice_to_file.patch diff --git a/review-2.6.29/powerpc-5200-don-t-specify-irqf_shared-in-psc-uart-driver.patch b/releases/2.6.29.4/powerpc-5200-don-t-specify-irqf_shared-in-psc-uart-driver.patch similarity index 100% rename from review-2.6.29/powerpc-5200-don-t-specify-irqf_shared-in-psc-uart-driver.patch rename to releases/2.6.29.4/powerpc-5200-don-t-specify-irqf_shared-in-psc-uart-driver.patch diff --git a/review-2.6.29/selinux-add-new-netlabel-glue-code-to-handle-labeling-of-connection-requests.patch b/releases/2.6.29.4/selinux-add-new-netlabel-glue-code-to-handle-labeling-of-connection-requests.patch similarity index 100% rename from review-2.6.29/selinux-add-new-netlabel-glue-code-to-handle-labeling-of-connection-requests.patch rename to releases/2.6.29.4/selinux-add-new-netlabel-glue-code-to-handle-labeling-of-connection-requests.patch diff --git a/review-2.6.29/selinux-remove-dead-code-labeled-networking-code.patch b/releases/2.6.29.4/selinux-remove-dead-code-labeled-networking-code.patch similarity index 100% rename from review-2.6.29/selinux-remove-dead-code-labeled-networking-code.patch rename to releases/2.6.29.4/selinux-remove-dead-code-labeled-networking-code.patch diff --git a/review-2.6.29/selinux-set-the-proper-netlabel-security-attributes-for-connection-requests.patch b/releases/2.6.29.4/selinux-set-the-proper-netlabel-security-attributes-for-connection-requests.patch similarity index 100% rename from review-2.6.29/selinux-set-the-proper-netlabel-security-attributes-for-connection-requests.patch rename to releases/2.6.29.4/selinux-set-the-proper-netlabel-security-attributes-for-connection-requests.patch diff --git a/review-2.6.29/series b/releases/2.6.29.4/series similarity index 98% rename from review-2.6.29/series rename to releases/2.6.29.4/series index 81e15b944b0..3484bdcdd7a 100644 --- a/review-2.6.29/series +++ b/releases/2.6.29.4/series @@ -26,7 +26,6 @@ cifs-increase-size-of-tmp_buf-in-cifs_readdir-to-avoid-potential-overflows.patch cifs-fix-incorrect-destination-buffer-size-in-cifs_strncpy_to_host.patch cifs-fix-buffer-size-in-cifs_convertucspath.patch cifs-fix-unicode-string-area-word-alignment-in-session-setup.patch -mac80211-pid-fix-memory-corruption.patch mm-page_mkwrite-change-prototype-to-match-fault.patch fs-fix-page_mkwrite-error-cases-in-core-code-and-btrfs.patch mm-close-page_mkwrite-races.patch diff --git a/review-2.6.29/smack-set-the-proper-netlabel-security-attributes-for-connection-requests.patch b/releases/2.6.29.4/smack-set-the-proper-netlabel-security-attributes-for-connection-requests.patch similarity index 100% rename from review-2.6.29/smack-set-the-proper-netlabel-security-attributes-for-connection-requests.patch rename to releases/2.6.29.4/smack-set-the-proper-netlabel-security-attributes-for-connection-requests.patch diff --git a/review-2.6.29/splice-fix-i_mutex-locking-in-generic_splice_write.patch b/releases/2.6.29.4/splice-fix-i_mutex-locking-in-generic_splice_write.patch similarity index 100% rename from review-2.6.29/splice-fix-i_mutex-locking-in-generic_splice_write.patch rename to releases/2.6.29.4/splice-fix-i_mutex-locking-in-generic_splice_write.patch diff --git a/review-2.6.29/splice-remove-i_mutex-locking-in-splice_from_pipe.patch b/releases/2.6.29.4/splice-remove-i_mutex-locking-in-splice_from_pipe.patch similarity index 100% rename from review-2.6.29/splice-remove-i_mutex-locking-in-splice_from_pipe.patch rename to releases/2.6.29.4/splice-remove-i_mutex-locking-in-splice_from_pipe.patch diff --git a/review-2.6.29/splice-split-up-__splice_from_pipe.patch b/releases/2.6.29.4/splice-split-up-__splice_from_pipe.patch similarity index 100% rename from review-2.6.29/splice-split-up-__splice_from_pipe.patch rename to releases/2.6.29.4/splice-split-up-__splice_from_pipe.patch diff --git a/review-2.6.29/usb-gadget-fix-utf-conversion-in-the-usbstring-library.patch b/releases/2.6.29.4/usb-gadget-fix-utf-conversion-in-the-usbstring-library.patch similarity index 100% rename from review-2.6.29/usb-gadget-fix-utf-conversion-in-the-usbstring-library.patch rename to releases/2.6.29.4/usb-gadget-fix-utf-conversion-in-the-usbstring-library.patch diff --git a/review-2.6.29/usb-serial-ftdi_sio-fix-reference-counting-of-ftdi_private.patch b/releases/2.6.29.4/usb-serial-ftdi_sio-fix-reference-counting-of-ftdi_private.patch similarity index 100% rename from review-2.6.29/usb-serial-ftdi_sio-fix-reference-counting-of-ftdi_private.patch rename to releases/2.6.29.4/usb-serial-ftdi_sio-fix-reference-counting-of-ftdi_private.patch diff --git a/review-2.6.29/mac80211-pid-fix-memory-corruption.patch b/review-2.6.29/mac80211-pid-fix-memory-corruption.patch deleted file mode 100644 index bb3f34c7437..00000000000 --- a/review-2.6.29/mac80211-pid-fix-memory-corruption.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 6909268dc93ae4b0b8e1ebb4b2fa70b1a47dd347 Mon Sep 17 00:00:00 2001 -From: Jiri Slaby -Date: Mon, 4 May 2009 18:10:28 +0200 -Subject: mac80211: pid, fix memory corruption - -From: Jiri Slaby - -commit 6909268dc93ae4b0b8e1ebb4b2fa70b1a47dd347 upstream. - -pid doesn't count with some band having more bitrates than the one -associated the first time. -Fix that by counting the maximal available bitrate count and allocate -big enough space. - -Secondly, fix touching uninitialized memory which causes panics. -Index sucked from this random memory points to the hell. -The fix is to sort the rates on each band change. - -Signed-off-by: Jiri Slaby -Signed-off-by: John W. Linville -Signed-off-by: Greg Kroah-Hartman - ---- - net/mac80211/rc80211_pid_algo.c | 73 +++++++++++++++++++++------------------- - 1 file changed, 39 insertions(+), 34 deletions(-) - ---- a/net/mac80211/rc80211_pid_algo.c -+++ b/net/mac80211/rc80211_pid_algo.c -@@ -317,13 +317,44 @@ rate_control_pid_rate_init(void *priv, s - struct ieee80211_sta *sta, void *priv_sta) - { - struct rc_pid_sta_info *spinfo = priv_sta; -+ struct rc_pid_info *pinfo = priv; -+ struct rc_pid_rateinfo *rinfo = pinfo->rinfo; - struct sta_info *si; -+ int i, j, tmp; -+ bool s; - - /* TODO: This routine should consider using RSSI from previous packets - * as we need to have IEEE 802.1X auth succeed immediately after assoc.. - * Until that method is implemented, we will use the lowest supported - * rate as a workaround. */ - -+ /* Sort the rates. This is optimized for the most common case (i.e. -+ * almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed -+ * mapping too. */ -+ for (i = 0; i < sband->n_bitrates; i++) { -+ rinfo[i].index = i; -+ rinfo[i].rev_index = i; -+ if (RC_PID_FAST_START) -+ rinfo[i].diff = 0; -+ else -+ rinfo[i].diff = i * pinfo->norm_offset; -+ } -+ for (i = 1; i < sband->n_bitrates; i++) { -+ s = 0; -+ for (j = 0; j < sband->n_bitrates - i; j++) -+ if (unlikely(sband->bitrates[rinfo[j].index].bitrate > -+ sband->bitrates[rinfo[j + 1].index].bitrate)) { -+ tmp = rinfo[j].index; -+ rinfo[j].index = rinfo[j + 1].index; -+ rinfo[j + 1].index = tmp; -+ rinfo[rinfo[j].index].rev_index = j; -+ rinfo[rinfo[j + 1].index].rev_index = j + 1; -+ s = 1; -+ } -+ if (!s) -+ break; -+ } -+ - spinfo->txrate_idx = rate_lowest_index(sband, sta); - /* HACK */ - si = container_of(sta, struct sta_info, sta); -@@ -336,21 +367,22 @@ static void *rate_control_pid_alloc(stru - struct rc_pid_info *pinfo; - struct rc_pid_rateinfo *rinfo; - struct ieee80211_supported_band *sband; -- int i, j, tmp; -- bool s; -+ int i, max_rates = 0; - #ifdef CONFIG_MAC80211_DEBUGFS - struct rc_pid_debugfs_entries *de; - #endif - -- sband = hw->wiphy->bands[hw->conf.channel->band]; -- - pinfo = kmalloc(sizeof(*pinfo), GFP_ATOMIC); - if (!pinfo) - return NULL; - -- /* We can safely assume that sband won't change unless we get -- * reinitialized. */ -- rinfo = kmalloc(sizeof(*rinfo) * sband->n_bitrates, GFP_ATOMIC); -+ for (i = 0; i < IEEE80211_NUM_BANDS; i++) { -+ sband = hw->wiphy->bands[i]; -+ if (sband->n_bitrates > max_rates) -+ max_rates = sband->n_bitrates; -+ } -+ -+ rinfo = kmalloc(sizeof(*rinfo) * max_rates, GFP_ATOMIC); - if (!rinfo) { - kfree(pinfo); - return NULL; -@@ -368,33 +400,6 @@ static void *rate_control_pid_alloc(stru - pinfo->rinfo = rinfo; - pinfo->oldrate = 0; - -- /* Sort the rates. This is optimized for the most common case (i.e. -- * almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed -- * mapping too. */ -- for (i = 0; i < sband->n_bitrates; i++) { -- rinfo[i].index = i; -- rinfo[i].rev_index = i; -- if (RC_PID_FAST_START) -- rinfo[i].diff = 0; -- else -- rinfo[i].diff = i * pinfo->norm_offset; -- } -- for (i = 1; i < sband->n_bitrates; i++) { -- s = 0; -- for (j = 0; j < sband->n_bitrates - i; j++) -- if (unlikely(sband->bitrates[rinfo[j].index].bitrate > -- sband->bitrates[rinfo[j + 1].index].bitrate)) { -- tmp = rinfo[j].index; -- rinfo[j].index = rinfo[j + 1].index; -- rinfo[j + 1].index = tmp; -- rinfo[rinfo[j].index].rev_index = j; -- rinfo[rinfo[j + 1].index].rev_index = j + 1; -- s = 1; -- } -- if (!s) -- break; -- } -- - #ifdef CONFIG_MAC80211_DEBUGFS - de = &pinfo->dentries; - de->target = debugfs_create_u32("target_pf", S_IRUSR | S_IWUSR,