]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
start 2.6.26.1 review cycle
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 31 Jul 2008 00:00:54 +0000 (17:00 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 31 Jul 2008 00:00:54 +0000 (17:00 -0700)
64 files changed:
review-2.6.26/alsa-trident-pause-s-pdif-output.patch [moved from queue-2.6.26/alsa-trident-pause-s-pdif-output.patch with 100% similarity]
review-2.6.26/arm-fix-fls-for-64-bit-arguments.patch [moved from queue-2.6.26/arm-fix-fls-for-64-bit-arguments.patch with 100% similarity]
review-2.6.26/ath5k-don-t-enable-msi-we-cannot-handle-it-yet.patch [moved from queue-2.6.26/ath5k-don-t-enable-msi-we-cannot-handle-it-yet.patch with 100% similarity]
review-2.6.26/b43legacy-release-mutex-in-error-handling-code.patch [moved from queue-2.6.26/b43legacy-release-mutex-in-error-handling-code.patch with 100% similarity]
review-2.6.26/cpufreq-acpi-only-call-_ppc-after-cpufreq-acpi-init-funcs-got-called-already.patch [moved from queue-2.6.26/cpufreq-acpi-only-call-_ppc-after-cpufreq-acpi-init-funcs-got-called-already.patch with 100% similarity]
review-2.6.26/cpusets-fix-wrong-domain-attr-updates.patch [moved from queue-2.6.26/cpusets-fix-wrong-domain-attr-updates.patch with 100% similarity]
review-2.6.26/dvb-cx23885-dvb-transport-cards-using-dvb-port-vidb-ts1-did-not-stream.patch [moved from queue-2.6.26/dvb-cx23885-dvb-transport-cards-using-dvb-port-vidb-ts1-did-not-stream.patch with 100% similarity]
review-2.6.26/dvb-cx23885-ensure-pad_ctrl-is-always-reset-to-a-sensible-default.patch [moved from queue-2.6.26/dvb-cx23885-ensure-pad_ctrl-is-always-reset-to-a-sensible-default.patch with 100% similarity]
review-2.6.26/dvb-cx23885-reallocated-the-sram-to-avoid-concurrent-vidb-c-issues.patch [moved from queue-2.6.26/dvb-cx23885-reallocated-the-sram-to-avoid-concurrent-vidb-c-issues.patch with 100% similarity]
review-2.6.26/dvb-cx23885-sram-changes-for-the-885-and-887-silicon-parts.patch [moved from queue-2.6.26/dvb-cx23885-sram-changes-for-the-885-and-887-silicon-parts.patch with 100% similarity]
review-2.6.26/dvb-dib0700-add-support-for-hauppauge-nova-td-stick-52009.patch [moved from queue-2.6.26/dvb-dib0700-add-support-for-hauppauge-nova-td-stick-52009.patch with 100% similarity]
review-2.6.26/ecryptfs-use-page_alloc-not-kmalloc-to-get-a-page-of-memory.patch [moved from queue-2.6.26/ecryptfs-use-page_alloc-not-kmalloc-to-get-a-page-of-memory.patch with 100% similarity]
review-2.6.26/fix-build-on-compat-platforms-when-config_epoll-is-disabled.patch [moved from queue-2.6.26/fix-build-on-compat-platforms-when-config_epoll-is-disabled.patch with 100% similarity]
review-2.6.26/fix-off-by-one-error-in-iov_iter_advance.patch [moved from queue-2.6.26/fix-off-by-one-error-in-iov_iter_advance.patch with 100% similarity]
review-2.6.26/fix-typos-from-signal_32-64.h-merge.patch [moved from queue-2.6.26/fix-typos-from-signal_32-64.h-merge.patch with 100% similarity]
review-2.6.26/hdlcdrv-fix-crc-calculation.patch [moved from queue-2.6.26/hdlcdrv-fix-crc-calculation.patch with 100% similarity]
review-2.6.26/ide-cd-fix-oops-when-using-growisofs.patch [moved from queue-2.6.26/ide-cd-fix-oops-when-using-growisofs.patch with 100% similarity]
review-2.6.26/iop-adma-fix-platform-driver-hotplug-coldplug.patch [moved from queue-2.6.26/iop-adma-fix-platform-driver-hotplug-coldplug.patch with 100% similarity]
review-2.6.26/ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch [moved from queue-2.6.26/ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch with 100% similarity]
review-2.6.26/ipv6-use-timer-pending.patch [moved from queue-2.6.26/ipv6-use-timer-pending.patch with 100% similarity]
review-2.6.26/isofs-fix-minor-filesystem-corruption.patch [moved from queue-2.6.26/isofs-fix-minor-filesystem-corruption.patch with 100% similarity]
review-2.6.26/ixgbe-remove-device-id-for-unsupported-device.patch [moved from queue-2.6.26/ixgbe-remove-device-id-for-unsupported-device.patch with 100% similarity]
review-2.6.26/kvm-mmu-fix-potential-race-setting-upper-shadow-ptes-on-nonpae-hosts.patch [moved from queue-2.6.26/kvm-mmu-fix-potential-race-setting-upper-shadow-ptes-on-nonpae-hosts.patch with 100% similarity]
review-2.6.26/kvm-mmu-nuke-shadowed-pgtable-pages-and-ptes-on-memslot-destruction.patch [moved from queue-2.6.26/kvm-mmu-nuke-shadowed-pgtable-pages-and-ptes-on-memslot-destruction.patch with 100% similarity]
review-2.6.26/kvm-mmu_shrink-kvm_mmu_zap_page-requires-slots_lock-to-be-held.patch [moved from queue-2.6.26/kvm-mmu_shrink-kvm_mmu_zap_page-requires-slots_lock-to-be-held.patch with 100% similarity]
review-2.6.26/kvm-svm-fix-suspend-resume-support.patch [moved from queue-2.6.26/kvm-svm-fix-suspend-resume-support.patch with 100% similarity]
review-2.6.26/kvm-vmx-add-ept_sync_context-in-flush_tlb.patch [moved from queue-2.6.26/kvm-vmx-add-ept_sync_context-in-flush_tlb.patch with 100% similarity]
review-2.6.26/kvm-vmx-fix-a-wrong-usage-of-vmcs_config.patch [moved from queue-2.6.26/kvm-vmx-fix-a-wrong-usage-of-vmcs_config.patch with 100% similarity]
review-2.6.26/kvm-x86-emulator-fix-hlt-instruction.patch [moved from queue-2.6.26/kvm-x86-emulator-fix-hlt-instruction.patch with 100% similarity]
review-2.6.26/markers-fix-duplicate-modpost-entry.patch [moved from queue-2.6.26/markers-fix-duplicate-modpost-entry.patch with 100% similarity]
review-2.6.26/markers-fix-markers-read-barrier-for-multiple-probes.patch [moved from queue-2.6.26/markers-fix-markers-read-barrier-for-multiple-probes.patch with 100% similarity]
review-2.6.26/mbox [new file with mode: 0644]
review-2.6.26/mpc52xx_psc_spi-fix-block-transfer.patch [moved from queue-2.6.26/mpc52xx_psc_spi-fix-block-transfer.patch with 100% similarity]
review-2.6.26/myri10ge-do-not-forget-to-setup-the-single-slice-pointers.patch [moved from queue-2.6.26/myri10ge-do-not-forget-to-setup-the-single-slice-pointers.patch with 100% similarity]
review-2.6.26/myri10ge-do-not-use-mgp-max_intr_slots-before-loading-the-firmware.patch [moved from queue-2.6.26/myri10ge-do-not-use-mgp-max_intr_slots-before-loading-the-firmware.patch with 100% similarity]
review-2.6.26/patch-upstream-x86-ptrace-fix-ptrace_getfpxregs-error.patch [moved from queue-2.6.26/patch-upstream-x86-ptrace-fix-ptrace_getfpxregs-error.patch with 100% similarity]
review-2.6.26/proc-fix-proc-pagemap-some-more.patch [moved from queue-2.6.26/proc-fix-proc-pagemap-some-more.patch with 100% similarity]
review-2.6.26/pxamci-trivial-fix-of-dma-alignment-register-bit-clearing.patch [moved from queue-2.6.26/pxamci-trivial-fix-of-dma-alignment-register-bit-clearing.patch with 100% similarity]
review-2.6.26/quota-fix-possible-infinite-loop-in-quota-code.patch [moved from queue-2.6.26/quota-fix-possible-infinite-loop-in-quota-code.patch with 100% similarity]
review-2.6.26/rcu-fix-rcu_try_flip_waitack_needed-to-prevent-grace-period-stall.patch [moved from queue-2.6.26/rcu-fix-rcu_try_flip_waitack_needed-to-prevent-grace-period-stall.patch with 100% similarity]
review-2.6.26/rtc-at91rm9200-avoid-spurious-irqs.patch [moved from queue-2.6.26/rtc-at91rm9200-avoid-spurious-irqs.patch with 100% similarity]
review-2.6.26/series [moved from queue-2.6.26/series with 100% similarity]
review-2.6.26/sparc64-do-not-define-bio_vmerge_boundary.patch [moved from queue-2.6.26/sparc64-do-not-define-bio_vmerge_boundary.patch with 100% similarity]
review-2.6.26/sparc64-fix-cpufreq-notifier-registry.patch [moved from queue-2.6.26/sparc64-fix-cpufreq-notifier-registry.patch with 100% similarity]
review-2.6.26/sparc64-fix-lockdep-issues-in-ldc-protocol-layer.patch [moved from queue-2.6.26/sparc64-fix-lockdep-issues-in-ldc-protocol-layer.patch with 100% similarity]
review-2.6.26/tcp-clear-probes_out-more-aggressively-in-tcp_ack.patch [moved from queue-2.6.26/tcp-clear-probes_out-more-aggressively-in-tcp_ack.patch with 100% similarity]
review-2.6.26/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch [moved from queue-2.6.26/tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch with 100% similarity]
review-2.6.26/udplite-protection-against-coverage-value-wrap-around.patch [moved from queue-2.6.26/udplite-protection-against-coverage-value-wrap-around.patch with 100% similarity]
review-2.6.26/uml-fix-boot-crash.patch [moved from queue-2.6.26/uml-fix-boot-crash.patch with 100% similarity]
review-2.6.26/usb-fix-usb-serial-pm-counter-decrement-for-disconnected-interfaces.patch [moved from queue-2.6.26/usb-fix-usb-serial-pm-counter-decrement-for-disconnected-interfaces.patch with 100% similarity]
review-2.6.26/v4l-cx18-upgrade-to-newer-firmware-update-documentation.patch [moved from queue-2.6.26/v4l-cx18-upgrade-to-newer-firmware-update-documentation.patch with 100% similarity]
review-2.6.26/v4l-cx23885-bugfix-for-concurrent-use-of-dev-video0-and-dev-video1.patch [moved from queue-2.6.26/v4l-cx23885-bugfix-for-concurrent-use-of-dev-video0-and-dev-video1.patch with 100% similarity]
review-2.6.26/v4l-saa7134-copy-tuner-data-earlier-to-avoid-overwriting-manual-tuner-type.patch [moved from queue-2.6.26/v4l-saa7134-copy-tuner-data-earlier-to-avoid-overwriting-manual-tuner-type.patch with 100% similarity]
review-2.6.26/v4l-uvcvideo-add-support-for-medion-akoya-mini-e1210-integrated-webcam.patch [moved from queue-2.6.26/v4l-uvcvideo-add-support-for-medion-akoya-mini-e1210-integrated-webcam.patch with 100% similarity]
review-2.6.26/v4l-uvcvideo-don-t-free-urb-buffers-on-suspend.patch [moved from queue-2.6.26/v4l-uvcvideo-don-t-free-urb-buffers-on-suspend.patch with 100% similarity]
review-2.6.26/v4l-uvcvideo-fix-a-buffer-overflow-in-format-descriptor-parsing.patch [moved from queue-2.6.26/v4l-uvcvideo-fix-a-buffer-overflow-in-format-descriptor-parsing.patch with 100% similarity]
review-2.6.26/v4l-uvcvideo-make-input-device-support-optional.patch [moved from queue-2.6.26/v4l-uvcvideo-make-input-device-support-optional.patch with 100% similarity]
review-2.6.26/v4l-uvcvideo-use-gfp_noio-when-allocating-memory-during-resume.patch [moved from queue-2.6.26/v4l-uvcvideo-use-gfp_noio-when-allocating-memory-during-resume.patch with 100% similarity]
review-2.6.26/vfs-increase-pseudo-filesystem-block-size-to-page_size.patch [moved from queue-2.6.26/vfs-increase-pseudo-filesystem-block-size-to-page_size.patch with 100% similarity]
review-2.6.26/vmlinux.lds-move-__attribute__-functions-back-into-final-.text-section.patch [moved from queue-2.6.26/vmlinux.lds-move-__attribute__-functions-back-into-final-.text-section.patch with 100% similarity]
review-2.6.26/x86-fix-crash-due-to-missing-debugctlmsr-on-amd-k6-3.patch [moved from queue-2.6.26/x86-fix-crash-due-to-missing-debugctlmsr-on-amd-k6-3.patch with 100% similarity]
review-2.6.26/x86-fix-kernel_physical_mapping_init-for-large-x86-systems.patch [moved from queue-2.6.26/x86-fix-kernel_physical_mapping_init-for-large-x86-systems.patch with 100% similarity]
review-2.6.26/x86-reboot-quirks-add-dell-precision-workstation-t5400.patch [moved from queue-2.6.26/x86-reboot-quirks-add-dell-precision-workstation-t5400.patch with 100% similarity]
review-2.6.26/x86-suspend-acpi-enter-big-real-mode.patch [moved from queue-2.6.26/x86-suspend-acpi-enter-big-real-mode.patch with 100% similarity]

diff --git a/review-2.6.26/mbox b/review-2.6.26/mbox
new file mode 100644 (file)
index 0000000..34063bf
--- /dev/null
@@ -0,0 +1,6348 @@
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233141.933373247@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:52 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Gerrit Renker <gerrit@erg.abdn.ac.uk>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 02/62] udplite: Protection against coverage value wrap-around
+Content-Disposition: inline; filename=udplite-protection-against-coverage-value-wrap-around.patch
+Content-Length: 1852
+Lines: 54
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+
+[ Upstream commit 47112e25da41d9059626033986dc3353e101f815 ]
+
+This patch clamps the cscov setsockopt values to a maximum of 0xFFFF.
+
+Setsockopt values greater than 0xffff can cause an unwanted
+wrap-around.  Further, IPv6 jumbograms are not supported (RFC 3838,
+3.5), so that values greater than 0xffff are not even useful.
+
+Further changes: fixed a typo in the documentation.
+
+Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/networking/udplite.txt |    2 +-
+ net/ipv4/udp.c                       |    4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+--- a/Documentation/networking/udplite.txt
++++ b/Documentation/networking/udplite.txt
+@@ -148,7 +148,7 @@
+         getsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, &value, ...);
+   is meaningless (as in TCP). Packets with a zero checksum field are
+-  illegal (cf. RFC 3828, sec. 3.1) will be silently discarded.
++  illegal (cf. RFC 3828, sec. 3.1) and will be silently discarded.
+   4) Fragmentation
+--- a/net/ipv4/udp.c
++++ b/net/ipv4/udp.c
+@@ -1319,6 +1319,8 @@ int udp_lib_setsockopt(struct sock *sk, 
+                       return -ENOPROTOOPT;
+               if (val != 0 && val < 8) /* Illegal coverage: use default (8) */
+                       val = 8;
++              else if (val > USHORT_MAX)
++                      val = USHORT_MAX;
+               up->pcslen = val;
+               up->pcflag |= UDPLITE_SEND_CC;
+               break;
+@@ -1331,6 +1333,8 @@ int udp_lib_setsockopt(struct sock *sk, 
+                       return -ENOPROTOOPT;
+               if (val != 0 && val < 8) /* Avoid silly minimal values.       */
+                       val = 8;
++              else if (val > USHORT_MAX)
++                      val = USHORT_MAX;
+               up->pcrlen = val;
+               up->pcflag |= UDPLITE_RECV_CC;
+               break;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233142.116302082@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:53 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stephen Hemminger <shemminger@vyatta.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 03/62] ipv6: use timer pending
+Content-Disposition: inline; filename=ipv6-use-timer-pending.patch
+Content-Length: 1372
+Lines: 38
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Stephen Hemminger <shemminger@vyatta.com>
+
+[ Upstream commit 847499ce71bdcc8fc542062df6ebed3e596608dd ]
+
+This fixes the bridge reference count problem and cleanups ipv6 FIB
+timer management.  Don't use expires field, because it is not a proper
+way to test, instead use timer_pending().
+
+Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv6/ip6_fib.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/net/ipv6/ip6_fib.c
++++ b/net/ipv6/ip6_fib.c
+@@ -663,7 +663,7 @@ static int fib6_add_rt2node(struct fib6_
+ static __inline__ void fib6_start_gc(struct net *net, struct rt6_info *rt)
+ {
+-      if (net->ipv6.ip6_fib_timer->expires == 0 &&
++      if (!timer_pending(net->ipv6.ip6_fib_timer) &&
+           (rt->rt6i_flags & (RTF_EXPIRES|RTF_CACHE)))
+               mod_timer(net->ipv6.ip6_fib_timer, jiffies +
+                         net->ipv6.sysctl.ip6_rt_gc_interval);
+@@ -671,7 +671,7 @@ static __inline__ void fib6_start_gc(str
+ void fib6_force_start_gc(struct net *net)
+ {
+-      if (net->ipv6.ip6_fib_timer->expires == 0)
++      if (!timer_pending(net->ipv6.ip6_fib_timer))
+               mod_timer(net->ipv6.ip6_fib_timer, jiffies +
+                         net->ipv6.sysctl.ip6_rt_gc_interval);
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233142.275204401@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:54 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 04/62] ipv6: __KERNEL__ ifdef struct ipv6_devconf
+Content-Disposition: inline; filename=ipv6-__kernel__-ifdef-struct-ipv6_devconf.patch
+Content-Length: 782
+Lines: 33
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit ebb36a978131810c98e7198b1187090c697cf99f ]
+
+Based upon a report by Olaf Hering.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/linux/ipv6.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/include/linux/ipv6.h
++++ b/include/linux/ipv6.h
+@@ -123,6 +123,7 @@ struct ipv6hdr {
+       struct  in6_addr        daddr;
+ };
++#ifdef __KERNEL__
+ /*
+  * This structure contains configuration options per IPv6 link.
+  */
+@@ -165,6 +166,7 @@ struct ipv6_devconf {
+ #endif
+       void            *sysctl;
+ };
++#endif
+ /* index values for the variables in ipv6_devconf */
+ enum {
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233142.429135975@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:55 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Micah Dowty <micah@navi.cx>,
+ Thomas Sailer <t.sailer@alumni.ethz.ch>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 05/62] hdlcdrv: Fix CRC calculation.
+Content-Disposition: inline; filename=hdlcdrv-fix-crc-calculation.patch
+Content-Length: 1096
+Lines: 32
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Micah Dowty <micah@navi.cx>
+
+[ Upstream commit ae6134bdf3197206fba95563d755d2fa50d90ddd ]
+
+This is a trivial patch against the hdlcdrv module that fixes its CRC
+calculation. The finished CRC was overwriting the first two bytes of
+each packet rather than being appended to the end.
+
+I've tested this with 2.6.8 and 2.6.10-rc1, but hdlcdrv hasn't changed
+much recently so it should work with many other kernel versions.
+
+Signed-off-by: Micah Dowty <micah@navi.cx>
+Acked-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/hamradio/hdlcdrv.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/hamradio/hdlcdrv.c
++++ b/drivers/net/hamradio/hdlcdrv.c
+@@ -88,6 +88,7 @@
+ static inline void append_crc_ccitt(unsigned char *buffer, int len)
+ {
+       unsigned int crc = crc_ccitt(0xffff, buffer, len) ^ 0xffff;
++      buffer += len;
+       *buffer++ = crc;
+       *buffer++ = crc >> 8;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233142.609791338@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:56 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jan Kara <jack@suse.cz>
+Subject: [patch 06/62] quota: fix possible infinite loop in quota code
+Content-Disposition: inline; filename=quota-fix-possible-infinite-loop-in-quota-code.patch
+Content-Length: 1826
+Lines: 55
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jan Kara <jack@suse.cz>
+
+commit b48d380541f634663b71766005838edbb7261685 upstream
+
+When quota structure is going to be dropped and it is dirty, quota code tries
+to write it.  If the write fails for some reason (e.  g.  transaction cannot
+be started because the journal is aborted), we try writing again and again and
+again...  Fix the problem by clearing the dirty bit even if the write failed.
+
+(akpm: for 2.6.27, 2.6.26.x and 2.6.25.x)
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Reviewed-by: dingdinghua <dingdinghua85@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/dquot.c |   16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+--- a/fs/dquot.c
++++ b/fs/dquot.c
+@@ -562,6 +562,8 @@ static struct shrinker dqcache_shrinker 
+  */
+ static void dqput(struct dquot *dquot)
+ {
++      int ret;
++
+       if (!dquot)
+               return;
+ #ifdef __DQUOT_PARANOIA
+@@ -594,7 +596,19 @@ we_slept:
+       if (test_bit(DQ_ACTIVE_B, &dquot->dq_flags) && dquot_dirty(dquot)) {
+               spin_unlock(&dq_list_lock);
+               /* Commit dquot before releasing */
+-              dquot->dq_sb->dq_op->write_dquot(dquot);
++              ret = dquot->dq_sb->dq_op->write_dquot(dquot);
++              if (ret < 0) {
++                      printk(KERN_ERR "VFS: cannot write quota structure on "
++                              "device %s (error %d). Quota may get out of "
++                              "sync!\n", dquot->dq_sb->s_id, ret);
++                      /*
++                       * We clear dirty bit anyway, so that we avoid
++                       * infinite loop here
++                       */
++                      spin_lock(&dq_list_lock);
++                      clear_dquot_dirty(dquot);
++                      spin_unlock(&dq_list_lock);
++              }
+               goto we_slept;
+       }
+       /* Clear flag in case dquot was inactive (something bad happened) */
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:42 2008
+Message-Id: <20080730233142.772893771@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:57 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Adam Greenblatt <adam.greenblatt@gmail.com>
+Subject: [patch 07/62] isofs: fix minor filesystem corruption
+Content-Disposition: inline; filename=isofs-fix-minor-filesystem-corruption.patch
+Content-Length: 2859
+Lines: 83
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Adam Greenblatt <adam.greenblatt@gmail.com>
+
+commit c0a1633b6201ef79e31b7da464d44fdf5953054d upstream
+
+Some iso9660 images contain files with rockridge data that is either
+incorrect or incompletely parsed.  Prior to commit
+f2966632a134e865db3c819346a1dc7d96e05309 ("[PATCH] rock: handle directory
+overflows") (included with kernel 2.6.13) the kernel ignored the rockridge
+data for these files, while still allowing the files to be accessed under
+their non-rockridge names.  That commit inadvertently changed things so
+that files with invalid rockridge data could not be accessed at all.  (I
+ran across the problem when comparing some old CDs with hard disk copies I
+had made long ago under kernel 2.4: a few of the files on the hard disk
+copies were no longer visible on the CDs.)
+
+This change reverts to the pre-2.6.13 behavior.
+
+Signed-off-by: Adam Greenblatt <adam.greenblatt@gmail.com>
+Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/isofs/rock.c |   22 ++++++++++++++++++++--
+ 1 file changed, 20 insertions(+), 2 deletions(-)
+
+--- a/fs/isofs/rock.c
++++ b/fs/isofs/rock.c
+@@ -209,6 +209,11 @@ repeat:
+       while (rs.len > 2) { /* There may be one byte for padding somewhere */
+               rr = (struct rock_ridge *)rs.chr;
++              /*
++               * Ignore rock ridge info if rr->len is out of range, but
++               * don't return -EIO because that would make the file
++               * invisible.
++               */
+               if (rr->len < 3)
+                       goto out;       /* Something got screwed up here */
+               sig = isonum_721(rs.chr);
+@@ -216,8 +221,12 @@ repeat:
+                       goto eio;
+               rs.chr += rr->len;
+               rs.len -= rr->len;
++              /*
++               * As above, just ignore the rock ridge info if rr->len
++               * is bogus.
++               */
+               if (rs.len < 0)
+-                      goto eio;       /* corrupted isofs */
++                      goto out;       /* Something got screwed up here */
+               switch (sig) {
+               case SIG('R', 'R'):
+@@ -307,6 +316,11 @@ parse_rock_ridge_inode_internal(struct i
+ repeat:
+       while (rs.len > 2) { /* There may be one byte for padding somewhere */
+               rr = (struct rock_ridge *)rs.chr;
++              /*
++               * Ignore rock ridge info if rr->len is out of range, but
++               * don't return -EIO because that would make the file
++               * invisible.
++               */
+               if (rr->len < 3)
+                       goto out;       /* Something got screwed up here */
+               sig = isonum_721(rs.chr);
+@@ -314,8 +328,12 @@ repeat:
+                       goto eio;
+               rs.chr += rr->len;
+               rs.len -= rr->len;
++              /*
++               * As above, just ignore the rock ridge info if rr->len
++               * is bogus.
++               */
+               if (rs.len < 0)
+-                      goto eio;       /* corrupted isofs */
++                      goto out;       /* Something got screwed up here */
+               switch (sig) {
+ #ifndef CONFIG_ZISOFS         /* No flag for SF or ZF */
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233142.944222390@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:58 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Sheng Yang <sheng.yang@intel.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 08/62] KVM: VMX: Fix a wrong usage of vmcs_config
+Content-Disposition: inline; filename=kvm-vmx-fix-a-wrong-usage-of-vmcs_config.patch
+Content-Length: 1468
+Lines: 39
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Sheng Yang <sheng.yang@intel.com>
+
+Original-Commit-Hash: 406046a9638a455876b030853862e576a4378d29
+
+The function ept_update_paging_mode_cr0() write to
+CPU_BASED_VM_EXEC_CONTROL based on vmcs_config.cpu_based_exec_ctrl. That's
+wrong because the variable may not consistent with the content in the
+CPU_BASE_VM_EXEC_CONTROL MSR.
+
+Signed-off-by: Sheng Yang <sheng.yang@intel.com>
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kvm/vmx.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -1420,7 +1420,7 @@ static void ept_update_paging_mode_cr0(u
+       if (!(cr0 & X86_CR0_PG)) {
+               /* From paging/starting to nonpaging */
+               vmcs_write32(CPU_BASED_VM_EXEC_CONTROL,
+-                           vmcs_config.cpu_based_exec_ctrl |
++                           vmcs_read32(CPU_BASED_VM_EXEC_CONTROL) |
+                            (CPU_BASED_CR3_LOAD_EXITING |
+                             CPU_BASED_CR3_STORE_EXITING));
+               vcpu->arch.cr0 = cr0;
+@@ -1430,7 +1430,7 @@ static void ept_update_paging_mode_cr0(u
+       } else if (!is_paging(vcpu)) {
+               /* From nonpaging to paging */
+               vmcs_write32(CPU_BASED_VM_EXEC_CONTROL,
+-                           vmcs_config.cpu_based_exec_ctrl &
++                           vmcs_read32(CPU_BASED_VM_EXEC_CONTROL) &
+                            ~(CPU_BASED_CR3_LOAD_EXITING |
+                              CPU_BASED_CR3_STORE_EXITING));
+               vcpu->arch.cr0 = cr0;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233143.123117683@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:59 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Joerg Roedel <joerg.roedel@amd.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 09/62] KVM: SVM: fix suspend/resume support
+Content-Disposition: inline; filename=kvm-svm-fix-suspend-resume-support.patch
+Content-Length: 2117
+Lines: 78
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Joerg Roedel <joerg.roedel@amd.com>
+
+Original-Commit-Hash: ab6267b708bec563891294488f2e854be404bdaf
+
+On suspend the svm_hardware_disable function is called which frees all svm_data
+variables. On resume they are not re-allocated. This patch removes the
+deallocation of svm_data from the hardware_disable function to the
+hardware_unsetup function which is not called on suspend.
+
+Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ arch/x86/kvm/svm.c |   34 ++++++++++++++++++++++------------
+ 1 file changed, 22 insertions(+), 12 deletions(-)
+
+--- a/arch/x86/kvm/svm.c
++++ b/arch/x86/kvm/svm.c
+@@ -270,19 +270,11 @@ static int has_svm(void)
+ static void svm_hardware_disable(void *garbage)
+ {
+-      struct svm_cpu_data *svm_data
+-              = per_cpu(svm_data, raw_smp_processor_id());
+-
+-      if (svm_data) {
+-              uint64_t efer;
++      uint64_t efer;
+-              wrmsrl(MSR_VM_HSAVE_PA, 0);
+-              rdmsrl(MSR_EFER, efer);
+-              wrmsrl(MSR_EFER, efer & ~MSR_EFER_SVME_MASK);
+-              per_cpu(svm_data, raw_smp_processor_id()) = NULL;
+-              __free_page(svm_data->save_area);
+-              kfree(svm_data);
+-      }
++      wrmsrl(MSR_VM_HSAVE_PA, 0);
++      rdmsrl(MSR_EFER, efer);
++      wrmsrl(MSR_EFER, efer & ~MSR_EFER_SVME_MASK);
+ }
+ static void svm_hardware_enable(void *garbage)
+@@ -321,6 +313,19 @@ static void svm_hardware_enable(void *ga
+              page_to_pfn(svm_data->save_area) << PAGE_SHIFT);
+ }
++static void svm_cpu_uninit(int cpu)
++{
++      struct svm_cpu_data *svm_data
++              = per_cpu(svm_data, raw_smp_processor_id());
++
++      if (!svm_data)
++              return;
++
++      per_cpu(svm_data, raw_smp_processor_id()) = NULL;
++      __free_page(svm_data->save_area);
++      kfree(svm_data);
++}
++
+ static int svm_cpu_init(int cpu)
+ {
+       struct svm_cpu_data *svm_data;
+@@ -458,6 +463,11 @@ err:
+ static __exit void svm_hardware_unsetup(void)
+ {
++      int cpu;
++
++      for_each_online_cpu(cpu)
++              svm_cpu_uninit(cpu);
++
+       __free_pages(pfn_to_page(iopm_base >> PAGE_SHIFT), IOPM_ALLOC_ORDER);
+       iopm_base = 0;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233143.275857487@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:00 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Marcelo Tosatti <mtosatti@redhat.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 10/62] KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held
+Content-Disposition: inline; filename=kvm-mmu_shrink-kvm_mmu_zap_page-requires-slots_lock-to-be-held.patch
+Content-Length: 1124
+Lines: 41
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Marcelo Tosatti <mtosatti@redhat.com>
+
+Original-Commit-Hash: 64f6a0c041bd8fc100a0d655058bdbc31feda03c
+
+kvm_mmu_zap_page() needs slots lock held (rmap_remove->gfn_to_memslot,
+for example).
+
+Since kvm_lock spinlock is held in mmu_shrink(), do a non-blocking
+down_read_trylock().
+
+Untested.
+
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kvm/mmu.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/x86/kvm/mmu.c
++++ b/arch/x86/kvm/mmu.c
+@@ -1968,6 +1968,8 @@ static int mmu_shrink(int nr_to_scan, gf
+       list_for_each_entry(kvm, &vm_list, vm_list) {
+               int npages;
++              if (!down_read_trylock(&kvm->slots_lock))
++                      continue;
+               spin_lock(&kvm->mmu_lock);
+               npages = kvm->arch.n_alloc_mmu_pages -
+                        kvm->arch.n_free_mmu_pages;
+@@ -1980,6 +1982,7 @@ static int mmu_shrink(int nr_to_scan, gf
+               nr_to_scan--;
+               spin_unlock(&kvm->mmu_lock);
++              up_read(&kvm->slots_lock);
+       }
+       if (kvm_freed)
+               list_move_tail(&kvm_freed->vm_list, &vm_list);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233143.427506998@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:01 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Sheng Yang <sheng.yang@intel.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 11/62] KVM: VMX: Add ept_sync_context in flush_tlb
+Content-Disposition: inline; filename=kvm-vmx-add-ept_sync_context-in-flush_tlb.patch
+Content-Length: 1233
+Lines: 39
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Sheng Yang <sheng.yang@intel.com>
+
+Original-Commit-Hash: 73f785350b92e1a3af945340f7d10f3978193cba
+
+Fix a potention issue caused by kvm_mmu_slot_remove_write_access(). The
+old behavior don't sync EPT TLB with modified EPT entry, which result
+in inconsistent content of EPT TLB and EPT table.
+
+Signed-off-by: Sheng Yang <sheng.yang@intel.com>
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ arch/x86/kvm/vmx.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -88,6 +88,7 @@ static inline struct vcpu_vmx *to_vmx(st
+ }
+ static int init_rmode(struct kvm *kvm);
++static u64 construct_eptp(unsigned long root_hpa);
+ static DEFINE_PER_CPU(struct vmcs *, vmxarea);
+ static DEFINE_PER_CPU(struct vmcs *, current_vmcs);
+@@ -1389,6 +1390,8 @@ static void exit_lmode(struct kvm_vcpu *
+ static void vmx_flush_tlb(struct kvm_vcpu *vcpu)
+ {
+       vpid_sync_vcpu_all(to_vmx(vcpu));
++      if (vm_need_ept())
++              ept_sync_context(construct_eptp(vcpu->arch.mmu.root_hpa));
+ }
+ static void vmx_decache_cr4_guest_bits(struct kvm_vcpu *vcpu)
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233143.582669875@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:02 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Mohammed Gamal <m.gamal005@gmail.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 12/62] KVM: x86 emulator: Fix HLT instruction
+Content-Disposition: inline; filename=kvm-x86-emulator-fix-hlt-instruction.patch
+Content-Length: 1095
+Lines: 36
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Mohammed Gamal <m.gamal005@gmail.com>
+
+Original-Commit-Hash: bcc542267538e9ba933d08b4cd4ebd796e03a3d7
+
+This patch fixes issue encountered with HLT instruction
+under FreeDOS's HIMEM XMS Driver.
+
+The HLT instruction jumped directly to the done label and
+skips updating the EIP value, therefore causing the guest
+to spin endlessly on the same instruction.
+
+The patch changes the instruction so that it writes back
+the updated EIP value.
+
+Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kvm/x86_emulate.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/kvm/x86_emulate.c
++++ b/arch/x86/kvm/x86_emulate.c
+@@ -1666,7 +1666,7 @@ special_insn:
+               break;
+       case 0xf4:              /* hlt */
+               ctxt->vcpu->arch.halt_request = 1;
+-              goto done;
++              break;
+       case 0xf5:      /* cmc */
+               /* complement carry flag from eflags reg */
+               ctxt->eflags ^= EFLG_CF;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:43 2008
+Message-Id: <20080730233143.752732480@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:03 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Marcelo Tosatti <mtosatti@redhat.com>,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 13/62] KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction
+Content-Disposition: inline; filename=kvm-mmu-nuke-shadowed-pgtable-pages-and-ptes-on-memslot-destruction.patch
+Content-Length: 2607
+Lines: 96
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Marcelo Tosatti <mtosatti@redhat.com>
+
+Original-Commit-Hash: 3cc312f03e06a8fa39ecb4cc0189efc2bd888899
+
+Flush the shadow mmu before removing regions to avoid stale entries.
+
+Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/ia64/kvm/kvm-ia64.c   |    3 +++
+ arch/powerpc/kvm/powerpc.c |    4 ++++
+ arch/s390/kvm/kvm-s390.c   |    4 ++++
+ arch/x86/kvm/x86.c         |    5 +++++
+ include/linux/kvm_host.h   |    1 +
+ virt/kvm/kvm_main.c        |    3 +++
+ 6 files changed, 20 insertions(+)
+
+--- a/arch/ia64/kvm/kvm-ia64.c
++++ b/arch/ia64/kvm/kvm-ia64.c
+@@ -1460,6 +1460,9 @@ int kvm_arch_set_memory_region(struct kv
+       return 0;
+ }
++void kvm_arch_flush_shadow(struct kvm *kvm)
++{
++}
+ long kvm_arch_dev_ioctl(struct file *filp,
+               unsigned int ioctl, unsigned long arg)
+--- a/arch/powerpc/kvm/powerpc.c
++++ b/arch/powerpc/kvm/powerpc.c
+@@ -167,6 +167,10 @@ int kvm_arch_set_memory_region(struct kv
+       return 0;
+ }
++void kvm_arch_flush_shadow(struct kvm *kvm)
++{
++}
++
+ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id)
+ {
+       struct kvm_vcpu *vcpu;
+--- a/arch/s390/kvm/kvm-s390.c
++++ b/arch/s390/kvm/kvm-s390.c
+@@ -672,6 +672,10 @@ int kvm_arch_set_memory_region(struct kv
+       return 0;
+ }
++void kvm_arch_flush_shadow(struct kvm *kvm)
++{
++}
++
+ gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn)
+ {
+       return gfn;
+--- a/arch/x86/kvm/x86.c
++++ b/arch/x86/kvm/x86.c
+@@ -4016,6 +4016,11 @@ int kvm_arch_set_memory_region(struct kv
+       return 0;
+ }
++void kvm_arch_flush_shadow(struct kvm *kvm)
++{
++      kvm_mmu_zap_all(kvm);
++}
++
+ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
+ {
+       return vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE
+--- a/include/linux/kvm_host.h
++++ b/include/linux/kvm_host.h
+@@ -166,6 +166,7 @@ int kvm_arch_set_memory_region(struct kv
+                               struct kvm_userspace_memory_region *mem,
+                               struct kvm_memory_slot old,
+                               int user_alloc);
++void kvm_arch_flush_shadow(struct kvm *kvm);
+ gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn);
+ struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn);
+ unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn);
+--- a/virt/kvm/kvm_main.c
++++ b/virt/kvm/kvm_main.c
+@@ -377,6 +377,9 @@ int __kvm_set_memory_region(struct kvm *
+       if (mem->slot >= kvm->nmemslots)
+               kvm->nmemslots = mem->slot + 1;
++      if (!npages)
++              kvm_arch_flush_shadow(kvm);
++
+       *memslot = new;
+       r = kvm_arch_set_memory_region(kvm, mem, old, user_alloc);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233143.908112912@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:04 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Avi Kivity <avi@qumranet.com>
+Subject: [patch 14/62] KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts
+Content-Disposition: inline; filename=kvm-mmu-fix-potential-race-setting-upper-shadow-ptes-on-nonpae-hosts.patch
+Content-Length: 1253
+Lines: 39
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Avi Kivity <avi@qumranet.com>
+
+Original-Commit-Hash: c23a6fe17abf8562e675465f8d55ba1a551d314d
+
+The direct mapped shadow code (used for real mode and two dimensional paging)
+sets upper-level ptes using direct assignment rather than calling
+set_shadow_pte().  A nonpae host will split this into two writes, which opens
+up a race if another vcpu accesses the same memory area.
+
+Fix by calling set_shadow_pte() instead of assigning directly.
+
+Noticed by Izik Eidus.
+
+Signed-off-by: Avi Kivity <avi@qumranet.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ arch/x86/kvm/mmu.c |    7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/kvm/mmu.c
++++ b/arch/x86/kvm/mmu.c
+@@ -1171,9 +1171,10 @@ static int __direct_map(struct kvm_vcpu 
+                               return -ENOMEM;
+                       }
+-                      table[index] = __pa(new_table->spt)
+-                              | PT_PRESENT_MASK | PT_WRITABLE_MASK
+-                              | shadow_user_mask | shadow_x_mask;
++                      set_shadow_pte(&table[index],
++                                     __pa(new_table->spt)
++                                     | PT_PRESENT_MASK | PT_WRITABLE_MASK
++                                     | shadow_user_mask | shadow_x_mask);
+               }
+               table_addr = table[index] & PT64_BASE_ADDR_MASK;
+       }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233144.086736103@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:05 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Roland McGrath <roland@redhat.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 15/62] Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error
+Content-Disposition: inline; filename=patch-upstream-x86-ptrace-fix-ptrace_getfpxregs-error.patch
+Content-Length: 1798
+Lines: 59
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Roland McGrath <roland@redhat.com>
+
+commit 45fdc3a7624a4a48185a04ae0abab5f9793d8952 upstream
+
+ptrace has always returned only -EIO for all failures to access
+registers.  The user_regset calls are allowed to return a more
+meaningful variety of errors.  The REGSET_XFP calls use -ENODEV
+for !cpu_has_fxsr hardware.  Make ptrace return the traditional
+-EIO instead of the error code from the user_regset call.
+
+Signed-off-by: Roland McGrath <roland@redhat.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/i387.c   |    4 ++--
+ arch/x86/kernel/ptrace.c |    4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/kernel/i387.c
++++ b/arch/x86/kernel/i387.c
+@@ -162,7 +162,7 @@ int xfpregs_get(struct task_struct *targ
+       int ret;
+       if (!cpu_has_fxsr)
+-              return -EIO;
++              return -ENODEV;
+       ret = init_fpu(target);
+       if (ret)
+@@ -179,7 +179,7 @@ int xfpregs_set(struct task_struct *targ
+       int ret;
+       if (!cpu_has_fxsr)
+-              return -EIO;
++              return -ENODEV;
+       ret = init_fpu(target);
+       if (ret)
+--- a/arch/x86/kernel/ptrace.c
++++ b/arch/x86/kernel/ptrace.c
+@@ -943,13 +943,13 @@ long arch_ptrace(struct task_struct *chi
+               return copy_regset_to_user(child, &user_x86_32_view,
+                                          REGSET_XFP,
+                                          0, sizeof(struct user_fxsr_struct),
+-                                         datap);
++                                         datap) ? -EIO : 0;
+       case PTRACE_SETFPXREGS: /* Set the child extended FPU state. */
+               return copy_regset_from_user(child, &user_x86_32_view,
+                                            REGSET_XFP,
+                                            0, sizeof(struct user_fxsr_struct),
+-                                           datap);
++                                           datap) ? -EIO : 0;
+ #endif
+ #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233144.255515445@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:06 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
+ Peter Zijlstra <a.p.zijlstra@chello.nl>,
+ Josh Triplett <josh@kernel.org>,
+ Dipankar Sarma <dipankar@in.ibm.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 16/62] rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall
+Content-Disposition: inline; filename=rcu-fix-rcu_try_flip_waitack_needed-to-prevent-grace-period-stall.patch
+Content-Length: 3058
+Lines: 78
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+
+commit d7c0651390b6a03ad53f99faec0ba88109d7191d upstream
+
+The comment was correct -- need to make the code match the comment.
+Without this patch, if a CPU goes dynticks idle (and stays there forever)
+in just the right phase of preemptible-RCU grace-period processing,
+grace periods stall.  The offending sequence of events (courtesy
+of Promela/spin, at least after I got the liveness criterion coded
+correctly...) is as follows:
+
+o      CPU 0 is in dynticks-idle mode.  Its dynticks_progress_counter
+       is (say) 10.
+
+o      CPU 0 takes an interrupt, so rcu_irq_enter() increments CPU 0's
+       dynticks_progress_counter to 11.
+
+o      CPU 1 is doing RCU grace-period processing in rcu_try_flip_idle(),
+       sees rcu_pending(), so invokes dyntick_save_progress_counter(),
+       which in turn takes a snapshot of CPU 0's dynticks_progress_counter
+       into CPU 0's rcu_dyntick_snapshot -- now set to 11.  CPU 1 then
+       updates the RCU grace-period state to rcu_try_flip_waitack().
+
+o      CPU 0 returns from its interrupt, so rcu_irq_exit() increments
+       CPU 0's dynticks_progress_counter to 12.
+
+o      CPU 1 later invokes rcu_try_flip_waitack(), which notices that
+       CPU 0 has not yet responded, and hence in turn invokes
+       rcu_try_flip_waitack_needed().  This function examines the
+       state of CPU 0's dynticks_progress_counter and rcu_dyntick_snapshot
+       variables, which it copies to curr (== 12) and snap (== 11),
+       respectively.
+
+       Because curr!=snap, the first condition fails.
+
+       Because curr-snap is only 1 and snap is odd, the second
+       condition fails.
+
+       rcu_try_flip_waitack_needed() therefore incorrectly concludes
+       that it must wait for CPU 0 to explicitly acknowledge the
+       counter flip.
+
+o      CPU 0 remains forever in dynticks-idle mode, never taking
+       any more hardware interrupts or any NMIs, and never running
+       any more tasks.  (Of course, -something- will usually eventually
+       happen, which might be why we haven't seen this one in the
+       wild.  Still should be fixed!)
+
+Therefore the grace period never ends.  Fix is to make the code match
+the comment, as shown below.  With this fix, the above scenario
+would be satisfied with curr being even, and allow the grace period
+to proceed.
+
+Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Cc: Josh Triplett <josh@kernel.org>
+Cc: Dipankar Sarma <dipankar@in.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/rcupreempt.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/rcupreempt.c
++++ b/kernel/rcupreempt.c
+@@ -567,7 +567,7 @@ rcu_try_flip_waitack_needed(int cpu)
+        * that this CPU already acknowledged the counter.
+        */
+-      if ((curr - snap) > 2 || (snap & 0x1) == 0)
++      if ((curr - snap) > 2 || (curr & 0x1) == 0)
+               return 0;
+       /* We need this CPU to explicitly acknowledge the counter flip. */
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233144.431259220@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:07 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Herton Ronaldo Krzesinski <herton@mandriva.com.br>,
+ "Luiz Fernando N. Capitulino" <lcapitulino@mandriva.com.br>,
+ Roland McGrath <roland@redhat.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 17/62] Fix typos from signal_32/64.h merge
+Content-Disposition: inline; filename=fix-typos-from-signal_32-64.h-merge.patch
+Content-Length: 1305
+Lines: 41
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+
+commit 723edb5060855ef36ddeca51a070784b0e0d16df upstream
+
+Fallout from commit 33185c504f8e521b398536b5a8d415779a24593c ("x86:
+merge signal_32/64.h")
+
+Thanks to Dick Streefland who provided an useful testcase on
+http://lkml.org/lkml/2008/3/17/205 (only applicable to 2.6.24.x), that
+helped a lot as a deterministic way to bisect an issue that leaded to
+this fix.
+
+Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
+Cc: Roland McGrath <roland@redhat.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-x86/signal.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/include/asm-x86/signal.h
++++ b/include/asm-x86/signal.h
+@@ -181,12 +181,12 @@ typedef struct sigaltstack {
+ #ifdef __KERNEL__
+ #include <asm/sigcontext.h>
+-#ifdef __386__
++#ifdef __i386__
+ #define __HAVE_ARCH_SIG_BITOPS
+ #define sigaddset(set,sig)                \
+-      (__builtin_constantp(sig)           \
++      (__builtin_constant_p(sig)          \
+        ? __const_sigaddset((set), (sig))  \
+        : __gen_sigaddset((set), (sig)))
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233144.599133908@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:08 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 18/62] x86 reboot quirks: add Dell Precision WorkStation T5400
+Content-Disposition: inline; filename=x86-reboot-quirks-add-dell-precision-workstation-t5400.patch
+Content-Length: 1083
+Lines: 37
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Ingo Molnar <mingo@elte.hu>
+
+commit fab3b58d3b242b5903f78d60d86803a8aecdf6de upstream
+
+as reported in:
+
+  "reboot=bios is mandatory on Dell T5400 server."
+  http://bugzilla.kernel.org/show_bug.cgi?id=11108
+
+add a DMI reboot quirk.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/reboot.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/arch/x86/kernel/reboot.c
++++ b/arch/x86/kernel/reboot.c
+@@ -177,6 +177,14 @@ static struct dmi_system_id __initdata r
+                       DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"),
+               },
+       },
++      {       /* Handle problems with rebooting on Dell T5400's */
++              .callback = set_bios_reboot,
++              .ident = "Dell Precision T5400",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation T5400"),
++              },
++      },
+       {       /* Handle problems with rebooting on HP laptops */
+               .callback = set_bios_reboot,
+               .ident = "HP Compaq Laptop",
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:44 2008
+Message-Id: <20080730233144.779012706@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:09 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Oliver Neukum <oneukum@suse.de>
+Subject: [patch 19/62] USB: fix usb serial pm counter decrement for disconnected interfaces
+Content-Disposition: inline; filename=usb-fix-usb-serial-pm-counter-decrement-for-disconnected-interfaces.patch
+Content-Length: 1087
+Lines: 32
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Oliver Neukum <oliver@neukum.org>
+
+commit 62ad296b6ca78bd123864c138814c0a597873693 upstream
+
+usb serial decrements the pm counter even if an interface has been
+disconnected. If it was a logical disconnect the interface may belong
+already to another driver. This patch introduces a check for disconnected
+interfaces.
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/usb-serial.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/serial/usb-serial.c
++++ b/drivers/usb/serial/usb-serial.c
+@@ -283,7 +283,10 @@ static void serial_close(struct tty_stru
+       }
+       if (port->open_count == 0) {
+-              usb_autopm_put_interface(port->serial->interface);
++              mutex_lock(&port->serial->disc_mutex);
++              if (!port->serial->disconnected)
++                      usb_autopm_put_interface(port->serial->interface);
++              mutex_unlock(&port->serial->disc_mutex);
+               module_put(port->serial->type->driver.owner);
+       }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233144.968798699@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:10 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Rafael J. Wysocki" <rjw@sisk.pl>,
+ Thomas Gleixner <tglx@linutronix.de>,
+ "H. Peter Anvin" <hpa@zytor.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 20/62] x86, suspend, acpi: enter Big Real Mode
+Content-Disposition: inline; filename=x86-suspend-acpi-enter-big-real-mode.patch
+Content-Length: 3172
+Lines: 77
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: H. Peter Anvin <hpa@zytor.com>
+
+Commit 3bf2e77453a87c22eb57ed4926760ac131c84459 upstream
+
+x86, suspend, acpi: enter Big Real Mode
+
+The explanation for recent video BIOS suspend quirk failures is that
+the VESA BIOS expects to be entered in Big Real Mode (*.limit = 0xffffffff)
+instead of ordinary Real Mode (*.limit = 0xffff).
+
+This patch changes the segment descriptors to Big Real Mode instead.
+
+The segment descriptor registers (what Intel calls "segment cache") is
+always active.  The only thing that changes based on CR0.PE is how it is
+*loaded* and the interpretation of the CS flags.
+
+The segment descriptor registers contain of the following sub-registers:
+selector (the "visible" part), base, limit and flags.  In protected mode
+or long mode, they are loaded from descriptors (or fs.base or gs.base can
+be manipulated directly in long mode.)  In real mode, the only thing
+changed by a segment register load is the selector and the base, where the
+base <- selector << 4.  In particular, *the limit and the flags are not
+changed*.
+
+As far as the handling of the CS flags: a code segment cannot be writable
+in protected mode, whereas it is "just another segment" in real mode, so
+there is some kind of quirk that kicks in for this when CR0.PE <- 0.  I'm
+not sure if this is accomplished by actually changing the cs.flags register
+or just changing the interpretation; it might be something that is
+CPU-specific.  In particular, the Transmeta CPUs had an explicit "CS is
+writable if you're in real mode" override, so even if you had loaded CS
+with an execute-only segment it'd be writable (but not readable!) on return
+to real mode.  I'm not at all sure if that is how other CPUs behave.
+
+Signed-off-by: "H. Peter Anvin" <hpa@zytor.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+
+---
+ arch/x86/kernel/acpi/sleep.c |   17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/kernel/acpi/sleep.c
++++ b/arch/x86/kernel/acpi/sleep.c
+@@ -23,6 +23,15 @@ static unsigned long acpi_realmode;
+ static char temp_stack[10240];
+ #endif
++/* XXX: this macro should move to asm-x86/segment.h and be shared with the
++   boot code... */
++#define GDT_ENTRY(flags, base, limit)         \
++      (((u64)(base & 0xff000000) << 32) |     \
++       ((u64)flags << 40) |                   \
++       ((u64)(limit & 0x00ff0000) << 32) |    \
++       ((u64)(base & 0x00ffffff) << 16) |     \
++       ((u64)(limit & 0x0000ffff)))
++
+ /**
+  * acpi_save_state_mem - save kernel state
+  *
+@@ -58,11 +67,11 @@ int acpi_save_state_mem(void)
+                       ((char *)&header->wakeup_gdt - (char *)acpi_realmode))
+                               << 16);
+       /* GDT[1]: real-mode-like code segment */
+-      header->wakeup_gdt[1] = (0x009bULL << 40) +
+-              ((u64)acpi_wakeup_address << 16) + 0xffff;
++      header->wakeup_gdt[1] =
++              GDT_ENTRY(0x809b, acpi_wakeup_address, 0xfffff);
+       /* GDT[2]: real-mode-like data segment */
+-      header->wakeup_gdt[2] = (0x0093ULL << 40) +
+-              ((u64)acpi_wakeup_address << 16) + 0xffff;
++      header->wakeup_gdt[2] =
++              GDT_ENTRY(0x8093, acpi_wakeup_address, 0xfffff);
+ #ifndef CONFIG_64BIT
+       store_gdt((struct desc_ptr *)&header->pmode_gdt);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233145.151109369@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:11 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
+ Roland McGrath <roland@redhat.com>,
+ Wenji Huang <wenji.huang@oracle.com>,
+ Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
+Subject: [patch 21/62] markers: fix duplicate modpost entry
+Content-Disposition: inline; filename=markers-fix-duplicate-modpost-entry.patch
+Content-Length: 2449
+Lines: 76
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Mathieu Desnoyers <compudj@krystal.dyndns.org>
+
+commit: d35cb360c29956510b2fe1a953bd4968536f7216
+
+When a kernel was rebuilt, the previous Module.markers was not cleared.
+It caused markers with different format strings to appear as duplicates
+when a markers was changed.  This problem is present since
+scripts/mod/modpost.c started to generate Module.markers, commit
+b2e3e658b344c6bcfb8fb694100ab2f2b5b2edb0
+
+It therefore applies to 2.6.25, 2.6.26 and linux-next.
+
+I merely merged the patches from Roland, Wenji and Takashi here.
+
+Credits to
+Roland McGrath <roland@redhat.com>
+Wenji Huang <wenji.huang@oracle.com>
+and
+Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
+
+for providing the individual fixes.
+
+- Changelog :
+  - Integrated Takashi's Makefile modification to clear Module.markers upon
+    make clean.
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
+Cc: Roland McGrath <roland@redhat.com>
+Cc: Wenji Huang <wenji.huang@oracle.com>
+Cc: Takashi Nishiie <t-nishiie@np.css.fujitsu.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Makefile                 |    3 ++-
+ scripts/Makefile.modpost |    1 +
+ scripts/mod/modpost.c    |    3 ++-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -1133,7 +1133,8 @@ clean: archclean $(clean-dirs)
+       @find . $(RCS_FIND_IGNORE) \
+               \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
+               -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
+-              -o -name '*.symtypes' -o -name 'modules.order' \) \
++              -o -name '*.symtypes' -o -name 'modules.order' \
++              -o -name 'Module.markers' \) \
+               -type f -print | xargs rm -f
+ # mrproper - Delete all generated files, including .config
+--- a/scripts/Makefile.modpost
++++ b/scripts/Makefile.modpost
+@@ -101,6 +101,7 @@ quiet_cmd_kernel-mod = MODPOST $@
+       cmd_kernel-mod = $(modpost) $@
+ vmlinux.o: FORCE
++      @rm -fr $(kernelmarkersfile)
+       $(call cmd,kernel-mod)
+ # Declare generated files as targets for modpost
+--- a/scripts/mod/modpost.c
++++ b/scripts/mod/modpost.c
+@@ -1992,7 +1992,8 @@ static void read_markers(const char *fna
+                       mod->skip = 1;
+               }
+-              add_marker(mod, marker, fmt);
++              if (!mod->skip)
++                      add_marker(mod, marker, fmt);
+       }
+       return;
+ fail:
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233145.328480794@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:12 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Atsushi Nemoto <anemo@mba.ocn.ne.jp>,
+ Davide Libenzi <davidel@xmailserver.org>
+Subject: [patch 22/62] Fix build on COMPAT platforms when CONFIG_EPOLL is disabled
+Content-Disposition: inline; filename=fix-build-on-compat-platforms-when-config_epoll-is-disabled.patch
+Content-Length: 910
+Lines: 28
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
+
+commit 5f17156fc55abac476d180e480bedb0f07f01b14 upstream
+
+Add missing cond_syscall() entry for compat_sys_epoll_pwait.
+
+Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
+Cc: Davide Libenzi <davidel@xmailserver.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/sys_ni.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/kernel/sys_ni.c
++++ b/kernel/sys_ni.c
+@@ -59,6 +59,7 @@ cond_syscall(sys_epoll_create);
+ cond_syscall(sys_epoll_ctl);
+ cond_syscall(sys_epoll_wait);
+ cond_syscall(sys_epoll_pwait);
++cond_syscall(compat_sys_epoll_pwait);
+ cond_syscall(sys_semget);
+ cond_syscall(sys_semop);
+ cond_syscall(sys_semtimedop);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233145.638333233@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:14 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Miao Xie <miaox@cn.fujitsu.com>,
+ Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>,
+ Paul Jackson <pj@sgi.com>,
+ Nick Piggin <nickpiggin@yahoo.com.au>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 24/62] cpusets: fix wrong domain attr updates
+Content-Disposition: inline; filename=cpusets-fix-wrong-domain-attr-updates.patch
+Content-Length: 1037
+Lines: 35
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Miao Xie <miaox@cn.fujitsu.com>
+
+commit 91cd4d6ef0abb1f65e81f8fe37e7d3c10344e38c upstream
+
+Fix wrong domain attr updates, or we will always update the first sched
+domain attr.
+
+Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
+Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
+Cc: Paul Jackson <pj@sgi.com>
+Cc: Nick Piggin <nickpiggin@yahoo.com.au>
+Cc: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/cpuset.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/kernel/cpuset.c
++++ b/kernel/cpuset.c
+@@ -679,7 +679,9 @@ restart:
+                               if (apn == b->pn) {
+                                       cpus_or(*dp, *dp, b->cpus_allowed);
+                                       b->pn = -1;
+-                                      update_domain_attr(dattr, b);
++                                      if (dattr)
++                                              update_domain_attr(dattr
++                                                                 + nslot, b);
+                               }
+                       }
+                       nslot++;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233145.794840555@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:15 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jan Kratochvil <jan.kratochvil@redhat.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 25/62] x86: fix crash due to missing debugctlmsr on AMD K6-3
+Content-Disposition: inline; filename=x86-fix-crash-due-to-missing-debugctlmsr-on-amd-k6-3.patch
+Content-Length: 1207
+Lines: 32
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jan Kratochvil <jan.kratochvil@redhat.com>
+
+commit d536b1f86591fb081c7a56eab04e711eb4dab951 upstream
+
+currently if you use PTRACE_SINGLEBLOCK on AMD K6-3 (i586) it will crash.
+Kernel now wrongly assumes existing DEBUGCTLMSR MSR register there.
+
+Removed the assumption also for some other non-K6 CPUs but I am not sure there
+(but it can only bring small inefficiency there if my assumption is wrong).
+
+Based on info from Roland McGrath, Chuck Ebbert and Mikulas Patocka.
+More info at:
+       https://bugzilla.redhat.com/show_bug.cgi?id=456175
+
+Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/Kconfig.cpu |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/Kconfig.cpu
++++ b/arch/x86/Kconfig.cpu
+@@ -414,4 +414,4 @@ config X86_MINIMUM_CPU_FAMILY
+ config X86_DEBUGCTLMSR
+       def_bool y
+-      depends on !(M586MMX || M586TSC || M586 || M486 || M386)
++      depends on !(MK6 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386)
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233145.979785569@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:16 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michael Buesch <mb@bu3sch.de>,
+ Jan Kara <jack@suse.cz>,
+ Arnd Bergmann <arnd@arndb.de>,
+ Borislav Petkov <petkovbb@googlemail.com>,
+ Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
+ Harvey Harrison <harvey.harrison@gmail.com>
+Subject: [patch 26/62] ide-cd: fix oops when using growisofs
+Content-Disposition: inline; filename=ide-cd-fix-oops-when-using-growisofs.patch
+Content-Length: 2146
+Lines: 67
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jens Axboe <jens.axboe@oracle.com>
+
+commit e8e7b9eb11c34ee18bde8b7011af41938d1ad667 upstream
+
+cdrom_read_capacity() will blindly return the capacity from the device
+without sanity-checking it.  This later causes code in fs/buffer.c to
+oops.
+
+Fix this by checking that the device is telling us sensible things.
+
+From: Jens Axboe <jens.axboe@oracle.com>
+Cc: Michael Buesch <mb@bu3sch.de>
+Cc: Jan Kara <jack@suse.cz>
+Cc: Arnd Bergmann <arnd@arndb.de>
+Cc: Borislav Petkov <petkovbb@googlemail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+[bart: print device name instead of driver name]
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+[harvey: blocklen is a big-endian value]
+Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/ide/ide-cd.c |   27 ++++++++++++++++++++++-----
+ 1 file changed, 22 insertions(+), 5 deletions(-)
+
+--- a/drivers/ide/ide-cd.c
++++ b/drivers/ide/ide-cd.c
+@@ -1308,13 +1308,30 @@ static int cdrom_read_capacity(ide_drive
+       req.cmd_flags |= REQ_QUIET;
+       stat = ide_cd_queue_pc(drive, &req);
+-      if (stat == 0) {
+-              *capacity = 1 + be32_to_cpu(capbuf.lba);
+-              *sectors_per_frame =
+-                      be32_to_cpu(capbuf.blocklen) >> SECTOR_BITS;
++      if (stat)
++              return stat;
++
++      /*
++       * Sanity check the given block size
++       */
++      switch (capbuf.blocklen) {
++      case __constant_cpu_to_be32(512):
++      case __constant_cpu_to_be32(1024):
++      case __constant_cpu_to_be32(2048):
++      case __constant_cpu_to_be32(4096):
++              break;
++      default:
++              printk(KERN_ERR "%s: weird block size %u\n",
++                      drive->name, capbuf.blocklen);
++              printk(KERN_ERR "%s: default to 2kb block size\n",
++                      drive->name);
++              capbuf.blocklen = __constant_cpu_to_be32(2048);
++              break;
+       }
+-      return stat;
++      *capacity = 1 + be32_to_cpu(capbuf.lba);
++      *sectors_per_frame = be32_to_cpu(capbuf.blocklen) >> SECTOR_BITS;
++      return 0;
+ }
+ static int cdrom_read_tocentry(ide_drive_t *drive, int trackno, int msf_flag,
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233146.143365578@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:17 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ David Brownell <dbrownell@users.sourceforge.net>,
+ Andrew Victor <avictor.za@gmail.com>
+Subject: [patch 27/62] rtc-at91rm9200: avoid spurious irqs
+Content-Disposition: inline; filename=rtc-at91rm9200-avoid-spurious-irqs.patch
+Content-Length: 2637
+Lines: 74
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David Brownell <dbrownell@users.sourceforge.net>
+
+commit 449321b39f6c6ebfa15d6da24f134240bd51db29 upstream
+
+This fixes kernel http://bugzilla.kernel.org/show_bug.cgi?id=11112 (bogus
+RTC update IRQs reported) for rtc-at91rm9200 by scrubbing old IRQ status
+before enabling IRQs.
+
+It also removes nonfunctional periodic IRQ support from this driver;
+only update IRQs are reported, or provided by the hardware.
+
+I suspect some other RTCs probably have versions of #11112; it's easy to
+overlook, since most non-RTC drivers don't care about spurious IRQs:
+they're not reported to userspace.
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Report-by: W Unruh <unruh@physics.ubc.ca>
+Cc: Andrew Victor <avictor.za@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/rtc/rtc-at91rm9200.c |   16 ++++++----------
+ 1 file changed, 6 insertions(+), 10 deletions(-)
+
+--- a/drivers/rtc/rtc-at91rm9200.c
++++ b/drivers/rtc/rtc-at91rm9200.c
+@@ -175,8 +175,10 @@ static int at91_rtc_setalarm(struct devi
+               | BIN2BCD(tm.tm_mday) << 24
+               | AT91_RTC_DATEEN | AT91_RTC_MTHEN);
+-      if (alrm->enabled)
++      if (alrm->enabled) {
++              at91_sys_write(AT91_RTC_SCCR, AT91_RTC_ALARM);
+               at91_sys_write(AT91_RTC_IER, AT91_RTC_ALARM);
++      }
+       pr_debug("%s(): %4d-%02d-%02d %02d:%02d:%02d\n", __func__,
+               at91_alarm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour,
+@@ -195,28 +197,22 @@ static int at91_rtc_ioctl(struct device 
+       pr_debug("%s(): cmd=%08x, arg=%08lx.\n", __func__, cmd, arg);
++      /* important:  scrub old status before enabling IRQs */
+       switch (cmd) {
+       case RTC_AIE_OFF:       /* alarm off */
+               at91_sys_write(AT91_RTC_IDR, AT91_RTC_ALARM);
+               break;
+       case RTC_AIE_ON:        /* alarm on */
++              at91_sys_write(AT91_RTC_SCCR, AT91_RTC_ALARM);
+               at91_sys_write(AT91_RTC_IER, AT91_RTC_ALARM);
+               break;
+       case RTC_UIE_OFF:       /* update off */
+-      case RTC_PIE_OFF:       /* periodic off */
+               at91_sys_write(AT91_RTC_IDR, AT91_RTC_SECEV);
+               break;
+       case RTC_UIE_ON:        /* update on */
+-      case RTC_PIE_ON:        /* periodic on */
++              at91_sys_write(AT91_RTC_SCCR, AT91_RTC_SECEV);
+               at91_sys_write(AT91_RTC_IER, AT91_RTC_SECEV);
+               break;
+-      case RTC_IRQP_READ:     /* read periodic alarm frequency */
+-              ret = put_user(AT91_RTC_FREQ, (unsigned long *) arg);
+-              break;
+-      case RTC_IRQP_SET:      /* set periodic alarm frequency */
+-              if (arg != AT91_RTC_FREQ)
+-                      ret = -EINVAL;
+-              break;
+       default:
+               ret = -ENOIOCTLCMD;
+               break;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233146.296310156@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:18 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jan Beulich <jbeulich@novell.com>,
+ Sam Ravnborg <sam@ravnborg.org>
+Subject: [patch 28/62] vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section
+Content-Disposition: inline; filename=vmlinux.lds-move-__attribute__-functions-back-into-final-.text-section.patch
+Content-Length: 1570
+Lines: 45
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jan Beulich <jbeulich@novell.com>
+
+commit fb5e2b379732e1a6ea32392980bb42e0212db842 upstream
+
+Due to the addition of __attribute__((__cold__)) to a few symbols
+without adjusting the linker scripts, those symbols currently may end
+up outside the [_stext,_etext) range, as they get placed in
+.text.unlikely by (at least) gcc 4.3.0. This may confuse code not only
+outside of the kernel, symbol_put_addr()'s BUG() could also trigger.
+Hence we need to add .text.unlikely (and for future uses of
+__attribute__((__hot__)) also .text.hot) to the TEXT_TEXT() macro.
+
+Issue observed by Lukas Lipavsky.
+
+Signed-off-by: Jan Beulich <jbeulich@novell.com>
+Tested-by: Lukas Lipavsky <llipavsky@suse.cz>
+Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-generic/vmlinux.lds.h |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/include/asm-generic/vmlinux.lds.h
++++ b/include/asm-generic/vmlinux.lds.h
+@@ -204,6 +204,7 @@
+  * during second ld run in second ld pass when generating System.map */
+ #define TEXT_TEXT                                                     \
+               ALIGN_FUNCTION();                                       \
++              *(.text.hot)                                            \
+               *(.text)                                                \
+               *(.ref.text)                                            \
+               *(.text.init.refok)                                     \
+@@ -213,7 +214,8 @@
+       CPU_KEEP(init.text)                                             \
+       CPU_KEEP(exit.text)                                             \
+       MEM_KEEP(init.text)                                             \
+-      MEM_KEEP(exit.text)
++      MEM_KEEP(exit.text)                                             \
++              *(.text.unlikely)
+ /* sched.text is aling to function alignment to secure we have same
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233146.467770565@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:19 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Nickolay Vinogradov <nickolay@protei.ru>,
+ Russell King <rmk+kernel@arm.linux.org.uk>
+Subject: [patch 29/62] ARM: fix fls() for 64-bit arguments
+Content-Disposition: inline; filename=arm-fix-fls-for-64-bit-arguments.patch
+Content-Length: 1269
+Lines: 39
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Andrew Morton <akpm@linux-foundation.org>
+
+commit 0c65f459ce6c8bd873a61b3ae1e57858ab1debf3 upstream
+
+arm's fls() is implemented as a macro, causing it to misbehave when passed
+64-bit arguments.  Fix.
+
+Cc: Nickolay Vinogradov <nickolay@protei.ru>
+Tested-by: Krzysztof Halasa <khc@pm.waw.pl>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-arm/bitops.h |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/include/asm-arm/bitops.h
++++ b/include/asm-arm/bitops.h
+@@ -277,9 +277,16 @@ static inline int constant_fls(int x)
+  * the clz instruction for much better code efficiency.
+  */
+-#define fls(x) \
++#define __fls(x) \
+       ( __builtin_constant_p(x) ? constant_fls(x) : \
+         ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) )
++
++/* Implement fls() in C so that 64-bit args are suitably truncated */
++static inline int fls(int x)
++{
++      return __fls(x);
++}
++
+ #define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); })
+ #define __ffs(x) (ffs(x) - 1)
+ #define ffz(x) __ffs( ~(x) )
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233146.624240102@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:20 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 30/62] tcp: Clear probes_out more aggressively in tcp_ack().
+Content-Disposition: inline; filename=tcp-clear-probes_out-more-aggressively-in-tcp_ack.patch
+Content-Length: 11329
+Lines: 228
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit 4b53fb67e385b856a991d402096379dab462170a ]
+
+This is based upon an excellent bug report from Eric Dumazet.
+
+tcp_ack() should clear ->icsk_probes_out even if there are packets
+outstanding.  Otherwise if we get a sequence of ACKs while we do have
+packets outstanding over and over again, we'll never clear the
+probes_out value and eventually think the connection is too sick and
+we'll reset it.
+
+This appears to be some "optimization" added to tcp_ack() in the 2.4.x
+timeframe.  In 2.2.x, probes_out is pretty much always cleared by
+tcp_ack().
+
+Here is Eric's original report:
+
+----------------------------------------
+Apparently, we can in some situations reset TCP connections in a couple of seconds when some frames are lost.
+
+In order to reproduce the problem, please try the following program on linux-2.6.25.*
+
+Setup some iptables rules to allow two frames per second sent on loopback interface to tcp destination port 12000
+
+iptables -N SLOWLO
+iptables -A SLOWLO -m hashlimit --hashlimit 2 --hashlimit-burst 1 --hashlimit-mode dstip --hashlimit-name slow2 -j ACCEPT
+iptables -A SLOWLO -j DROP
+
+iptables -A OUTPUT -o lo -p tcp --dport 12000 -j SLOWLO
+
+Then run the attached program and see the output :
+
+# ./loop
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,1)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,3)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,5)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,7)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,9)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,200ms,11)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,201ms,13)
+State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
+ESTAB      0      40                                          127.0.0.1:54455                                      127.0.0.1:12000  timer:(persist,188ms,15)
+write(): Connection timed out
+wrote 890 bytes but was interrupted after 9 seconds
+ESTAB      0      0                 127.0.0.1:12000            127.0.0.1:54455
+Exiting read() because no data available (4000 ms timeout).
+read 860 bytes
+
+While this tcp session makes progress (sending frames with 50 bytes of payload, every 500ms), linux tcp stack decides to reset it, when tcp_retries 2 is reached (default value : 15)
+
+tcpdump :
+
+15:30:28.856695 IP 127.0.0.1.56554 > 127.0.0.1.12000: S 33788768:33788768(0) win 32792 <mss 16396,nop,nop,sackOK,nop,wscale 7>
+15:30:28.856711 IP 127.0.0.1.12000 > 127.0.0.1.56554: S 33899253:33899253(0) ack 33788769 win 32792 <mss 16396,nop,nop,sackOK,nop,wscale 7>
+15:30:29.356947 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 1:61(60) ack 1 win 257
+15:30:29.356966 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 61 win 257
+15:30:29.866415 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 61:111(50) ack 1 win 257
+15:30:29.866427 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 111 win 257
+15:30:30.366516 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 111:161(50) ack 1 win 257
+15:30:30.366527 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 161 win 257
+15:30:30.876196 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 161:211(50) ack 1 win 257
+15:30:30.876207 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 211 win 257
+15:30:31.376282 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 211:261(50) ack 1 win 257
+15:30:31.376290 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 261 win 257
+15:30:31.885619 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 261:311(50) ack 1 win 257
+15:30:31.885631 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 311 win 257
+15:30:32.385705 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 311:361(50) ack 1 win 257
+15:30:32.385715 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 361 win 257
+15:30:32.895249 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 361:411(50) ack 1 win 257
+15:30:32.895266 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 411 win 257
+15:30:33.395341 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 411:461(50) ack 1 win 257
+15:30:33.395351 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 461 win 257
+15:30:33.918085 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 461:511(50) ack 1 win 257
+15:30:33.918096 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 511 win 257
+15:30:34.418163 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 511:561(50) ack 1 win 257
+15:30:34.418172 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 561 win 257
+15:30:34.927685 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 561:611(50) ack 1 win 257
+15:30:34.927698 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 611 win 257
+15:30:35.427757 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 611:661(50) ack 1 win 257
+15:30:35.427766 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 661 win 257
+15:30:35.937359 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 661:711(50) ack 1 win 257
+15:30:35.937376 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 711 win 257
+15:30:36.437451 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 711:761(50) ack 1 win 257
+15:30:36.437464 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 761 win 257
+15:30:36.947022 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 761:811(50) ack 1 win 257
+15:30:36.947039 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 811 win 257
+15:30:37.447135 IP 127.0.0.1.56554 > 127.0.0.1.12000: P 811:861(50) ack 1 win 257
+15:30:37.447203 IP 127.0.0.1.12000 > 127.0.0.1.56554: . ack 861 win 257
+15:30:41.448171 IP 127.0.0.1.12000 > 127.0.0.1.56554: F 1:1(0) ack 861 win 257
+15:30:41.448189 IP 127.0.0.1.56554 > 127.0.0.1.12000: R 33789629:33789629(0) win 0
+
+Source of program :
+
+/*
+ * small producer/consumer program.
+ * setup a listener on 127.0.0.1:12000
+ * Forks a child
+ *   child connect to 127.0.0.1, and sends 10 bytes on this tcp socket every 100 ms
+ * Father accepts connection, and read all data
+ */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <time.h>
+#include <sys/poll.h>
+
+int port = 12000;
+char buffer[4096];
+int main(int argc, char *argv[])
+{
+        int lfd = socket(AF_INET, SOCK_STREAM, 0);
+        struct sockaddr_in socket_address;
+        time_t t0, t1;
+        int on = 1, sfd, res;
+        unsigned long total = 0;
+        socklen_t alen = sizeof(socket_address);
+        pid_t pid;
+
+        time(&t0);
+        socket_address.sin_family = AF_INET;
+        socket_address.sin_port = htons(port);
+        socket_address.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+
+        if (lfd == -1) {
+                perror("socket()");
+                return 1;
+        }
+        setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int));
+        if (bind(lfd, (struct sockaddr *)&socket_address, sizeof(socket_address)) == -1) {
+                perror("bind");
+                close(lfd);
+                return 1;
+        }
+        if (listen(lfd, 1) == -1) {
+                perror("listen()");
+                close(lfd);
+                return 1;
+        }
+        pid = fork();
+        if (pid == 0) {
+                int i, cfd = socket(AF_INET, SOCK_STREAM, 0);
+                close(lfd);
+                if (connect(cfd, (struct sockaddr *)&socket_address, sizeof(socket_address)) == -1) {
+                        perror("connect()");
+                        return 1;
+                        }
+                for (i = 0 ; ;) {
+                        res = write(cfd, "blablabla\n", 10);
+                        if (res > 0) total += res;
+                        else if (res == -1) {
+                                perror("write()");
+                                break;
+                        } else break;
+                        usleep(100000);
+                        if (++i == 10) {
+                                system("ss -on dst 127.0.0.1:12000");
+                                i = 0;
+                        }
+                }
+                time(&t1);
+                fprintf(stderr, "wrote %lu bytes but was interrupted after %g seconds\n", total, difftime(t1, t0));
+                system("ss -on | grep 127.0.0.1:12000");
+                close(cfd);
+                return 0;
+        }
+        sfd = accept(lfd, (struct sockaddr *)&socket_address, &alen);
+        if (sfd == -1) {
+                perror("accept");
+                return 1;
+        }
+        close(lfd);
+        while (1) {
+                struct pollfd pfd[1];
+                pfd[0].fd = sfd;
+                pfd[0].events = POLLIN;
+                if (poll(pfd, 1, 4000) == 0) {
+                        fprintf(stderr, "Exiting read() because no data available (4000 ms timeout).\n");
+                        break;
+                }
+                res = read(sfd, buffer, sizeof(buffer));
+                if (res > 0) total += res;
+                else if (res == 0) break;
+                else perror("read()");
+        }
+        fprintf(stderr, "read %lu bytes\n", total);
+        close(sfd);
+        return 0;
+}
+----------------------------------------
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv4/tcp_input.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/net/ipv4/tcp_input.c
++++ b/net/ipv4/tcp_input.c
+@@ -3273,6 +3273,7 @@ static int tcp_ack(struct sock *sk, stru
+        * log. Something worked...
+        */
+       sk->sk_err_soft = 0;
++      icsk->icsk_probes_out = 0;
+       tp->rcv_tstamp = tcp_time_stamp;
+       prior_packets = tp->packets_out;
+       if (!prior_packets)
+@@ -3305,8 +3306,6 @@ static int tcp_ack(struct sock *sk, stru
+       return 1;
+ no_queue:
+-      icsk->icsk_probes_out = 0;
+-
+       /* If this ack opens up a zero window, clear backoff.  It was
+        * being used to time the probes, and is probably far higher than
+        * it needs to be for normal retransmission.
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:46 2008
+Message-Id: <20080730233146.800297534@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:21 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 31/62] sparc64: Fix lockdep issues in LDC protocol layer.
+Content-Disposition: inline; filename=sparc64-fix-lockdep-issues-in-ldc-protocol-layer.patch
+Content-Length: 4127
+Lines: 149
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit b7c2a75725dee9b5643a0aae3a4cb47f52e00a49 ]
+
+We're calling request_irq() with a IRQs disabled.
+
+No straightforward fix exists because we want to
+enable these IRQs and setup state atomically before
+getting into the IRQ handler the first time.
+
+What happens now is that we mark the VIRQ to not be
+automatically enabled by request_irq().  Then we
+make explicit enable_irq() calls when we grab the
+LDC channel.
+
+This way we don't need to call request_irq() illegally
+under the LDC channel lock any more.
+
+Bump LDC version and release date.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/irq.c |   10 +++++++++-
+ arch/sparc64/kernel/ldc.c |   38 +++++++++++++++++++-------------------
+ 2 files changed, 28 insertions(+), 20 deletions(-)
+
+--- a/arch/sparc64/kernel/irq.c
++++ b/arch/sparc64/kernel/irq.c
+@@ -621,8 +621,9 @@ unsigned int sun4v_build_irq(u32 devhand
+ unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino)
+ {
+       struct irq_handler_data *data;
+-      struct ino_bucket *bucket;
+       unsigned long hv_err, cookie;
++      struct ino_bucket *bucket;
++      struct irq_desc *desc;
+       unsigned int virt_irq;
+       bucket = kzalloc(sizeof(struct ino_bucket), GFP_ATOMIC);
+@@ -643,6 +644,13 @@ unsigned int sun4v_build_virq(u32 devhan
+       if (unlikely(!data))
+               return 0;
++      /* In order to make the LDC channel startup sequence easier,
++       * especially wrt. locking, we do not let request_irq() enable
++       * the interrupt.
++       */
++      desc = irq_desc + virt_irq;
++      desc->status |= IRQ_NOAUTOEN;
++
+       set_irq_chip_data(virt_irq, data);
+       /* Catch accidental accesses to these things.  IMAP/ICLR handling
+--- a/arch/sparc64/kernel/ldc.c
++++ b/arch/sparc64/kernel/ldc.c
+@@ -1,6 +1,6 @@
+ /* ldc.c: Logical Domain Channel link-layer protocol driver.
+  *
+- * Copyright (C) 2007 David S. Miller <davem@davemloft.net>
++ * Copyright (C) 2007, 2008 David S. Miller <davem@davemloft.net>
+  */
+ #include <linux/kernel.h>
+@@ -23,8 +23,8 @@
+ #define DRV_MODULE_NAME               "ldc"
+ #define PFX DRV_MODULE_NAME   ": "
+-#define DRV_MODULE_VERSION    "1.0"
+-#define DRV_MODULE_RELDATE    "June 25, 2007"
++#define DRV_MODULE_VERSION    "1.1"
++#define DRV_MODULE_RELDATE    "July 22, 2008"
+ static char version[] __devinitdata =
+       DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
+@@ -1235,13 +1235,9 @@ int ldc_bind(struct ldc_channel *lp, con
+       unsigned long hv_err, flags;
+       int err = -EINVAL;
+-      spin_lock_irqsave(&lp->lock, flags);
+-
+-      if (!name)
+-              goto out_err;
+-
+-      if (lp->state != LDC_STATE_INIT)
+-              goto out_err;
++      if (!name ||
++          (lp->state != LDC_STATE_INIT))
++              return -EINVAL;
+       snprintf(lp->rx_irq_name, LDC_IRQ_NAME_MAX, "%s RX", name);
+       snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name);
+@@ -1250,25 +1246,32 @@ int ldc_bind(struct ldc_channel *lp, con
+                         IRQF_SAMPLE_RANDOM | IRQF_SHARED,
+                         lp->rx_irq_name, lp);
+       if (err)
+-              goto out_err;
++              return err;
+       err = request_irq(lp->cfg.tx_irq, ldc_tx,
+                         IRQF_SAMPLE_RANDOM | IRQF_SHARED,
+                         lp->tx_irq_name, lp);
+-      if (err)
+-              goto out_free_rx_irq;
++      if (err) {
++              free_irq(lp->cfg.rx_irq, lp);
++              return err;
++      }
++
++      spin_lock_irqsave(&lp->lock, flags);
++
++      enable_irq(lp->cfg.rx_irq);
++      enable_irq(lp->cfg.tx_irq);
+       lp->flags |= LDC_FLAG_REGISTERED_IRQS;
+       err = -ENODEV;
+       hv_err = sun4v_ldc_tx_qconf(lp->id, 0, 0);
+       if (hv_err)
+-              goto out_free_tx_irq;
++              goto out_free_irqs;
+       hv_err = sun4v_ldc_tx_qconf(lp->id, lp->tx_ra, lp->tx_num_entries);
+       if (hv_err)
+-              goto out_free_tx_irq;
++              goto out_free_irqs;
+       hv_err = sun4v_ldc_rx_qconf(lp->id, 0, 0);
+       if (hv_err)
+@@ -1304,14 +1307,11 @@ out_unmap_rx:
+ out_unmap_tx:
+       sun4v_ldc_tx_qconf(lp->id, 0, 0);
+-out_free_tx_irq:
++out_free_irqs:
+       lp->flags &= ~LDC_FLAG_REGISTERED_IRQS;
+       free_irq(lp->cfg.tx_irq, lp);
+-
+-out_free_rx_irq:
+       free_irq(lp->cfg.rx_irq, lp);
+-out_err:
+       spin_unlock_irqrestore(&lp->lock, flags);
+       return err;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233146.961378690@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:22 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 32/62] sparc64: Fix cpufreq notifier registry.
+Content-Disposition: inline; filename=sparc64-fix-cpufreq-notifier-registry.patch
+Content-Length: 1344
+Lines: 49
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit 7ae93f51d7fa8b9130d47e0b7d17979a165c5bc3 ]
+
+Based upon a report by Daniel Smolik.
+
+We do it too early, which triggers a BUG in
+cpufreq_register_notifier().
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/time.c |   15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+--- a/arch/sparc64/kernel/time.c
++++ b/arch/sparc64/kernel/time.c
+@@ -883,6 +883,16 @@ static struct notifier_block sparc64_cpu
+       .notifier_call  = sparc64_cpufreq_notifier
+ };
++static int __init register_sparc64_cpufreq_notifier(void)
++{
++
++      cpufreq_register_notifier(&sparc64_cpufreq_notifier_block,
++                                CPUFREQ_TRANSITION_NOTIFIER);
++      return 0;
++}
++
++core_initcall(register_sparc64_cpufreq_notifier);
++
+ #endif /* CONFIG_CPU_FREQ */
+ static int sparc64_next_event(unsigned long delta,
+@@ -1049,11 +1059,6 @@ void __init time_init(void)
+              sparc64_clockevent.mult, sparc64_clockevent.shift);
+       setup_sparc64_timer();
+-
+-#ifdef CONFIG_CPU_FREQ
+-      cpufreq_register_notifier(&sparc64_cpufreq_notifier_block,
+-                                CPUFREQ_TRANSITION_NOTIFIER);
+-#endif
+ }
+ unsigned long long sched_clock(void)
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233147.124927479@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:23 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 33/62] sparc64: Do not define BIO_VMERGE_BOUNDARY.
+Content-Disposition: inline; filename=sparc64-do-not-define-bio_vmerge_boundary.patch
+Content-Length: 794
+Lines: 26
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit 74988bd85d1cb97987534fd7ffbc570e81145418 ]
+
+The IOMMU code and the block layer can split things
+up using different rules, so this can't work reliably.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-sparc64/io.h |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/include/asm-sparc64/io.h
++++ b/include/asm-sparc64/io.h
+@@ -16,7 +16,6 @@
+ /* BIO layer definitions. */
+ extern unsigned long kern_base, kern_size;
+ #define page_to_phys(page)    (page_to_pfn(page) << PAGE_SHIFT)
+-#define BIO_VMERGE_BOUNDARY   8192
+ static inline u8 _inb(unsigned long addr)
+ {
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233147.275237156@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:24 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Kay Sievers <kay.sievers@vrfy.org>,
+ David Brownell <dbrownell@users.sourceforge.net>,
+ Dan Williams <dan.j.williams@intel.com>
+Subject: [patch 34/62] iop-adma: fix platform driver hotplug/coldplug
+Content-Disposition: inline; filename=iop-adma-fix-platform-driver-hotplug-coldplug.patch
+Content-Length: 1047
+Lines: 31
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Kay Sievers <kay.sievers@vrfy.org>
+
+commit ebabe2762607147d28aa395ea6df2a0ee7f795a1
+
+Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform
+modalias is prefixed with "platform:". Add MODULE_ALIAS() to most
+of the hotpluggable platform drivers, to re-enable auto loading.
+
+Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Dan Williams <dan.j.williams@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/dma/iop-adma.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/dma/iop-adma.c
++++ b/drivers/dma/iop-adma.c
+@@ -1387,6 +1387,8 @@ static void iop_chan_start_null_xor(stru
+       spin_unlock_bh(&iop_chan->lock);
+ }
++MODULE_ALIAS("platform:iop-adma");
++
+ static struct platform_driver iop_adma_driver = {
+       .probe          = iop_adma_probe,
+       .remove         = iop_adma_remove,
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233147.436131627@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:25 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Brice Goglin <brice@myri.com>
+Subject: [patch 35/62] myri10ge: do not forget to setup the single slice pointers
+Content-Disposition: inline; filename=myri10ge-do-not-forget-to-setup-the-single-slice-pointers.patch
+Content-Length: 1296
+Lines: 37
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Brice Goglin <brice@myri.com>
+
+part of commit 0dcffac1a329be69bab0ac604bf7283737108e68 upstream
+(the upstream multislice patch contains the same fix within
+ myri10ge_alloc_slices() which does this for every slice)
+
+Even if we don't have multiple slices in myri10ge in 2.6.26,
+we already use some multislice-aware routines that need the
+slice state pointers to mgp and dev to be valid.
+
+This patch fixes a regression where configuring the interface up
+would oops in myri10ge_allocate_rings() when using ss->mgp
+(and later when using ss->dev).
+
+Oops reported and patch tested by Lukas Hejtmanek at
+http://lkml.org/lkml/2008/7/23/101
+
+Signed-off-by: Brice Goglin <brice@myri.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/myri10ge/myri10ge.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/myri10ge/myri10ge.c
++++ b/drivers/net/myri10ge/myri10ge.c
+@@ -3126,6 +3126,8 @@ static int myri10ge_probe(struct pci_dev
+       mgp = netdev_priv(netdev);
+       mgp->dev = netdev;
++      mgp->ss.mgp = mgp;
++      mgp->ss.dev = mgp->dev;
+       netif_napi_add(netdev, &mgp->ss.napi, myri10ge_poll, myri10ge_napi_weight);
+       mgp->pdev = pdev;
+       mgp->csum_flag = MXGEFW_FLAGS_CKSUM;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233147.616233289@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:26 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Brice Goglin <brice@myri.com>
+Subject: [patch 36/62] myri10ge: do not use mgp->max_intr_slots before loading the firmware
+Content-Disposition: inline; filename=myri10ge-do-not-use-mgp-max_intr_slots-before-loading-the-firmware.patch
+Content-Length: 3175
+Lines: 98
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Brice Goglin <brice@myri.com>
+
+part of commit 0dcffac1a329be69bab0ac604bf7283737108e68 upstream
+(the upstream multislice patch contains this fix within a large
+ rework of the code since there is one rx_done ring per slice. The
+ old allocating is replaced by a call to myri10ge_probe_slices())
+
+
+Allocating the rx_done ring requires mgp->max_intr_slots to
+be valid, which requires that we already loaded the firmware
+we are going to use with this ring.
+So move the allocating after myri10ge_load_firmware()
+(but keep it before myri10ge_reset() which already needs the
+ rx_done ring).
+
+If fixedsa regression where loading the driver would not
+appear to do anything. Regression introduced in 2.6.26-rc3 by
+commit 014377a1df693ff30a9e8b69f0bbb0a38e601f75
+
+Reported and patch tested by Lukas Hejtmanek at
+http://lkml.org/lkml/2008/7/22/305
+Reproduced and patch tested also by me.
+
+Signed-off-by: Brice Goglin <brice@myri.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/myri10ge/myri10ge.c |   28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+--- a/drivers/net/myri10ge/myri10ge.c
++++ b/drivers/net/myri10ge/myri10ge.c
+@@ -3215,26 +3215,26 @@ static int myri10ge_probe(struct pci_dev
+       for (i = 0; i < ETH_ALEN; i++)
+               netdev->dev_addr[i] = mgp->mac_addr[i];
+-      /* allocate rx done ring */
+-      bytes = mgp->max_intr_slots * sizeof(*mgp->ss.rx_done.entry);
+-      mgp->ss.rx_done.entry = dma_alloc_coherent(&pdev->dev, bytes,
+-                                              &mgp->ss.rx_done.bus, GFP_KERNEL);
+-      if (mgp->ss.rx_done.entry == NULL)
+-              goto abort_with_ioremap;
+-      memset(mgp->ss.rx_done.entry, 0, bytes);
+-
+       myri10ge_select_firmware(mgp);
+       status = myri10ge_load_firmware(mgp);
+       if (status != 0) {
+               dev_err(&pdev->dev, "failed to load firmware\n");
+-              goto abort_with_rx_done;
++              goto abort_with_ioremap;
+       }
++      /* allocate rx done ring */
++      bytes = mgp->max_intr_slots * sizeof(*mgp->ss.rx_done.entry);
++      mgp->ss.rx_done.entry = dma_alloc_coherent(&pdev->dev, bytes,
++                                              &mgp->ss.rx_done.bus, GFP_KERNEL);
++      if (mgp->ss.rx_done.entry == NULL)
++              goto abort_with_firmware;
++      memset(mgp->ss.rx_done.entry, 0, bytes);
++
+       status = myri10ge_reset(mgp);
+       if (status != 0) {
+               dev_err(&pdev->dev, "failed reset\n");
+-              goto abort_with_firmware;
++              goto abort_with_rx_done;
+       }
+       pci_set_drvdata(pdev, mgp);
+@@ -3260,7 +3260,7 @@ static int myri10ge_probe(struct pci_dev
+        * is set to correct value if MSI is enabled */
+       status = myri10ge_request_irq(mgp);
+       if (status != 0)
+-              goto abort_with_firmware;
++              goto abort_with_rx_done;
+       netdev->irq = pdev->irq;
+       myri10ge_free_irq(mgp);
+@@ -3289,14 +3289,14 @@ static int myri10ge_probe(struct pci_dev
+ abort_with_state:
+       pci_restore_state(pdev);
+-abort_with_firmware:
+-      myri10ge_dummy_rdma(mgp, 0);
+-
+ abort_with_rx_done:
+       bytes = mgp->max_intr_slots * sizeof(*mgp->ss.rx_done.entry);
+       dma_free_coherent(&pdev->dev, bytes,
+                         mgp->ss.rx_done.entry, mgp->ss.rx_done.bus);
++abort_with_firmware:
++      myri10ge_dummy_rdma(mgp, 0);
++
+ abort_with_ioremap:
+       iounmap(mgp->sram);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:47 2008
+Message-Id: <20080730233147.797161940@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:27 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>,
+ Pierre Ossman <drzeus@drzeus.cx>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 37/62] ALSA: trident - pause s/pdif output
+Content-Disposition: inline; filename=alsa-trident-pause-s-pdif-output.patch
+Content-Length: 1355
+Lines: 35
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Pierre Ossman <drzeus@drzeus.cx>
+
+Commit 981bcead3f2279a1ec6fb5f2c57aff79ed61a700 upstream.
+
+Stop the S/PDIF DMA engine and output when the device is told to pause.
+It will keep on looping the current buffer contents if this isn't done.
+
+Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
+Tested-by: Rene Herman <rene.herman@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/trident/trident_main.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/trident/trident_main.c
++++ b/sound/pci/trident/trident_main.c
+@@ -1590,7 +1590,10 @@ static int snd_trident_trigger(struct sn
+       if (spdif_flag) {
+               if (trident->device != TRIDENT_DEVICE_ID_SI7018) {
+                       outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
+-                      outb(trident->spdif_pcm_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
++                      val = trident->spdif_pcm_ctrl;
++                      if (!go)
++                              val &= ~(0x28);
++                      outb(val, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
+               } else {
+                       outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS));
+                       val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) | SPDIF_EN;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:48 2008
+Message-Id: <20080730233147.973431341@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:28 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hans Verkuil <hverkuil@xs4all.nl>,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 38/62] V4L: cx18: Upgrade to newer firmware & update documentation
+Content-Disposition: inline; filename=v4l-cx18-upgrade-to-newer-firmware-update-documentation.patch
+Content-Length: 1879
+Lines: 53
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Hans Verkuil <hverkuil@xs4all.nl>
+
+(cherry picked from commit 1a3932e0ed9ca46db2b76ce067e4ebaf04d91ea1)
+
+V4L: cx18: Upgrade to newer firmware & update cx18 documentation
+
+Conexant graciously gave us permission to redistribute the
+firmware. Update the documentation where the firmware can be
+downloaded.
+
+Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/video4linux/cx18.txt       |   12 +++---------
+ drivers/media/video/cx18/cx18-firmware.c |    2 +-
+ 2 files changed, 4 insertions(+), 10 deletions(-)
+
+--- a/Documentation/video4linux/cx18.txt
++++ b/Documentation/video4linux/cx18.txt
+@@ -23,14 +23,8 @@ encoder chip:
+ Firmware:
+-The firmware needs to be extracted from the Windows Hauppauge HVR-1600
+-driver, available here:
++You can obtain the firmware files here:
+-http://hauppauge.lightpath.net/software/install_cd/hauppauge_cd_3.4d1.zip
++http://dl.ivtvdriver.org/ivtv/firmware/cx18-firmware.tar.gz
+-Unzip, then copy the following files to the firmware directory
+-and rename them as follows:
+-
+-Drivers/Driver18/hcw18apu.rom -> v4l-cx23418-apu.fw
+-Drivers/Driver18/hcw18enc.rom -> v4l-cx23418-cpu.fw
+-Drivers/Driver18/hcw18mlC.rom -> v4l-cx23418-dig.fw
++Untar and copy the .fw files to your firmware directory.
+--- a/drivers/media/video/cx18/cx18-firmware.c
++++ b/drivers/media/video/cx18/cx18-firmware.c
+@@ -90,7 +90,7 @@
+ #define CX18_DSP0_INTERRUPT_MASK      0xd0004C
+ /* Encoder/decoder firmware sizes */
+-#define CX18_FW_CPU_SIZE              (174716)
++#define CX18_FW_CPU_SIZE              (158332)
+ #define CX18_FW_APU_SIZE              (141200)
+ #define APU_ROM_SYNC1 0x6D676553 /* "mgeS" */
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:48 2008
+Message-Id: <20080730233148.136170740@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:29 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 39/62] DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009
+Content-Disposition: inline; filename=dvb-dib0700-add-support-for-hauppauge-nova-td-stick-52009.patch
+Content-Length: 2161
+Lines: 57
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Michael Krufky <mkrufky@linuxtv.org>
+
+(cherry picked from commit d01eb2dc7d5265ec3bee9ec1b8ab79155e1310d6)
+
+DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009
+
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/dvb/dvb-usb/dib0700_devices.c |    7 ++++++-
+ drivers/media/dvb/dvb-usb/dvb-usb-ids.h     |    1 +
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
++++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
+@@ -1117,6 +1117,7 @@ struct usb_device_id dib0700_usb_id_tabl
+       { USB_DEVICE(USB_VID_TERRATEC,  USB_PID_TERRATEC_CINERGY_HT_EXPRESS) },
+       { USB_DEVICE(USB_VID_TERRATEC,  USB_PID_TERRATEC_CINERGY_T_XXS) },
+       { USB_DEVICE(USB_VID_LEADTEK,   USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) },
++      { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) },
+       { 0 }           /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
+@@ -1372,7 +1373,7 @@ struct dvb_usb_device_properties dib0700
+                       }
+               },
+-              .num_device_descs = 2,
++              .num_device_descs = 3,
+               .devices = {
+                       {   "DiBcom STK7070PD reference design",
+                               { &dib0700_usb_id_table[17], NULL },
+@@ -1381,6 +1382,10 @@ struct dvb_usb_device_properties dib0700
+                       {   "Pinnacle PCTV Dual DVB-T Diversity Stick",
+                               { &dib0700_usb_id_table[18], NULL },
+                               { NULL },
++                      },
++                      {   "Hauppauge Nova-TD Stick (52009)",
++                              { &dib0700_usb_id_table[35], NULL },
++                              { NULL },
+                       }
+               }
+       }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
+--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
++++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+@@ -132,6 +132,7 @@
+ #define USB_PID_HAUPPAUGE_NOVA_T_STICK_3              0x7070
+ #define USB_PID_HAUPPAUGE_MYTV_T                      0x7080
+ #define USB_PID_HAUPPAUGE_NOVA_TD_STICK                       0x9580
++#define USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009         0x5200
+ #define USB_PID_AVERMEDIA_EXPRESS                     0xb568
+ #define USB_PID_AVERMEDIA_VOLAR                               0xa807
+ #define USB_PID_AVERMEDIA_VOLAR_2                     0xb808
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:48 2008
+Message-Id: <20080730233148.311010698@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:30 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Laurent Pinchart <laurent.pinchart@skynet.be>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 40/62] V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing
+Content-Disposition: inline; filename=v4l-uvcvideo-fix-a-buffer-overflow-in-format-descriptor-parsing.patch
+Content-Length: 1143
+Lines: 31
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Laurent Pinchart <laurent.pinchart@skynet.be>
+
+(cherry picked from commit 233548a2fd934a0220db8b1521c0bc88c82e5e53)
+
+V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing
+
+Thanks to Oliver Neukum for catching and reporting this bug.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/uvc/uvc_driver.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/media/video/uvc/uvc_driver.c
++++ b/drivers/media/video/uvc/uvc_driver.c
+@@ -298,7 +298,8 @@ static int uvc_parse_format(struct uvc_d
+       switch (buffer[2]) {
+       case VS_FORMAT_UNCOMPRESSED:
+       case VS_FORMAT_FRAME_BASED:
+-              if (buflen < 27) {
++              n = buffer[2] == VS_FORMAT_UNCOMPRESSED ? 27 : 28;
++              if (buflen < n) {
+                       uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
+                              "interface %d FORMAT error\n",
+                              dev->udev->devnum,
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:48 2008
+Message-Id: <20080730233148.487824231@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:31 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Laurent Pinchart <laurent.pinchart@skynet.be>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 41/62] V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume
+Content-Disposition: inline; filename=v4l-uvcvideo-use-gfp_noio-when-allocating-memory-during-resume.patch
+Content-Length: 4676
+Lines: 138
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Laurent Pinchart <laurent.pinchart@skynet.be>
+
+(cherry picked from commit 291358785cde5536d98a4f3cae77efd8ca626486)
+
+V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume
+
+The swap device might still be asleep, so memory allocated in the resume
+handler must use GFP_NOIO. Thanks to Oliver Neukum for catching and reporting
+this bug.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/uvc/uvc_status.c |    2 +-
+ drivers/media/video/uvc/uvc_video.c  |   24 ++++++++++++------------
+ 2 files changed, 13 insertions(+), 13 deletions(-)
+
+--- a/drivers/media/video/uvc/uvc_status.c
++++ b/drivers/media/video/uvc/uvc_status.c
+@@ -203,5 +203,5 @@ int uvc_status_resume(struct uvc_device 
+       if (dev->int_urb == NULL)
+               return 0;
+-      return usb_submit_urb(dev->int_urb, GFP_KERNEL);
++      return usb_submit_urb(dev->int_urb, GFP_NOIO);
+ }
+--- a/drivers/media/video/uvc/uvc_video.c
++++ b/drivers/media/video/uvc/uvc_video.c
+@@ -586,7 +586,7 @@ static void uvc_uninit_video(struct uvc_
+  * is given by the endpoint.
+  */
+ static int uvc_init_video_isoc(struct uvc_video_device *video,
+-      struct usb_host_endpoint *ep)
++      struct usb_host_endpoint *ep, gfp_t gfp_flags)
+ {
+       struct urb *urb;
+       unsigned int npackets, i, j;
+@@ -611,14 +611,14 @@ static int uvc_init_video_isoc(struct uv
+       size = npackets * psize;
+       for (i = 0; i < UVC_URBS; ++i) {
+-              urb = usb_alloc_urb(npackets, GFP_KERNEL);
++              urb = usb_alloc_urb(npackets, gfp_flags);
+               if (urb == NULL) {
+                       uvc_uninit_video(video);
+                       return -ENOMEM;
+               }
+               video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
+-                      size, GFP_KERNEL, &urb->transfer_dma);
++                      size, gfp_flags, &urb->transfer_dma);
+               if (video->urb_buffer[i] == NULL) {
+                       usb_free_urb(urb);
+                       uvc_uninit_video(video);
+@@ -652,7 +652,7 @@ static int uvc_init_video_isoc(struct uv
+  * given by the endpoint.
+  */
+ static int uvc_init_video_bulk(struct uvc_video_device *video,
+-      struct usb_host_endpoint *ep)
++      struct usb_host_endpoint *ep, gfp_t gfp_flags)
+ {
+       struct urb *urb;
+       unsigned int pipe, i;
+@@ -674,14 +674,14 @@ static int uvc_init_video_bulk(struct uv
+       pipe = usb_rcvbulkpipe(video->dev->udev, ep->desc.bEndpointAddress);
+       for (i = 0; i < UVC_URBS; ++i) {
+-              urb = usb_alloc_urb(0, GFP_KERNEL);
++              urb = usb_alloc_urb(0, gfp_flags);
+               if (urb == NULL) {
+                       uvc_uninit_video(video);
+                       return -ENOMEM;
+               }
+               video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
+-                      size, GFP_KERNEL, &urb->transfer_dma);
++                      size, gfp_flags, &urb->transfer_dma);
+               if (video->urb_buffer[i] == NULL) {
+                       usb_free_urb(urb);
+                       uvc_uninit_video(video);
+@@ -702,7 +702,7 @@ static int uvc_init_video_bulk(struct uv
+ /*
+  * Initialize isochronous/bulk URBs and allocate transfer buffers.
+  */
+-static int uvc_init_video(struct uvc_video_device *video)
++static int uvc_init_video(struct uvc_video_device *video, gfp_t gfp_flags)
+ {
+       struct usb_interface *intf = video->streaming->intf;
+       struct usb_host_interface *alts;
+@@ -747,7 +747,7 @@ static int uvc_init_video(struct uvc_vid
+               if ((ret = usb_set_interface(video->dev->udev, intfnum, i)) < 0)
+                       return ret;
+-              ret = uvc_init_video_isoc(video, ep);
++              ret = uvc_init_video_isoc(video, ep, gfp_flags);
+       } else {
+               /* Bulk endpoint, proceed to URB initialization. */
+               ep = uvc_find_endpoint(&intf->altsetting[0],
+@@ -755,7 +755,7 @@ static int uvc_init_video(struct uvc_vid
+               if (ep == NULL)
+                       return -EIO;
+-              ret = uvc_init_video_bulk(video, ep);
++              ret = uvc_init_video_bulk(video, ep, gfp_flags);
+       }
+       if (ret < 0)
+@@ -763,7 +763,7 @@ static int uvc_init_video(struct uvc_vid
+       /* Submit the URBs. */
+       for (i = 0; i < UVC_URBS; ++i) {
+-              if ((ret = usb_submit_urb(video->urb[i], GFP_KERNEL)) < 0) {
++              if ((ret = usb_submit_urb(video->urb[i], gfp_flags)) < 0) {
+                       uvc_printk(KERN_ERR, "Failed to submit URB %u "
+                                       "(%d).\n", i, ret);
+                       uvc_uninit_video(video);
+@@ -818,7 +818,7 @@ int uvc_video_resume(struct uvc_video_de
+       if (!uvc_queue_streaming(&video->queue))
+               return 0;
+-      if ((ret = uvc_init_video(video)) < 0)
++      if ((ret = uvc_init_video(video, GFP_NOIO)) < 0)
+               uvc_queue_enable(&video->queue, 0);
+       return ret;
+@@ -930,5 +930,5 @@ int uvc_video_enable(struct uvc_video_de
+       if ((ret = uvc_queue_enable(&video->queue, 1)) < 0)
+               return ret;
+-      return uvc_init_video(video);
++      return uvc_init_video(video, GFP_KERNEL);
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:48 2008
+Message-Id: <20080730233148.653588943@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:32 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Laurent Pinchart <laurent.pinchart@skynet.be>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 42/62] V4L: uvcvideo: Dont free URB buffers on suspend
+Content-Disposition: inline; filename=v4l-uvcvideo-don-t-free-urb-buffers-on-suspend.patch
+Content-Length: 5837
+Lines: 208
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Laurent Pinchart <laurent.pinchart@skynet.be>
+
+(cherry picked from commit e01117c81676dc9897f567e32cdc13a26e85280b)
+
+V4L: uvcvideo: Don't free URB buffers on suspend.
+
+All submitted URBs must be killed at suspend time, but URB buffers don't
+have to be freed. Avoiding a free on suspend/reallocate on resume lowers
+the pressure on system memory.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/uvc/uvc_video.c |   96 ++++++++++++++++++++++++------------
+ drivers/media/video/uvc/uvcvideo.h  |    2 
+ 2 files changed, 66 insertions(+), 32 deletions(-)
+
+--- a/drivers/media/video/uvc/uvc_video.c
++++ b/drivers/media/video/uvc/uvc_video.c
+@@ -554,9 +554,56 @@ static void uvc_video_complete(struct ur
+ }
+ /*
++ * Free transfer buffers.
++ */
++static void uvc_free_urb_buffers(struct uvc_video_device *video)
++{
++      unsigned int i;
++
++      for (i = 0; i < UVC_URBS; ++i) {
++              if (video->urb_buffer[i]) {
++                      usb_buffer_free(video->dev->udev, video->urb_size,
++                              video->urb_buffer[i], video->urb_dma[i]);
++                      video->urb_buffer[i] = NULL;
++              }
++      }
++
++      video->urb_size = 0;
++}
++
++/*
++ * Allocate transfer buffers. This function can be called with buffers
++ * already allocated when resuming from suspend, in which case it will
++ * return without touching the buffers.
++ *
++ * Return 0 on success or -ENOMEM when out of memory.
++ */
++static int uvc_alloc_urb_buffers(struct uvc_video_device *video,
++      unsigned int size)
++{
++      unsigned int i;
++
++      /* Buffers are already allocated, bail out. */
++      if (video->urb_size)
++              return 0;
++
++      for (i = 0; i < UVC_URBS; ++i) {
++              video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
++                      size, GFP_KERNEL, &video->urb_dma[i]);
++              if (video->urb_buffer[i] == NULL) {
++                      uvc_free_urb_buffers(video);
++                      return -ENOMEM;
++              }
++      }
++
++      video->urb_size = size;
++      return 0;
++}
++
++/*
+  * Uninitialize isochronous/bulk URBs and free transfer buffers.
+  */
+-static void uvc_uninit_video(struct uvc_video_device *video)
++static void uvc_uninit_video(struct uvc_video_device *video, int free_buffers)
+ {
+       struct urb *urb;
+       unsigned int i;
+@@ -566,19 +613,12 @@ static void uvc_uninit_video(struct uvc_
+                       continue;
+               usb_kill_urb(urb);
+-              /* urb->transfer_buffer_length is not touched by USB core, so
+-               * we can use it here as the buffer length.
+-               */
+-              if (video->urb_buffer[i]) {
+-                      usb_buffer_free(video->dev->udev,
+-                              urb->transfer_buffer_length,
+-                              video->urb_buffer[i], urb->transfer_dma);
+-                      video->urb_buffer[i] = NULL;
+-              }
+-
+               usb_free_urb(urb);
+               video->urb[i] = NULL;
+       }
++
++      if (free_buffers)
++              uvc_free_urb_buffers(video);
+ }
+ /*
+@@ -610,18 +650,13 @@ static int uvc_init_video_isoc(struct uv
+       size = npackets * psize;
++      if (uvc_alloc_urb_buffers(video, size) < 0)
++              return -ENOMEM;
++
+       for (i = 0; i < UVC_URBS; ++i) {
+               urb = usb_alloc_urb(npackets, gfp_flags);
+               if (urb == NULL) {
+-                      uvc_uninit_video(video);
+-                      return -ENOMEM;
+-              }
+-
+-              video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
+-                      size, gfp_flags, &urb->transfer_dma);
+-              if (video->urb_buffer[i] == NULL) {
+-                      usb_free_urb(urb);
+-                      uvc_uninit_video(video);
++                      uvc_uninit_video(video, 1);
+                       return -ENOMEM;
+               }
+@@ -632,6 +667,7 @@ static int uvc_init_video_isoc(struct uv
+               urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
+               urb->interval = ep->desc.bInterval;
+               urb->transfer_buffer = video->urb_buffer[i];
++              urb->transfer_dma = video->urb_dma[i];
+               urb->complete = uvc_video_complete;
+               urb->number_of_packets = npackets;
+               urb->transfer_buffer_length = size;
+@@ -671,20 +707,15 @@ static int uvc_init_video_bulk(struct uv
+       if (size > psize * UVC_MAX_ISO_PACKETS)
+               size = psize * UVC_MAX_ISO_PACKETS;
++      if (uvc_alloc_urb_buffers(video, size) < 0)
++              return -ENOMEM;
++
+       pipe = usb_rcvbulkpipe(video->dev->udev, ep->desc.bEndpointAddress);
+       for (i = 0; i < UVC_URBS; ++i) {
+               urb = usb_alloc_urb(0, gfp_flags);
+               if (urb == NULL) {
+-                      uvc_uninit_video(video);
+-                      return -ENOMEM;
+-              }
+-
+-              video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
+-                      size, gfp_flags, &urb->transfer_dma);
+-              if (video->urb_buffer[i] == NULL) {
+-                      usb_free_urb(urb);
+-                      uvc_uninit_video(video);
++                      uvc_uninit_video(video, 1);
+                       return -ENOMEM;
+               }
+@@ -692,6 +723,7 @@ static int uvc_init_video_bulk(struct uv
+                       video->urb_buffer[i], size, uvc_video_complete,
+                       video);
+               urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP;
++              urb->transfer_dma = video->urb_dma[i];
+               video->urb[i] = urb;
+       }
+@@ -766,7 +798,7 @@ static int uvc_init_video(struct uvc_vid
+               if ((ret = usb_submit_urb(video->urb[i], gfp_flags)) < 0) {
+                       uvc_printk(KERN_ERR, "Failed to submit URB %u "
+                                       "(%d).\n", i, ret);
+-                      uvc_uninit_video(video);
++                      uvc_uninit_video(video, 1);
+                       return ret;
+               }
+       }
+@@ -791,7 +823,7 @@ int uvc_video_suspend(struct uvc_video_d
+               return 0;
+       video->frozen = 1;
+-      uvc_uninit_video(video);
++      uvc_uninit_video(video, 0);
+       usb_set_interface(video->dev->udev, video->streaming->intfnum, 0);
+       return 0;
+ }
+@@ -920,7 +952,7 @@ int uvc_video_enable(struct uvc_video_de
+       int ret;
+       if (!enable) {
+-              uvc_uninit_video(video);
++              uvc_uninit_video(video, 1);
+               usb_set_interface(video->dev->udev,
+                       video->streaming->intfnum, 0);
+               uvc_queue_enable(&video->queue, 0);
+--- a/drivers/media/video/uvc/uvcvideo.h
++++ b/drivers/media/video/uvc/uvcvideo.h
+@@ -602,6 +602,8 @@ struct uvc_video_device {
+       struct urb *urb[UVC_URBS];
+       char *urb_buffer[UVC_URBS];
++      dma_addr_t urb_dma[UVC_URBS];
++      unsigned int urb_size;
+       __u8 last_fid;
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233148.829950045@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:33 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Laurent Pinchart <laurent.pinchart@skynet.be>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 43/62] V4L: uvcvideo: Make input device support optional
+Content-Disposition: inline; filename=v4l-uvcvideo-make-input-device-support-optional.patch
+Content-Length: 3369
+Lines: 101
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Laurent Pinchart <laurent.pinchart@skynet.be>
+
+(cherry picked from commit 6833c917b4de1757febdbf946d709ece6dc7a86f)
+
+V4L: uvcvideo: Make input device support optional
+
+UVC devices can report button events. The uvcvideo driver depends on
+CONFIG_INPUT to report events to the input layer. This patch removes the hard
+dependency by introducing a new CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV option.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/Kconfig          |    8 +-------
+ drivers/media/video/uvc/Kconfig      |   17 +++++++++++++++++
+ drivers/media/video/uvc/uvc_status.c |   17 +++++++++++++++--
+ 3 files changed, 33 insertions(+), 9 deletions(-)
+
+--- a/drivers/media/video/Kconfig
++++ b/drivers/media/video/Kconfig
+@@ -793,13 +793,7 @@ menuconfig V4L_USB_DRIVERS
+ if V4L_USB_DRIVERS && USB
+-config USB_VIDEO_CLASS
+-      tristate "USB Video Class (UVC)"
+-      ---help---
+-        Support for the USB Video Class (UVC).  Currently only video
+-        input devices, such as webcams, are supported.
+-
+-        For more information see: <http://linux-uvc.berlios.de/>
++source "drivers/media/video/uvc/Kconfig"
+ source "drivers/media/video/pvrusb2/Kconfig"
+--- /dev/null
++++ b/drivers/media/video/uvc/Kconfig
+@@ -0,0 +1,17 @@
++config USB_VIDEO_CLASS
++      tristate "USB Video Class (UVC)"
++      ---help---
++        Support for the USB Video Class (UVC).  Currently only video
++        input devices, such as webcams, are supported.
++
++        For more information see: <http://linux-uvc.berlios.de/>
++
++config USB_VIDEO_CLASS_INPUT_EVDEV
++      bool "UVC input events device support"
++      default y
++      depends on USB_VIDEO_CLASS && INPUT
++      ---help---
++        This option makes USB Video Class devices register an input device
++        to report button events.
++
++        If you are in doubt, say Y.
+--- a/drivers/media/video/uvc/uvc_status.c
++++ b/drivers/media/video/uvc/uvc_status.c
+@@ -22,6 +22,7 @@
+ /* --------------------------------------------------------------------------
+  * Input device
+  */
++#ifdef CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV
+ static int uvc_input_init(struct uvc_device *dev)
+ {
+       struct usb_device *udev = dev->udev;
+@@ -67,6 +68,19 @@ static void uvc_input_cleanup(struct uvc
+               input_unregister_device(dev->input);
+ }
++static void uvc_input_report_key(struct uvc_device *dev, unsigned int code,
++      int value)
++{
++      if (dev->input)
++              input_report_key(dev->input, code, value);
++}
++
++#else
++#define uvc_input_init(dev)
++#define uvc_input_cleanup(dev)
++#define uvc_input_report_key(dev, code, value)
++#endif /* CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV */
++
+ /* --------------------------------------------------------------------------
+  * Status interrupt endpoint
+  */
+@@ -83,8 +97,7 @@ static void uvc_event_streaming(struct u
+                       return;
+               uvc_trace(UVC_TRACE_STATUS, "Button (intf %u) %s len %d\n",
+                       data[1], data[3] ? "pressed" : "released", len);
+-              if (dev->input)
+-                      input_report_key(dev->input, BTN_0, data[3]);
++              uvc_input_report_key(dev, BTN_0, data[3]);
+       } else {
+               uvc_trace(UVC_TRACE_STATUS, "Stream %u error event %02x %02x "
+                       "len %d.\n", data[1], data[2], data[3], len);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233149.030978039@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:34 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Tim Gardner <tim.gardner@canonical.com>,
+ Laurent Pinchart <laurent.pinchart@skynet.be>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 44/62] V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam
+Content-Disposition: inline; filename=v4l-uvcvideo-add-support-for-medion-akoya-mini-e1210-integrated-webcam.patch
+Content-Length: 1364
+Lines: 37
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Laurent Pinchart <laurent.pinchart@skynet.be>
+
+(cherry picked from commit bdf2fe4a0b9d23e69c77eaec76212216c9a957ef)
+
+V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam
+
+Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
+Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/uvc/uvc_driver.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/media/video/uvc/uvc_driver.c
++++ b/drivers/media/video/uvc/uvc_driver.c
+@@ -1892,6 +1892,15 @@ static struct usb_device_id uvc_ids[] = 
+         .bInterfaceSubClass   = 1,
+         .bInterfaceProtocol   = 0,
+         .driver_info          = UVC_QUIRK_PROBE_MINMAX },
++      /* Medion Akoya Mini E1210 */
++      { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
++                              | USB_DEVICE_ID_MATCH_INT_INFO,
++        .idVendor             = 0x5986,
++        .idProduct            = 0x0141,
++        .bInterfaceClass      = USB_CLASS_VIDEO,
++        .bInterfaceSubClass   = 1,
++        .bInterfaceProtocol   = 0,
++        .driver_info          = UVC_QUIRK_PROBE_MINMAX },
+       /* Acer OrbiCam - Unknown vendor */
+       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
+                               | USB_DEVICE_ID_MATCH_INT_INFO,
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233149.192333114@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:35 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Simon Arlott <simon@fire.lp0.eu>,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Hermann Pitton <hermann-pitton@arcor.de>,
+ Brian Marete <bgmarete@gmail.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 45/62] V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type
+Content-Disposition: inline; filename=v4l-saa7134-copy-tuner-data-earlier-to-avoid-overwriting-manual-tuner-type.patch
+Content-Length: 2722
+Lines: 66
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Simon Arlott <simon@fire.lp0.eu>
+
+V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type
+
+(cherry picked from commit d53687d1d22c3204394658a31654de2f1efb0e8f)
+
+Copy tuner data earlier in init to avoid overwriting manual tuner type
+
+When saa7134_board_init2 runs, it immediately overwrites the
+current value (set earlier from module parameter) of tuner_type
+with the static values, and then does autodetection. This patch
+moves the tuner_addr copy to earlier in saa7134_initdev and
+removes the tuner_type copy from saa7134_board_init2.
+
+Autodetection could still potentially change to the wrong tuner
+type, but it is now possible to override the default type for
+the card again.
+
+My card's tuner is configured with autodetection from eeprom,
+so I don't need to manually set the tuner. I've checked that
+the autodetection still works for my card.
+
+Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
+Reviewed-by: Hermann Pitton <hermann-pitton@arcor.de>
+Cc: Brian Marete <bgmarete@gmail.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/saa7134/saa7134-cards.c |    3 ---
+ drivers/media/video/saa7134/saa7134-core.c  |    5 +++--
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+--- a/drivers/media/video/saa7134/saa7134-cards.c
++++ b/drivers/media/video/saa7134/saa7134-cards.c
+@@ -5703,9 +5703,6 @@ int saa7134_board_init2(struct saa7134_d
+       unsigned char buf;
+       int board;
+-      dev->tuner_type = saa7134_boards[dev->board].tuner_type;
+-      dev->tuner_addr = saa7134_boards[dev->board].tuner_addr;
+-
+       switch (dev->board) {
+       case SAA7134_BOARD_BMK_MPEX_NOTUNER:
+       case SAA7134_BOARD_BMK_MPEX_TUNER:
+--- a/drivers/media/video/saa7134/saa7134-core.c
++++ b/drivers/media/video/saa7134/saa7134-core.c
+@@ -946,11 +946,12 @@ static int __devinit saa7134_initdev(str
+               dev->board = SAA7134_BOARD_UNKNOWN;
+       }
+       dev->autodetected = card[dev->nr] != dev->board;
+-      dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
++      dev->tuner_type = saa7134_boards[dev->board].tuner_type;
++      dev->tuner_addr = saa7134_boards[dev->board].tuner_addr;
+       dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
+       if (UNSET != tuner[dev->nr])
+               dev->tuner_type = tuner[dev->nr];
+-              printk(KERN_INFO "%s: subsystem: %04x:%04x, board: %s [card=%d,%s]\n",
++      printk(KERN_INFO "%s: subsystem: %04x:%04x, board: %s [card=%d,%s]\n",
+               dev->name,pci_dev->subsystem_vendor,
+               pci_dev->subsystem_device,saa7134_boards[dev->board].name,
+               dev->board, dev->autodetected ?
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233149.362563758@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:36 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Steven Toth <stoth@hauppauge.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 46/62] V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1
+Content-Disposition: inline; filename=v4l-cx23885-bugfix-for-concurrent-use-of-dev-video0-and-dev-video1.patch
+Content-Length: 1180
+Lines: 35
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Steven Toth <stoth@hauppauge.com>
+
+(cherry picked from commit 28901ab621bb56cd2aa9670dc7ce016ba80ec45c)
+
+V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1
+
+With the HVR1800, trying to use video0 and video1 simultaneously
+caused buffer corruption in the PCIe bridge. This fix reallocates
+video1 buffer locations to avoid the issue.
+
+Signed-off-by: Steven Toth <stoth@hauppauge.com>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx23885/cx23885-core.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/video/cx23885/cx23885-core.c
++++ b/drivers/media/video/cx23885/cx23885-core.c
+@@ -104,8 +104,8 @@ static struct sram_channel cx23887_sram_
+       [SRAM_CH03] = {
+               .name           = "TS1 B",
+               .cmds_start     = 0x100A0,
+-              .ctrl_start     = 0x10780,
+-              .cdt            = 0x10400,
++              .ctrl_start     = 0x10670,
++              .cdt            = 0x10810,
+               .fifo_start     = 0x5000,
+               .fifo_size      = 0x1000,
+               .ptr1_reg       = DMA3_PTR1,
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233149.535041895@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:37 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Steven Toth <stoth@hauppauge.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 47/62] DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default
+Content-Disposition: inline; filename=dvb-cx23885-ensure-pad_ctrl-is-always-reset-to-a-sensible-default.patch
+Content-Length: 1071
+Lines: 31
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Steven Toth <stoth@hauppauge.com>
+
+(cherry picked from commit ecda5966c90746a044ff68e78b1062adcddd9664)
+
+DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default
+
+PAD_CTRL controls TS1 and TS2 input and output states, if the
+register became corrupt the driver was never able to recover.
+
+Signed-off-by: Steven Toth <stoth@hauppauge.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx23885/cx23885-core.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/media/video/cx23885/cx23885-core.c
++++ b/drivers/media/video/cx23885/cx23885-core.c
+@@ -460,6 +460,7 @@ static void cx23885_reset(struct cx23885
+       cx_write(AUDIO_INT_INT_STAT, 0xffffffff);
+       cx_write(AUDIO_EXT_INT_STAT, 0xffffffff);
+       cx_write(CLK_DELAY, cx_read(CLK_DELAY) & 0x80000000);
++      cx_write(PAD_CTRL, 0x00500300);
+       mdelay(100);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:49 2008
+Message-Id: <20080730233149.695437979@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:38 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Steven Toth <stoth@hauppauge.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 48/62] DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream
+Content-Disposition: inline; filename=dvb-cx23885-dvb-transport-cards-using-dvb-port-vidb-ts1-did-not-stream.patch
+Content-Length: 1945
+Lines: 58
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Steven Toth <stoth@hauppauge.com>
+
+(cherry picked from commit 52ce27bfc4d302a3e28267a5820a8b031ceccee9)
+
+DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream
+
+Certain DVB cards that have demodulators on TS1/VIDB were not
+streaming packets.
+
+This ensure the pin directions on PAD_CTRL are set correctly,
+solving the issue.
+
+Signed-off-by: Steven Toth <stoth@hauppauge.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx23885/cx23885-core.c |   18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/video/cx23885/cx23885-core.c
++++ b/drivers/media/video/cx23885/cx23885-core.c
+@@ -1084,7 +1084,21 @@ static int cx23885_start_dma(struct cx23
+       cx_write(port->reg_gpcnt_ctl, 3);
+       q->count = 1;
+-      if (cx23885_boards[dev->board].portb & CX23885_MPEG_ENCODER) {
++      /* Set VIDB pins to input */
++      if (cx23885_boards[dev->board].portb == CX23885_MPEG_DVB) {
++              reg = cx_read(PAD_CTRL);
++              reg &= ~0x3; /* Clear TS1_OE & TS1_SOP_OE */
++              cx_write(PAD_CTRL, reg);
++      }
++
++      /* Set VIDC pins to input */
++      if (cx23885_boards[dev->board].portc == CX23885_MPEG_DVB) {
++              reg = cx_read(PAD_CTRL);
++              reg &= ~0x4; /* Clear TS2_SOP_OE */
++              cx_write(PAD_CTRL, reg);
++      }
++
++      if (cx23885_boards[dev->board].portb == CX23885_MPEG_ENCODER) {
+               reg = cx_read(PAD_CTRL);
+               reg = reg & ~0x1;    /* Clear TS1_OE */
+@@ -1134,7 +1148,7 @@ static int cx23885_stop_dma(struct cx238
+       cx_clear(port->reg_ts_int_msk, port->ts_int_msk_val);
+       cx_clear(port->reg_dma_ctl, port->dma_ctl_val);
+-      if (cx23885_boards[dev->board].portb & CX23885_MPEG_ENCODER) {
++      if (cx23885_boards[dev->board].portb == CX23885_MPEG_ENCODER) {
+               reg = cx_read(PAD_CTRL);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233149.869882496@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:39 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Steven Toth <stoth@hauppauge.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 49/62] DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues
+Content-Disposition: inline; filename=dvb-cx23885-reallocated-the-sram-to-avoid-concurrent-vidb-c-issues.patch
+Content-Length: 2103
+Lines: 66
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Steven Toth <stoth@hauppauge.com>
+
+(cherry picked from commit d8d12b4367e2e759f65c5f9dcb94d21ec237bbc5)
+
+DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues
+
+This may be cx23885 chip specific and may not work on the cx23887.
+Analog and mpeg encoder streaming are still to be tested.
+
+Signed-off-by: Steven Toth <stoth@hauppauge.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx23885/cx23885-core.c |   15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+--- a/drivers/media/video/cx23885/cx23885-core.c
++++ b/drivers/media/video/cx23885/cx23885-core.c
+@@ -80,8 +80,8 @@ static struct sram_channel cx23887_sram_
+       [SRAM_CH01] = {
+               .name           = "VID A",
+               .cmds_start     = 0x10000,
+-              .ctrl_start     = 0x105b0,
+-              .cdt            = 0x107b0,
++              .ctrl_start     = 0x10380,
++              .cdt            = 0x104c0,
+               .fifo_start     = 0x40,
+               .fifo_size      = 0x2800,
+               .ptr1_reg       = DMA1_PTR1,
+@@ -104,8 +104,8 @@ static struct sram_channel cx23887_sram_
+       [SRAM_CH03] = {
+               .name           = "TS1 B",
+               .cmds_start     = 0x100A0,
+-              .ctrl_start     = 0x10670,
+-              .cdt            = 0x10810,
++              .ctrl_start     = 0x10400,
++              .cdt            = 0x10580,
+               .fifo_start     = 0x5000,
+               .fifo_size      = 0x1000,
+               .ptr1_reg       = DMA3_PTR1,
+@@ -140,8 +140,8 @@ static struct sram_channel cx23887_sram_
+       [SRAM_CH06] = {
+               .name           = "TS2 C",
+               .cmds_start     = 0x10140,
+-              .ctrl_start     = 0x10680,
+-              .cdt            = 0x108d0,
++              .ctrl_start     = 0x10440,
++              .cdt            = 0x105e0,
+               .fifo_start     = 0x6000,
+               .fifo_size      = 0x1000,
+               .ptr1_reg       = DMA5_PTR1,
+@@ -1043,6 +1043,9 @@ static int cx23885_start_dma(struct cx23
+       dprintk(1, "%s() w: %d, h: %d, f: %d\n", __func__,
+               buf->vb.width, buf->vb.height, buf->vb.field);
++      /* Stop the fifo and risc engine for this port */
++      cx_clear(port->reg_dma_ctl, port->dma_ctl_val);
++
+       /* setup fifo + format */
+       cx23885_sram_channel_setup(dev,
+                                  &dev->sram_channels[ port->sram_chno ],
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233150.035435450@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:40 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>,
+ Steven Toth <stoth@hauppauge.com>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>
+Subject: [patch 50/62] DVB: cx23885: SRAM changes for the 885 and 887 silicon parts
+Content-Disposition: inline; filename=dvb-cx23885-sram-changes-for-the-885-and-887-silicon-parts.patch
+Content-Length: 4480
+Lines: 174
+
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Steven Toth <stoth@hauppauge.com>
+
+(cherry picked from commit 7e994302ed3fc6d209ce247ad5b6d9c2499bf7c2)
+
+DVB: cx23885: SRAM changes for the 885 and 887 silicon parts
+
+In a previous patch I merged both memory maps into a single struct,
+believing that they could be combined. We've since found problems
+with streaming multiple channels on the 885. I'm restoring the
+multiple memory map structs - in line with the windows driver.
+
+Signed-off-by: Steven Toth <stoth@hauppauge.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx23885/cx23885-core.c |  116 ++++++++++++++++++++++++++++-
+ 1 file changed, 114 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/video/cx23885/cx23885-core.c
++++ b/drivers/media/video/cx23885/cx23885-core.c
+@@ -76,7 +76,7 @@ LIST_HEAD(cx23885_devlist);
+  * 0x00010ea0 0x00010xxx Free
+  */
+-static struct sram_channel cx23887_sram_channels[] = {
++static struct sram_channel cx23885_sram_channels[] = {
+       [SRAM_CH01] = {
+               .name           = "VID A",
+               .cmds_start     = 0x10000,
+@@ -187,6 +187,117 @@ static struct sram_channel cx23887_sram_
+       },
+ };
++static struct sram_channel cx23887_sram_channels[] = {
++      [SRAM_CH01] = {
++              .name           = "VID A",
++              .cmds_start     = 0x10000,
++              .ctrl_start     = 0x105b0,
++              .cdt            = 0x107b0,
++              .fifo_start     = 0x40,
++              .fifo_size      = 0x2800,
++              .ptr1_reg       = DMA1_PTR1,
++              .ptr2_reg       = DMA1_PTR2,
++              .cnt1_reg       = DMA1_CNT1,
++              .cnt2_reg       = DMA1_CNT2,
++      },
++      [SRAM_CH02] = {
++              .name           = "ch2",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA2_PTR1,
++              .ptr2_reg       = DMA2_PTR2,
++              .cnt1_reg       = DMA2_CNT1,
++              .cnt2_reg       = DMA2_CNT2,
++      },
++      [SRAM_CH03] = {
++              .name           = "TS1 B",
++              .cmds_start     = 0x100A0,
++              .ctrl_start     = 0x10630,
++              .cdt            = 0x10870,
++              .fifo_start     = 0x5000,
++              .fifo_size      = 0x1000,
++              .ptr1_reg       = DMA3_PTR1,
++              .ptr2_reg       = DMA3_PTR2,
++              .cnt1_reg       = DMA3_CNT1,
++              .cnt2_reg       = DMA3_CNT2,
++      },
++      [SRAM_CH04] = {
++              .name           = "ch4",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA4_PTR1,
++              .ptr2_reg       = DMA4_PTR2,
++              .cnt1_reg       = DMA4_CNT1,
++              .cnt2_reg       = DMA4_CNT2,
++      },
++      [SRAM_CH05] = {
++              .name           = "ch5",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA5_PTR1,
++              .ptr2_reg       = DMA5_PTR2,
++              .cnt1_reg       = DMA5_CNT1,
++              .cnt2_reg       = DMA5_CNT2,
++      },
++      [SRAM_CH06] = {
++              .name           = "TS2 C",
++              .cmds_start     = 0x10140,
++              .ctrl_start     = 0x10670,
++              .cdt            = 0x108d0,
++              .fifo_start     = 0x6000,
++              .fifo_size      = 0x1000,
++              .ptr1_reg       = DMA5_PTR1,
++              .ptr2_reg       = DMA5_PTR2,
++              .cnt1_reg       = DMA5_CNT1,
++              .cnt2_reg       = DMA5_CNT2,
++      },
++      [SRAM_CH07] = {
++              .name           = "ch7",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA6_PTR1,
++              .ptr2_reg       = DMA6_PTR2,
++              .cnt1_reg       = DMA6_CNT1,
++              .cnt2_reg       = DMA6_CNT2,
++      },
++      [SRAM_CH08] = {
++              .name           = "ch8",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA7_PTR1,
++              .ptr2_reg       = DMA7_PTR2,
++              .cnt1_reg       = DMA7_CNT1,
++              .cnt2_reg       = DMA7_CNT2,
++      },
++      [SRAM_CH09] = {
++              .name           = "ch9",
++              .cmds_start     = 0x0,
++              .ctrl_start     = 0x0,
++              .cdt            = 0x0,
++              .fifo_start     = 0x0,
++              .fifo_size      = 0x0,
++              .ptr1_reg       = DMA8_PTR1,
++              .ptr2_reg       = DMA8_PTR2,
++              .cnt1_reg       = DMA8_CNT1,
++              .cnt2_reg       = DMA8_CNT2,
++      },
++};
++
+ static int cx23885_risc_decode(u32 risc)
+ {
+       static char *instr[16] = {
+@@ -626,7 +737,6 @@ static int cx23885_dev_setup(struct cx23
+       atomic_inc(&dev->refcount);
+       dev->nr = cx23885_devcount++;
+-      dev->sram_channels = cx23887_sram_channels;
+       sprintf(dev->name, "cx23885[%d]", dev->nr);
+       mutex_lock(&devlist);
+@@ -638,11 +748,13 @@ static int cx23885_dev_setup(struct cx23
+               dev->bridge = CX23885_BRIDGE_887;
+               /* Apply a sensible clock frequency for the PCIe bridge */
+               dev->clk_freq = 25000000;
++              dev->sram_channels = cx23887_sram_channels;
+       } else
+       if(dev->pci->device == 0x8852) {
+               dev->bridge = CX23885_BRIDGE_885;
+               /* Apply a sensible clock frequency for the PCIe bridge */
+               dev->clk_freq = 28000000;
++              dev->sram_channels = cx23885_sram_channels;
+       } else
+               BUG();
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233150.222899568@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:41 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ Oliver Pinter <oliver.pntr@gmail.com>
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-mm@kvack.org,
+ Jack Steiner <steiner@sgi.com>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 51/62] x86: fix kernel_physical_mapping_init() for large x86 systems
+Content-Disposition: inline; filename=x86-fix-kernel_physical_mapping_init-for-large-x86-systems.patch
+Content-Length: 1016
+Lines: 32
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Ingo Molnar <mingo@elte.hu>
+
+based on e22146e610bb7aed63282148740ab1d1b91e1d90 upstream
+
+Fix bug in kernel_physical_mapping_init() that causes kernel
+page table to be built incorrectly for systems with greater
+than 512GB of memory.
+
+Signed-off-by: Jack Steiner <steiner@sgi.com>
+Cc: linux-mm@kvack.org
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Cc: Oliver Pinter <oliver.pntr@gmail.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/mm/init_64.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/mm/init_64.c
++++ b/arch/x86/mm/init_64.c
+@@ -579,7 +579,7 @@ unsigned long __init_refok init_memory_m
+               else
+                       pud = alloc_low_page(&pud_phys);
+-              next = start + PGDIR_SIZE;
++              next = (start + PGDIR_SIZE) & PGDIR_MASK;
+               if (next > end)
+                       next = end;
+               last_map_addr = phys_pud_init(pud, __pa(start), __pa(next));
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233150.386263976@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:42 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Eric Sandeen <sandeen@redhat.com>,
+ Michael Halcrow <mhalcrow@us.ibm.com>,
+ Rik van Riel <riel@redhat.com>
+Subject: [patch 52/62] eCryptfs: use page_alloc not kmalloc to get a page of memory
+Content-Disposition: inline; filename=ecryptfs-use-page_alloc-not-kmalloc-to-get-a-page-of-memory.patch
+Content-Length: 3623
+Lines: 114
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Eric Sandeen <sandeen@redhat.com>
+
+commit 7fcba054373d5dfc43d26e243a5c9b92069972ee upstream
+Date: Mon, 28 Jul 2008 15:46:39 -0700
+Subject: [patch 52/62] eCryptfs: use page_alloc not kmalloc to get a page of memory
+
+With SLUB debugging turned on in 2.6.26, I was getting memory corruption
+when testing eCryptfs.  The root cause turned out to be that eCryptfs was
+doing kmalloc(PAGE_CACHE_SIZE); virt_to_page() and treating that as a nice
+page-aligned chunk of memory.  But at least with SLUB debugging on, this
+is not always true, and the page we get from virt_to_page does not
+necessarily match the PAGE_CACHE_SIZE worth of memory we got from kmalloc.
+
+My simple testcase was 2 loops doing "rm -f fileX; cp /tmp/fileX ." for 2
+different multi-megabyte files.  With this change I no longer see the
+corruption.
+
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
+Acked-by: Rik van Riel <riel@redhat.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/ecryptfs/crypto.c |   30 ++++++++++++++++++------------
+ 1 file changed, 18 insertions(+), 12 deletions(-)
+
+--- a/fs/ecryptfs/crypto.c
++++ b/fs/ecryptfs/crypto.c
+@@ -474,8 +474,8 @@ int ecryptfs_encrypt_page(struct page *p
+ {
+       struct inode *ecryptfs_inode;
+       struct ecryptfs_crypt_stat *crypt_stat;
+-      char *enc_extent_virt = NULL;
+-      struct page *enc_extent_page;
++      char *enc_extent_virt;
++      struct page *enc_extent_page = NULL;
+       loff_t extent_offset;
+       int rc = 0;
+@@ -491,14 +491,14 @@ int ecryptfs_encrypt_page(struct page *p
+                              page->index);
+               goto out;
+       }
+-      enc_extent_virt = kmalloc(PAGE_CACHE_SIZE, GFP_USER);
+-      if (!enc_extent_virt) {
++      enc_extent_page = alloc_page(GFP_USER);
++      if (!enc_extent_page) {
+               rc = -ENOMEM;
+               ecryptfs_printk(KERN_ERR, "Error allocating memory for "
+                               "encrypted extent\n");
+               goto out;
+       }
+-      enc_extent_page = virt_to_page(enc_extent_virt);
++      enc_extent_virt = kmap(enc_extent_page);
+       for (extent_offset = 0;
+            extent_offset < (PAGE_CACHE_SIZE / crypt_stat->extent_size);
+            extent_offset++) {
+@@ -526,7 +526,10 @@ int ecryptfs_encrypt_page(struct page *p
+               }
+       }
+ out:
+-      kfree(enc_extent_virt);
++      if (enc_extent_page) {
++              kunmap(enc_extent_page);
++              __free_page(enc_extent_page);
++      }
+       return rc;
+ }
+@@ -608,8 +611,8 @@ int ecryptfs_decrypt_page(struct page *p
+ {
+       struct inode *ecryptfs_inode;
+       struct ecryptfs_crypt_stat *crypt_stat;
+-      char *enc_extent_virt = NULL;
+-      struct page *enc_extent_page;
++      char *enc_extent_virt;
++      struct page *enc_extent_page = NULL;
+       unsigned long extent_offset;
+       int rc = 0;
+@@ -626,14 +629,14 @@ int ecryptfs_decrypt_page(struct page *p
+                              page->index);
+               goto out;
+       }
+-      enc_extent_virt = kmalloc(PAGE_CACHE_SIZE, GFP_USER);
+-      if (!enc_extent_virt) {
++      enc_extent_page = alloc_page(GFP_USER);
++      if (!enc_extent_page) {
+               rc = -ENOMEM;
+               ecryptfs_printk(KERN_ERR, "Error allocating memory for "
+                               "encrypted extent\n");
+               goto out;
+       }
+-      enc_extent_page = virt_to_page(enc_extent_virt);
++      enc_extent_virt = kmap(enc_extent_page);
+       for (extent_offset = 0;
+            extent_offset < (PAGE_CACHE_SIZE / crypt_stat->extent_size);
+            extent_offset++) {
+@@ -661,7 +664,10 @@ int ecryptfs_decrypt_page(struct page *p
+               }
+       }
+ out:
+-      kfree(enc_extent_virt);
++      if (enc_extent_page) {
++              kunmap(enc_extent_page);
++              __free_page(enc_extent_page);
++      }
+       return rc;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233150.551934055@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:43 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jeff Dike <jdike@linux.intel.com>
+Subject: [patch 53/62] UML - Fix boot crash
+Content-Disposition: inline; filename=uml-fix-boot-crash.patch
+Content-Length: 1335
+Lines: 46
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jeff Dike <jdike@addtoit.com>
+
+commit 7c1fed03b9fa32d4323d5caa6a9c7dcdd7eba767 upstream
+
+My copying of linux/init.h didn't go far enough.  The definition of
+__used singled out gcc minor version 3, but didn't care what the major
+version was.  This broke when unit-at-a-time was added and gcc started
+throwing out initcalls.
+
+This results in an early boot crash when ptrace tries to initialize a
+process with an empty, uninitialized register set.
+
+Signed-off-by: Jeff Dike <jdike@linux.intel.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/um/include/init.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/arch/um/include/init.h
++++ b/arch/um/include/init.h
+@@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void);
+ # define __section(S) __attribute__ ((__section__(#S)))
+ #endif
++#if __GNUC__ == 3
++
+ #if __GNUC_MINOR__ >= 3
+ # define __used                       __attribute__((__used__))
+ #else
+@@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void);
+ #endif
+ #else
++#if __GNUC__ == 4
++# define __used                       __attribute__((__used__))
++#endif
++#endif
++
++#else
+ #include <linux/compiler.h>
+ #endif
+ /* These are for everybody (although not all archs will actually
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:50 2008
+Message-Id: <20080730233150.770974045@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:44 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jesse Brandeburg <jesse.brandeburg@intel.com>,
+ Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
+ Jeff Garzik <jgarzik@redhat.com>
+Subject: [patch 54/62] ixgbe: remove device ID for unsupported device
+Content-Disposition: inline; filename=ixgbe-remove-device-id-for-unsupported-device.patch
+Content-Length: 1204
+Lines: 32
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Jesse Brandeburg <jesse.brandeburg@intel.com>
+
+commit bb5d10ac8cc315d53306963001fe650d88a1cbb2 upstream
+
+The ixgbe driver was untested with device ID 8086:10c8 but still advertises
+support.  Currently if this device is present in the system when the driver
+is loaded, the system will panic.
+Remove this device ID until full support can be tested with available
+hardware.  This patch is necessary for 2.6.24, 2.6.25 and 2.6.26
+
+Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/ixgbe/ixgbe_main.c |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/net/ixgbe/ixgbe_main.c
++++ b/drivers/net/ixgbe/ixgbe_main.c
+@@ -70,8 +70,6 @@ static struct pci_device_id ixgbe_pci_tb
+        board_82598 },
+       {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AF_SINGLE_PORT),
+        board_82598 },
+-      {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598AT_DUAL_PORT),
+-       board_82598 },
+       {PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82598EB_CX4),
+        board_82598 },
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233150.919772566@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:45 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Luotao Fu <l.fu@pengutronix.de>,
+ David Brownell <dbrownell@users.sourceforge.net>
+Subject: [patch 55/62] mpc52xx_psc_spi: fix block transfer
+Content-Disposition: inline; filename=mpc52xx_psc_spi-fix-block-transfer.patch
+Content-Length: 2124
+Lines: 66
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Luotao Fu <l.fu@pengutronix.de>
+
+commit 9a7867e1b34c3575e7e76a05c0c54c6edbdae2a4 upstream
+
+The block transfer routine in the mpc52xx psc spi driver misinterpret
+the datasheet.  According to the processor datasheet the chipselect is
+held as long as the EOF is not written.
+
+Theoretically blocks of any sizes can be transferred in this way.  The
+old routine however writes an EOF after every word, which has the size
+of size_of_word.  This makes the transfer slow.
+
+Also fixed some duplicate code.
+
+Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/spi/mpc52xx_psc_spi.c |   22 +++++++---------------
+ 1 file changed, 7 insertions(+), 15 deletions(-)
+
+--- a/drivers/spi/mpc52xx_psc_spi.c
++++ b/drivers/spi/mpc52xx_psc_spi.c
+@@ -148,7 +148,6 @@ static int mpc52xx_psc_spi_transfer_rxtx
+       unsigned rfalarm;
+       unsigned send_at_once = MPC52xx_PSC_BUFSIZE;
+       unsigned recv_at_once;
+-      unsigned bpw = mps->bits_per_word / 8;
+       if (!t->tx_buf && !t->rx_buf && t->len)
+               return -EINVAL;
+@@ -164,22 +163,15 @@ static int mpc52xx_psc_spi_transfer_rxtx
+               }
+               dev_dbg(&spi->dev, "send %d bytes...\n", send_at_once);
+-              if (tx_buf) {
+-                      for (; send_at_once; sb++, send_at_once--) {
+-                              /* set EOF flag */
+-                              if (mps->bits_per_word
+-                                              && (sb + 1) % bpw == 0)
+-                                      out_8(&psc->ircr2, 0x01);
++              for (; send_at_once; sb++, send_at_once--) {
++                      /* set EOF flag before the last word is sent */
++                      if (send_at_once == 1)
++                              out_8(&psc->ircr2, 0x01);
++
++                      if (tx_buf)
+                               out_8(&psc->mpc52xx_psc_buffer_8, tx_buf[sb]);
+-                      }
+-              } else {
+-                      for (; send_at_once; sb++, send_at_once--) {
+-                              /* set EOF flag */
+-                              if (mps->bits_per_word
+-                                              && ((sb + 1) % bpw) == 0)
+-                                      out_8(&psc->ircr2, 0x01);
++                      else
+                               out_8(&psc->mpc52xx_psc_buffer_8, 0);
+-                      }
+               }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233151.070389125@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:46 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hugh Dickins <hugh@veritas.com>
+Subject: [patch 56/62] tmpfs: fix kernel BUG in shmem_delete_inode
+Content-Disposition: inline; filename=tmpfs-fix-kernel-bug-in-shmem_delete_inode.patch
+Content-Length: 2095
+Lines: 53
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Hugh Dickins <hugh@veritas.com>
+
+commit 14fcc23fdc78e9d32372553ccf21758a9bd56fa1 upstream
+
+SuSE's insserve initscript ordering program hits kernel BUG at mm/shmem.c:814
+on 2.6.26.  It's using posix_fadvise on directories, and the shmem_readpage
+method added in 2.6.23 is letting POSIX_FADV_WILLNEED allocate useless pages
+to a tmpfs directory, incrementing i_blocks count but never decrementing it.
+
+Fix this by assigning shmem_aops (pointing to readpage and writepage and
+set_page_dirty) only when it's needed, on a regular file or a long symlink.
+
+Many thanks to Kel for outstanding bugreport and steps to reproduce it.
+
+Reported-by: Kel Modderman <kel@otaku42.de>
+Tested-by: Kel Modderman <kel@otaku42.de>
+Signed-off-by: Hugh Dickins <hugh@veritas.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/shmem.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/mm/shmem.c
++++ b/mm/shmem.c
+@@ -1503,7 +1503,6 @@ shmem_get_inode(struct super_block *sb, 
+               inode->i_uid = current->fsuid;
+               inode->i_gid = current->fsgid;
+               inode->i_blocks = 0;
+-              inode->i_mapping->a_ops = &shmem_aops;
+               inode->i_mapping->backing_dev_info = &shmem_backing_dev_info;
+               inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+               inode->i_generation = get_seconds();
+@@ -1518,6 +1517,7 @@ shmem_get_inode(struct super_block *sb, 
+                       init_special_inode(inode, mode, dev);
+                       break;
+               case S_IFREG:
++                      inode->i_mapping->a_ops = &shmem_aops;
+                       inode->i_op = &shmem_inode_operations;
+                       inode->i_fop = &shmem_file_operations;
+                       mpol_shared_policy_init(&info->policy,
+@@ -1907,6 +1907,7 @@ static int shmem_symlink(struct inode *d
+                       return error;
+               }
+               unlock_page(page);
++              inode->i_mapping->a_ops = &shmem_aops;
+               inode->i_op = &shmem_symlink_inode_operations;
+               kaddr = kmap_atomic(page, KM_USER0);
+               memcpy(kaddr, symname, len);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233151.253299313@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:47 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
+ "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
+Subject: [patch 57/62] markers: fix markers read barrier for multiple probes
+Content-Disposition: inline; filename=markers-fix-markers-read-barrier-for-multiple-probes.patch
+Content-Length: 2616
+Lines: 76
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
+
+commit 5def9a3a22e09c99717f41ab7f07ec9e1a1f3ec8 upstream
+
+Paul pointed out two incorrect read barriers in the marker handler code in
+the path where multiple probes are connected.  Those are ordering reads of
+"ptype" (single or multi probe marker), "multi" array pointer, and "multi"
+array data access.
+
+It should be ordered like this :
+
+read ptype
+smp_rmb()
+read multi array pointer
+smp_read_barrier_depends()
+access data referenced by multi array pointer
+
+The code with a single probe connected (optimized case, does not have to
+allocate an array) has correct memory ordering.
+
+It applies to kernel 2.6.26.x, 2.6.25.x and linux-next.
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
+Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/marker.c |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/kernel/marker.c
++++ b/kernel/marker.c
+@@ -127,6 +127,11 @@ void marker_probe_cb(const struct marker
+               struct marker_probe_closure *multi;
+               int i;
+               /*
++               * Read mdata->ptype before mdata->multi.
++               */
++              smp_rmb();
++              multi = mdata->multi;
++              /*
+                * multi points to an array, therefore accessing the array
+                * depends on reading multi. However, even in this case,
+                * we must insure that the pointer is read _before_ the array
+@@ -134,7 +139,6 @@ void marker_probe_cb(const struct marker
+                * in the fast path, so put the explicit barrier here.
+                */
+               smp_read_barrier_depends();
+-              multi = mdata->multi;
+               for (i = 0; multi[i].func; i++) {
+                       va_start(args, fmt);
+                       multi[i].func(multi[i].probe_private, call_private, fmt,
+@@ -177,6 +181,11 @@ void marker_probe_cb_noarg(const struct 
+               struct marker_probe_closure *multi;
+               int i;
+               /*
++               * Read mdata->ptype before mdata->multi.
++               */
++              smp_rmb();
++              multi = mdata->multi;
++              /*
+                * multi points to an array, therefore accessing the array
+                * depends on reading multi. However, even in this case,
+                * we must insure that the pointer is read _before_ the array
+@@ -184,7 +193,6 @@ void marker_probe_cb_noarg(const struct 
+                * in the fast path, so put the explicit barrier here.
+                */
+               smp_read_barrier_depends();
+-              multi = mdata->multi;
+               for (i = 0; multi[i].func; i++)
+                       multi[i].func(multi[i].probe_private, call_private, fmt,
+                               &args);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233151.416621467@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:48 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alex Nixon <Alex.Nixon@citrix.com>,
+ Andi Kleen <andi@firstfloor.org>,
+ Jeremy Fitzhardinge <jeremy@goop.org>,
+ Peter Zijlstra <peterz@infradead.org>,
+ Ingo Molnar <mingo@elte.hu>,
+ Ian Campbell <Ian.Campbell@eu.citrix.com>,
+ Alexander Viro <viro@zeniv.linux.org.uk>,
+ Hugh Dickins <hugh@veritas.com>,
+ Jens Axboe <jens.axboe@oracle.com>
+Subject: [patch 58/62] VFS: increase pseudo-filesystem block size to PAGE_SIZE
+Content-Disposition: inline; filename=vfs-increase-pseudo-filesystem-block-size-to-page_size.patch
+Content-Length: 1611
+Lines: 49
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Alex Nixon <alex.nixon@citrix.com>
+
+commit 3971e1a917548977cff71418a7c3575ffbc9571f upstream
+
+This commit:
+
+    commit ba52de123d454b57369f291348266d86f4b35070
+    Author: Theodore Ts'o <tytso@mit.edu>
+    Date:   Wed Sep 27 01:50:49 2006 -0700
+
+        [PATCH] inode-diet: Eliminate i_blksize from the inode structure
+
+caused the block size used by pseudo-filesystems to decrease from
+PAGE_SIZE to 1024 leading to a doubling of the number of context switches
+during a kernbench run.
+
+Signed-off-by: Alex Nixon <Alex.Nixon@citrix.com>
+Cc: Andi Kleen <andi@firstfloor.org>
+Cc: Jeremy Fitzhardinge <jeremy@goop.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Ian Campbell <Ian.Campbell@eu.citrix.com>
+Cc: "Theodore Ts'o" <tytso@mit.edu>
+Cc: Alexander Viro <viro@zeniv.linux.org.uk>
+Cc: Hugh Dickins <hugh@veritas.com>
+Cc: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/libfs.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/fs/libfs.c
++++ b/fs/libfs.c
+@@ -216,8 +216,8 @@ int get_sb_pseudo(struct file_system_typ
+       s->s_flags = MS_NOUSER;
+       s->s_maxbytes = ~0ULL;
+-      s->s_blocksize = 1024;
+-      s->s_blocksize_bits = 10;
++      s->s_blocksize = PAGE_SIZE;
++      s->s_blocksize_bits = PAGE_SHIFT;
+       s->s_magic = magic;
+       s->s_op = ops ? ops : &simple_super_operations;
+       s->s_time_gran = 1;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233151.604171281@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:49 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Thomas Renninger <trenn@suse.de>,
+ Andi Kleen <andi@firstfloor.org>,
+ Len Brown <lenb@kernel.org>,
+ Dave Jones <davej@codemonkey.org.uk>,
+ Ingo Molnar <mingo@elte.hu>,
+ Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
+Subject: [patch 59/62] cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already
+Content-Disposition: inline; filename=cpufreq-acpi-only-call-_ppc-after-cpufreq-acpi-init-funcs-got-called-already.patch
+Content-Length: 3693
+Lines: 107
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Thomas Renninger <trenn@suse.de>
+
+commit a1531acd43310a7e4571d52e8846640667f4c74b upstream
+
+Ingo Molnar provided a fix to not call _PPC at processor driver
+initialization time in "[PATCH] ACPI: fix cpufreq regression" (git
+commit e4233dec749a3519069d9390561b5636a75c7579)
+
+But it can still happen that _PPC is called at processor driver
+initialization time.
+
+This patch should make sure that this is not possible anymore.
+
+Signed-off-by: Thomas Renninger <trenn@suse.de>
+Cc: Andi Kleen <andi@firstfloor.org>
+Cc: Len Brown <lenb@kernel.org>
+Cc: Dave Jones <davej@codemonkey.org.uk>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c |    6 ++++++
+ drivers/acpi/processor_perflib.c              |   15 +++++++++++++--
+ drivers/cpufreq/cpufreq.c                     |    3 +++
+ include/linux/cpufreq.h                       |    1 +
+ 4 files changed, 23 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
++++ b/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
+@@ -96,6 +96,12 @@ static int pmi_notifier(struct notifier_
+       struct cpufreq_frequency_table *cbe_freqs;
+       u8 node;
++      /* Should this really be called for CPUFREQ_ADJUST, CPUFREQ_INCOMPATIBLE
++       * and CPUFREQ_NOTIFY policy events?)
++       */
++      if (event == CPUFREQ_START)
++              return 0;
++
+       cbe_freqs = cpufreq_frequency_get_table(policy->cpu);
+       node = cbe_cpu_to_node(policy->cpu);
+--- a/drivers/acpi/processor_perflib.c
++++ b/drivers/acpi/processor_perflib.c
+@@ -64,7 +64,13 @@ static DEFINE_MUTEX(performance_mutex);
+  * policy is adjusted accordingly.
+  */
+-static unsigned int ignore_ppc = 0;
++/* ignore_ppc:
++ * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called yet
++ *       ignore _PPC
++ *  0 -> cpufreq low level drivers initialized -> consider _PPC values
++ *  1 -> ignore _PPC totally -> forced by user through boot param
++ */
++static unsigned int ignore_ppc = -1;
+ module_param(ignore_ppc, uint, 0644);
+ MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \
+                "limited by BIOS, this should help");
+@@ -72,7 +78,7 @@ MODULE_PARM_DESC(ignore_ppc, "If the fre
+ #define PPC_REGISTERED   1
+ #define PPC_IN_USE       2
+-static int acpi_processor_ppc_status = 0;
++static int acpi_processor_ppc_status;
+ static int acpi_processor_ppc_notifier(struct notifier_block *nb,
+                                      unsigned long event, void *data)
+@@ -81,6 +87,11 @@ static int acpi_processor_ppc_notifier(s
+       struct acpi_processor *pr;
+       unsigned int ppc = 0;
++      if (event == CPUFREQ_START && ignore_ppc <= 0) {
++              ignore_ppc = 0;
++              return 0;
++      }
++
+       if (ignore_ppc)
+               return 0;
+--- a/drivers/cpufreq/cpufreq.c
++++ b/drivers/cpufreq/cpufreq.c
+@@ -825,6 +825,9 @@ static int cpufreq_add_dev(struct sys_de
+       policy->user_policy.min = policy->cpuinfo.min_freq;
+       policy->user_policy.max = policy->cpuinfo.max_freq;
++      blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
++                                   CPUFREQ_START, policy);
++
+ #ifdef CONFIG_SMP
+ #ifdef CONFIG_HOTPLUG_CPU
+--- a/include/linux/cpufreq.h
++++ b/include/linux/cpufreq.h
+@@ -109,6 +109,7 @@ struct cpufreq_policy {
+ #define CPUFREQ_ADJUST                (0)
+ #define CPUFREQ_INCOMPATIBLE  (1)
+ #define CPUFREQ_NOTIFY                (2)
++#define CPUFREQ_START         (3)
+ #define CPUFREQ_SHARED_TYPE_NONE (0) /* None */
+ #define CPUFREQ_SHARED_TYPE_HW         (1) /* HW does needed coordination */
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:51 2008
+Message-Id: <20080730233151.757380139@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:50 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Julia Lawall <julia@diku.dk>,
+ Michael Buesch <mb@bu3sch.de>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 60/62] b43legacy: Release mutex in error handling code
+Content-Disposition: inline; filename=b43legacy-release-mutex-in-error-handling-code.patch
+Content-Length: 1225
+Lines: 54
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Julia Lawall <julia@diku.dk>
+
+commit 4104863fb4a724723d1d5f3cba9d3c5084087e45 upstream
+
+The mutex is released on a successful return, so it would seem that it
+should be released on an error return as well.
+
+The semantic patch finds this problem is as follows:
+(http://www.emn.fr/x-info/coccinelle/)
+
+// <smpl>
+@@
+expression l;
+@@
+
+mutex_lock(l);
+.. when != mutex_unlock(l)
+    when any
+    when strict
+(
+if (...) { ... when != mutex_unlock(l)
++   mutex_unlock(l);
+    return ...;
+}
+|
+mutex_unlock(l);
+)
+// </smpl>
+
+Signed-off-by: Julia Lawall <julia@diku.dk>
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43legacy/main.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/b43legacy/main.c
++++ b/drivers/net/wireless/b43legacy/main.c
+@@ -3862,10 +3862,10 @@ static int b43legacy_resume(struct ssb_d
+                       goto out;
+               }
+       }
+-      mutex_unlock(&wl->mutex);
+       b43legacydbg(wl, "Device resumed.\n");
+ out:
++      mutex_unlock(&wl->mutex);
+       return err;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:52 2008
+Message-Id: <20080730233151.930190300@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:51 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Pavel Roskin <proski@gnu.org>,
+ Nick Kossifidis <mickflemm@gmail.com>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 61/62] ath5k: dont enable MSI, we cannot handle it yet
+Content-Disposition: inline; filename=ath5k-don-t-enable-msi-we-cannot-handle-it-yet.patch
+Content-Length: 1445
+Lines: 47
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Pavel Roskin <proski@gnu.org>
+
+commit 256b152b005e319f985f50f2a910a75ba0def74f upstream
+
+MSI is a nice thing, but we cannot enable it without changing the
+interrupt handler.  If we do it, we break MSI capable hardware,
+specifically AR5006 chipset.
+
+Signed-off-by: Pavel Roskin <proski@gnu.org>
+Acked-by: Nick Kossifidis <mickflemm@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath5k/base.c |    5 -----
+ 1 file changed, 5 deletions(-)
+
+--- a/drivers/net/wireless/ath5k/base.c
++++ b/drivers/net/wireless/ath5k/base.c
+@@ -487,9 +487,6 @@ ath5k_pci_probe(struct pci_dev *pdev,
+       /* Set private data */
+       pci_set_drvdata(pdev, hw);
+-      /* Enable msi for devices that support it */
+-      pci_enable_msi(pdev);
+-
+       /* Setup interrupt handler */
+       ret = request_irq(pdev->irq, ath5k_intr, IRQF_SHARED, "ath", sc);
+       if (ret) {
+@@ -567,7 +564,6 @@ err_ah:
+ err_irq:
+       free_irq(pdev->irq, sc);
+ err_free:
+-      pci_disable_msi(pdev);
+       ieee80211_free_hw(hw);
+ err_map:
+       pci_iounmap(pdev, mem);
+@@ -589,7 +585,6 @@ ath5k_pci_remove(struct pci_dev *pdev)
+       ath5k_detach(pdev, hw);
+       ath5k_hw_detach(sc->ah);
+       free_irq(pdev->irq, sc);
+-      pci_disable_msi(pdev);
+       pci_iounmap(pdev, sc->iobase);
+       pci_release_region(pdev, 0);
+       pci_disable_device(pdev);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:52 2008
+Message-Id: <20080730233152.095493572@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:52 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Nick Piggin <npiggin@suse.de>
+Subject: [patch 62/62] Fix off-by-one error in iov_iter_advance()
+Content-Disposition: inline; filename=fix-off-by-one-error-in-iov_iter_advance.patch
+Content-Length: 1464
+Lines: 38
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit 94ad374a0751f40d25e22e036c37f7263569d24c upstream
+
+The iov_iter_advance() function would look at the iov->iov_len entry
+even though it might have iterated over the whole array, and iov was
+pointing past the end.  This would cause DEBUG_PAGEALLOC to trigger a
+kernel page fault if the allocation was at the end of a page, and the
+next page was unallocated.
+
+The quick fix is to just change the order of the tests: check that there
+is any iovec data left before we check the iov entry itself.
+
+Thanks to Alexey Dobriyan for finding this case, and testing the fix.
+
+Reported-and-tested-by: Alexey Dobriyan <adobriyan@gmail.com>
+Cc: Nick Piggin <npiggin@suse.de>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/filemap.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mm/filemap.c
++++ b/mm/filemap.c
+@@ -1778,7 +1778,7 @@ void iov_iter_advance(struct iov_iter *i
+                * The !iov->iov_len check ensures we skip over unlikely
+                * zero-length segments (without overruning the iovec).
+                */
+-              while (bytes || unlikely(!iov->iov_len && i->count)) {
++              while (bytes || unlikely(i->count && !iov->iov_len)) {
+                       int copy;
+                       copy = min(bytes, iov->iov_len - base);
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:41 2008
+Message-Id: <20080730233141.735738352@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:51 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Karl Beldan <karl.beldan@gmail.com>,
+ Eric Miao <eric.miao@marvell.com>,
+ Pierre Ossman <drzeus@drzeus.cx>
+Subject: [patch 01/62] pxamci: trivial fix of DMA alignment register bit clearing
+Content-Disposition: inline; filename=pxamci-trivial-fix-of-dma-alignment-register-bit-clearing.patch
+Content-Length: 794
+Lines: 30
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Karl Beldan <karl.beldan@gmail.com>
+
+commit 4fe16897c59882420d66f2d503106653d026ed6c upstream
+
+Signed-off-by: Karl Beldan <karl.beldan@gmail.com>
+Acked-by: Eric Miao <eric.miao@marvell.com>
+Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mmc/host/pxamci.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mmc/host/pxamci.c
++++ b/drivers/mmc/host/pxamci.c
+@@ -177,7 +177,7 @@ static void pxamci_setup_data(struct pxa
+       if (dalgn)
+               DALGN |= (1 << host->dma);
+       else
+-              DALGN &= (1 << host->dma);
++              DALGN &= ~(1 << host->dma);
+       DDADR(host->dma) = host->sg_dma;
+       DCSR(host->dma) = DCSR_RUN;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:45 2008
+Message-Id: <20080730233145.484625500@mini.kroah.org>
+References: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:31:13 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ jejb@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alexey Dobriyan <adobriyan@gmail.com>,
+ "Vegard Nossum" <vegard.nossum@gmail.com>
+Subject: [patch 23/62] proc: fix /proc/*/pagemap
+Content-Disposition: inline; filename=proc-fix-proc-pagemap-some-more.patch
+Content-Length: 1060
+Lines: 35
+
+2.6.26 -stable review patch.  If anyone has any objections, please let
+us know.
+
+------------------
+From: Alexey Dobriyan <adobriyan@gmail.com>
+
+commit ee1e6ab6056a8b9c19377257002da98b83819531 upstream
+
+struct pagemap_walk was placed on stack, some hooks are initialized, the
+rest (->pgd_entry, ->pud_entry, ->pte_entry) are valid but junk.
+
+Reported-by: Eric Sesterhenn <snakebyte@gmx.de>
+Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
+Cc: "Vegard Nossum" <vegard.nossum@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/proc/task_mmu.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -636,7 +636,7 @@ static ssize_t pagemap_read(struct file 
+       struct pagemapread pm;
+       int pagecount;
+       int ret = -ESRCH;
+-      struct mm_walk pagemap_walk;
++      struct mm_walk pagemap_walk = {};
+       unsigned long src;
+       unsigned long svpfn;
+       unsigned long start_vaddr;
+
+-- 
+
+From gregkh@mini.kroah.org Wed Jul 30 16:31:41 2008
+Message-Id: <20080730233050.332789722@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Wed, 30 Jul 2008 16:30:50 -0700
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 00/62] 2.6.26-stable review
+Status: RO
+Content-Length: 5164
+Lines: 99
+
+This is the start of the stable review cycle for the 2.6.26.1 release.
+There are 62 patches in this series, all will be posted as a response to
+this one.  If anyone has any issues with these being applied, please let
+us know.  If anyone is a maintainer of the proper subsystem, and wants
+to add a Signed-off-by: line to the patch, please respond with it.
+
+These patches are sent out with a number of different people on the Cc:
+line.  If you wish to be a reviewer, please email stable@kernel.org to
+add your name to the list.  If you want to be off the reviewer list,
+also email us.
+
+Responses should be made by August 1, 12:00:00 UTC.  Anything received
+after that time might be too late.
+
+The whole patch series can be found in one patch at:
+       kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.26.1-rc1.gz
+and the diffstat can be found below.
+
+
+thanks,
+
+the -stable release team
+
+
+ Documentation/networking/udplite.txt          |    2 +-
+ Documentation/video4linux/cx18.txt            |   12 +--
+ Makefile                                      |    5 +-
+ arch/ia64/kvm/kvm-ia64.c                      |    3 +
+ arch/powerpc/kvm/powerpc.c                    |    4 +
+ arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c |    6 +
+ arch/s390/kvm/kvm-s390.c                      |    4 +
+ arch/sparc64/kernel/irq.c                     |   10 ++-
+ arch/sparc64/kernel/ldc.c                     |   38 ++++----
+ arch/sparc64/kernel/time.c                    |   15 ++-
+ arch/um/include/init.h                        |    8 ++
+ arch/x86/Kconfig.cpu                          |    2 +-
+ arch/x86/kernel/acpi/sleep.c                  |   17 +++-
+ arch/x86/kernel/i387.c                        |    4 +-
+ arch/x86/kernel/ptrace.c                      |    4 +-
+ arch/x86/kernel/reboot.c                      |    8 ++
+ arch/x86/kvm/mmu.c                            |   10 ++-
+ arch/x86/kvm/svm.c                            |   34 ++++--
+ arch/x86/kvm/vmx.c                            |    7 +-
+ arch/x86/kvm/x86.c                            |    5 +
+ arch/x86/kvm/x86_emulate.c                    |    2 +-
+ arch/x86/mm/init_64.c                         |    2 +-
+ drivers/acpi/processor_perflib.c              |   15 +++-
+ drivers/cpufreq/cpufreq.c                     |    3 +
+ drivers/dma/iop-adma.c                        |    2 +
+ drivers/ide/ide-cd.c                          |   27 ++++-
+ drivers/media/dvb/dvb-usb/dib0700_devices.c   |    7 +-
+ drivers/media/dvb/dvb-usb/dvb-usb-ids.h       |    1 +
+ drivers/media/video/Kconfig                   |    8 +--
+ drivers/media/video/cx18/cx18-firmware.c      |    2 +-
+ drivers/media/video/cx23885/cx23885-core.c    |  142 +++++++++++++++++++++++-
+ drivers/media/video/saa7134/saa7134-cards.c   |    3 -
+ drivers/media/video/saa7134/saa7134-core.c    |    5 +-
+ drivers/media/video/uvc/Kconfig               |   17 +++
+ drivers/media/video/uvc/uvc_driver.c          |   12 ++-
+ drivers/media/video/uvc/uvc_status.c          |   19 +++-
+ drivers/media/video/uvc/uvc_video.c           |  116 +++++++++++++-------
+ drivers/media/video/uvc/uvcvideo.h            |    2 +
+ drivers/mmc/host/pxamci.c                     |    2 +-
+ drivers/net/hamradio/hdlcdrv.c                |    1 +
+ drivers/net/ixgbe/ixgbe_main.c                |    2 -
+ drivers/net/myri10ge/myri10ge.c               |   30 +++---
+ drivers/net/wireless/ath5k/base.c             |    5 -
+ drivers/net/wireless/b43legacy/main.c         |    2 +-
+ drivers/rtc/rtc-at91rm9200.c                  |   16 +--
+ drivers/spi/mpc52xx_psc_spi.c                 |   22 ++---
+ drivers/usb/serial/usb-serial.c               |    5 +-
+ fs/dquot.c                                    |   16 +++-
+ fs/ecryptfs/crypto.c                          |   30 +++--
+ fs/isofs/rock.c                               |   22 ++++-
+ fs/libfs.c                                    |    4 +-
+ fs/proc/task_mmu.c                            |    2 +-
+ include/asm-arm/bitops.h                      |    9 ++-
+ include/asm-generic/vmlinux.lds.h             |    4 +-
+ include/asm-sparc64/io.h                      |    1 -
+ include/asm-x86/signal.h                      |    4 +-
+ include/linux/cpufreq.h                       |    1 +
+ include/linux/ipv6.h                          |    2 +
+ include/linux/kvm_host.h                      |    1 +
+ kernel/cpuset.c                               |    4 +-
+ kernel/marker.c                               |   12 ++-
+ kernel/rcupreempt.c                           |    2 +-
+ kernel/sys_ni.c                               |    1 +
+ mm/filemap.c                                  |    2 +-
+ mm/shmem.c                                    |    3 +-
+ net/ipv4/tcp_input.c                          |    3 +-
+ net/ipv4/udp.c                                |    4 +
+ net/ipv6/ip6_fib.c                            |    4 +-
+ scripts/Makefile.modpost                      |    1 +
+ scripts/mod/modpost.c                         |    3 +-
+ sound/pci/trident/trident_main.c              |    5 +-
+ virt/kvm/kvm_main.c                           |    3 +
+ 72 files changed, 589 insertions(+), 222 deletions(-)
+ create mode 100644 drivers/media/video/uvc/Kconfig
+
+
similarity index 100%
rename from queue-2.6.26/series
rename to review-2.6.26/series