| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.008452385@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:30 -0800 |
| 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 Layton <jlayton@redhat.com>, |
| Steve French <sfrench@us.ibm.com> |
| Subject: [patch 01/41] cifs: make sure we allocate enough storage for socket address |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=cifs-make-sure-we-allocate-enough-storage-for-socket-address.patch |
| Content-Length: 3297 |
| Lines: 95 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Jeff Layton <jlayton@redhat.com> |
| |
| commit a9ac49d303f967be0dabd97cb722c4a13109c6c2 upstream. |
| |
| cifs_mount declares a struct sockaddr on the stack and then casts it |
| to the proper address type. The storage allocated is fine for ipv4, |
| but is too small for ipv6 addresses. Declare it as |
| "struct sockaddr_storage" instead of struct sockaddr". |
| |
| This bug was manifesting itself as oopses and address corruption when |
| mounting IPv6 addresses. |
| |
| Signed-off-by: Jeff Layton <jlayton@redhat.com> |
| Tested-by: Stefan Bader <stefan.bader@canonical.com> |
| Signed-off-by: Steve French <sfrench@us.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| fs/cifs/connect.c | 18 +++++++++--------- |
| 1 file changed, 9 insertions(+), 9 deletions(-) |
| |
| --- a/fs/cifs/connect.c |
| +++ b/fs/cifs/connect.c |
| @@ -1349,7 +1349,7 @@ cifs_parse_mount_options(char *options, |
| } |
| |
| static struct TCP_Server_Info * |
| -cifs_find_tcp_session(struct sockaddr *addr) |
| +cifs_find_tcp_session(struct sockaddr_storage *addr) |
| { |
| struct list_head *tmp; |
| struct TCP_Server_Info *server; |
| @@ -1369,11 +1369,11 @@ cifs_find_tcp_session(struct sockaddr *a |
| if (server->tcpStatus == CifsNew) |
| continue; |
| |
| - if (addr->sa_family == AF_INET && |
| + if (addr->ss_family == AF_INET && |
| (addr4->sin_addr.s_addr != |
| server->addr.sockAddr.sin_addr.s_addr)) |
| continue; |
| - else if (addr->sa_family == AF_INET6 && |
| + else if (addr->ss_family == AF_INET6 && |
| memcmp(&server->addr.sockAddr6.sin6_addr, |
| &addr6->sin6_addr, sizeof(addr6->sin6_addr))) |
| continue; |
| @@ -2027,7 +2027,7 @@ cifs_mount(struct super_block *sb, struc |
| int rc = 0; |
| int xid; |
| struct socket *csocket = NULL; |
| - struct sockaddr addr; |
| + struct sockaddr_storage addr; |
| struct sockaddr_in *sin_server = (struct sockaddr_in *) &addr; |
| struct sockaddr_in6 *sin_server6 = (struct sockaddr_in6 *) &addr; |
| struct smb_vol volume_info; |
| @@ -2039,7 +2039,7 @@ cifs_mount(struct super_block *sb, struc |
| |
| /* cFYI(1, ("Entering cifs_mount. Xid: %d with: %s", xid, mount_data)); */ |
| |
| - memset(&addr, 0, sizeof(struct sockaddr)); |
| + memset(&addr, 0, sizeof(struct sockaddr_storage)); |
| memset(&volume_info, 0, sizeof(struct smb_vol)); |
| if (cifs_parse_mount_options(mount_data, devname, &volume_info)) { |
| rc = -EINVAL; |
| @@ -2069,9 +2069,9 @@ cifs_mount(struct super_block *sb, struc |
| rc = cifs_inet_pton(AF_INET6, volume_info.UNCip, |
| &sin_server6->sin6_addr.in6_u); |
| if (rc > 0) |
| - addr.sa_family = AF_INET6; |
| + addr.ss_family = AF_INET6; |
| } else { |
| - addr.sa_family = AF_INET; |
| + addr.ss_family = AF_INET; |
| } |
| |
| if (rc <= 0) { |
| @@ -2113,7 +2113,7 @@ cifs_mount(struct super_block *sb, struc |
| |
| srvTcp = cifs_find_tcp_session(&addr); |
| if (!srvTcp) { /* create socket */ |
| - if (addr.sa_family == AF_INET6) { |
| + if (addr.ss_family == AF_INET6) { |
| cFYI(1, ("attempting ipv6 connect")); |
| /* BB should we allow ipv6 on port 139? */ |
| /* other OS never observed in Wild doing 139 with v6 */ |
| @@ -2144,7 +2144,7 @@ cifs_mount(struct super_block *sb, struc |
| } else { |
| srvTcp->noblocksnd = volume_info.noblocksnd; |
| srvTcp->noautotune = volume_info.noautotune; |
| - if (addr.sa_family == AF_INET6) |
| + if (addr.ss_family == AF_INET6) |
| memcpy(&srvTcp->addr.sockAddr6, sin_server6, |
| sizeof(struct sockaddr_in6)); |
| else |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.143003075@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:31 -0800 |
| 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, |
| Breno Leitao <leitao@linux.vnet.ibm.com>, |
| Jesse Brandeburg <jesse.brandeburg@intel.com>, |
| "David S. Miller" <davem@davemloft.net> |
| Subject: [patch 02/41] ixgb: fix bug when freeing resources |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=ixgb-fix-bug-when-freeing-resources.patch |
| Content-Length: 1306 |
| Lines: 46 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Brandeburg, Jesse <jesse.brandeburg@intel.com> |
| |
| commit 23e55a32ca1ffdbe7a492ef99f0e0ac48e504a13 upstream. |
| |
| It was pointed out by Breno Leitao <leitao@linux.vnet.ibm.com> that |
| ixgb would crash on PPC when an IOMMU was in use, if change_mtu was |
| called. |
| |
| It appears to be a pretty simple issue in the driver that wasn't discovered |
| because most systems don't run with an IOMMU. The driver needs to only unmap |
| buffers that are mapped (duh). |
| |
| CC: Breno Leitao <leitao@linux.vnet.ibm.com> |
| |
| Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/ixgb/ixgb_main.c | 8 +++++--- |
| 1 file changed, 5 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/ixgb/ixgb_main.c |
| +++ b/drivers/net/ixgb/ixgb_main.c |
| @@ -977,15 +977,17 @@ ixgb_clean_rx_ring(struct ixgb_adapter * |
| |
| for (i = 0; i < rx_ring->count; i++) { |
| buffer_info = &rx_ring->buffer_info[i]; |
| - if (buffer_info->skb) { |
| - |
| + if (buffer_info->dma) { |
| pci_unmap_single(pdev, |
| buffer_info->dma, |
| buffer_info->length, |
| PCI_DMA_FROMDEVICE); |
| + buffer_info->dma = 0; |
| + buffer_info->length = 0; |
| + } |
| |
| + if (buffer_info->skb) { |
| dev_kfree_skb(buffer_info->skb); |
| - |
| buffer_info->skb = NULL; |
| } |
| } |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.274596476@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:32 -0800 |
| 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, |
| Adrian Bunk <bunk@kernel.org>, |
| Greg Ungerer <gerg@uclinux.org> |
| Subject: [patch 03/41] m68knommu: set NO_DMA |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=m68knommu-set-no_dma.patch |
| Content-Length: 1527 |
| Lines: 53 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Adrian Bunk <bunk@kernel.org> |
| |
| commit e0212e72186e855027dd35b37e9d7a99a078448c upstream. |
| |
| m68knommu does not set the Kconfig NO_DMA variable, but also does |
| not provide the required functions, resulting in the following |
| build error triggered by commit a40c24a13366e324bc0ff8c3bb107db89312c984 |
| (net: Add SKB DMA mapping helper functions.): |
| |
| <-- snip --> |
| |
| .. |
| LD vmlinux |
| net/built-in.o: In function `skb_dma_unmap': |
| (.text+0xac5e): undefined reference to `dma_unmap_single' |
| net/built-in.o: In function `skb_dma_unmap': |
| (.text+0xac7a): undefined reference to `dma_unmap_page' |
| net/built-in.o: In function `skb_dma_map': |
| (.text+0xacdc): undefined reference to `dma_map_single' |
| net/built-in.o: In function `skb_dma_map': |
| (.text+0xace8): undefined reference to `dma_mapping_error' |
| net/built-in.o: In function `skb_dma_map': |
| (.text+0xad10): undefined reference to `dma_map_page' |
| net/built-in.o: In function `skb_dma_map': |
| (.text+0xad82): undefined reference to `dma_unmap_page' |
| net/built-in.o: In function `skb_dma_map': |
| (.text+0xadc6): undefined reference to `dma_unmap_single' |
| make[1]: *** [vmlinux] Error 1 |
| |
| <-- snip --> |
| |
| Signed-off-by: Adrian Bunk <bunk@kernel.org> |
| Signed-off-by: Greg Ungerer <gerg@uclinux.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/m68knommu/Kconfig | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/arch/m68knommu/Kconfig |
| +++ b/arch/m68knommu/Kconfig |
| @@ -14,6 +14,10 @@ config MMU |
| bool |
| default n |
| |
| +config NO_DMA |
| + bool |
| + default y |
| + |
| config FPU |
| bool |
| default n |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.420820856@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:33 -0800 |
| 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, |
| Mark Lord <mlord@pobox.com>, |
| Jeff Garzik <jgarzik@redhat.com> |
| Subject: [patch 04/41] sata_mv: fix 8-port timeouts on 508x/6081 chips |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=sata_mv-fix-8-port-timeouts-on-508x-6081-chips.patch |
| Content-Length: 1032 |
| Lines: 29 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Mark Lord <liml@rtr.ca> |
| |
| commit b0bccb18bc523d1d5060d25958f12438062829a9 upstream. |
| |
| Fix a longstanding bug for the 8-port Marvell Sata controllers (508x/6081), |
| where accesses to the upper 4 ports would cause lost-interrupts / timeouts |
| for the lower 4-ports. With this patch, the 6081 boards should finally be |
| reliable enough for mainstream use with Linux. |
| |
| Signed-off-by: Mark Lord <mlord@pobox.com> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_mv.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/ata/sata_mv.c |
| +++ b/drivers/ata/sata_mv.c |
| @@ -883,7 +883,7 @@ static void mv_start_dma(struct ata_port |
| struct mv_host_priv *hpriv = ap->host->private_data; |
| int hardport = mv_hardport_from_port(ap->port_no); |
| void __iomem *hc_mmio = mv_hc_base_from_port( |
| - mv_host_base(ap->host), hardport); |
| + mv_host_base(ap->host), ap->port_no); |
| u32 hc_irq_cause, ipending; |
| |
| /* clear EDMA event indicators, if any */ |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.547069793@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:34 -0800 |
| 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, |
| Andi Kleen <ak@linux.intel.com>, |
| "H. Peter Anvin" <hpa@zytor.com>, |
| Ingo Molnar <mingo@elte.hu> |
| Subject: [patch 05/41] x86: use early clobbers in usercopy*.c |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=x86-use-early-clobbers-in-usercopy-.c.patch |
| Content-Length: 3890 |
| Lines: 100 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Andi Kleen <andi@firstfloor.org> |
| |
| commit e0a96129db574d6365e3439d16d88517c437ab33 upstream. |
| |
| Impact: fix rare (but currently harmless) miscompile with certain configs and gcc versions |
| |
| Hugh Dickins noticed that strncpy_from_user() was miscompiled |
| in some circumstances with gcc 4.3. |
| |
| Thanks to Hugh's excellent analysis it was easy to track down. |
| |
| Hugh writes: |
| |
| > Try building an x86_64 defconfig 2.6.29-rc1 kernel tree, |
| > except not quite defconfig, switch CONFIG_PREEMPT_NONE=y |
| > and CONFIG_PREEMPT_VOLUNTARY off (because it expands a |
| > might_fault() there, which hides the issue): using a |
| > gcc 4.3.2 (I've checked both openSUSE 11.1 and Fedora 10). |
| > |
| > It generates the following: |
| > |
| > 0000000000000000 <__strncpy_from_user>: |
| > 0: 48 89 d1 mov %rdx,%rcx |
| > 3: 48 85 c9 test %rcx,%rcx |
| > 6: 74 0e je 16 <__strncpy_from_user+0x16> |
| > 8: ac lods %ds:(%rsi),%al |
| > 9: aa stos %al,%es:(%rdi) |
| > a: 84 c0 test %al,%al |
| > c: 74 05 je 13 <__strncpy_from_user+0x13> |
| > e: 48 ff c9 dec %rcx |
| > 11: 75 f5 jne 8 <__strncpy_from_user+0x8> |
| > 13: 48 29 c9 sub %rcx,%rcx |
| > 16: 48 89 c8 mov %rcx,%rax |
| > 19: c3 retq |
| > |
| > Observe that "sub %rcx,%rcx; mov %rcx,%rax", whereas gcc 4.2.1 |
| > (and many other configs) say "sub %rcx,%rdx; mov %rdx,%rax". |
| > Isn't it returning 0 when it ought to be returning strlen? |
| |
| The asm constraints for the strncpy_from_user() result were missing an |
| early clobber, which tells gcc that the last output arguments |
| are written before all input arguments are read. |
| |
| Also add more early clobbers in the rest of the file and fix 32-bit |
| usercopy.c in the same way. |
| |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: H. Peter Anvin <hpa@zytor.com> |
| [ since this API is rarely used and no in-kernel user relies on a 'len' |
| return value (they only rely on negative return values) this miscompile |
| was never noticed in the field. But it's worth fixing it nevertheless. ] |
| Signed-off-by: Ingo Molnar <mingo@elte.hu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86/lib/usercopy_32.c | 4 ++-- |
| arch/x86/lib/usercopy_64.c | 4 ++-- |
| 2 files changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/arch/x86/lib/usercopy_32.c |
| +++ b/arch/x86/lib/usercopy_32.c |
| @@ -49,7 +49,7 @@ do { \ |
| " jmp 2b\n" \ |
| ".previous\n" \ |
| _ASM_EXTABLE(0b,3b) \ |
| - : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ |
| + : "=&d"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \ |
| "=&D" (__d2) \ |
| : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ |
| : "memory"); \ |
| @@ -211,7 +211,7 @@ long strnlen_user(const char __user *s, |
| " .align 4\n" |
| " .long 0b,2b\n" |
| ".previous" |
| - :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) |
| + :"=&r" (n), "=&D" (s), "=&a" (res), "=&c" (tmp) |
| :"0" (n), "1" (s), "2" (0), "3" (mask) |
| :"cc"); |
| return res & mask; |
| --- a/arch/x86/lib/usercopy_64.c |
| +++ b/arch/x86/lib/usercopy_64.c |
| @@ -32,7 +32,7 @@ do { \ |
| " jmp 2b\n" \ |
| ".previous\n" \ |
| _ASM_EXTABLE(0b,3b) \ |
| - : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ |
| + : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \ |
| "=&D" (__d2) \ |
| : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ |
| : "memory"); \ |
| @@ -86,7 +86,7 @@ unsigned long __clear_user(void __user * |
| ".previous\n" |
| _ASM_EXTABLE(0b,3b) |
| _ASM_EXTABLE(1b,2b) |
| - : [size8] "=c"(size), [dst] "=&D" (__d0) |
| + : [size8] "=&c"(size), [dst] "=&D" (__d0) |
| : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr), |
| [zero] "r" (0UL), [eight] "r" (8UL)); |
| return size; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.691774986@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:35 -0800 |
| 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, |
| Scott Kilau <Scott.Kilau@digi.com>, |
| Paul Larson <pl@linux.vnet.ibm.com> |
| Subject: [patch 06/41] Add enable_ms to jsm driver |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=add-enable_ms-to-jsm-driver.patch |
| Content-Length: 1140 |
| Lines: 39 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Paul Larson <pl@linux.vnet.ibm.com> |
| |
| commit 0461ec5bc7745b89a8ab67ba0ea497abd58a6301 upstream. |
| |
| This fixes a crash observed when non-existant enable_ms function is |
| called for jsm driver. |
| |
| Signed-off-by: Scott Kilau <Scott.Kilau@digi.com> |
| Signed-off-by: Paul Larson <pl@linux.vnet.ibm.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/serial/jsm/jsm_tty.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/drivers/serial/jsm/jsm_tty.c |
| +++ b/drivers/serial/jsm/jsm_tty.c |
| @@ -161,6 +161,11 @@ static void jsm_tty_stop_rx(struct uart_ |
| channel->ch_bd->bd_ops->disable_receiver(channel); |
| } |
| |
| +static void jsm_tty_enable_ms(struct uart_port *port) |
| +{ |
| + /* Nothing needed */ |
| +} |
| + |
| static void jsm_tty_break(struct uart_port *port, int break_state) |
| { |
| unsigned long lock_flags; |
| @@ -345,6 +350,7 @@ static struct uart_ops jsm_ops = { |
| .start_tx = jsm_tty_start_tx, |
| .send_xchar = jsm_tty_send_xchar, |
| .stop_rx = jsm_tty_stop_rx, |
| + .enable_ms = jsm_tty_enable_ms, |
| .break_ctl = jsm_tty_break, |
| .startup = jsm_tty_open, |
| .shutdown = jsm_tty_close, |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:45 2009 |
| Message-Id: <20090204184145.820133479@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:36 -0800 |
| 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, |
| Risto Suominen <Risto.Suominen@gmail.com>, |
| Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Subject: [patch 07/41] fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=fbdev-atyfb-fix-dsp-config-on-some-powermacs-powerbooks.patch |
| Content-Length: 1771 |
| Lines: 52 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Risto Suominen <Risto.Suominen@gmail.com> |
| |
| commit 7fbb7cadd062baf299fd8b26a80ea99da0c3fe01 upstream. |
| |
| Since the complete re-write in 2.6.10, some PowerMacs (At least PowerMac 5500 |
| and PowerMac G3 Beige rev A) with ATI Mach64 chip have suffered from unstable |
| columns in their framebuffer image. This seems to depend on a value (4) read |
| from PLL_EXT_CNTL register, which leads to incorrect DSP config parameters to |
| be written to the chip. This patch uses a value calculated by aty_init_pll_ct |
| instead, as a starting point. |
| |
| There are questions as to whether this should be extended to other platforms |
| or maybe made dependent on specific chip types, but in the meantime, this has |
| been tested on various powermacs and works for them so let's commit it. |
| |
| Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> |
| Tested-by: Michael Pettersson <mike@it.uu.se> |
| Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/video/aty/mach64_ct.c | 11 +++++++++++ |
| 1 file changed, 11 insertions(+) |
| |
| --- a/drivers/video/aty/mach64_ct.c |
| +++ b/drivers/video/aty/mach64_ct.c |
| @@ -8,6 +8,9 @@ |
| #include <asm/io.h> |
| #include <video/mach64.h> |
| #include "atyfb.h" |
| +#ifdef CONFIG_PPC |
| +#include <asm/machdep.h> |
| +#endif |
| |
| #undef DEBUG |
| |
| @@ -536,6 +539,14 @@ static int __devinit aty_init_pll_ct(con |
| pll->ct.xclk_post_div_real = postdividers[xpost_div]; |
| pll->ct.mclk_fb_div = q * pll->ct.xclk_post_div_real / 8; |
| |
| +#ifdef CONFIG_PPC |
| + if (machine_is(powermac)) { |
| + /* Override PLL_EXT_CNTL & 0x07. */ |
| + pll->ct.xclk_post_div = xpost_div; |
| + pll->ct.xclk_ref_div = 1; |
| + } |
| +#endif |
| + |
| #ifdef DEBUG |
| pllmclk = (1000000 * pll->ct.mclk_fb_mult * pll->ct.mclk_fb_div) / |
| (par->ref_clk_per * pll->ct.pll_ref_div); |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184145.961783256@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:37 -0800 |
| 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, |
| Mikulas Patocka <mpatocka@redhat.com> |
| Subject: [patch 08/41] Fix memory corruption in console selection |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=fix-memory-corruption-in-console-selection.patch |
| Content-Length: 1390 |
| Lines: 37 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Mikulas Patocka <mpatocka@redhat.com> |
| |
| commit 878b8619f711280fd05845e21956434b5e588cc4 upstream. |
| |
| Fix an off-by-two memory error in console selection. |
| |
| The loop below goes from sel_start to sel_end (inclusive), so it writes |
| one more character. This one more character was added to the allocated |
| size (+1), but it was not multiplied by an UTF-8 multiplier. |
| |
| This patch fixes a memory corruption when UTF-8 console is used and the |
| user selects a few characters, all of them 3-byte in UTF-8 (for example |
| a frame line). |
| |
| When memory redzones are enabled, a redzone corruption is reported. |
| When they are not enabled, trashing of random memory occurs. |
| |
| Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/char/selection.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/char/selection.c |
| +++ b/drivers/char/selection.c |
| @@ -268,7 +268,7 @@ int set_selection(const struct tiocl_sel |
| |
| /* Allocate a new buffer before freeing the old one ... */ |
| multiplier = use_unicode ? 3 : 1; /* chars can take up to 3 bytes */ |
| - bp = kmalloc((sel_end-sel_start)/2*multiplier+1, GFP_KERNEL); |
| + bp = kmalloc(((sel_end-sel_start)/2+1)*multiplier, GFP_KERNEL); |
| if (!bp) { |
| printk(KERN_WARNING "selection: kmalloc() failed\n"); |
| clear_selection(); |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.090908884@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:38 -0800 |
| 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, |
| Matthew Garrett <mjg@redhat.com>, |
| Dmitry Torokhov <dtor@mail.ru> |
| Subject: [patch 09/41] Input: atkbd - broaden the Dell DMI signatures |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=input-atkbd-broaden-the-dell-dmi-signatures.patch |
| Content-Length: 1071 |
| Lines: 36 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Matthew Garrett <mjg59@srcf.ucam.org> |
| |
| commit 2a3ec3265741c3b2a7ebbd1b33f538e5a5583c48 upstream. |
| |
| Some Dells need the dell input quirk applied but have a different vendor |
| string in their DMI tables. Add an extra entry to cover these machines as |
| well. |
| |
| Signed-off-by: Matthew Garrett <mjg@redhat.com> |
| Signed-off-by: Dmitry Torokhov <dtor@mail.ru> |
| Cc: Chuck Ebbert <cebbert@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/input/keyboard/atkbd.c | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| --- a/drivers/input/keyboard/atkbd.c |
| +++ b/drivers/input/keyboard/atkbd.c |
| @@ -1486,6 +1486,15 @@ static struct dmi_system_id atkbd_dmi_qu |
| .driver_data = atkbd_dell_laptop_keymap_fixup, |
| }, |
| { |
| + .ident = "Dell Laptop", |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), |
| + DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */ |
| + }, |
| + .callback = atkbd_setup_fixup, |
| + .driver_data = atkbd_dell_laptop_keymap_fixup, |
| + }, |
| + { |
| .ident = "HP 2133", |
| .matches = { |
| DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.220338951@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:39 -0800 |
| 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, |
| Stuart Hopkins <stuart@dodgy-geeza.com>, |
| Dmitry Torokhov <dtor@mail.ru> |
| Subject: [patch 10/41] Input: atkbd - Samsung NC10 key repeat fix |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=input-atkbd-samsung-nc10-key-repeat-fix.patch |
| Content-Length: 1738 |
| Lines: 61 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Stuart Hopkins <stuart@dodgy-geeza.com> |
| |
| commit 4200844bd9dc511088258437d564a187f0ffc94e upstream. |
| |
| This patch fixes the key repeat issue with the Fn+F? keys on the new |
| Samsung NC10 Netbook, so that the keys can be defined and used within |
| ACPID correctly, otherwise the keys repeat indefinately. |
| |
| This solves part of http://bugzilla.kernel.org/show_bug.cgi?id=12021 |
| |
| Signed-off-by: Stuart Hopkins <stuart@dodgy-geeza.com> |
| Signed-off-by: Dmitry Torokhov <dtor@mail.ru> |
| Cc: Chuck Ebbert <cebbert@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/input/keyboard/atkbd.c | 25 +++++++++++++++++++++++++ |
| 1 file changed, 25 insertions(+) |
| |
| --- a/drivers/input/keyboard/atkbd.c |
| +++ b/drivers/input/keyboard/atkbd.c |
| @@ -884,6 +884,22 @@ static void atkbd_inventec_keymap_fixup( |
| } |
| |
| /* |
| + * Samsung NC10 with Fn+F? key release not working |
| + */ |
| +static void atkbd_samsung_keymap_fixup(struct atkbd *atkbd) |
| +{ |
| + const unsigned int forced_release_keys[] = { |
| + 0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xb3, 0xf7, 0xf9, |
| + }; |
| + int i; |
| + |
| + if (atkbd->set == 2) |
| + for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++) |
| + __set_bit(forced_release_keys[i], |
| + atkbd->force_release_mask); |
| +} |
| + |
| +/* |
| * atkbd_set_keycode_table() initializes keyboard's keycode table |
| * according to the selected scancode set |
| */ |
| @@ -1512,6 +1528,15 @@ static struct dmi_system_id atkbd_dmi_qu |
| .callback = atkbd_setup_fixup, |
| .driver_data = atkbd_inventec_keymap_fixup, |
| }, |
| + { |
| + .ident = "Samsung NC10", |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), |
| + DMI_MATCH(DMI_PRODUCT_NAME, "NC10"), |
| + }, |
| + .callback = atkbd_setup_fixup, |
| + .driver_data = atkbd_samsung_keymap_fixup, |
| + }, |
| { } |
| }; |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.378418330@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:40 -0800 |
| 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, |
| Patrick McHardy <kaber@trash.net>, |
| "David S. Miller" <davem@davemloft.net>, |
| Jesse Brandeburg <jesse.brandeburg@intel.com> |
| Subject: [patch 11/41] net: fix packet socket delivery in rx irq handler |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=net-fix-packet-socket-delivery-in-rx-irq-handler.patch |
| Content-Length: 4906 |
| Lines: 162 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Patrick McHardy <kaber@trash.net> |
| |
| commit 9b22ea560957de1484e6b3e8538f7eef202e3596 upstream. |
| |
| The changes to deliver hardware accelerated VLAN packets to packet |
| sockets (commit bc1d0411) caused a warning for non-NAPI drivers. |
| The __vlan_hwaccel_rx() function is called directly from the drivers |
| RX function, for non-NAPI drivers that means its still in RX IRQ |
| context: |
| |
| [ 27.779463] ------------[ cut here ]------------ |
| [ 27.779509] WARNING: at kernel/softirq.c:136 local_bh_enable+0x37/0x81() |
| ... |
| [ 27.782520] [<c0264755>] netif_nit_deliver+0x5b/0x75 |
| [ 27.782590] [<c02bba83>] __vlan_hwaccel_rx+0x79/0x162 |
| [ 27.782664] [<f8851c1d>] atl1_intr+0x9a9/0xa7c [atl1] |
| [ 27.782738] [<c0155b17>] handle_IRQ_event+0x23/0x51 |
| [ 27.782808] [<c015692e>] handle_edge_irq+0xc2/0x102 |
| [ 27.782878] [<c0105fd5>] do_IRQ+0x4d/0x64 |
| |
| Split hardware accelerated VLAN reception into two parts to fix this: |
| |
| - __vlan_hwaccel_rx just stores the VLAN TCI and performs the VLAN |
| device lookup, then calls netif_receive_skb()/netif_rx() |
| |
| - vlan_hwaccel_do_receive(), which is invoked by netif_receive_skb() |
| in softirq context, performs the real reception and delivery to |
| packet sockets. |
| |
| Reported-and-tested-by: Ramon Casellas <ramon.casellas@cttc.es> |
| Signed-off-by: Patrick McHardy <kaber@trash.net> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| include/linux/if_vlan.h | 7 +++++++ |
| net/8021q/vlan_core.c | 46 +++++++++++++++++++++++++++++++++------------- |
| net/core/dev.c | 3 +++ |
| 3 files changed, 43 insertions(+), 13 deletions(-) |
| |
| --- a/include/linux/if_vlan.h |
| +++ b/include/linux/if_vlan.h |
| @@ -114,6 +114,8 @@ extern u16 vlan_dev_vlan_id(const struct |
| |
| extern int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, |
| u16 vlan_tci, int polling); |
| +extern int vlan_hwaccel_do_receive(struct sk_buff *skb); |
| + |
| #else |
| static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev) |
| { |
| @@ -133,6 +135,11 @@ static inline int __vlan_hwaccel_rx(stru |
| BUG(); |
| return NET_XMIT_SUCCESS; |
| } |
| + |
| +static inline int vlan_hwaccel_do_receive(struct sk_buff *skb) |
| +{ |
| + return 0; |
| +} |
| #endif |
| |
| /** |
| --- a/net/8021q/vlan_core.c |
| +++ b/net/8021q/vlan_core.c |
| @@ -3,11 +3,20 @@ |
| #include <linux/if_vlan.h> |
| #include "vlan.h" |
| |
| +struct vlan_hwaccel_cb { |
| + struct net_device *dev; |
| +}; |
| + |
| +static inline struct vlan_hwaccel_cb *vlan_hwaccel_cb(struct sk_buff *skb) |
| +{ |
| + return (struct vlan_hwaccel_cb *)skb->cb; |
| +} |
| + |
| /* VLAN rx hw acceleration helper. This acts like netif_{rx,receive_skb}(). */ |
| int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, |
| u16 vlan_tci, int polling) |
| { |
| - struct net_device_stats *stats; |
| + struct vlan_hwaccel_cb *cb = vlan_hwaccel_cb(skb); |
| |
| if (skb_bond_should_drop(skb)) { |
| dev_kfree_skb_any(skb); |
| @@ -15,23 +24,35 @@ int __vlan_hwaccel_rx(struct sk_buff *sk |
| } |
| |
| skb->vlan_tci = vlan_tci; |
| + cb->dev = vlan_group_get_device(grp, vlan_tci & VLAN_VID_MASK); |
| + |
| + return (polling ? netif_receive_skb(skb) : netif_rx(skb)); |
| +} |
| +EXPORT_SYMBOL(__vlan_hwaccel_rx); |
| + |
| +int vlan_hwaccel_do_receive(struct sk_buff *skb) |
| +{ |
| + struct vlan_hwaccel_cb *cb = vlan_hwaccel_cb(skb); |
| + struct net_device *dev = cb->dev; |
| + struct net_device_stats *stats; |
| + |
| netif_nit_deliver(skb); |
| |
| - skb->dev = vlan_group_get_device(grp, vlan_tci & VLAN_VID_MASK); |
| - if (skb->dev == NULL) { |
| - dev_kfree_skb_any(skb); |
| - /* Not NET_RX_DROP, this is not being dropped |
| - * due to congestion. */ |
| - return NET_RX_SUCCESS; |
| + if (dev == NULL) { |
| + kfree_skb(skb); |
| + return -1; |
| } |
| - skb->dev->last_rx = jiffies; |
| + |
| + skb->dev = dev; |
| + skb->priority = vlan_get_ingress_priority(dev, skb->vlan_tci); |
| skb->vlan_tci = 0; |
| |
| - stats = &skb->dev->stats; |
| + dev->last_rx = jiffies; |
| + |
| + stats = &dev->stats; |
| stats->rx_packets++; |
| stats->rx_bytes += skb->len; |
| |
| - skb->priority = vlan_get_ingress_priority(skb->dev, vlan_tci); |
| switch (skb->pkt_type) { |
| case PACKET_BROADCAST: |
| break; |
| @@ -43,13 +64,12 @@ int __vlan_hwaccel_rx(struct sk_buff *sk |
| * This allows the VLAN to have a different MAC than the |
| * underlying device, and still route correctly. */ |
| if (!compare_ether_addr(eth_hdr(skb)->h_dest, |
| - skb->dev->dev_addr)) |
| + dev->dev_addr)) |
| skb->pkt_type = PACKET_HOST; |
| break; |
| }; |
| - return (polling ? netif_receive_skb(skb) : netif_rx(skb)); |
| + return 0; |
| } |
| -EXPORT_SYMBOL(__vlan_hwaccel_rx); |
| |
| struct net_device *vlan_dev_real_dev(const struct net_device *dev) |
| { |
| --- a/net/core/dev.c |
| +++ b/net/core/dev.c |
| @@ -2187,6 +2187,9 @@ int netif_receive_skb(struct sk_buff *sk |
| int ret = NET_RX_DROP; |
| __be16 type; |
| |
| + if (skb->vlan_tci && vlan_hwaccel_do_receive(skb)) |
| + return NET_RX_SUCCESS; |
| + |
| /* if we've gotten here through NAPI, check netpoll */ |
| if (netpoll_receive_skb(skb)) |
| return NET_RX_DROP; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.536481855@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:41 -0800 |
| 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, |
| "J. Bruce Fields" <bfields@citi.umich.edu> |
| Subject: [patch 12/41] nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=nfsd-ensure-nfsv4-calls-the-underlying-filesystem-on-lockt.patch |
| Content-Length: 2573 |
| Lines: 82 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: J. Bruce Fields <bfields@citi.umich.edu> |
| |
| commit 55ef1274dddd4de387c54d110e354ffbb6cdc706 upstream. |
| |
| Since nfsv4 allows LOCKT without an open, but the ->lock() method is a |
| file method, we fake up a struct file in the nfsv4 code with just the |
| fields we need initialized. But we forgot to initialize the file |
| operations, with the result that LOCKT never results in a call to the |
| filesystem's ->lock() method (if it exists). |
| |
| We could just add that one more initialization. But this hack of faking |
| up a struct file with only some fields initialized seems the kind of |
| thing that might cause more problems in the future. We should either do |
| an open and get a real struct file, or make lock-testing an inode (not a |
| file) method. |
| |
| This patch does the former. |
| |
| Reported-by: Marc Eshel <eshel@almaden.ibm.com> |
| Tested-by: Marc Eshel <eshel@almaden.ibm.com> |
| Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| fs/nfsd/nfs4state.c | 30 ++++++++++++++++++++---------- |
| 1 file changed, 20 insertions(+), 10 deletions(-) |
| |
| --- a/fs/nfsd/nfs4state.c |
| +++ b/fs/nfsd/nfs4state.c |
| @@ -2767,6 +2767,25 @@ out: |
| } |
| |
| /* |
| + * The NFSv4 spec allows a client to do a LOCKT without holding an OPEN, |
| + * so we do a temporary open here just to get an open file to pass to |
| + * vfs_test_lock. (Arguably perhaps test_lock should be done with an |
| + * inode operation.) |
| + */ |
| +static int nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock) |
| +{ |
| + struct file *file; |
| + int err; |
| + |
| + err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file); |
| + if (err) |
| + return err; |
| + err = vfs_test_lock(file, lock); |
| + nfsd_close(file); |
| + return err; |
| +} |
| + |
| +/* |
| * LOCKT operation |
| */ |
| __be32 |
| @@ -2774,7 +2793,6 @@ nfsd4_lockt(struct svc_rqst *rqstp, stru |
| struct nfsd4_lockt *lockt) |
| { |
| struct inode *inode; |
| - struct file file; |
| struct file_lock file_lock; |
| int error; |
| __be32 status; |
| @@ -2832,16 +2850,8 @@ nfsd4_lockt(struct svc_rqst *rqstp, stru |
| |
| nfs4_transform_lock_offset(&file_lock); |
| |
| - /* vfs_test_lock uses the struct file _only_ to resolve the inode. |
| - * since LOCKT doesn't require an OPEN, and therefore a struct |
| - * file may not exist, pass vfs_test_lock a struct file with |
| - * only the dentry:inode set. |
| - */ |
| - memset(&file, 0, sizeof (struct file)); |
| - file.f_path.dentry = cstate->current_fh.fh_dentry; |
| - |
| status = nfs_ok; |
| - error = vfs_test_lock(&file, &file_lock); |
| + error = nfsd_test_lock(rqstp, &cstate->current_fh, &file_lock); |
| if (error) { |
| status = nfserrno(error); |
| goto out; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.670220012@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:42 -0800 |
| 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 Layton <jlayton@redhat.com>, |
| "J. Bruce Fields" <bfields@pig.fieldses.org> |
| Subject: [patch 13/41] nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is found |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=nfsd-only-set-file_lock.fl_lmops-in-nfsd4_lockt-if-a-stateowner-is-found.patch |
| Content-Length: 1387 |
| Lines: 35 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Jeff Layton <jlayton@redhat.com> |
| |
| commit fa82a491275a613b15489aab4b99acecb00958d3 upstream. |
| |
| nfsd4_lockt does a search for a lockstateowner when building the lock |
| struct to test. If one is found, it'll set fl_owner to it. Regardless of |
| whether that happens, it'll also set fl_lmops. Given that this lock is |
| basically a "lightweight" lock that's just used for checking conflicts, |
| setting fl_lmops is probably not appropriate for it. |
| |
| This behavior exposed a bug in DLM's GETLK implementation where it |
| wasn't clearing out the fields in the file_lock before filling in |
| conflicting lock info. While we were able to fix this in DLM, it |
| still seems pointless and dangerous to set the fl_lmops this way |
| when we may have a NULL lockstateowner. |
| |
| Signed-off-by: Jeff Layton <jlayton@redhat.com> |
| Signed-off-by: J. Bruce Fields <bfields@pig.fieldses.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| fs/nfsd/nfs4state.c | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/fs/nfsd/nfs4state.c |
| +++ b/fs/nfsd/nfs4state.c |
| @@ -2840,7 +2840,6 @@ nfsd4_lockt(struct svc_rqst *rqstp, stru |
| file_lock.fl_owner = (fl_owner_t)lockt->lt_stateowner; |
| file_lock.fl_pid = current->tgid; |
| file_lock.fl_flags = FL_POSIX; |
| - file_lock.fl_lmops = &nfsd_posix_mng_ops; |
| |
| file_lock.fl_start = lockt->lt_offset; |
| if ((lockt->lt_length == ~(u64)0) || LOFF_OVERFLOW(lockt->lt_offset, lockt->lt_length)) |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:46 2009 |
| Message-Id: <20090204184146.798396218@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:43 -0800 |
| 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, |
| Seth Heasley <seth.heasley@intel.com>, |
| Jesse Barnes <jbarnes@virtuousgeek.org> |
| Subject: [patch 14/41] PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=pci-irq-and-pci_ids-patch-for-intel-tigerpoint-deviceids.patch |
| Content-Length: 1183 |
| Lines: 36 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Seth Heasley <seth.heasley@intel.com> |
| |
| commit 57064d213d2e44654d4f13c66df135b5e7389a26 upstream. |
| |
| This patch adds the Intel Tigerpoint LPC Controller DeviceIDs. |
| |
| Signed-off-by: Seth Heasley <seth.heasley@intel.com> |
| Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86/pci/irq.c | 1 + |
| include/linux/pci_ids.h | 1 + |
| 2 files changed, 2 insertions(+) |
| |
| --- a/arch/x86/pci/irq.c |
| +++ b/arch/x86/pci/irq.c |
| @@ -573,6 +573,7 @@ static __init int intel_router_probe(str |
| case PCI_DEVICE_ID_INTEL_ICH7_1: |
| case PCI_DEVICE_ID_INTEL_ICH7_30: |
| case PCI_DEVICE_ID_INTEL_ICH7_31: |
| + case PCI_DEVICE_ID_INTEL_TGP_LPC: |
| case PCI_DEVICE_ID_INTEL_ESB2_0: |
| case PCI_DEVICE_ID_INTEL_ICH8_0: |
| case PCI_DEVICE_ID_INTEL_ICH8_1: |
| --- a/include/linux/pci_ids.h |
| +++ b/include/linux/pci_ids.h |
| @@ -2384,6 +2384,7 @@ |
| #define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 |
| #define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 |
| #define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 |
| +#define PCI_DEVICE_ID_INTEL_TGP_LPC 0x27bc |
| #define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd |
| #define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da |
| #define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184146.950370143@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:44 -0800 |
| 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, |
| Tejun Heo <tj@kernel.org>, |
| Jeff Garzik <jgarzik@redhat.com> |
| Subject: [patch 15/41] sata_nv: rename nv_nf2_hardreset() |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=sata_nv-rename-nv_nf2_hardreset.patch |
| Content-Length: 2415 |
| Lines: 76 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Tejun Heo <tj@kernel.org> |
| |
| commit e8caa3c70e94d867ca2efe9e53fd388b52d6d0c8 upstream. |
| |
| nv_nf2_hardreset() will be used by other flavors too. Rename it to |
| nv_noclassify_hardreset(). |
| |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_nv.c | 28 ++++++++++++++-------------- |
| 1 file changed, 14 insertions(+), 14 deletions(-) |
| |
| --- a/drivers/ata/sata_nv.c |
| +++ b/drivers/ata/sata_nv.c |
| @@ -305,10 +305,10 @@ static irqreturn_t nv_ck804_interrupt(in |
| static int nv_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val); |
| static int nv_scr_write(struct ata_port *ap, unsigned int sc_reg, u32 val); |
| |
| +static int nv_noclassify_hardreset(struct ata_link *link, unsigned int *class, |
| + unsigned long deadline); |
| static void nv_nf2_freeze(struct ata_port *ap); |
| static void nv_nf2_thaw(struct ata_port *ap); |
| -static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class, |
| - unsigned long deadline); |
| static void nv_ck804_freeze(struct ata_port *ap); |
| static void nv_ck804_thaw(struct ata_port *ap); |
| static int nv_adma_slave_config(struct scsi_device *sdev); |
| @@ -432,7 +432,7 @@ static struct ata_port_operations nv_nf2 |
| .inherits = &nv_common_ops, |
| .freeze = nv_nf2_freeze, |
| .thaw = nv_nf2_thaw, |
| - .hardreset = nv_nf2_hardreset, |
| + .hardreset = nv_noclassify_hardreset, |
| }; |
| |
| /* CK804 finally gets hardreset right */ |
| @@ -1530,6 +1530,17 @@ static int nv_scr_write(struct ata_port |
| return 0; |
| } |
| |
| +static int nv_noclassify_hardreset(struct ata_link *link, unsigned int *class, |
| + unsigned long deadline) |
| +{ |
| + bool online; |
| + int rc; |
| + |
| + rc = sata_link_hardreset(link, sata_deb_timing_hotplug, deadline, |
| + &online, NULL); |
| + return online ? -EAGAIN : rc; |
| +} |
| + |
| static void nv_nf2_freeze(struct ata_port *ap) |
| { |
| void __iomem *scr_addr = ap->host->ports[0]->ioaddr.scr_addr; |
| @@ -1554,17 +1565,6 @@ static void nv_nf2_thaw(struct ata_port |
| iowrite8(mask, scr_addr + NV_INT_ENABLE); |
| } |
| |
| -static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class, |
| - unsigned long deadline) |
| -{ |
| - bool online; |
| - int rc; |
| - |
| - rc = sata_link_hardreset(link, sata_deb_timing_hotplug, deadline, |
| - &online, NULL); |
| - return online ? -EAGAIN : rc; |
| -} |
| - |
| static void nv_ck804_freeze(struct ata_port *ap) |
| { |
| void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.079818578@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:45 -0800 |
| 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, |
| Tejun Heo <tj@kernel.org>, |
| Jeff Garzik <jgarzik@redhat.com> |
| Subject: [patch 16/41] sata_nv: fix MCP5x reset |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=sata_nv-fix-mcp5x-reset.patch |
| Content-Length: 3772 |
| Lines: 101 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Tejun Heo <tj@kernel.org> |
| |
| commit 2d775708bc6613f1be47f1e720781343341ecc94 upstream. |
| |
| MCP5x family of controllers seem to share much more with nf2's as far |
| as reset protocol is concerned. It requires heardreset to get the PHY |
| going and classfication code report after hardreset is unreliable. |
| Create a new board type MCP5x and use noclassify hardreset. SWNCQ is |
| modified to inherit from this new type. |
| |
| This fixes hotplug regression reported in kernel bz#12351. |
| |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_nv.c | 42 +++++++++++++++++++++++++++++------------- |
| 1 file changed, 29 insertions(+), 13 deletions(-) |
| |
| --- a/drivers/ata/sata_nv.c |
| +++ b/drivers/ata/sata_nv.c |
| @@ -352,6 +352,7 @@ enum nv_host_type |
| NFORCE3 = NFORCE2, /* NF2 == NF3 as far as sata_nv is concerned */ |
| CK804, |
| ADMA, |
| + MCP5x, |
| SWNCQ, |
| }; |
| |
| @@ -363,10 +364,10 @@ static const struct pci_device_id nv_pci |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2), CK804 }, |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA), CK804 }, |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2), CK804 }, |
| - { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), SWNCQ }, |
| - { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), SWNCQ }, |
| - { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), SWNCQ }, |
| - { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), SWNCQ }, |
| + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), MCP5x }, |
| + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), MCP5x }, |
| + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), MCP5x }, |
| + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), MCP5x }, |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC }, |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC }, |
| { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC }, |
| @@ -467,8 +468,19 @@ static struct ata_port_operations nv_adm |
| .host_stop = nv_adma_host_stop, |
| }; |
| |
| +/* Kernel bz#12351 reports that when SWNCQ is enabled, for hotplug to |
| + * work, hardreset should be used and hardreset can't report proper |
| + * signature, which suggests that mcp5x is closer to nf2 as long as |
| + * reset quirkiness is concerned. Define separate ops for mcp5x with |
| + * nv_noclassify_hardreset(). |
| + */ |
| +static struct ata_port_operations nv_mcp5x_ops = { |
| + .inherits = &nv_common_ops, |
| + .hardreset = nv_noclassify_hardreset, |
| +}; |
| + |
| static struct ata_port_operations nv_swncq_ops = { |
| - .inherits = &nv_generic_ops, |
| + .inherits = &nv_mcp5x_ops, |
| |
| .qc_defer = ata_std_qc_defer, |
| .qc_prep = nv_swncq_qc_prep, |
| @@ -531,6 +543,15 @@ static const struct ata_port_info nv_por |
| .port_ops = &nv_adma_ops, |
| .private_data = NV_PI_PRIV(nv_adma_interrupt, &nv_adma_sht), |
| }, |
| + /* MCP5x */ |
| + { |
| + .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY, |
| + .pio_mask = NV_PIO_MASK, |
| + .mwdma_mask = NV_MWDMA_MASK, |
| + .udma_mask = NV_UDMA_MASK, |
| + .port_ops = &nv_mcp5x_ops, |
| + .private_data = NV_PI_PRIV(nv_generic_interrupt, &nv_sht), |
| + }, |
| /* SWNCQ */ |
| { |
| .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | |
| @@ -2355,14 +2376,9 @@ static int nv_init_one(struct pci_dev *p |
| if (type == CK804 && adma_enabled) { |
| dev_printk(KERN_NOTICE, &pdev->dev, "Using ADMA mode\n"); |
| type = ADMA; |
| - } |
| - |
| - if (type == SWNCQ) { |
| - if (swncq_enabled) |
| - dev_printk(KERN_NOTICE, &pdev->dev, |
| - "Using SWNCQ mode\n"); |
| - else |
| - type = GENERIC; |
| + } else if (type == MCP5x && swncq_enabled) { |
| + dev_printk(KERN_NOTICE, &pdev->dev, "Using SWNCQ mode\n"); |
| + type = SWNCQ; |
| } |
| |
| ppi[0] = &nv_port_info[type]; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.245157888@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:46 -0800 |
| 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, |
| Tejun Heo <tj@kernel.org>, |
| Jeff Garzik <jgarzik@redhat.com> |
| Subject: [patch 17/41] sata_nv: ck804 has borked hardreset too |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=sata_nv-ck804-has-borked-hardreset-too.patch |
| Content-Length: 1303 |
| Lines: 38 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Tejun Heo <tj@kernel.org> |
| |
| commit 8d993eaa9c3c61b8a5929a7f695078a1fcfb4869 upstream. |
| |
| While playing with nvraid, I found out that rmmoding and insmoding |
| often trigger hardreset failure on the first port (the second one was |
| always okay). Seriously, how diverse can you get with hardreset |
| behaviors? Anyways, make ck804 use noclassify variant too. |
| |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_nv.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/ata/sata_nv.c |
| +++ b/drivers/ata/sata_nv.c |
| @@ -436,11 +436,16 @@ static struct ata_port_operations nv_nf2 |
| .hardreset = nv_noclassify_hardreset, |
| }; |
| |
| -/* CK804 finally gets hardreset right */ |
| +/* For initial probing after boot and hot plugging, hardreset mostly |
| + * works fine on CK804 but curiously, reprobing on the initial port by |
| + * rescanning or rmmod/insmod fails to acquire the initial D2H Reg FIS |
| + * in somewhat undeterministic way. Use noclassify hardreset. |
| + */ |
| static struct ata_port_operations nv_ck804_ops = { |
| .inherits = &nv_common_ops, |
| .freeze = nv_ck804_freeze, |
| .thaw = nv_ck804_thaw, |
| + .hardreset = nv_noclassify_hardreset, |
| .host_stop = nv_ck804_host_stop, |
| }; |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.377470096@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:47 -0800 |
| 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 Bongers <kbongers@jged.com>, |
| Sebastian Andrzej Siewior <bigeasy@linutronix.de>, |
| Stefan Bader <stefan.bader@canonical.com> |
| Subject: [patch 18/41] USB: isp1760: Fix probe in PCI glue code |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=usb-isp1760-fix-probe-in-pci-glue-code.patch |
| Content-Length: 5116 |
| Lines: 183 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Karl Bongers <kbongers@jged.com> |
| |
| This is the backported version of the upstream commit |
| Stefan Bader <stefan.bader@canonical.com> did the backport |
| |
| Contains fixes so probe on x86 PCI runs, apparently I'm first to try |
| this. Several fixes to memory access to probe host scratch register. |
| Previously would bug check on chip_addr var used uninitialized. |
| Scratch reg write failed in one instance due to 16-bit initial access |
| mode, so added "& 0x0000ffff" to the readl as fix. |
| Includes some general cleanup - remove global vars, organize memory map |
| resource use. |
| |
| Signed-off-by: Karl Bongers <kbongers@jged.com> |
| Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| Signed-off-by: Stefan Bader <stefan.bader@canonical.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/usb/host/isp1760-if.c | 96 ++++++++++++++++++++++++------------------ |
| 1 file changed, 55 insertions(+), 41 deletions(-) |
| |
| --- a/drivers/usb/host/isp1760-if.c |
| +++ b/drivers/usb/host/isp1760-if.c |
| @@ -129,23 +129,23 @@ static struct of_platform_driver isp1760 |
| #endif |
| |
| #ifdef CONFIG_PCI |
| -static u32 nxp_pci_io_base; |
| -static u32 iolength; |
| -static u32 pci_mem_phy0; |
| -static u32 length; |
| -static u8 __iomem *chip_addr; |
| -static u8 __iomem *iobase; |
| - |
| static int __devinit isp1761_pci_probe(struct pci_dev *dev, |
| const struct pci_device_id *id) |
| { |
| u8 latency, limit; |
| __u32 reg_data; |
| int retry_count; |
| - int length; |
| - int status = 1; |
| struct usb_hcd *hcd; |
| unsigned int devflags = 0; |
| + int ret_status = 0; |
| + |
| + resource_size_t pci_mem_phy0; |
| + resource_size_t memlength; |
| + |
| + u8 __iomem *chip_addr; |
| + u8 __iomem *iobase; |
| + resource_size_t nxp_pci_io_base; |
| + resource_size_t iolength; |
| |
| if (usb_disabled()) |
| return -ENODEV; |
| @@ -168,26 +168,30 @@ static int __devinit isp1761_pci_probe(s |
| iobase = ioremap_nocache(nxp_pci_io_base, iolength); |
| if (!iobase) { |
| printk(KERN_ERR "ioremap #1\n"); |
| - release_mem_region(nxp_pci_io_base, iolength); |
| - return -ENOMEM; |
| + ret_status = -ENOMEM; |
| + goto cleanup1; |
| } |
| /* Grab the PLX PCI shared memory of the ISP 1761 we need */ |
| pci_mem_phy0 = pci_resource_start(dev, 3); |
| - length = pci_resource_len(dev, 3); |
| - |
| - if (length < 0xffff) { |
| - printk(KERN_ERR "memory length for this resource is less than " |
| - "required\n"); |
| - release_mem_region(nxp_pci_io_base, iolength); |
| - iounmap(iobase); |
| - return -ENOMEM; |
| + memlength = pci_resource_len(dev, 3); |
| + if (memlength < 0xffff) { |
| + printk(KERN_ERR "memory length for this resource is wrong\n"); |
| + ret_status = -ENOMEM; |
| + goto cleanup2; |
| } |
| |
| - if (!request_mem_region(pci_mem_phy0, length, "ISP-PCI")) { |
| + if (!request_mem_region(pci_mem_phy0, memlength, "ISP-PCI")) { |
| printk(KERN_ERR "host controller already in use\n"); |
| - release_mem_region(nxp_pci_io_base, iolength); |
| - iounmap(iobase); |
| - return -EBUSY; |
| + ret_status = -EBUSY; |
| + goto cleanup2; |
| + } |
| + |
| + /* map available memory */ |
| + chip_addr = ioremap_nocache(pci_mem_phy0,memlength); |
| + if (!chip_addr) { |
| + printk(KERN_ERR "Error ioremap failed\n"); |
| + ret_status = -ENOMEM; |
| + goto cleanup3; |
| } |
| |
| /* bad pci latencies can contribute to overruns */ |
| @@ -210,38 +214,54 @@ static int __devinit isp1761_pci_probe(s |
| * */ |
| writel(0xface, chip_addr + HC_SCRATCH_REG); |
| udelay(100); |
| - reg_data = readl(chip_addr + HC_SCRATCH_REG); |
| + reg_data = readl(chip_addr + HC_SCRATCH_REG) & 0x0000ffff; |
| retry_count--; |
| } |
| |
| + iounmap(chip_addr); |
| + |
| /* Host Controller presence is detected by writing to scratch register |
| * and reading back and checking the contents are same or not |
| */ |
| if (reg_data != 0xFACE) { |
| err("scratch register mismatch %x", reg_data); |
| - goto clean; |
| + ret_status = -ENOMEM; |
| + goto cleanup3; |
| } |
| |
| pci_set_master(dev); |
| |
| - status = readl(iobase + 0x68); |
| - status |= 0x900; |
| - writel(status, iobase + 0x68); |
| + /* configure PLX PCI chip to pass interrupts */ |
| +#define PLX_INT_CSR_REG 0x68 |
| + reg_data = readl(iobase + PLX_INT_CSR_REG); |
| + reg_data |= 0x900; |
| + writel(reg_data, iobase + PLX_INT_CSR_REG); |
| |
| dev->dev.dma_mask = NULL; |
| - hcd = isp1760_register(pci_mem_phy0, length, dev->irq, |
| + hcd = isp1760_register(pci_mem_phy0, memlength, dev->irq, |
| IRQF_SHARED | IRQF_DISABLED, &dev->dev, dev_name(&dev->dev), |
| devflags); |
| + if (IS_ERR(hcd)) { |
| + ret_status = -ENODEV; |
| + goto cleanup3; |
| + } |
| + |
| + /* done with PLX IO access */ |
| + iounmap(iobase); |
| + release_mem_region(nxp_pci_io_base, iolength); |
| + |
| pci_set_drvdata(dev, hcd); |
| - if (!hcd) |
| - return 0; |
| -clean: |
| - status = -ENODEV; |
| + return 0; |
| + |
| +cleanup3: |
| + release_mem_region(pci_mem_phy0, memlength); |
| +cleanup2: |
| iounmap(iobase); |
| - release_mem_region(pci_mem_phy0, length); |
| +cleanup1: |
| release_mem_region(nxp_pci_io_base, iolength); |
| - return status; |
| + return ret_status; |
| } |
| + |
| static void isp1761_pci_remove(struct pci_dev *dev) |
| { |
| struct usb_hcd *hcd; |
| @@ -254,12 +274,6 @@ static void isp1761_pci_remove(struct pc |
| usb_put_hcd(hcd); |
| |
| pci_disable_device(dev); |
| - |
| - iounmap(iobase); |
| - iounmap(chip_addr); |
| - |
| - release_mem_region(nxp_pci_io_base, iolength); |
| - release_mem_region(pci_mem_phy0, length); |
| } |
| |
| static void isp1761_pci_shutdown(struct pci_dev *dev) |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.526720279@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:48 -0800 |
| From: Greg KH <gregkh@suse.de> |
| To: linux-kernel@vger.kernel.org, |
| stable@kernel.org, |
| Greg KH <greg@kroah.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, |
| Ingo Molnar <mingo@elte.hu>, |
| <venkatesh.pallipadi@intel.com>, |
| Suresh Siddha <suresh.b.siddha@intel.com> |
| Subject: [patch 19/41] x86: fix page attribute corruption with cpa() |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=x86-fix-page-attribute-corruption-with-cpa.patch |
| Content-Length: 4180 |
| Lines: 131 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Suresh Siddha <suresh.b.siddha@intel.com> |
| |
| commit a1e46212a410793d575718818e81ddc442a65283 upstream. |
| |
| Impact: fix sporadic slowdowns and warning messages |
| |
| This patch fixes a performance issue reported by Linus on his |
| Nehalem system. While Linus reverted the PAT patch (commit |
| 58dab916dfb57328d50deb0aa9b3fc92efa248ff) which exposed the issue, |
| existing cpa() code can potentially still cause wrong(page attribute |
| corruption) behavior. |
| |
| This patch also fixes the "WARNING: at arch/x86/mm/pageattr.c:560" that |
| various people reported. |
| |
| In 64bit kernel, kernel identity mapping might have holes depending |
| on the available memory and how e820 reports the address range |
| covering the RAM, ACPI, PCI reserved regions. If there is a 2MB/1GB hole |
| in the address range that is not listed by e820 entries, kernel identity |
| mapping will have a corresponding hole in its 1-1 identity mapping. |
| |
| If cpa() happens on the kernel identity mapping which falls into these |
| holes, |
| existing code fails like this: |
| |
| __change_page_attr_set_clr() |
| __change_page_attr() |
| returns 0 because of if (!kpte). But doesn't |
| set cpa->numpages and cpa->pfn. |
| cpa_process_alias() |
| uses uninitialized cpa->pfn (random value) |
| which can potentially lead to changing the page |
| attribute of kernel text/data, kernel identity |
| mapping of RAM pages etc. oops! |
| |
| This bug was easily exposed by another PAT patch which was doing |
| cpa() more often on kernel identity mapping holes (physical range |
| between |
| max_low_pfn_mapped and 4GB), where in here it was setting the |
| cache disable attribute(PCD) for kernel identity mappings aswell. |
| |
| Fix cpa() to handle the kernel identity mapping holes. Retain |
| the WARN() for cpa() calls to other not present address ranges |
| (kernel-text/data, ioremap() addresses) |
| |
| Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> |
| Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| Signed-off-by: Ingo Molnar <mingo@elte.hu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| |
| --- |
| arch/x86/mm/pageattr.c | 49 ++++++++++++++++++++++++++++++++++--------------- |
| 1 file changed, 34 insertions(+), 15 deletions(-) |
| |
| --- a/arch/x86/mm/pageattr.c |
| +++ b/arch/x86/mm/pageattr.c |
| @@ -582,6 +582,36 @@ out_unlock: |
| return 0; |
| } |
| |
| +static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr, |
| + int primary) |
| +{ |
| + /* |
| + * Ignore all non primary paths. |
| + */ |
| + if (!primary) |
| + return 0; |
| + |
| + /* |
| + * Ignore the NULL PTE for kernel identity mapping, as it is expected |
| + * to have holes. |
| + * Also set numpages to '1' indicating that we processed cpa req for |
| + * one virtual address page and its pfn. TBD: numpages can be set based |
| + * on the initial value and the level returned by lookup_address(). |
| + */ |
| + if (within(vaddr, PAGE_OFFSET, |
| + PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) { |
| + cpa->numpages = 1; |
| + cpa->pfn = __pa(vaddr) >> PAGE_SHIFT; |
| + return 0; |
| + } else { |
| + WARN(1, KERN_WARNING "CPA: called for zero pte. " |
| + "vaddr = %lx cpa->vaddr = %lx\n", vaddr, |
| + cpa->vaddr); |
| + |
| + return -EINVAL; |
| + } |
| +} |
| + |
| static int __change_page_attr(struct cpa_data *cpa, int primary) |
| { |
| unsigned long address = cpa->vaddr; |
| @@ -592,17 +622,11 @@ static int __change_page_attr(struct cpa |
| repeat: |
| kpte = lookup_address(address, &level); |
| if (!kpte) |
| - return 0; |
| + return __cpa_process_fault(cpa, address, primary); |
| |
| old_pte = *kpte; |
| - if (!pte_val(old_pte)) { |
| - if (!primary) |
| - return 0; |
| - WARN(1, KERN_WARNING "CPA: called for zero pte. " |
| - "vaddr = %lx cpa->vaddr = %lx\n", address, |
| - cpa->vaddr); |
| - return -EINVAL; |
| - } |
| + if (!pte_val(old_pte)) |
| + return __cpa_process_fault(cpa, address, primary); |
| |
| if (level == PG_LEVEL_4K) { |
| pte_t new_pte; |
| @@ -676,12 +700,7 @@ static int cpa_process_alias(struct cpa_ |
| * mapping already: |
| */ |
| if (!(within(cpa->vaddr, PAGE_OFFSET, |
| - PAGE_OFFSET + (max_low_pfn_mapped << PAGE_SHIFT)) |
| -#ifdef CONFIG_X86_64 |
| - || within(cpa->vaddr, PAGE_OFFSET + (1UL<<32), |
| - PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)) |
| -#endif |
| - )) { |
| + PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)))) { |
| |
| alias_cpa = *cpa; |
| alias_cpa.vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.656227312@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:49 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 20/41] cpuidle: update the last_state acpi cpuidle reflecting actual state entered |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=cpuidle-update-the-last_state-acpi-cpuidle-reflecting-actual-state-entered.patch |
| Content-Length: 827 |
| Lines: 27 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| |
| commit addbad46ed0906cd584784423b9d0babc7476446 |
| |
| reflect the actual state entered in dev->last_state, when actaul state entered |
| is different from intended one. |
| |
| Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/processor_idle.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/acpi/processor_idle.c |
| +++ b/drivers/acpi/processor_idle.c |
| @@ -1587,6 +1587,7 @@ static int acpi_idle_enter_bm(struct cpu |
| |
| if (acpi_idle_bm_check()) { |
| if (dev->safe_state) { |
| + dev->last_state = dev->safe_state; |
| return dev->safe_state->enter(dev, dev->safe_state); |
| } else { |
| local_irq_disable(); |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:47 2009 |
| Message-Id: <20090204184147.789095804@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:50 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 21/41] cpuidle: upon BIOS bug, default to default_idle rather than polling |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=cpuidle-upon-bios-bug-default-to-default_idle-rather-than-polling.patch |
| Content-Length: 1002 |
| Lines: 43 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| |
| commit 89cedfefca1d446ee2598fd3bcbb23ee3802e26a upstream |
| |
| http://bugzilla.kernel.org/show_bug.cgi?id=11345 |
| |
| Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/x86/Kconfig | 3 +++ |
| drivers/cpuidle/cpuidle.c | 4 ++++ |
| 2 files changed, 7 insertions(+) |
| |
| --- a/arch/x86/Kconfig |
| +++ b/arch/x86/Kconfig |
| @@ -123,6 +123,9 @@ config GENERIC_TIME_VSYSCALL |
| config ARCH_HAS_CPU_RELAX |
| def_bool y |
| |
| +config ARCH_HAS_DEFAULT_IDLE |
| + def_bool y |
| + |
| config ARCH_HAS_CACHE_LINE_SIZE |
| def_bool y |
| |
| --- a/drivers/cpuidle/cpuidle.c |
| +++ b/drivers/cpuidle/cpuidle.c |
| @@ -56,7 +56,11 @@ static void cpuidle_idle_call(void) |
| if (pm_idle_old) |
| pm_idle_old(); |
| else |
| +#if defined(CONFIG_ARCH_HAS_DEFAULT_IDLE) |
| + default_idle(); |
| +#else |
| local_irq_enable(); |
| +#endif |
| return; |
| } |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184147.941808370@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:51 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 22/41] cpuidle: use last_state which can reflect the actual state entered |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=cpuidle-use-last_state-which-can-reflect-the-actual-state-entered.patch |
| Content-Length: 1455 |
| Lines: 41 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| |
| commit 887e301aa1105326f1412a98749024263b1031c7 upstream |
| |
| cpuidle accounts the idle time for the C-state it was trying to enter and |
| not to the actual state that the driver eventually entered. The driver may |
| select a different state than the one chosen by cpuidle due to |
| constraints like bus-mastering, etc. |
| |
| Change the time acounting code to look at the dev->last_state after |
| returning from target_state->enter(). Driver can modify dev->last_state |
| internally, inside the enter routine to reflect the actual C-state |
| entered. |
| |
| Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| Tested-by: Kevin Hilman <khilman@deeprootsystems.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/cpuidle/cpuidle.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/cpuidle/cpuidle.c |
| +++ b/drivers/cpuidle/cpuidle.c |
| @@ -71,8 +71,11 @@ static void cpuidle_idle_call(void) |
| target_state = &dev->states[next_state]; |
| |
| /* enter the state and update stats */ |
| - dev->last_residency = target_state->enter(dev, target_state); |
| dev->last_state = target_state; |
| + dev->last_residency = target_state->enter(dev, target_state); |
| + if (dev->last_state) |
| + target_state = dev->last_state; |
| + |
| target_state->time += (unsigned long long)dev->last_residency; |
| target_state->usage++; |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.059185020@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:52 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| <venkatesh.pallipadi@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 23/41] cpuidle: Add decaying history logic to menu idle predictor |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=cpuidle-add-decaying-history-logic-to-menu-idle-predictor.patch |
| Content-Length: 2100 |
| Lines: 62 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| |
| commit 816bb611e41be29b476dc16f6297eb551bf4d747 upstream |
| |
| Add decaying history of predicted idle time, instead of using the last early |
| wakeup. This logic helps menu governor do better job of predicting idle time. |
| |
| With this change, we also measured noticable (~8%) power savings on |
| a DP server system with CPUs supporting deep C states, when system |
| was lightly loaded. There was no change to power or perf on other load |
| conditions. |
| |
| Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/cpuidle/governors/menu.c | 10 +++++++++- |
| 1 file changed, 9 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/cpuidle/governors/menu.c |
| +++ b/drivers/cpuidle/governors/menu.c |
| @@ -15,12 +15,14 @@ |
| #include <linux/tick.h> |
| |
| #define BREAK_FUZZ 4 /* 4 us */ |
| +#define PRED_HISTORY_PCT 50 |
| |
| struct menu_device { |
| int last_state_idx; |
| |
| unsigned int expected_us; |
| unsigned int predicted_us; |
| + unsigned int current_predicted_us; |
| unsigned int last_measured_us; |
| unsigned int elapsed_us; |
| }; |
| @@ -47,6 +49,12 @@ static int menu_select(struct cpuidle_de |
| data->expected_us = |
| (u32) ktime_to_ns(tick_nohz_get_sleep_length()) / 1000; |
| |
| + /* Recalculate predicted_us based on prediction_history_pct */ |
| + data->predicted_us *= PRED_HISTORY_PCT; |
| + data->predicted_us += (100 - PRED_HISTORY_PCT) * |
| + data->current_predicted_us; |
| + data->predicted_us /= 100; |
| + |
| /* find the deepest idle state that satisfies our constraints */ |
| for (i = CPUIDLE_DRIVER_STATE_START + 1; i < dev->state_count; i++) { |
| struct cpuidle_state *s = &dev->states[i]; |
| @@ -97,7 +105,7 @@ static void menu_reflect(struct cpuidle_ |
| measured_us = -1; |
| |
| /* Predict time until next break event */ |
| - data->predicted_us = max(measured_us, data->last_measured_us); |
| + data->current_predicted_us = max(measured_us, data->last_measured_us); |
| |
| if (last_idle_us + BREAK_FUZZ < |
| data->expected_us - target->exit_latency) { |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.189305049@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:53 -0800 |
| 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, |
| Zhao Yakui <yakui.zhao@intel.com>, |
| Venki Pallipadi <venkatesh.pallipadi@intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 24/41] ACPI: Avoid array address overflow when _CST MWAIT hint bits are set |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-avoid-array-address-overflow-when-_cst-mwait-hint-bits-are-set.patch |
| Content-Length: 2017 |
| Lines: 59 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Zhao Yakui <yakui.zhao@intel.com> |
| |
| commit 13b40a1a065824d2d4e55c8b48ea9f3f9d162929 upstream. |
| |
| The Cx Register address obtained from the _CST object is used as the MWAIT |
| hints if the register type is FFixedHW. And it is used to check whether |
| the Cx type is supported or not. |
| |
| On some boxes the following Cx state package is obtained from _CST object: |
| >{ |
| ResourceTemplate () |
| { |
| Register (FFixedHW, |
| 0x01, // Bit Width |
| 0x02, // Bit Offset |
| 0x0000000000889759, // Address |
| 0x03, // Access Size |
| ) |
| }, |
| |
| 0x03, |
| 0xF5, |
| 0x015E } |
| |
| In such case we should use the bit[7:4] of Cx address to check whether |
| the Cx type is supported or not. |
| |
| mask the MWAIT hint to avoid array address overflow |
| |
| Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> |
| Acked-by:Venki Pallipadi <venkatesh.pallipadi@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| |
| --- |
| arch/x86/kernel/acpi/cstate.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/arch/x86/kernel/acpi/cstate.c |
| +++ b/arch/x86/kernel/acpi/cstate.c |
| @@ -56,6 +56,7 @@ static struct cstate_entry *cpu_cstate_e |
| static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; |
| |
| #define MWAIT_SUBSTATE_MASK (0xf) |
| +#define MWAIT_CSTATE_MASK (0xf) |
| #define MWAIT_SUBSTATE_SIZE (4) |
| |
| #define CPUID_MWAIT_LEAF (5) |
| @@ -98,7 +99,8 @@ int acpi_processor_ffh_cstate_probe(unsi |
| cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); |
| |
| /* Check whether this particular cx_type (in CST) is supported or not */ |
| - cstate_type = (cx->address >> MWAIT_SUBSTATE_SIZE) + 1; |
| + cstate_type = ((cx->address >> MWAIT_SUBSTATE_SIZE) & |
| + MWAIT_CSTATE_MASK) + 1; |
| edx_part = edx >> (cstate_type * MWAIT_SUBSTATE_SIZE); |
| num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.320825605@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:54 -0800 |
| 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, |
| Zhao Yakui <yakui.zhao@intel.com>, |
| Zhang Rui <rui.zhang@intel.com>, |
| Andi Kleen <ak@linux.intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 25/41] ACPI: Attach the ACPI device to the ACPI handle as early as possible |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-attach-the-acpi-device-to-the-acpi-handle-as-early-as-possible.patch |
| Content-Length: 1533 |
| Lines: 51 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Zhao Yakui <yakui.zhao@intel.com> |
| |
| commit eab4b645769fa2f8703f5a3cb0cc4ac090d347af upstream. |
| |
| Attach the ACPI device to the ACPI handle as early as possible so that OS |
| can get the corresponding ACPI device by the acpi handle in the course |
| of getting the power/wakeup/performance flags. |
| |
| http://bugzilla.kernel.org/show_bug.cgi?id=8049 |
| http://bugzilla.kernel.org/show_bug.cgi?id=11000 |
| |
| Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> |
| Signed-off-by: Zhang Rui <rui.zhang@intel.com> |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/scan.c | 12 ++++++++++-- |
| 1 file changed, 10 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/acpi/scan.c |
| +++ b/drivers/acpi/scan.c |
| @@ -1262,6 +1262,16 @@ acpi_add_single_object(struct acpi_devic |
| acpi_device_set_id(device, parent, handle, type); |
| |
| /* |
| + * The ACPI device is attached to acpi handle before getting |
| + * the power/wakeup/peformance flags. Otherwise OS can't get |
| + * the corresponding ACPI device by the acpi handle in the course |
| + * of getting the power/wakeup/performance flags. |
| + */ |
| + result = acpi_device_set_context(device, type); |
| + if (result) |
| + goto end; |
| + |
| + /* |
| * Power Management |
| * ---------------- |
| */ |
| @@ -1291,8 +1301,6 @@ acpi_add_single_object(struct acpi_devic |
| goto end; |
| } |
| |
| - if ((result = acpi_device_set_context(device, type))) |
| - goto end; |
| |
| result = acpi_device_register(device, parent); |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.456300016@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:55 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| Bob Moore <robert.moore@intel.com>, |
| Lin Ming <ming.m.lin@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 26/41] ACPICA: Fixed a couple memory leaks associated with "implicit return" |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpica-fixed-a-couple-memory-leaks-associated-with-implicit-return.patch |
| Content-Length: 1415 |
| Lines: 50 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Lin Ming <ming.m.lin@intel.com> |
| |
| commit d8a0ec914afa1a994d2f6184ac4c6668b5f8068f upstream |
| |
| Fixed a couple memory leaks associated with "implicit return" objects |
| when the AML Interpreter slack mode is enabled. |
| |
| http://www.acpica.org/bugzilla/show_bug.cgi?id=349 |
| |
| Signed-off-by: Lin Ming <ming.m.lin@intel.com> |
| Signed-off-by: Bob Moore <robert.moore@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/dispatcher/dsmethod.c | 3 +++ |
| drivers/acpi/parser/psparse.c | 4 +++- |
| 2 files changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/acpi/dispatcher/dsmethod.c |
| +++ b/drivers/acpi/dispatcher/dsmethod.c |
| @@ -103,6 +103,9 @@ acpi_ds_method_error(acpi_status status, |
| NULL); |
| acpi_ex_enter_interpreter(); |
| } |
| + |
| + acpi_ds_clear_implicit_return(walk_state); |
| + |
| #ifdef ACPI_DISASSEMBLER |
| if (ACPI_FAILURE(status)) { |
| |
| --- a/drivers/acpi/parser/psparse.c |
| +++ b/drivers/acpi/parser/psparse.c |
| @@ -641,10 +641,12 @@ acpi_status acpi_ps_parse_aml(struct acp |
| ACPI_WALK_METHOD_RESTART; |
| } |
| } else { |
| - /* On error, delete any return object */ |
| + /* On error, delete any return object or implicit return */ |
| |
| acpi_ut_remove_reference(previous_walk_state-> |
| return_desc); |
| + acpi_ds_clear_implicit_return |
| + (previous_walk_state); |
| } |
| } |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.583727804@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:56 -0800 |
| 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, |
| Len Brown <len.brown@intel.com>, |
| Andi Kleen <ak@linux.intel.com>, |
| Lin Ming <ming.m.lin@intel.com>, |
| Bob Moore <robert.moore@intel.com>, |
| Fiodor Suietov <fiodor.f.suietov@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 27/41] ACPICA: Add check for invalid handle in acpi_get_object_info |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpica-add-check-for-invalid-handle-in-acpi_get_object_info.patch |
| Content-Length: 941 |
| Lines: 31 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Fiodor Suietov <fiodor.f.suietov@intel.com> |
| |
| commit 237a927682a63f02adb542dbdaafe8a81566451d upstream |
| |
| Return AE_BAD_PARAMETER if input handle is invalid. |
| |
| http://www.acpica.org/bugzilla/show_bug.cgi?id=474 |
| |
| Signed-off-by: Fiodor Suietov <fiodor.f.suietov@intel.com> |
| Signed-off-by: Bob Moore <robert.moore@intel.com> |
| Signed-off-by: Lin Ming <ming.m.lin@intel.com> |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/namespace/nsxfname.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/acpi/namespace/nsxfname.c |
| +++ b/drivers/acpi/namespace/nsxfname.c |
| @@ -253,6 +253,7 @@ acpi_get_object_info(acpi_handle handle, |
| node = acpi_ns_map_handle_to_node(handle); |
| if (!node) { |
| (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); |
| + status = AE_BAD_PARAMETER; |
| goto cleanup; |
| } |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.713884710@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:57 -0800 |
| 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, |
| Matthew Wilcox <willy@linux.intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 28/41] ACPI: Change acpi_evaluate_integer to support 64-bit on 32-bit kernels |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-change-acpi_evaluate_integer-to-support-64-bit-on-32-bit-kernels.patch |
| Content-Length: 33969 |
| Lines: 1096 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Matthew Wilcox <willy@linux.intel.com> |
| |
| commit 27663c5855b10af9ec67bc7dfba001426ba21222 upstream |
| |
| As of version 2.0, ACPI can return 64-bit integers. The current |
| acpi_evaluate_integer only supports 64-bit integers on 64-bit platforms. |
| Change the argument to take a pointer to an acpi_integer so we support |
| 64-bit integers on all platforms. |
| |
| lenb: replaced use of "acpi_integer" with "unsigned long long" |
| lenb: fixed bug in acpi_thermal_trips_update() |
| |
| Signed-off-by: Matthew Wilcox <willy@linux.intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/ia64/sn/kernel/io_acpi_init.c | 8 +++--- |
| drivers/acpi/ac.c | 2 - |
| drivers/acpi/acpi_memhotplug.c | 5 +--- |
| drivers/acpi/asus_acpi.c | 2 - |
| drivers/acpi/bay.c | 2 - |
| drivers/acpi/bus.c | 4 +-- |
| drivers/acpi/button.c | 4 +-- |
| drivers/acpi/container.c | 2 - |
| drivers/acpi/dock.c | 6 ++--- |
| drivers/acpi/ec.c | 7 ++++- |
| drivers/acpi/numa.c | 2 - |
| drivers/acpi/osl.c | 5 +--- |
| drivers/acpi/pci_root.c | 2 - |
| drivers/acpi/pci_slot.c | 10 ++++---- |
| drivers/acpi/power.c | 2 - |
| drivers/acpi/processor_core.c | 4 +-- |
| drivers/acpi/processor_perflib.c | 2 - |
| drivers/acpi/processor_throttling.c | 2 - |
| drivers/acpi/sbshc.c | 2 - |
| drivers/acpi/sleep/main.c | 2 - |
| drivers/acpi/thermal.c | 43 ++++++++++++++++++++++-------------- |
| drivers/acpi/utils.c | 4 +-- |
| drivers/acpi/video.c | 42 +++++++++++++++++------------------ |
| drivers/ata/libata-acpi.c | 2 - |
| drivers/misc/asus-laptop.c | 12 +++++----- |
| drivers/misc/eeepc-laptop.c | 2 - |
| drivers/misc/fujitsu-laptop.c | 8 +++--- |
| drivers/misc/intel_menlow.c | 27 +++++++++++----------- |
| drivers/pci/hotplug/acpiphp_glue.c | 14 +++++------ |
| drivers/pci/hotplug/acpiphp_ibm.c | 2 - |
| drivers/pci/hotplug/sgi_hotplug.c | 4 +-- |
| include/acpi/acpi_bus.h | 2 - |
| 32 files changed, 125 insertions(+), 112 deletions(-) |
| |
| --- a/arch/ia64/sn/kernel/io_acpi_init.c |
| +++ b/arch/ia64/sn/kernel/io_acpi_init.c |
| @@ -232,7 +232,7 @@ exit: |
| static unsigned int |
| get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) |
| { |
| - unsigned long adr; |
| + unsigned long long adr; |
| acpi_handle child; |
| unsigned int devfn; |
| int function; |
| @@ -292,8 +292,8 @@ get_host_devfn(acpi_handle device_handle |
| static acpi_status |
| find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) |
| { |
| - unsigned long bbn = -1; |
| - unsigned long adr; |
| + unsigned long long bbn = -1; |
| + unsigned long long adr; |
| acpi_handle parent = NULL; |
| acpi_status status; |
| unsigned int devfn; |
| @@ -348,7 +348,7 @@ sn_acpi_get_pcidev_info(struct pci_dev * |
| unsigned int host_devfn; |
| struct sn_pcidev_match pcidev_match; |
| acpi_handle rootbus_handle; |
| - unsigned long segment; |
| + unsigned long long segment; |
| acpi_status status; |
| |
| rootbus_handle = PCI_CONTROLLER(dev)->acpi_handle; |
| --- a/drivers/acpi/ac.c |
| +++ b/drivers/acpi/ac.c |
| @@ -85,7 +85,7 @@ struct acpi_ac { |
| struct power_supply charger; |
| #endif |
| struct acpi_device * device; |
| - unsigned long state; |
| + unsigned long long state; |
| }; |
| |
| #define to_acpi_ac(x) container_of(x, struct acpi_ac, charger); |
| --- a/drivers/acpi/acpi_memhotplug.c |
| +++ b/drivers/acpi/acpi_memhotplug.c |
| @@ -194,8 +194,7 @@ acpi_memory_get_device(acpi_handle handl |
| |
| static int acpi_memory_check_device(struct acpi_memory_device *mem_device) |
| { |
| - unsigned long current_status; |
| - |
| + unsigned long long current_status; |
| |
| /* Get device present/absent information from the _STA */ |
| if (ACPI_FAILURE(acpi_evaluate_integer(mem_device->device->handle, "_STA", |
| @@ -264,7 +263,7 @@ static int acpi_memory_powerdown_device( |
| acpi_status status; |
| struct acpi_object_list arg_list; |
| union acpi_object arg; |
| - unsigned long current_status; |
| + unsigned long long current_status; |
| |
| |
| /* Issue the _EJ0 command */ |
| --- a/drivers/acpi/asus_acpi.c |
| +++ b/drivers/acpi/asus_acpi.c |
| @@ -753,7 +753,7 @@ static int get_lcd_state(void) |
| /* That's what the AML code does */ |
| lcd = out_obj.integer.value >> 8; |
| } else if (hotk->model == F3Sa) { |
| - unsigned long tmp; |
| + unsigned long long tmp; |
| union acpi_object param; |
| struct acpi_object_list input; |
| acpi_status status; |
| --- a/drivers/acpi/bay.c |
| +++ b/drivers/acpi/bay.c |
| @@ -90,7 +90,7 @@ static int is_ejectable(acpi_handle hand |
| */ |
| static int bay_present(struct bay *bay) |
| { |
| - unsigned long sta; |
| + unsigned long long sta; |
| acpi_status status; |
| |
| if (bay) { |
| --- a/drivers/acpi/bus.c |
| +++ b/drivers/acpi/bus.c |
| @@ -77,7 +77,7 @@ EXPORT_SYMBOL(acpi_bus_get_device); |
| int acpi_bus_get_status(struct acpi_device *device) |
| { |
| acpi_status status = AE_OK; |
| - unsigned long sta = 0; |
| + unsigned long long sta = 0; |
| |
| |
| if (!device) |
| @@ -155,7 +155,7 @@ int acpi_bus_get_power(acpi_handle handl |
| int result = 0; |
| acpi_status status = 0; |
| struct acpi_device *device = NULL; |
| - unsigned long psc = 0; |
| + unsigned long long psc = 0; |
| |
| |
| result = acpi_bus_get_device(handle, &device); |
| --- a/drivers/acpi/button.c |
| +++ b/drivers/acpi/button.c |
| @@ -145,7 +145,7 @@ static int acpi_button_state_seq_show(st |
| { |
| struct acpi_button *button = seq->private; |
| acpi_status status; |
| - unsigned long state; |
| + unsigned long long state; |
| |
| if (!button || !button->device) |
| return 0; |
| @@ -253,7 +253,7 @@ static int acpi_button_remove_fs(struct |
| -------------------------------------------------------------------------- */ |
| static int acpi_lid_send_state(struct acpi_button *button) |
| { |
| - unsigned long state; |
| + unsigned long long state; |
| acpi_status status; |
| |
| status = acpi_evaluate_integer(button->device->handle, "_LID", NULL, |
| --- a/drivers/acpi/container.c |
| +++ b/drivers/acpi/container.c |
| @@ -76,7 +76,7 @@ static int is_device_present(acpi_handle |
| { |
| acpi_handle temp; |
| acpi_status status; |
| - unsigned long sta; |
| + unsigned long long sta; |
| |
| |
| status = acpi_get_handle(handle, "_STA", &temp); |
| --- a/drivers/acpi/dock.c |
| +++ b/drivers/acpi/dock.c |
| @@ -229,7 +229,7 @@ EXPORT_SYMBOL_GPL(is_dock_device); |
| */ |
| static int dock_present(struct dock_station *ds) |
| { |
| - unsigned long sta; |
| + unsigned long long sta; |
| acpi_status status; |
| |
| if (ds) { |
| @@ -730,13 +730,13 @@ static DEVICE_ATTR(undock, S_IWUSR, NULL |
| static ssize_t show_dock_uid(struct device *dev, |
| struct device_attribute *attr, char *buf) |
| { |
| - unsigned long lbuf; |
| + unsigned long long lbuf; |
| acpi_status status = acpi_evaluate_integer(dock_station->handle, |
| "_UID", NULL, &lbuf); |
| if (ACPI_FAILURE(status)) |
| return 0; |
| |
| - return snprintf(buf, PAGE_SIZE, "%lx\n", lbuf); |
| + return snprintf(buf, PAGE_SIZE, "%llx\n", lbuf); |
| } |
| static DEVICE_ATTR(uid, S_IRUGO, show_dock_uid, NULL); |
| |
| --- a/drivers/acpi/ec.c |
| +++ b/drivers/acpi/ec.c |
| @@ -769,6 +769,7 @@ static acpi_status |
| ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval) |
| { |
| acpi_status status; |
| + unsigned long long tmp; |
| |
| struct acpi_ec *ec = context; |
| status = acpi_walk_resources(handle, METHOD_NAME__CRS, |
| @@ -778,11 +779,13 @@ ec_parse_device(acpi_handle handle, u32 |
| |
| /* Get GPE bit assignment (EC events). */ |
| /* TODO: Add support for _GPE returning a package */ |
| - status = acpi_evaluate_integer(handle, "_GPE", NULL, &ec->gpe); |
| + status = acpi_evaluate_integer(handle, "_GPE", NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| return status; |
| + ec->gpe = tmp; |
| /* Use the global lock for all EC transactions? */ |
| - acpi_evaluate_integer(handle, "_GLK", NULL, &ec->global_lock); |
| + acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); |
| + ec->global_lock = tmp; |
| ec->handle = handle; |
| return AE_CTRL_TERMINATE; |
| } |
| --- a/drivers/acpi/numa.c |
| +++ b/drivers/acpi/numa.c |
| @@ -258,7 +258,7 @@ int __init acpi_numa_init(void) |
| |
| int acpi_get_pxm(acpi_handle h) |
| { |
| - unsigned long pxm; |
| + unsigned long long pxm; |
| acpi_status status; |
| acpi_handle handle; |
| acpi_handle phandle = h; |
| --- a/drivers/acpi/osl.c |
| +++ b/drivers/acpi/osl.c |
| @@ -608,7 +608,7 @@ static void acpi_os_derive_pci_id_2(acpi |
| acpi_handle handle; |
| struct acpi_pci_id *pci_id = *id; |
| acpi_status status; |
| - unsigned long temp; |
| + unsigned long long temp; |
| acpi_object_type type; |
| |
| acpi_get_parent(chandle, &handle); |
| @@ -620,8 +620,7 @@ static void acpi_os_derive_pci_id_2(acpi |
| if ((ACPI_FAILURE(status)) || (type != ACPI_TYPE_DEVICE)) |
| return; |
| |
| - status = |
| - acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, |
| + status = acpi_evaluate_integer(handle, METHOD_NAME__ADR, NULL, |
| &temp); |
| if (ACPI_SUCCESS(status)) { |
| u32 val; |
| --- a/drivers/acpi/pci_root.c |
| +++ b/drivers/acpi/pci_root.c |
| @@ -190,7 +190,7 @@ static int __devinit acpi_pci_root_add(s |
| struct acpi_pci_root *root = NULL; |
| struct acpi_pci_root *tmp; |
| acpi_status status = AE_OK; |
| - unsigned long value = 0; |
| + unsigned long long value = 0; |
| acpi_handle handle = NULL; |
| struct acpi_device *child; |
| |
| --- a/drivers/acpi/pci_slot.c |
| +++ b/drivers/acpi/pci_slot.c |
| @@ -76,10 +76,10 @@ static struct acpi_pci_driver acpi_pci_s |
| }; |
| |
| static int |
| -check_slot(acpi_handle handle, unsigned long *sun) |
| +check_slot(acpi_handle handle, unsigned long long *sun) |
| { |
| int device = -1; |
| - unsigned long adr, sta; |
| + unsigned long long adr, sta; |
| acpi_status status; |
| struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
| |
| @@ -132,7 +132,7 @@ static acpi_status |
| register_slot(acpi_handle handle, u32 lvl, void *context, void **rv) |
| { |
| int device; |
| - unsigned long sun; |
| + unsigned long long sun; |
| char name[SLOT_NAME_SIZE]; |
| struct acpi_pci_slot *slot; |
| struct pci_slot *pci_slot; |
| @@ -182,7 +182,7 @@ static acpi_status |
| walk_p2p_bridge(acpi_handle handle, u32 lvl, void *context, void **rv) |
| { |
| int device, function; |
| - unsigned long adr; |
| + unsigned long long adr; |
| acpi_status status; |
| acpi_handle dummy_handle; |
| acpi_walk_callback user_function; |
| @@ -239,7 +239,7 @@ static int |
| walk_root_bridge(acpi_handle handle, acpi_walk_callback user_function) |
| { |
| int seg, bus; |
| - unsigned long tmp; |
| + unsigned long long tmp; |
| acpi_status status; |
| acpi_handle dummy_handle; |
| struct pci_bus *pci_bus; |
| --- a/drivers/acpi/power.c |
| +++ b/drivers/acpi/power.c |
| @@ -131,7 +131,7 @@ acpi_power_get_context(acpi_handle handl |
| static int acpi_power_get_state(struct acpi_power_resource *resource, int *state) |
| { |
| acpi_status status = AE_OK; |
| - unsigned long sta = 0; |
| + unsigned long long sta = 0; |
| |
| |
| if (!resource || !state) |
| --- a/drivers/acpi/processor_core.c |
| +++ b/drivers/acpi/processor_core.c |
| @@ -563,7 +563,7 @@ static int acpi_processor_get_info(struc |
| |
| /* Check if it is a Device with HID and UID */ |
| if (has_uid) { |
| - unsigned long value; |
| + unsigned long long value; |
| status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID, |
| NULL, &value); |
| if (ACPI_FAILURE(status)) { |
| @@ -875,7 +875,7 @@ static int acpi_processor_remove(struct |
| static int is_processor_present(acpi_handle handle) |
| { |
| acpi_status status; |
| - unsigned long sta = 0; |
| + unsigned long long sta = 0; |
| |
| |
| status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); |
| --- a/drivers/acpi/processor_perflib.c |
| +++ b/drivers/acpi/processor_perflib.c |
| @@ -126,7 +126,7 @@ static struct notifier_block acpi_ppc_no |
| static int acpi_processor_get_platform_limit(struct acpi_processor *pr) |
| { |
| acpi_status status = 0; |
| - unsigned long ppc = 0; |
| + unsigned long long ppc = 0; |
| |
| |
| if (!pr) |
| --- a/drivers/acpi/processor_throttling.c |
| +++ b/drivers/acpi/processor_throttling.c |
| @@ -274,7 +274,7 @@ static int acpi_processor_throttling_not |
| static int acpi_processor_get_platform_limit(struct acpi_processor *pr) |
| { |
| acpi_status status = 0; |
| - unsigned long tpc = 0; |
| + unsigned long long tpc = 0; |
| |
| if (!pr) |
| return -EINVAL; |
| --- a/drivers/acpi/sbshc.c |
| +++ b/drivers/acpi/sbshc.c |
| @@ -258,7 +258,7 @@ extern int acpi_ec_add_query_handler(str |
| static int acpi_smbus_hc_add(struct acpi_device *device) |
| { |
| int status; |
| - unsigned long val; |
| + unsigned long long val; |
| struct acpi_smb_hc *hc; |
| |
| if (!device) |
| --- a/drivers/acpi/sleep/main.c |
| +++ b/drivers/acpi/sleep/main.c |
| @@ -492,7 +492,7 @@ int acpi_pm_device_sleep_state(struct de |
| acpi_handle handle = DEVICE_ACPI_HANDLE(dev); |
| struct acpi_device *adev; |
| char acpi_method[] = "_SxD"; |
| - unsigned long d_min, d_max; |
| + unsigned long long d_min, d_max; |
| |
| if (!handle || ACPI_FAILURE(acpi_bus_get_device(handle, &adev))) { |
| printk(KERN_DEBUG "ACPI handle has no context!\n"); |
| --- a/drivers/acpi/thermal.c |
| +++ b/drivers/acpi/thermal.c |
| @@ -246,18 +246,18 @@ static const struct file_operations acpi |
| static int acpi_thermal_get_temperature(struct acpi_thermal *tz) |
| { |
| acpi_status status = AE_OK; |
| - |
| + unsigned long long tmp; |
| |
| if (!tz) |
| return -EINVAL; |
| |
| tz->last_temperature = tz->temperature; |
| |
| - status = |
| - acpi_evaluate_integer(tz->device->handle, "_TMP", NULL, &tz->temperature); |
| + status = acpi_evaluate_integer(tz->device->handle, "_TMP", NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| return -ENODEV; |
| |
| + tz->temperature = tmp; |
| ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Temperature is %lu dK\n", |
| tz->temperature)); |
| |
| @@ -267,17 +267,16 @@ static int acpi_thermal_get_temperature( |
| static int acpi_thermal_get_polling_frequency(struct acpi_thermal *tz) |
| { |
| acpi_status status = AE_OK; |
| - |
| + unsigned long long tmp; |
| |
| if (!tz) |
| return -EINVAL; |
| |
| - status = |
| - acpi_evaluate_integer(tz->device->handle, "_TZP", NULL, |
| - &tz->polling_frequency); |
| + status = acpi_evaluate_integer(tz->device->handle, "_TZP", NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| return -ENODEV; |
| |
| + tz->polling_frequency = tmp; |
| ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Polling frequency is %lu dS\n", |
| tz->polling_frequency)); |
| |
| @@ -356,6 +355,7 @@ do { \ |
| static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag) |
| { |
| acpi_status status = AE_OK; |
| + unsigned long long tmp; |
| struct acpi_handle_list devices; |
| int valid = 0; |
| int i; |
| @@ -363,7 +363,8 @@ static int acpi_thermal_trips_update(str |
| /* Critical Shutdown (required) */ |
| if (flag & ACPI_TRIPS_CRITICAL) { |
| status = acpi_evaluate_integer(tz->device->handle, |
| - "_CRT", NULL, &tz->trips.critical.temperature); |
| + "_CRT", NULL, &tmp); |
| + tz->trips.critical.temperature = tmp; |
| /* |
| * Treat freezing temperatures as invalid as well; some |
| * BIOSes return really low values and cause reboots at startup. |
| @@ -399,12 +400,13 @@ static int acpi_thermal_trips_update(str |
| /* Critical Sleep (optional) */ |
| if (flag & ACPI_TRIPS_HOT) { |
| status = acpi_evaluate_integer(tz->device->handle, |
| - "_HOT", NULL, &tz->trips.hot.temperature); |
| + "_HOT", NULL, &tmp); |
| if (ACPI_FAILURE(status)) { |
| tz->trips.hot.flags.valid = 0; |
| ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
| "No hot threshold\n")); |
| } else { |
| + tz->trips.hot.temperature = tmp; |
| tz->trips.hot.flags.valid = 1; |
| ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
| "Found hot threshold [%lu]\n", |
| @@ -418,33 +420,40 @@ static int acpi_thermal_trips_update(str |
| if (psv == -1) { |
| status = AE_SUPPORT; |
| } else if (psv > 0) { |
| - tz->trips.passive.temperature = CELSIUS_TO_KELVIN(psv); |
| + tmp = CELSIUS_TO_KELVIN(psv); |
| status = AE_OK; |
| } else { |
| status = acpi_evaluate_integer(tz->device->handle, |
| - "_PSV", NULL, &tz->trips.passive.temperature); |
| + "_PSV", NULL, &tmp); |
| } |
| |
| if (ACPI_FAILURE(status)) |
| tz->trips.passive.flags.valid = 0; |
| else { |
| + tz->trips.passive.temperature = tmp; |
| tz->trips.passive.flags.valid = 1; |
| if (flag == ACPI_TRIPS_INIT) { |
| status = acpi_evaluate_integer( |
| tz->device->handle, "_TC1", |
| - NULL, &tz->trips.passive.tc1); |
| + NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| tz->trips.passive.flags.valid = 0; |
| + else |
| + tz->trips.passive.tc1 = tmp; |
| status = acpi_evaluate_integer( |
| tz->device->handle, "_TC2", |
| - NULL, &tz->trips.passive.tc2); |
| + NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| tz->trips.passive.flags.valid = 0; |
| + else |
| + tz->trips.passive.tc2 = tmp; |
| status = acpi_evaluate_integer( |
| tz->device->handle, "_TSP", |
| - NULL, &tz->trips.passive.tsp); |
| + NULL, &tmp); |
| if (ACPI_FAILURE(status)) |
| tz->trips.passive.flags.valid = 0; |
| + else |
| + tz->trips.passive.tsp = tmp; |
| } |
| } |
| } |
| @@ -479,7 +488,7 @@ static int acpi_thermal_trips_update(str |
| |
| if (flag & ACPI_TRIPS_ACTIVE) { |
| status = acpi_evaluate_integer(tz->device->handle, |
| - name, NULL, &tz->trips.active[i].temperature); |
| + name, NULL, &tmp); |
| if (ACPI_FAILURE(status)) { |
| tz->trips.active[i].flags.valid = 0; |
| if (i == 0) |
| @@ -500,8 +509,10 @@ static int acpi_thermal_trips_update(str |
| tz->trips.active[i - 2].temperature : |
| CELSIUS_TO_KELVIN(act)); |
| break; |
| - } else |
| + } else { |
| + tz->trips.active[i].temperature = tmp; |
| tz->trips.active[i].flags.valid = 1; |
| + } |
| } |
| |
| name[2] = 'L'; |
| --- a/drivers/acpi/utils.c |
| +++ b/drivers/acpi/utils.c |
| @@ -256,7 +256,7 @@ EXPORT_SYMBOL(acpi_extract_package); |
| acpi_status |
| acpi_evaluate_integer(acpi_handle handle, |
| acpi_string pathname, |
| - struct acpi_object_list *arguments, unsigned long *data) |
| + struct acpi_object_list *arguments, unsigned long long *data) |
| { |
| acpi_status status = AE_OK; |
| union acpi_object *element; |
| @@ -288,7 +288,7 @@ acpi_evaluate_integer(acpi_handle handle |
| *data = element->integer.value; |
| kfree(element); |
| |
| - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%lu]\n", *data)); |
| + ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%llu]\n", *data)); |
| |
| return AE_OK; |
| } |
| --- a/drivers/acpi/video.c |
| +++ b/drivers/acpi/video.c |
| @@ -291,20 +291,20 @@ static int acpi_video_device_lcd_set_lev |
| int level); |
| static int acpi_video_device_lcd_get_level_current( |
| struct acpi_video_device *device, |
| - unsigned long *level); |
| + unsigned long long *level); |
| static int acpi_video_get_next_level(struct acpi_video_device *device, |
| u32 level_current, u32 event); |
| static void acpi_video_switch_brightness(struct acpi_video_device *device, |
| int event); |
| static int acpi_video_device_get_state(struct acpi_video_device *device, |
| - unsigned long *state); |
| + unsigned long long *state); |
| static int acpi_video_output_get(struct output_device *od); |
| static int acpi_video_device_set_state(struct acpi_video_device *device, int state); |
| |
| /*backlight device sysfs support*/ |
| static int acpi_video_get_brightness(struct backlight_device *bd) |
| { |
| - unsigned long cur_level; |
| + unsigned long long cur_level; |
| int i; |
| struct acpi_video_device *vd = |
| (struct acpi_video_device *)bl_get_data(bd); |
| @@ -336,7 +336,7 @@ static struct backlight_ops acpi_backlig |
| /*video output device sysfs support*/ |
| static int acpi_video_output_get(struct output_device *od) |
| { |
| - unsigned long state; |
| + unsigned long long state; |
| struct acpi_video_device *vd = |
| (struct acpi_video_device *)dev_get_drvdata(&od->dev); |
| acpi_video_device_get_state(vd, &state); |
| @@ -370,7 +370,7 @@ static int video_get_cur_state(struct th |
| { |
| struct acpi_device *device = cdev->devdata; |
| struct acpi_video_device *video = acpi_driver_data(device); |
| - unsigned long level; |
| + unsigned long long level; |
| int state; |
| |
| acpi_video_device_lcd_get_level_current(video, &level); |
| @@ -410,7 +410,7 @@ static struct thermal_cooling_device_ops |
| /* device */ |
| |
| static int |
| -acpi_video_device_query(struct acpi_video_device *device, unsigned long *state) |
| +acpi_video_device_query(struct acpi_video_device *device, unsigned long long *state) |
| { |
| int status; |
| |
| @@ -421,7 +421,7 @@ acpi_video_device_query(struct acpi_vide |
| |
| static int |
| acpi_video_device_get_state(struct acpi_video_device *device, |
| - unsigned long *state) |
| + unsigned long long *state) |
| { |
| int status; |
| |
| @@ -436,7 +436,7 @@ acpi_video_device_set_state(struct acpi_ |
| int status; |
| union acpi_object arg0 = { ACPI_TYPE_INTEGER }; |
| struct acpi_object_list args = { 1, &arg0 }; |
| - unsigned long ret; |
| + unsigned long long ret; |
| |
| |
| arg0.integer.value = state; |
| @@ -495,7 +495,7 @@ acpi_video_device_lcd_set_level(struct a |
| |
| static int |
| acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, |
| - unsigned long *level) |
| + unsigned long long *level) |
| { |
| if (device->cap._BQC) |
| return acpi_evaluate_integer(device->dev->handle, "_BQC", NULL, |
| @@ -549,7 +549,7 @@ static int |
| acpi_video_bus_set_POST(struct acpi_video_bus *video, unsigned long option) |
| { |
| int status; |
| - unsigned long tmp; |
| + unsigned long long tmp; |
| union acpi_object arg0 = { ACPI_TYPE_INTEGER }; |
| struct acpi_object_list args = { 1, &arg0 }; |
| |
| @@ -564,7 +564,7 @@ acpi_video_bus_set_POST(struct acpi_vide |
| } |
| |
| static int |
| -acpi_video_bus_get_POST(struct acpi_video_bus *video, unsigned long *id) |
| +acpi_video_bus_get_POST(struct acpi_video_bus *video, unsigned long long *id) |
| { |
| int status; |
| |
| @@ -575,7 +575,7 @@ acpi_video_bus_get_POST(struct acpi_vide |
| |
| static int |
| acpi_video_bus_POST_options(struct acpi_video_bus *video, |
| - unsigned long *options) |
| + unsigned long long *options) |
| { |
| int status; |
| |
| @@ -918,7 +918,7 @@ static int acpi_video_device_state_seq_s |
| { |
| int status; |
| struct acpi_video_device *dev = seq->private; |
| - unsigned long state; |
| + unsigned long long state; |
| |
| |
| if (!dev) |
| @@ -927,14 +927,14 @@ static int acpi_video_device_state_seq_s |
| status = acpi_video_device_get_state(dev, &state); |
| seq_printf(seq, "state: "); |
| if (ACPI_SUCCESS(status)) |
| - seq_printf(seq, "0x%02lx\n", state); |
| + seq_printf(seq, "0x%02llx\n", state); |
| else |
| seq_printf(seq, "<not supported>\n"); |
| |
| status = acpi_video_device_query(dev, &state); |
| seq_printf(seq, "query: "); |
| if (ACPI_SUCCESS(status)) |
| - seq_printf(seq, "0x%02lx\n", state); |
| + seq_printf(seq, "0x%02llx\n", state); |
| else |
| seq_printf(seq, "<not supported>\n"); |
| |
| @@ -1217,7 +1217,7 @@ static int acpi_video_bus_ROM_open_fs(st |
| static int acpi_video_bus_POST_info_seq_show(struct seq_file *seq, void *offset) |
| { |
| struct acpi_video_bus *video = seq->private; |
| - unsigned long options; |
| + unsigned long long options; |
| int status; |
| |
| |
| @@ -1232,7 +1232,7 @@ static int acpi_video_bus_POST_info_seq_ |
| printk(KERN_WARNING PREFIX |
| "This indicates a BIOS bug. Please contact the manufacturer.\n"); |
| } |
| - printk("%lx\n", options); |
| + printk("%llx\n", options); |
| seq_printf(seq, "can POST: <integrated video>"); |
| if (options & 2) |
| seq_printf(seq, " <PCI video>"); |
| @@ -1256,7 +1256,7 @@ static int acpi_video_bus_POST_seq_show( |
| { |
| struct acpi_video_bus *video = seq->private; |
| int status; |
| - unsigned long id; |
| + unsigned long long id; |
| |
| |
| if (!video) |
| @@ -1303,7 +1303,7 @@ acpi_video_bus_write_POST(struct file *f |
| struct seq_file *m = file->private_data; |
| struct acpi_video_bus *video = m->private; |
| char str[12] = { 0 }; |
| - unsigned long opt, options; |
| + unsigned long long opt, options; |
| |
| |
| if (!video || count + 1 > sizeof str) |
| @@ -1473,7 +1473,7 @@ static int |
| acpi_video_bus_get_one_device(struct acpi_device *device, |
| struct acpi_video_bus *video) |
| { |
| - unsigned long device_id; |
| + unsigned long long device_id; |
| int status; |
| struct acpi_video_device *data; |
| struct acpi_video_device_attrib* attribute; |
| @@ -1724,7 +1724,7 @@ acpi_video_get_next_level(struct acpi_vi |
| static void |
| acpi_video_switch_brightness(struct acpi_video_device *device, int event) |
| { |
| - unsigned long level_current, level_next; |
| + unsigned long long level_current, level_next; |
| if (!device->brightness) |
| return; |
| acpi_video_device_lcd_get_level_current(device, &level_current); |
| --- a/drivers/ata/libata-acpi.c |
| +++ b/drivers/ata/libata-acpi.c |
| @@ -180,7 +180,7 @@ static void ata_acpi_handle_hotplug(stru |
| int wait = 0; |
| unsigned long flags; |
| acpi_handle handle, tmphandle; |
| - unsigned long sta; |
| + unsigned long long sta; |
| acpi_status status; |
| |
| if (dev) { |
| --- a/drivers/misc/asus-laptop.c |
| +++ b/drivers/misc/asus-laptop.c |
| @@ -280,7 +280,7 @@ static int write_acpi_int(acpi_handle ha |
| |
| static int read_wireless_status(int mask) |
| { |
| - ulong status; |
| + unsigned long long status; |
| acpi_status rv = AE_OK; |
| |
| if (!wireless_status_handle) |
| @@ -297,7 +297,7 @@ static int read_wireless_status(int mask |
| |
| static int read_gps_status(void) |
| { |
| - ulong status; |
| + unsigned long long status; |
| acpi_status rv = AE_OK; |
| |
| rv = acpi_evaluate_integer(gps_status_handle, NULL, NULL, &status); |
| @@ -404,7 +404,7 @@ static void lcd_blank(int blank) |
| |
| static int read_brightness(struct backlight_device *bd) |
| { |
| - ulong value; |
| + unsigned long long value; |
| acpi_status rv = AE_OK; |
| |
| rv = acpi_evaluate_integer(brightness_get_handle, NULL, NULL, &value); |
| @@ -455,7 +455,7 @@ static ssize_t show_infos(struct device |
| struct device_attribute *attr, char *page) |
| { |
| int len = 0; |
| - ulong temp; |
| + unsigned long long temp; |
| char buf[16]; //enough for all info |
| acpi_status rv = AE_OK; |
| |
| @@ -603,7 +603,7 @@ static void set_display(int value) |
| |
| static int read_display(void) |
| { |
| - ulong value = 0; |
| + unsigned long long value = 0; |
| acpi_status rv = AE_OK; |
| |
| /* In most of the case, we know how to set the display, but sometime |
| @@ -849,7 +849,7 @@ static int asus_hotk_get_info(void) |
| { |
| struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
| union acpi_object *model = NULL; |
| - ulong bsts_result, hwrs_result; |
| + unsigned long long bsts_result, hwrs_result; |
| char *string = NULL; |
| acpi_status status; |
| |
| --- a/drivers/misc/eeepc-laptop.c |
| +++ b/drivers/misc/eeepc-laptop.c |
| @@ -204,7 +204,7 @@ static int write_acpi_int(acpi_handle ha |
| static int read_acpi_int(acpi_handle handle, const char *method, int *val) |
| { |
| acpi_status status; |
| - ulong result; |
| + unsigned long long result; |
| |
| status = acpi_evaluate_integer(handle, (char *)method, NULL, &result); |
| if (ACPI_FAILURE(status)) { |
| --- a/drivers/misc/fujitsu-laptop.c |
| +++ b/drivers/misc/fujitsu-laptop.c |
| @@ -224,7 +224,7 @@ static int set_lcd_level_alt(int level) |
| |
| static int get_lcd_level(void) |
| { |
| - unsigned long state = 0; |
| + unsigned long long state = 0; |
| acpi_status status = AE_OK; |
| |
| vdbg_printk(FUJLAPTOP_DBG_TRACE, "get lcd level via GBLL\n"); |
| @@ -246,7 +246,7 @@ static int get_lcd_level(void) |
| |
| static int get_max_brightness(void) |
| { |
| - unsigned long state = 0; |
| + unsigned long long state = 0; |
| acpi_status status = AE_OK; |
| |
| vdbg_printk(FUJLAPTOP_DBG_TRACE, "get max lcd level via RBLL\n"); |
| @@ -263,7 +263,7 @@ static int get_max_brightness(void) |
| |
| static int get_lcd_level_alt(void) |
| { |
| - unsigned long state = 0; |
| + unsigned long long state = 0; |
| acpi_status status = AE_OK; |
| |
| vdbg_printk(FUJLAPTOP_DBG_TRACE, "get lcd level via GBLS\n"); |
| @@ -384,7 +384,7 @@ static ssize_t store_lcd_level(struct de |
| |
| static int get_irb(void) |
| { |
| - unsigned long state = 0; |
| + unsigned long long state = 0; |
| acpi_status status = AE_OK; |
| |
| vdbg_printk(FUJLAPTOP_DBG_TRACE, "Get irb\n"); |
| --- a/drivers/misc/intel_menlow.c |
| +++ b/drivers/misc/intel_menlow.c |
| @@ -57,7 +57,7 @@ static int memory_get_int_max_bandwidth( |
| { |
| struct acpi_device *device = cdev->devdata; |
| acpi_handle handle = device->handle; |
| - unsigned long value; |
| + unsigned long long value; |
| struct acpi_object_list arg_list; |
| union acpi_object arg; |
| acpi_status status = AE_OK; |
| @@ -90,7 +90,7 @@ static int memory_get_cur_bandwidth(stru |
| { |
| struct acpi_device *device = cdev->devdata; |
| acpi_handle handle = device->handle; |
| - unsigned long value; |
| + unsigned long long value; |
| struct acpi_object_list arg_list; |
| union acpi_object arg; |
| acpi_status status = AE_OK; |
| @@ -115,7 +115,7 @@ static int memory_set_cur_bandwidth(stru |
| struct acpi_object_list arg_list; |
| union acpi_object arg; |
| acpi_status status; |
| - int temp; |
| + unsigned long long temp; |
| unsigned long max_state; |
| |
| if (memory_get_int_max_bandwidth(cdev, &max_state)) |
| @@ -131,7 +131,7 @@ static int memory_set_cur_bandwidth(stru |
| |
| status = |
| acpi_evaluate_integer(handle, MEMORY_SET_BANDWIDTH, &arg_list, |
| - (unsigned long *)&temp); |
| + &temp); |
| |
| printk(KERN_INFO |
| "Bandwidth value was %d: status is %d\n", state, status); |
| @@ -252,7 +252,8 @@ static DEFINE_MUTEX(intel_menlow_attr_lo |
| * @auxtype : AUX0/AUX1 |
| * @buf: syfs buffer |
| */ |
| -static int sensor_get_auxtrip(acpi_handle handle, int index, int *value) |
| +static int sensor_get_auxtrip(acpi_handle handle, int index, |
| + unsigned long long *value) |
| { |
| acpi_status status; |
| |
| @@ -260,7 +261,7 @@ static int sensor_get_auxtrip(acpi_handl |
| return -EINVAL; |
| |
| status = acpi_evaluate_integer(handle, index ? GET_AUX1 : GET_AUX0, |
| - NULL, (unsigned long *)value); |
| + NULL, value); |
| if (ACPI_FAILURE(status)) |
| return -EIO; |
| |
| @@ -282,13 +283,13 @@ static int sensor_set_auxtrip(acpi_handl |
| struct acpi_object_list args = { |
| 1, &arg |
| }; |
| - int temp; |
| + unsigned long long temp; |
| |
| if (index != 0 && index != 1) |
| return -EINVAL; |
| |
| status = acpi_evaluate_integer(handle, index ? GET_AUX0 : GET_AUX1, |
| - NULL, (unsigned long *)&temp); |
| + NULL, &temp); |
| if (ACPI_FAILURE(status)) |
| return -EIO; |
| if ((index && value < temp) || (!index && value > temp)) |
| @@ -296,7 +297,7 @@ static int sensor_set_auxtrip(acpi_handl |
| |
| arg.integer.value = value; |
| status = acpi_evaluate_integer(handle, index ? SET_AUX1 : SET_AUX0, |
| - &args, (unsigned long *)&temp); |
| + &args, &temp); |
| if (ACPI_FAILURE(status)) |
| return -EIO; |
| |
| @@ -312,7 +313,7 @@ static ssize_t aux0_show(struct device * |
| struct device_attribute *dev_attr, char *buf) |
| { |
| struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr); |
| - int value; |
| + unsigned long long value; |
| int result; |
| |
| result = sensor_get_auxtrip(attr->handle, 0, &value); |
| @@ -324,7 +325,7 @@ static ssize_t aux1_show(struct device * |
| struct device_attribute *dev_attr, char *buf) |
| { |
| struct intel_menlow_attribute *attr = to_intel_menlow_attr(dev_attr); |
| - int value; |
| + unsigned long long value; |
| int result; |
| |
| result = sensor_get_auxtrip(attr->handle, 1, &value); |
| @@ -376,7 +377,7 @@ static ssize_t bios_enabled_show(struct |
| struct device_attribute *attr, char *buf) |
| { |
| acpi_status status; |
| - unsigned long bios_enabled; |
| + unsigned long long bios_enabled; |
| |
| status = acpi_evaluate_integer(NULL, BIOS_ENABLED, NULL, &bios_enabled); |
| if (ACPI_FAILURE(status)) |
| @@ -492,7 +493,7 @@ static int __init intel_menlow_module_in |
| { |
| int result = -ENODEV; |
| acpi_status status; |
| - unsigned long enable; |
| + unsigned long long enable; |
| |
| if (acpi_disabled) |
| return result; |
| --- a/drivers/pci/hotplug/acpiphp_glue.c |
| +++ b/drivers/pci/hotplug/acpiphp_glue.c |
| @@ -180,7 +180,7 @@ register_slot(acpi_handle handle, u32 lv |
| struct acpiphp_func *newfunc; |
| acpi_handle tmp; |
| acpi_status status = AE_OK; |
| - unsigned long adr, sun; |
| + unsigned long long adr, sun; |
| int device, function, retval; |
| |
| status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr); |
| @@ -528,7 +528,7 @@ find_p2p_bridge(acpi_handle handle, u32 |
| { |
| acpi_status status; |
| acpi_handle dummy_handle; |
| - unsigned long tmp; |
| + unsigned long long tmp; |
| int device, function; |
| struct pci_dev *dev; |
| struct pci_bus *pci_bus = context; |
| @@ -573,7 +573,7 @@ find_p2p_bridge(acpi_handle handle, u32 |
| static int add_bridge(acpi_handle handle) |
| { |
| acpi_status status; |
| - unsigned long tmp; |
| + unsigned long long tmp; |
| int seg, bus; |
| acpi_handle dummy_handle; |
| struct pci_bus *pci_bus; |
| @@ -767,7 +767,7 @@ static int get_gsi_base(acpi_handle hand |
| { |
| acpi_status status; |
| int result = -1; |
| - unsigned long gsb; |
| + unsigned long long gsb; |
| struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; |
| union acpi_object *obj; |
| void *table; |
| @@ -808,7 +808,7 @@ static acpi_status |
| ioapic_add(acpi_handle handle, u32 lvl, void *context, void **rv) |
| { |
| acpi_status status; |
| - unsigned long sta; |
| + unsigned long long sta; |
| acpi_handle tmp; |
| struct pci_dev *pdev; |
| u32 gsi_base; |
| @@ -872,7 +872,7 @@ static acpi_status |
| ioapic_remove(acpi_handle handle, u32 lvl, void *context, void **rv) |
| { |
| acpi_status status; |
| - unsigned long sta; |
| + unsigned long long sta; |
| acpi_handle tmp; |
| u32 gsi_base; |
| struct acpiphp_ioapic *pos, *n, *ioapic = NULL; |
| @@ -1264,7 +1264,7 @@ static int disable_device(struct acpiphp |
| static unsigned int get_slot_status(struct acpiphp_slot *slot) |
| { |
| acpi_status status; |
| - unsigned long sta = 0; |
| + unsigned long long sta = 0; |
| u32 dvid; |
| struct list_head *l; |
| struct acpiphp_func *func; |
| --- a/drivers/pci/hotplug/acpiphp_ibm.c |
| +++ b/drivers/pci/hotplug/acpiphp_ibm.c |
| @@ -183,7 +183,7 @@ static int ibm_set_attention_status(stru |
| union acpi_object args[2]; |
| struct acpi_object_list params = { .pointer = args, .count = 2 }; |
| acpi_status stat; |
| - unsigned long rc; |
| + unsigned long long rc; |
| union apci_descriptor *ibm_slot; |
| |
| ibm_slot = ibm_slot_from_id(hpslot_to_sun(slot)); |
| --- a/drivers/pci/hotplug/sgi_hotplug.c |
| +++ b/drivers/pci/hotplug/sgi_hotplug.c |
| @@ -413,7 +413,7 @@ static int enable_slot(struct hotplug_sl |
| /* |
| * Add the slot's devices to the ACPI infrastructure */ |
| if (SN_ACPI_BASE_SUPPORT() && ssdt) { |
| - unsigned long adr; |
| + unsigned long long adr; |
| struct acpi_device *pdevice; |
| struct acpi_device *device; |
| acpi_handle phandle; |
| @@ -505,7 +505,7 @@ static int disable_slot(struct hotplug_s |
| /* free the ACPI resources for the slot */ |
| if (SN_ACPI_BASE_SUPPORT() && |
| PCI_CONTROLLER(slot->pci_bus)->acpi_handle) { |
| - unsigned long adr; |
| + unsigned long long adr; |
| struct acpi_device *device; |
| acpi_handle phandle; |
| acpi_handle chandle = NULL; |
| --- a/include/acpi/acpi_bus.h |
| +++ b/include/acpi/acpi_bus.h |
| @@ -46,7 +46,7 @@ acpi_extract_package(union acpi_object * |
| acpi_status |
| acpi_evaluate_integer(acpi_handle handle, |
| acpi_string pathname, |
| - struct acpi_object_list *arguments, unsigned long *data); |
| + struct acpi_object_list *arguments, unsigned long long *data); |
| acpi_status |
| acpi_evaluate_reference(acpi_handle handle, |
| acpi_string pathname, |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:48 2009 |
| Message-Id: <20090204184148.854944956@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:58 -0800 |
| 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, |
| Thomas Renninger <trenn@suse.de>, |
| Matthew Wilcox <willy@linux.intel.com>, |
| Len Brown <len.brown@intel.com> |
| Subject: [patch 29/41] ACPI: Fix compiler warnings introduced by 32 to 64 bit acpi conversions |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-fix-compiler-warnings-introduced-by-32-to-64-bit-acpi-conversions.patch |
| Content-Length: 1111 |
| Lines: 37 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Thomas Renninger <trenn@suse.de> |
| |
| commit: 27663c5855b10af9ec67bc7dfba001426ba21222 forgot to convert things at |
| two prints. |
| |
| Cc: Matthew Wilcox <willy@linux.intel.com> |
| Cc: Len Brown <len.brown@intel.com> |
| Signed-off-by: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/misc/intel_menlow.c | 2 +- |
| drivers/pci/hotplug/acpiphp_ibm.c | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/misc/intel_menlow.c |
| +++ b/drivers/misc/intel_menlow.c |
| @@ -104,7 +104,7 @@ static int memory_get_cur_bandwidth(stru |
| if (ACPI_FAILURE(status)) |
| return -EFAULT; |
| |
| - return sprintf(buf, "%ld\n", value); |
| + return sprintf(buf, "%lld\n", value); |
| } |
| |
| static int memory_set_cur_bandwidth(struct thermal_cooling_device *cdev, |
| --- a/drivers/pci/hotplug/acpiphp_ibm.c |
| +++ b/drivers/pci/hotplug/acpiphp_ibm.c |
| @@ -204,7 +204,7 @@ static int ibm_set_attention_status(stru |
| err("APLS evaluation failed: 0x%08x\n", stat); |
| return -ENODEV; |
| } else if (!rc) { |
| - err("APLS method failed: 0x%08lx\n", rc); |
| + err("APLS method failed: 0x%08llx\n", rc); |
| return -ERANGE; |
| } |
| return 0; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184148.986959081@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:59 -0800 |
| 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, |
| Alexey Starikovskiy <astarikovskiy@suse.de>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 30/41] ACPI EC: Fix regression due to use of uninitialized variable |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-ec-fix-regression-due-to-use-of-uninitialized-variable.patch |
| Content-Length: 1417 |
| Lines: 45 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Alexey Starikovskiy <astarikovskiy@suse.de> |
| |
| commit d21cf3c16b1191f3154a51e0b20c82bf851cc553 upstream. |
| |
| breakage introduced by following patch |
| commit 27663c5855b10af9ec67bc7dfba001426ba21222 |
| Author: Matthew Wilcox <willy@linux.intel.com> |
| Date: Fri Oct 10 02:22:59 2008 -0400 |
| |
| acpi_evaluate_integer() does not clear passed variable if |
| there is an error at evaluation. |
| So if we ignore error, we must supply initialized variable. |
| |
| http://bugzilla.kernel.org/show_bug.cgi?id=11917 |
| |
| Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> |
| Tested-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/ec.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/acpi/ec.c |
| +++ b/drivers/acpi/ec.c |
| @@ -769,7 +769,7 @@ static acpi_status |
| ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval) |
| { |
| acpi_status status; |
| - unsigned long long tmp; |
| + unsigned long long tmp = 0; |
| |
| struct acpi_ec *ec = context; |
| status = acpi_walk_resources(handle, METHOD_NAME__CRS, |
| @@ -784,6 +784,7 @@ ec_parse_device(acpi_handle handle, u32 |
| return status; |
| ec->gpe = tmp; |
| /* Use the global lock for all EC transactions? */ |
| + tmp = 0; |
| acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); |
| ec->global_lock = tmp; |
| ec->handle = handle; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.124495346@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:00 -0800 |
| 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, |
| Bob Moore <robert.moore@intel.com>, |
| Lin Ming <ming.m.lin@intel.com>, |
| Andi Kleen <ak@linux.intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 31/41] ACPICA: Fix wrong resource descriptor length for 64-bit build |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpica-fix-wrong-resource-descriptor-length-for-64-bit-build.patch |
| Content-Length: 1212 |
| Lines: 34 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Bob Moore <robert.moore@intel.com> |
| |
| commit 9db4fcd99f7ef886ded97cd26a8642c70fbe34df upstream. |
| |
| The "minimal" descriptors such as EndTag are calculated as 12 |
| bytes long, but the actual length in the internal descriptor is |
| 16 because of the round-up to 8 on 64-bit build. |
| |
| http://www.acpica.org/bugzilla/show_bug.cgi?id=728 |
| |
| Signed-off-by: Bob Moore <robert.moore@intel.com> |
| Signed-off-by: Lin Ming <ming.m.lin@intel.com> |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| include/acpi/actypes.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/include/acpi/actypes.h |
| +++ b/include/acpi/actypes.h |
| @@ -1225,8 +1225,8 @@ struct acpi_resource { |
| |
| #pragma pack() |
| |
| -#define ACPI_RS_SIZE_MIN 12 |
| #define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */ |
| +#define ACPI_RS_SIZE_MIN (u32) ACPI_ROUND_UP_TO_NATIVE_WORD (12) |
| #define ACPI_RS_SIZE(type) (u32) (ACPI_RS_SIZE_NO_DATA + sizeof (type)) |
| |
| #define ACPI_NEXT_RESOURCE(res) (struct acpi_resource *)((u8 *) res + res->length) |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.259521236@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:01 -0800 |
| 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, |
| Corentin Chary <corentincj@iksaif.net>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 32/41] asus-laptop: Add support for P30/P35 |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=asus-laptop-add-support-for-p30-p35.patch |
| Content-Length: 849 |
| Lines: 28 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Torsten Krah <tkrah@fachschaft.imn.htwk-leipzig.de> |
| |
| commit 4d0b856ef7eea5c03f4c1fa57793286ac068f4cd upstream. |
| |
| Add support for P30/P35. |
| |
| http://bugzilla.kernel.org/show_bug.cgi?id=10848 |
| |
| Signed-off-by: Corentin Chary <corentincj@iksaif.net> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/misc/asus-laptop.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/misc/asus-laptop.c |
| +++ b/drivers/misc/asus-laptop.c |
| @@ -139,6 +139,7 @@ ASUS_HANDLE(lcd_switch, "\\_SB.PCI0.SBRG |
| "\\_SB.PCI0.PX40.ECD0._Q10", /* L3C */ |
| "\\_SB.PCI0.PX40.EC0.Q10", /* M1A */ |
| "\\_SB.PCI0.LPCB.EC0._Q10", /* P30 */ |
| + "\\_SB.PCI0.LPCB.EC0._Q0E", /* P30/P35 */ |
| "\\_SB.PCI0.PX40.Q10", /* S1x */ |
| "\\Q10"); /* A2x, L2D, L3D, M2E */ |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.403380581@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:02 -0800 |
| 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, |
| Corentin Chary <corentincj@iksaif.net>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 33/41] asus-laptop: Fix the led behavior with value > 1 |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=asus-laptop-fix-the-led-behavior-with-value-1.patch |
| Content-Length: 896 |
| Lines: 27 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Corentin Chary <corentincj@iksaif.net> |
| |
| commit e3deda9c87ac5eef2b5d18cd0b5511370979ca26 upstream. |
| |
| Fix http://bugzilla.kernel.org/show_bug.cgi?id=11613 . |
| |
| Signed-off-by: Corentin Chary <corentincj@iksaif.net> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/misc/asus-laptop.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/misc/asus-laptop.c |
| +++ b/drivers/misc/asus-laptop.c |
| @@ -351,7 +351,7 @@ static void write_status(acpi_handle han |
| static void object##_led_set(struct led_classdev *led_cdev, \ |
| enum led_brightness value) \ |
| { \ |
| - object##_led_wk = value; \ |
| + object##_led_wk = (value > 0) ? 1 : 0; \ |
| queue_work(led_workqueue, &object##_led_work); \ |
| } \ |
| static void object##_led_update(struct work_struct *ignored) \ |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.549936079@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:03 -0800 |
| 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, |
| Matthew Garrett <mjg59@srcf.ucam.org>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 34/41] video: always update the brightness when poking "brightness" |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=video-always-update-the-brightness-when-poking-brightness.patch |
| Content-Length: 1157 |
| Lines: 39 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Zhang Rui <rui.zhang@intel.com> |
| |
| commit 9e6dada9d255497127251c03aaa59296d186f959 upstream. |
| |
| always update props.brightness no matter the backlight is changed |
| via procfs, hotkeys or sysfs. |
| |
| Sighed-off-by: Zhang Rui <rui.zhang@intel.com> |
| Acked-by: Matthew Garrett <mjg59@srcf.ucam.org> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/video.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/acpi/video.c |
| +++ b/drivers/acpi/video.c |
| @@ -482,6 +482,7 @@ acpi_video_device_lcd_set_level(struct a |
| int status = AE_OK; |
| union acpi_object arg0 = { ACPI_TYPE_INTEGER }; |
| struct acpi_object_list args = { 1, &arg0 }; |
| + int state; |
| |
| |
| arg0.integer.value = level; |
| @@ -490,6 +491,10 @@ acpi_video_device_lcd_set_level(struct a |
| status = acpi_evaluate_object(device->dev->handle, "_BCM", |
| &args, NULL); |
| device->brightness->curr = level; |
| + for (state = 2; state < device->brightness->count; state++) |
| + if (level == device->brightness->levels[state]) |
| + device->backlight->props.brightness = state - 2; |
| + |
| return status; |
| } |
| |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.711445643@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:04 -0800 |
| 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, |
| Zhang Rui <rui.zhang@intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 35/41] dont load asus-acpi if model is not supported |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=don-t-load-asus-acpi-if-model-is-not-supported.patch |
| Content-Length: 824 |
| Lines: 28 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Zhang Rui <rui.zhang@intel.com> |
| |
| commit 7745384080ef70f7710530afa3e45477b126e056 upstream. |
| |
| asus_hotk_get_info should return -ENODEV if the model is not supported. |
| http://bugzilla.kernel.org/show_bug.cgi?id=10389 |
| |
| Signed-off-by: Zhang Rui <rui.zhang@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/asus_acpi.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/acpi/asus_acpi.c |
| +++ b/drivers/acpi/asus_acpi.c |
| @@ -1244,6 +1244,8 @@ static int asus_hotk_get_info(void) |
| "default values\n", string); |
| printk(KERN_NOTICE |
| " send /proc/acpi/dsdt to the developers\n"); |
| + kfree(model); |
| + return -ENODEV; |
| } |
| hotk->methods = &model_conf[hotk->model]; |
| return AE_OK; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:49 2009 |
| Message-Id: <20090204184149.844914002@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:05 -0800 |
| 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, |
| Alexey Starikovskiy <astarikovskiy@suse.de>, |
| Andy Neitzke <neitzke@ias.edu>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 36/41] Newly inserted battery might differ from one just removed, so |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=newly-inserted-battery-might-differ-from-one-just-removed-so.patch |
| update of battery info fields is required. |
| Content-Length: 1114 |
| Lines: 38 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Alexey Starikovskiy <astarikovskiy@suse.de> |
| |
| commit 50b178512b7d6e7724f87459f6bd06504c9c2da1 upstream. |
| |
| Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> |
| Acked-by: Andy Neitzke <neitzke@ias.edu> |
| |
| Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/battery.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/acpi/battery.c |
| +++ b/drivers/acpi/battery.c |
| @@ -472,7 +472,7 @@ static void sysfs_remove_battery(struct |
| |
| static int acpi_battery_update(struct acpi_battery *battery) |
| { |
| - int result; |
| + int result, old_present = acpi_battery_present(battery); |
| result = acpi_battery_get_status(battery); |
| if (result) |
| return result; |
| @@ -483,7 +483,8 @@ static int acpi_battery_update(struct ac |
| return 0; |
| } |
| #endif |
| - if (!battery->update_time) { |
| + if (!battery->update_time || |
| + old_present != acpi_battery_present(battery)) { |
| result = acpi_battery_get_info(battery); |
| if (result) |
| return result; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:50 2009 |
| Message-Id: <20090204184149.977117816@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:06 -0800 |
| 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>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 37/41] ACPI: Do not modify SCI_EN directly |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-do-not-modify-sci_en-directly.patch |
| Content-Length: 1234 |
| Lines: 35 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Rafael J. Wysocki <rjw@sisk.pl> |
| |
| commit 11e93130c7ce5228d484fd5e86f3984835d4256b upstream. |
| |
| According to the ACPI specification the SCI_EN flag is controlled by |
| the hardware, which sets this flag to inform the kernel that ACPI is |
| enabled. For this reason, we shouldn't try to modify SCI_EN |
| directly. Also, we don't need to do it in irqrouter_resume(), since |
| lower-level resume code takes care of enabling ACPI in case it hasn't |
| been enabled by the BIOS before passing control to the kernel (which |
| by the way is against the ACPI specification). |
| |
| Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/pci_link.c | 4 ---- |
| 1 file changed, 4 deletions(-) |
| |
| --- a/drivers/acpi/pci_link.c |
| +++ b/drivers/acpi/pci_link.c |
| @@ -796,10 +796,6 @@ static int irqrouter_resume(struct sys_d |
| struct list_head *node = NULL; |
| struct acpi_pci_link *link = NULL; |
| |
| - |
| - /* Make sure SCI is enabled again (Apple firmware bug?) */ |
| - acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1); |
| - |
| list_for_each(node, &acpi_link.entries) { |
| link = list_entry(node, struct acpi_pci_link, node); |
| if (!link) { |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:50 2009 |
| Message-Id: <20090204184150.102505400@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:07 -0800 |
| 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>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 38/41] ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpi-suspend-blacklist-hp-xw4600-workstation-for-old-code-ordering.patch |
| Content-Length: 973 |
| Lines: 37 |
| |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Rafael J. Wysocki <rjw@sisk.pl> |
| |
| commit 4fb507b6b764195bb7821cf2baa988f6eb677d30 |
| |
| HP xw4600 Workstation is known to require the "old" (ie. compatible |
| with ACPI 1.0) suspend code ordering, so blacklist it for this |
| purpose. |
| |
| Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> |
| Tested-by: John Brown <john.brown3@hp.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/sleep/main.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/acpi/sleep/main.c |
| +++ b/drivers/acpi/sleep/main.c |
| @@ -344,6 +344,14 @@ static struct dmi_system_id __initdata a |
| DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"), |
| }, |
| }, |
| + { |
| + .callback = init_old_suspend_ordering, |
| + .ident = "HP xw4600 Workstation", |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), |
| + DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), |
| + }, |
| + }, |
| {}, |
| }; |
| #endif /* CONFIG_SUSPEND */ |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:50 2009 |
| Message-Id: <20090204184150.242983170@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:08 -0800 |
| 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 Layton <jlayton@redhat.com>, |
| David Teigland <teigland@redhat.com> |
| Subject: [patch 39/41] dlm: initialize file_lock struct in GETLK before copying conflicting lock |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=dlm-initialize-file_lock-struct-in-getlk-before-copying-conflicting-lock.patch |
| Content-Length: 1209 |
| Lines: 37 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Jeff Layton <jlayton@redhat.com> |
| |
| commit 20d5a39929232a715f29e6cb7e3f0d0c790f41eb upstream. |
| |
| dlm_posix_get fills out the relevant fields in the file_lock before |
| returning when there is a lock conflict, but doesn't clean out any of |
| the other fields in the file_lock. |
| |
| When nfsd does a NFSv4 lockt call, it sets the fl_lmops to |
| nfsd_posix_mng_ops before calling the lower fs. When the lock comes back |
| after testing a lock on GFS2, it still has that field set. This confuses |
| nfsd into thinking that the file_lock is a nfsd4 lock. |
| |
| Fix this by making DLM reinitialize the file_lock before copying the |
| fields from the conflicting lock. |
| |
| Signed-off-by: Jeff Layton <jlayton@redhat.com> |
| Signed-off-by: David Teigland <teigland@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| fs/dlm/plock.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/fs/dlm/plock.c |
| +++ b/fs/dlm/plock.c |
| @@ -304,7 +304,9 @@ int dlm_posix_get(dlm_lockspace_t *locks |
| if (rv == -ENOENT) |
| rv = 0; |
| else if (rv > 0) { |
| + locks_init_lock(fl); |
| fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK; |
| + fl->fl_flags = FL_POSIX; |
| fl->fl_pid = op->info.pid; |
| fl->fl_start = op->info.start; |
| fl->fl_end = op->info.end; |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:50 2009 |
| Message-Id: <20090204184150.388430288@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:09 -0800 |
| 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, |
| Mark Lord <mlord@pobox.com>, |
| Jeff Garzik <jgarzik@redhat.com> |
| Subject: [patch 40/41] sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742 |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=sata_mv-fix-chip-type-for-hightpoint-rocketraid-1740-1742.patch |
| Content-Length: 1118 |
| Lines: 32 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Mark Lord <liml@rtr.ca> |
| |
| commit 4462254ac6be9150aae87d54d388fc348d6fcead upstream. |
| |
| Fix chip type for the Highpoint RocketRAID 1740 and 1742 PCI cards. |
| These really do have Marvell 6042 chips on them, rather than the 5081 chip. |
| |
| Confirmed by multiple (two) users (for the 1740), and by examining |
| the product photographs from Highpoint's web site. |
| |
| Signed-off-by: Mark Lord <mlord@pobox.com> |
| Signed-off-by: Jeff Garzik <jgarzik@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/ata/sata_mv.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/ata/sata_mv.c |
| +++ b/drivers/ata/sata_mv.c |
| @@ -669,8 +669,8 @@ static const struct pci_device_id mv_pci |
| { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, |
| /* RocketRAID 1720/174x have different identifiers */ |
| { PCI_VDEVICE(TTI, 0x1720), chip_6042 }, |
| - { PCI_VDEVICE(TTI, 0x1740), chip_508x }, |
| - { PCI_VDEVICE(TTI, 0x1742), chip_508x }, |
| + { PCI_VDEVICE(TTI, 0x1740), chip_6042 }, |
| + { PCI_VDEVICE(TTI, 0x1742), chip_6042 }, |
| |
| { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, |
| { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:50 2009 |
| Message-Id: <20090204184150.515085910@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:41:10 -0800 |
| 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, |
| Lin Ming <ming.m.lin@intel.com>, |
| Bob Moore <robert.moore@intel.com>, |
| Len Brown <len.brown@intel.com>, |
| Thomas Renninger <trenn@suse.de> |
| Subject: [patch 41/41] ACPICA: Allow multiple backslash prefix in namepaths |
| References: <20090204184029.881610776@mini.kroah.org> |
| Content-Disposition: inline; filename=acpica-allow-multiple-backslash-prefix-in-namepaths.patch |
| Content-Length: 1305 |
| Lines: 41 |
| |
| 2.6.27-stable review patch. If anyone has any objections, please let us know. |
| |
| ------------------ |
| |
| From: Lin Ming <ming.m.lin@intel.com> |
| |
| commit d037c5fd7367548191eab2b376a1d08c4ffaf7ff upstream. |
| |
| In a fully qualified namepath, allow multiple backslash prefixes. |
| This can happen because of the use of a double-backslash in strings |
| (since backslash is the escape character) causing confusion. |
| ACPICA BZ 739 Lin Ming. |
| |
| http://www.acpica.org/bugzilla/show_bug.cgi?id=739 |
| |
| Signed-off-by: Lin Ming <ming.m.lin@intel.com> |
| Signed-off-by: Bob Moore <robert.moore@intel.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Thomas Renninger <trenn@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/namespace/nsutils.c | 8 +++++++- |
| 1 file changed, 7 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/acpi/namespace/nsutils.c |
| +++ b/drivers/acpi/namespace/nsutils.c |
| @@ -314,9 +314,15 @@ void acpi_ns_get_internal_name_length(st |
| * |
| * strlen() + 1 covers the first name_seg, which has no path separator |
| */ |
| - if (acpi_ns_valid_root_prefix(next_external_char[0])) { |
| + if (acpi_ns_valid_root_prefix(*next_external_char)) { |
| info->fully_qualified = TRUE; |
| next_external_char++; |
| + |
| + /* Skip redundant root_prefix, like \\_SB.PCI0.SBRG.EC0 */ |
| + |
| + while (acpi_ns_valid_root_prefix(*next_external_char)) { |
| + next_external_char++; |
| + } |
| } else { |
| /* |
| * Handle Carat prefixes |
| |
| |
| From gregkh@mini.kroah.org Wed Feb 4 10:41:44 2009 |
| Message-Id: <20090204184029.881610776@mini.kroah.org> |
| User-Agent: quilt/0.47-1 |
| Date: Wed, 04 Feb 2009 10:40:29 -0800 |
| 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/41] 2.6.27-stable review |
| Content-Length: 4214 |
| Lines: 90 |
| |
| This is the start of the stable review cycle for the 2.6.27.15 release. |
| There are 41 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 Friday, February 6, 19: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.27.15-rc1.gz |
| and the diffstat can be found below. |
| |
| |
| thanks, |
| |
| greg k-h |
| |
| Makefile | 2 +- |
| arch/ia64/sn/kernel/io_acpi_init.c | 8 ++-- |
| arch/m68knommu/Kconfig | 4 ++ |
| arch/x86/Kconfig | 3 + |
| arch/x86/kernel/acpi/cstate.c | 4 +- |
| arch/x86/lib/usercopy_32.c | 4 +- |
| arch/x86/lib/usercopy_64.c | 4 +- |
| arch/x86/mm/pageattr.c | 49 ++++++++++++------ |
| arch/x86/pci/irq.c | 1 + |
| drivers/acpi/ac.c | 2 +- |
| drivers/acpi/acpi_memhotplug.c | 5 +- |
| drivers/acpi/asus_acpi.c | 4 +- |
| drivers/acpi/battery.c | 5 +- |
| drivers/acpi/bay.c | 2 +- |
| drivers/acpi/bus.c | 4 +- |
| drivers/acpi/button.c | 4 +- |
| drivers/acpi/container.c | 2 +- |
| drivers/acpi/dispatcher/dsmethod.c | 3 + |
| drivers/acpi/dock.c | 6 +- |
| drivers/acpi/ec.c | 8 ++- |
| drivers/acpi/namespace/nsutils.c | 8 +++- |
| drivers/acpi/namespace/nsxfname.c | 1 + |
| drivers/acpi/numa.c | 2 +- |
| drivers/acpi/osl.c | 5 +- |
| drivers/acpi/parser/psparse.c | 4 +- |
| drivers/acpi/pci_link.c | 4 -- |
| drivers/acpi/pci_root.c | 2 +- |
| drivers/acpi/pci_slot.c | 10 ++-- |
| drivers/acpi/power.c | 2 +- |
| drivers/acpi/processor_core.c | 4 +- |
| drivers/acpi/processor_idle.c | 1 + |
| drivers/acpi/processor_perflib.c | 2 +- |
| drivers/acpi/processor_throttling.c | 2 +- |
| drivers/acpi/sbshc.c | 2 +- |
| drivers/acpi/scan.c | 12 ++++- |
| drivers/acpi/sleep/main.c | 10 +++- |
| drivers/acpi/thermal.c | 43 ++++++++++------ |
| drivers/acpi/utils.c | 4 +- |
| drivers/acpi/video.c | 47 +++++++++-------- |
| drivers/ata/libata-acpi.c | 2 +- |
| drivers/ata/sata_mv.c | 6 +- |
| drivers/ata/sata_nv.c | 77 ++++++++++++++++++---------- |
| drivers/char/selection.c | 2 +- |
| drivers/cpuidle/cpuidle.c | 9 +++- |
| drivers/cpuidle/governors/menu.c | 10 +++- |
| drivers/input/keyboard/atkbd.c | 34 ++++++++++++ |
| drivers/misc/asus-laptop.c | 15 +++--- |
| drivers/misc/eeepc-laptop.c | 2 +- |
| drivers/misc/fujitsu-laptop.c | 8 ++-- |
| drivers/misc/intel_menlow.c | 29 ++++++----- |
| drivers/net/ixgb/ixgb_main.c | 8 ++- |
| drivers/pci/hotplug/acpiphp_glue.c | 14 +++--- |
| drivers/pci/hotplug/acpiphp_ibm.c | 4 +- |
| drivers/pci/hotplug/sgi_hotplug.c | 4 +- |
| drivers/serial/jsm/jsm_tty.c | 6 ++ |
| drivers/usb/host/isp1760-if.c | 96 ++++++++++++++++++++--------------- |
| drivers/video/aty/mach64_ct.c | 11 ++++ |
| fs/cifs/connect.c | 18 +++--- |
| fs/dlm/plock.c | 2 + |
| fs/nfsd/nfs4state.c | 31 +++++++---- |
| include/acpi/acpi_bus.h | 2 +- |
| include/acpi/actypes.h | 2 +- |
| include/linux/if_vlan.h | 7 +++ |
| include/linux/pci_ids.h | 1 + |
| net/8021q/vlan_core.c | 46 ++++++++++++----- |
| net/core/dev.c | 3 + |
| 66 files changed, 480 insertions(+), 258 deletions(-) |
| |