Ahoy!
She's good to go, hoist anchor!
Here's some real booty for all you land-lubbers.
There's not too many changes, with t'bulk of the patch bein' defconfig
updates, but the shortlog at the aft of this here email describes the
details if you care, you scurvy dogs.
Header cleanups, various one-liners, and random other fixes.
Linus "but you can call me Cap'n"
---
Adrian Bunk:
Ahoy! Make fs/jffs2/nodelist.c:jffs2_obsolete_node_frag() static
fs/jffs2/xattr.c: maroon dead code
Al "Bilge rat" Viro:
[IPV4] fib_trie: missin' ntohl() when callin' fib_semantic_match()
Alexey Dobriyan:
headers_check: improve #include regexp
headers_check: clarify error message
Alexey Korolev:
[MTD] Fixes of performance and stability issues in CFI driver. Arrr!
Cap'n Andrew Morton:
Blimey! hvc_console suspend fix
Andy Walker:
[SPARC]: Fix mutimous regression in sys_getdomainname()
Arnaud Patard:
IPMI: Fix oops on ipmi_msghandler removal for non ipmi systems. Gar!
Artem B. Bityutskiy:
[MTD] NAND: keelhaul marooned URL in Kconfig
Aubrey Lee:
[MTD] DEVICES: Fill more device IDs in t'structure of m25p80
Auke Kok:
e1000: fix bilge-sucking TX timout hang regression for 82542rev3
Ben Dooks:
[ARM] 3784/1: S3C2413: keelhaul config for MACH_S3C2413/MACH_SMDK2413
[ARM] 3785/1: S3C2412: Fix idle code as default uses wrong clocks
[ARM] 3793/1: S3C2412: fix barnacles in wrong serial info struct
[ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
Benjamin Herrenschmidt:
[POWERPC] Fix G5 DART (IOMMU) race causin' occasional data corruption
Benjamin LaHaise:
i386/x86-64: Add core 2 to oprofile
Chas Williams:
[ATM]: [he] when transmit fails, unmap t'dma regions right smartly
[ATM]: [he] don't hold t'device lock when upcalling
Chuck Ebbert:
Kconfig: move CONFIG_EMBEDDED options to submenu. Gar!
Corey Minyard:
IPMI: keelhaul handlin' of OEM flags
Dale Farnsworth:
mv643xx_eth: Unmap DMA buffers in receive path
Dan Williams:
[ARM] 3780/1: Fix iop321 cpuid
Dave Kleikamp:
[Shiver me timbers] EXT2: Remove superblock lock contention in ext2_statfs
David S. Miller:
[OPENPROMIO]: Handle current_node bein' NULL correctly. Arrr!
David Woodhouse:
[MTD NAND] Fix lookup error in nand_get_flash_type()
[POWERPC] Implement PowerPC futex_atomic_cmpxchg_inatomic(). Arrr!
headers_check: reduce user-visible noise in <linux/nfs_fs.h>
headers_check: remove <asm/timex.h> from user export
headers_check: move inclusion of <linux/linkage.h> in <asm-i386/signal.h>
headers_check: move kernel-only #includes within <asm-i386/elf.h>
headers_check: don't expose PFN stuff to userspace in <asm-i386/setup.h>
headers_check: keelhaul userspace build of asm-mips/page.h
Fix scurvy 'make headers_check' on biarch architectures
Fix 'make headers_check' on s390
Fix 'make headers_check' on ia64
Fix 'make headers_check' on i386
Fix 'make headers_check' on x86_64
Fix 'make headers_check' for Alpha
headers_check: use a different default directory
Add headers_check' target to output of 'make help'
Davy Jones:
Didn't do anything, the scurvy lad. Ahoy!
Eli Cohen:
IPoIB: Retry failed send-only multicast group joins. Gar!
Frank Pavlic:
s390: minor s390 network driver fixes
s390: netiucv driver fixes
s390: Makefile cleanup
s390: qeth driver fixes [1/6]
s390: qeth driver fixes [2/6]
s390: qeth driver fixes [3/6]
s390: qeth driver fixes [4/6]
s390: qeth driver fixes [5/6]
s390: qeth driver fixes [6/6]
Geert Uytterhoeven:
Well blow me down, if he didn't fix 'make headers_check' on ia64
Greg KH:
We can not allow anonymous contributions to t'kernel
Haavard Skinnemoen:
MTD: Convert Atmel PRI information to AMD format
MTD: Add lock/unlock operations for Atmel AT49BV6416
Havasi Ferenc:
[JFFS2][SUMMARY] Fix a bilge-suckin' summary collectin' bug. Arrr!
Herbert Xu:
[NET]: Drop tx lock in dev_watchdog_up
HÃ¥vard Skinnemoen:
MTD: Fix bug in fixup_convert_atmel_pri
Imre Deak:
genirq: Fix the typo in IRQ resend smartly, cabin boy!
Ingo Molnar:
lockdep: double the number of stack-trace entries
genirq core: keelhaul handle_level_irq()
Ishai Rabinovitz:
IB/srp: Don't schedule reconnect from srp
James Morris:
[NETFILTER]: Add secmark headers to header-y
Jeremy Fitzhardinge:
x86: reserve a boot-loader ID number for Xen
Jon Loeliger:
[POWERPC] Add new, missin' argument to of_irq_map_raw() for 86xx. Arrr!
Josef 'Jeff' Sipek:
[MTD] Use SEEK_{SET,CUR,END} instead of hardcoded values in mtdchar lseek()
Josh Triplett:
Add preprocessed files (*.i) to .gitignore
Add mixed source and assembly listings (*.lst) to .gitignore
Add symbol type files (*.symtypes) to .gitignore
Kenneth Lee:
bug fix for bilge-suckin' in kernel/kmod.c
Kirill Korotaev:
[NEIGH]: neigh_table_clear() doesn't free stats
Linus "Cap'n" Torvalds:
x86: save/restore eflags in context switch
Avast! Belay those mmiocfg heuristics and blacklist changes
Linux v2.6.18. Arrr!
Matthew Wilcox:
headers_check: Clean up asm-parisc/page.h for user headers
Michael De Backer:
alim15x3.c: M5229 (rev c8) support for DMA cd-writer
Michael S. Tsirkin:
RDMA/cma: Increase t'IB CM retry count in CMA
Mike Miller:
cciss: version update, new hw
Mohan Kumar M:
[POWERPC] Fix interrupt clearin' in kdump shutdown sequence
NeilBrown:
knfsd: Have ext2 reject file handles with bad inode numbers early
knfsd: Make ext3 reject filehandles referrin' to invalid inode number
Olaf Hering:
[POWERPC] update prep_defconfig
Oleg Nesterov:
rcu_do_batch: make ->qlen decrement irq safe
Patrick McHardy:
[PACKET]: Don't truncate non-linear skbs with mmaped IO
[NETFILTER]: xt_quota: add missin' module aliases
Paul "Peg leg" Mackerras:
[POWERPC] Update defconfigs
[POWERPC] Fix MMIO ops to provide expected barrier behaviour
Ralph Siemsen:
[ARM] 3815/1: headers_install support for ARM
Remi Denis-Courmont:
[IPV6]: Accept -1 for IPV6_TCLASS
Richard Purdie:
MTD: [NAND] Fix t'sharpsl driver after breakage from a core conversion
Roland Dreier:
[ATM]: linux-atm-general mailin' list is subscribers only
Rolf Eike Beer:
remove #error on !PCI from pmc551.c
Ross Biro:
Add a missin' space that prevents buildin' modules that require host programs
Sachin P. Sant:
[POWERPC] kdump: Support kernels havin' 64k page size. Arrr!
Simon Horman:
[IPVS]: Document t'ports option to ip_vs_ftp in kernel-parameters.txt
[IPVS]: auto-help for ip_vs_ftp
[IPVS]: Make sure ip_vs_ftp ports are valid
[IPVS]: remove the debug option go ip_vs_ftp
Stefan Richter:
SCSI: lockdep annotation in scsi_send_eh_cmnd
Stephen Hemminger:
[TCP]: Turn ABC off. Arrr!
[BRIDGE]: random extra bytes on STP TCN packet
[NET]: Mark frame diverter for future removal. Arrr!
Suparna Bhattacharya:
ext3 sequential read regression fix
Takashi YOSHI:
MTD: Add Macronix MX29F040 to JEDEC
Takashi YOSHII:
[MTD] Maps: Add dependency on alternate probe methods to physmap
Tejun Heo:
libata: ignore CFA signature while sanity-checkin' an ATAPI device
Trond Myklebust:
NFS: Fix Oopsable condition in nfs_readpage_sync()
NFSv4: Fix incorrect semaphore release in _nfs4_do_open()
NFS: Fix nfs_page use after free issues in fs/nfs/write.c
Ulrich Kunitz:
zd1211rw: Fix of signal strength and quality measurement
Ville Herva:
block2mtd.c: Make kernel boot command line arguments work (try 4)
Vitaly Wool:
[MTD] NAND: OOB buffer offset fixups
[ARM] 3786/1: pnx4008: update defconfig
MTD NAND: OOB buffer offset fixups
Wong Hoi Sing Edison:
[TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
[TCP] tcp-lp: update information to MAINTAINERS
YOSHIFUJI Hideaki:
[IPV6]: Fix tclass settin' for raw sockets.
[ATM] CLIP: Do not refer freed skbuff in clip_mkip(). Arrr!
Zoltan Sogor:
JFFS2: SUMMARY: keelhaul a summary collectin' bug
Ahoy!
On 20/09/06, Linus Torvalds <[email protected]> wrote:
>
> Ahoy!
>
> She's good to go, hoist anchor!
>
> Here's some real booty for all you land-lubbers.
>
> There's not too many changes, with t'bulk of the patch bein' defconfig
> updates, but the shortlog at the aft of this here email describes the
> details if you care, you scurvy dogs.
You have improved your piratish :)
>
> Header cleanups, various one-liners, and random other fixes.
>
> Linus "but you can call me Cap'n"
>
Michal "landlubber"
--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/)
Ahoy Cap'n
Since the ship has docked, the cargo doors must be all open and ready
to take another load of stuff destined for exotic places.
Yet again, I would like to add the do_no_pfn() patch which we
discussed earlier. Nothing has changed in it for months and you
haven't raised any eyebrows over it since the last discussion where
you said it could play within the rules, so maybe this is a good time?
Cheers,
Jes
Implement do_no_pfn() for handling mapping of memory without a struct
page backing it. This avoids creating fake page table entries for
regions which are not backed by real memory.
This feature is used by the MSPEC driver and other users, where it is
highly undesirable to have a struct page sitting behind the page
(for instance if the page is accessed in cached mode via the struct
page in parallel to the the driver accessing it uncached, which can
result in data corruption on some architectures, such as ia64).
This version uses specific NOPFN_{SIGBUS,OOM} return values, rather
than expect all negative pfn values would be an error. It also bugs on
cow mappings as this would not work with the VM.
Signed-off-by: Jes Sorensen <[email protected]>
---
include/linux/mm.h | 7 +++++
mm/memory.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 64 insertions(+), 5 deletions(-)
Index: linux-2.6/include/linux/mm.h
===================================================================
--- linux-2.6.orig/include/linux/mm.h
+++ linux-2.6/include/linux/mm.h
@@ -197,6 +197,7 @@ struct vm_operations_struct {
void (*open)(struct vm_area_struct * area);
void (*close)(struct vm_area_struct * area);
struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int *type);
+ unsigned long (*nopfn)(struct vm_area_struct * area, unsigned long address);
int (*populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock);
/* notification that a previously read-only page is about to become
@@ -625,6 +626,12 @@ static inline int page_mapped(struct pag
#define NOPAGE_OOM ((struct page *) (-1))
/*
+ * Error return values for the *_nopfn functions
+ */
+#define NOPFN_SIGBUS ((unsigned long) -1)
+#define NOPFN_OOM ((unsigned long) -2)
+
+/*
* Different kinds of faults, as returned by handle_mm_fault().
* Used to decide whether a process gets delivered SIGBUS or
* just gets major/minor fault counters bumped up.
Index: linux-2.6/mm/memory.c
===================================================================
--- linux-2.6.orig/mm/memory.c
+++ linux-2.6/mm/memory.c
@@ -2211,6 +2211,52 @@ oom:
}
/*
+ * do_no_pfn() tries to create a new page mapping for a page without
+ * a struct_page backing it
+ *
+ * As this is called only for pages that do not currently exist, we
+ * do not need to flush old virtual caches or the TLB.
+ *
+ * We enter with non-exclusive mmap_sem (to exclude vma changes,
+ * but allow concurrent faults), and pte mapped but not yet locked.
+ * We return with mmap_sem still held, but pte unmapped and unlocked.
+ *
+ * It is expected that the ->nopfn handler always returns the same pfn
+ * for a given virtual mapping.
+ */
+static int do_no_pfn(struct mm_struct *mm, struct vm_area_struct *vma,
+ unsigned long address, pte_t *page_table, pmd_t *pmd,
+ int write_access)
+{
+ spinlock_t *ptl;
+ pte_t entry;
+ unsigned long pfn;
+ int ret = VM_FAULT_MINOR;
+
+ pte_unmap(page_table);
+ BUG_ON(!(vma->vm_flags & VM_PFNMAP));
+ BUG_ON(is_cow_mapping(vma->vm_flags));
+
+ pfn = vma->vm_ops->nopfn(vma, address & PAGE_MASK);
+ if (pfn == NOPFN_OOM)
+ return VM_FAULT_OOM;
+ if (pfn == NOPFN_SIGBUS)
+ return VM_FAULT_SIGBUS;
+
+ page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
+
+ /* Only go through if we didn't race with anybody else... */
+ if (pte_none(*page_table)) {
+ entry = pfn_pte(pfn, vma->vm_page_prot);
+ if (write_access)
+ entry = maybe_mkwrite(pte_mkdirty(entry), vma);
+ set_pte_at(mm, address, page_table, entry);
+ }
+ pte_unmap_unlock(page_table, ptl);
+ return ret;
+}
+
+/*
* Fault of a previously existing named mapping. Repopulate the pte
* from the encoded file_pte if possible. This enables swappable
* nonlinear vmas.
@@ -2272,11 +2318,17 @@ static inline int handle_pte_fault(struc
old_entry = entry = *pte;
if (!pte_present(entry)) {
if (pte_none(entry)) {
- if (!vma->vm_ops || !vma->vm_ops->nopage)
- return do_anonymous_page(mm, vma, address,
- pte, pmd, write_access);
- return do_no_page(mm, vma, address,
- pte, pmd, write_access);
+ if (vma->vm_ops) {
+ if (vma->vm_ops->nopage)
+ return do_no_page(mm, vma, address,
+ pte, pmd,
+ write_access);
+ if (vma->vm_ops->nopfn)
+ return do_no_pfn(mm, vma, address, pte,
+ pmd, write_access);
+ }
+ return do_anonymous_page(mm, vma, address,
+ pte, pmd, write_access);
}
if (pte_file(entry))
return do_file_page(mm, vma, address,
On 20 Sep 2006 03:25:25 -0400 Jes Sorensen wrote:
> include/linux/mm.h | 7 +++++
> mm/memory.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++-----
> 2 files changed, 64 insertions(+), 5 deletions(-)
>
> Index: linux-2.6/include/linux/mm.h
> ===================================================================
> --- linux-2.6.orig/include/linux/mm.h
> +++ linux-2.6/include/linux/mm.h
> @@ -625,6 +626,12 @@ static inline int page_mapped(struct pag
> #define NOPAGE_OOM ((struct page *) (-1))
>
> /*
> + * Error return values for the *_nopfn functions
> + */
> +#define NOPFN_SIGBUS ((unsigned long) -1)
> +#define NOPFN_OOM ((unsigned long) -2)
Is there any difference in the above and
#define NOPFN_SIGBUS -1UL
#define NOPFN_OOM -2UL
?
---
~Randy
Randy.Dunlap wrote:
> On 20 Sep 2006 03:25:25 -0400 Jes Sorensen wrote:
>> +#define NOPFN_SIGBUS ((unsigned long) -1)
>> +#define NOPFN_OOM ((unsigned long) -2)
>
> Is there any difference in the above and
>
> #define NOPFN_SIGBUS -1UL
> #define NOPFN_OOM -2UL
I don't think there is, but I was trying to keep it consistent with the
NOPAGE_foo versions - the way it's done is more explicit so less likely
anyone will get confused over it.
I can change it if it's a sticking point, but I'd claim thats more noise
than it's worth.
Thanks,
Jes
On 20 Sep 2006 03:25:25 -0400
Jes Sorensen <[email protected]> wrote:
> Implement do_no_pfn() for handling mapping of memory without a struct
> page backing it. This avoids creating fake page table entries for
> regions which are not backed by real memory.
>
> This feature is used by the MSPEC driver and other users, where it is
> highly undesirable to have a struct page sitting behind the page
> (for instance if the page is accessed in cached mode via the struct
> page in parallel to the the driver accessing it uncached, which can
> result in data corruption on some architectures, such as ia64).
>
> This version uses specific NOPFN_{SIGBUS,OOM} return values, rather
> than expect all negative pfn values would be an error. It also bugs on
> cow mappings as this would not work with the VM.
How does this followup look?
We don't want the rarely-used do_no_pfn() to get inlined in the oft-used
handle_pte_fault(), using up icache. Mark it noinline and unlikely.
--- a/mm/memory.c~do_no_pfn-tweaks
+++ a/mm/memory.c
@@ -2276,8 +2276,10 @@ oom:
*
* It is expected that the ->nopfn handler always returns the same pfn
* for a given virtual mapping.
+ *
+ * Mark this `noinline' to prevent it from bloating the main pagefault code.
*/
-static int do_no_pfn(struct mm_struct *mm, struct vm_area_struct *vma,
+static noinline int do_no_pfn(struct mm_struct *mm, struct vm_area_struct *vma,
unsigned long address, pte_t *page_table, pmd_t *pmd,
int write_access)
{
@@ -2376,7 +2378,7 @@ static inline int handle_pte_fault(struc
return do_no_page(mm, vma, address,
pte, pmd,
write_access);
- if (vma->vm_ops->nopfn)
+ if (unlikely(vma->vm_ops->nopfn))
return do_no_pfn(mm, vma, address, pte,
pmd, write_access);
}
_
>
> Dale Farnsworth:
> mv643xx_eth: Unmap DMA buffers in receive path
>
In OSDL's automated cross-compile for powerpc64, kernel 2.6.18 had this
unexpected error:
drivers/net/mv643xx_eth.c: In function 'mv643xx_eth_receive_queue':
drivers/net/mv643xx_eth.c:388: error: 'RX_SKB_SIZE' undeclared (first use in this function)
Here is a patch that stops the error.
Judith Lebzelter
OSDL
--- drivers/net/mv643xx_eth.c.old 2006-09-22 11:22:47.951049416 -0700
+++ drivers/net/mv643xx_eth.c 2006-09-22 11:23:17.787625304 -0700
@@ -385,7 +385,7 @@
struct pkt_info pkt_info;
while (budget-- > 0 && eth_port_receive(mp, &pkt_info) == ETH_OK) {
- dma_unmap_single(NULL, pkt_info.buf_ptr, RX_SKB_SIZE,
+ dma_unmap_single(NULL, pkt_info.buf_ptr, ETH_RX_SKB_SIZE,
DMA_FROM_DEVICE);
mp->rx_desc_count--;
received_packets++;
Judith Lebzelter wrote:
>> Dale Farnsworth:
>> mv643xx_eth: Unmap DMA buffers in receive path
>>
>
> In OSDL's automated cross-compile for powerpc64, kernel 2.6.18 had this
> unexpected error:
>
> drivers/net/mv643xx_eth.c: In function 'mv643xx_eth_receive_queue':
> drivers/net/mv643xx_eth.c:388: error: 'RX_SKB_SIZE' undeclared (first use in this function)
>
> Here is a patch that stops the error.
>
> Judith Lebzelter
> OSDL
>
> --- drivers/net/mv643xx_eth.c.old 2006-09-22 11:22:47.951049416 -0700
> +++ drivers/net/mv643xx_eth.c 2006-09-22 11:23:17.787625304 -0700
> @@ -385,7 +385,7 @@
> struct pkt_info pkt_info;
>
> while (budget-- > 0 && eth_port_receive(mp, &pkt_info) == ETH_OK) {
> - dma_unmap_single(NULL, pkt_info.buf_ptr, RX_SKB_SIZE,
> + dma_unmap_single(NULL, pkt_info.buf_ptr, ETH_RX_SKB_SIZE,
> DMA_FROM_DEVICE);
Man, talk about timing. I just sent this to Andrew & Linus just a few
seconds ago :)
Jeff
On Fri, Sep 22, 2006 at 06:08:25PM -0400, Jeff Garzik wrote:
> Judith Lebzelter wrote:
> >>Dale Farnsworth:
> >> mv643xx_eth: Unmap DMA buffers in receive path
> >
> >In OSDL's automated cross-compile for powerpc64, kernel 2.6.18 had this
> >unexpected error:
> >
> >drivers/net/mv643xx_eth.c: In function 'mv643xx_eth_receive_queue':
> >drivers/net/mv643xx_eth.c:388: error: 'RX_SKB_SIZE' undeclared (first use
> >in this function)
> >
> >Here is a patch that stops the error.
> >
> >Judith Lebzelter
> >OSDL
> >
> >--- drivers/net/mv643xx_eth.c.old 2006-09-22 11:22:47.951049416 -0700
> >+++ drivers/net/mv643xx_eth.c 2006-09-22 11:23:17.787625304 -0700
> >@@ -385,7 +385,7 @@
> > struct pkt_info pkt_info;
> >
> > while (budget-- > 0 && eth_port_receive(mp, &pkt_info) == ETH_OK) {
> >- dma_unmap_single(NULL, pkt_info.buf_ptr, RX_SKB_SIZE,
> >+ dma_unmap_single(NULL, pkt_info.buf_ptr, ETH_RX_SKB_SIZE,
> > DMA_FROM_DEVICE);
>
> Man, talk about timing. I just sent this to Andrew & Linus just a few
> seconds ago :)
>
> Jeff
And I sent the same patch to you and netdev 2 days ago. :)
Did you get the accompanying patch that removes this driver
from the powerpc64 build? Or shall I resend it?
-Dale
Dale Farnsworth wrote:
> And I sent the same patch to you and netdev 2 days ago. :)
>
> Did you get the accompanying patch that removes this driver
> from the powerpc64 build? Or shall I resend it?
I see both patches from you in my Pending folder. I was just a dumbass. :)
Jeff
Andrew Morton wrote:
> How does this followup look?
>
> We don't want the rarely-used do_no_pfn() to get inlined in the oft-used
> handle_pte_fault(), using up icache. Mark it noinline and unlikely.
I'd say it looks good - will give a microscopic slowdown for do_no_pfn
but compared to the overall benefit I think thats more than acceptable.
Acked-by: Jes Sorensen <[email protected]>
Cheers,
Jes
> --- a/mm/memory.c~do_no_pfn-tweaks
> +++ a/mm/memory.c
> @@ -2276,8 +2276,10 @@ oom:
> *
> * It is expected that the ->nopfn handler always returns the same pfn
> * for a given virtual mapping.
> + *
> + * Mark this `noinline' to prevent it from bloating the main pagefault code.
> */
> -static int do_no_pfn(struct mm_struct *mm, struct vm_area_struct *vma,
> +static noinline int do_no_pfn(struct mm_struct *mm, struct vm_area_struct *vma,
> unsigned long address, pte_t *page_table, pmd_t *pmd,
> int write_access)
> {
> @@ -2376,7 +2378,7 @@ static inline int handle_pte_fault(struc
> return do_no_page(mm, vma, address,
> pte, pmd,
> write_access);
> - if (vma->vm_ops->nopfn)
> + if (unlikely(vma->vm_ops->nopfn))
> return do_no_pfn(mm, vma, address, pte,
> pmd, write_access);
> }
> _
Mmm.. definite regression with -final versus -rc6.
My Latitude-X1 notebook loses video on resume-from-ram
with -final. Worked fine with all versions from 2.6.16
through 2.6.18-rc6. So something at the last moment broke it.
I'm travelling with it all this month, with only occasional
access here. But any suggestions of *specific* patches to
try reverting would be welcome. git-bisect is a non-starter.
Cheers
Mark Lord
Linus Torvalds wrote:
> ..
> Cap'n Andrew Morton:
> Blimey! hvc_console suspend fix
Mmm.. I wonder if this could be what killed resume-from-RAM
on my notebook, between -rc6 and -final ?
Andrew, can you send me just that one patch, and I'll try reverting it.
Thanks.
Mark
On Fri, 29 Sep 2006 04:40:03 -0400
Mark Lord <[email protected]> wrote:
> Linus Torvalds wrote:
> > ..
> > Cap'n Andrew Morton:
> > Blimey! hvc_console suspend fix
>
> Mmm.. I wonder if this could be what killed resume-from-RAM
> on my notebook, between -rc6 and -final ?
>
> Andrew, can you send me just that one patch, and I'll try reverting it.
>
From: Andrew Morton <[email protected]>
Fix http://bugzilla.kernel.org/show_bug.cgi?id=7152
Cc: Michael Tautschnig <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---
drivers/char/hvc_console.c | 1 +
1 file changed, 1 insertion(+)
diff -puN drivers/char/hvc_console.c~hvc_console-suspend-fix drivers/char/hvc_console.c
--- a/drivers/char/hvc_console.c~hvc_console-suspend-fix
+++ a/drivers/char/hvc_console.c
@@ -668,6 +668,7 @@ int khvcd(void *unused)
do {
poll_mask = 0;
hvc_kicked = 0;
+ try_to_freeze();
wmb();
if (cpus_empty(cpus_in_xmon)) {
spin_lock(&hvc_structs_lock);
_
On Fri, 29 Sep 2006, Mark Lord wrote:
>
> My Latitude-X1 notebook loses video on resume-from-ram
> with -final. Worked fine with all versions from 2.6.16
> through 2.6.18-rc6. So something at the last moment broke it.
Well, try -rc7. -rc6 wasn't actually the last rc.
> I'm travelling with it all this month, with only occasional
> access here. But any suggestions of *specific* patches to
> try reverting would be welcome. git-bisect is a non-starter.
git bisect tends to often be faster than the alternatives, but yeah, since
there's something like 200+ patches in between it's still around 8 reboots
That said, a quick look doesn't show anything really suspicuous.
(Hint for everybody: you can do something like
gitk v2.6.18-rc6..v2.6.18 drivers/
to see all patches that touch just drivers)
I don't see anything really suspicious. The "hvc_console suspend fix"
you already noted should not even be compiled on a regular laptop, afaik.
One of the nice things with git bisect is that if you have git on that
machine at all, even if you just test one or two kernels (rather than the
eight you need to pinpoint it exactly), you'll still help pinpointing a
_lot_ (ie if you test two kernels, we should have the list of commits
narrowed down from 200+ to just 53 or so).
Linus
Andrew Morton wrote:
> On Fri, 29 Sep 2006 04:40:03 -0400
> Mark Lord <[email protected]> wrote:
>
>> Linus Torvalds wrote:
>>> ..
>>> Cap'n Andrew Morton:
>>> Blimey! hvc_console suspend fix
>> Mmm.. I wonder if this could be what killed resume-from-RAM
>> on my notebook, between -rc6 and -final ?
>>
>> Andrew, can you send me just that one patch, and I'll try reverting it.
..
> --- a/drivers/char/hvc_console.c~hvc_console-suspend-fix
> +++ a/drivers/char/hvc_console.c
ARrrgyeeematey.. the Adm'rl was right about this,
my kernel doesn't even use that source file.
I'll look through all of the post-rc6 changes and see if anything
else might be a candidate.
Thanks
On Friday, 29 September 2006 19:52, Mark Lord wrote:
> Andrew Morton wrote:
> > On Fri, 29 Sep 2006 04:40:03 -0400
> > Mark Lord <[email protected]> wrote:
> >
> >> Linus Torvalds wrote:
> >>> ..
> >>> Cap'n Andrew Morton:
> >>> Blimey! hvc_console suspend fix
> >> Mmm.. I wonder if this could be what killed resume-from-RAM
> >> on my notebook, between -rc6 and -final ?
> >>
> >> Andrew, can you send me just that one patch, and I'll try reverting it.
> ..
> > --- a/drivers/char/hvc_console.c~hvc_console-suspend-fix
> > +++ a/drivers/char/hvc_console.c
>
> ARrrgyeeematey.. the Adm'rl was right about this,
> my kernel doesn't even use that source file.
>
> I'll look through all of the post-rc6 changes and see if anything
> else might be a candidate.
Or could your .config change between -rc6 and -final?
Rafael
--
You never change things by fighting the existing reality.
R. Buckminster Fuller
Mark Lord wrote:
>> Mark Lord <[email protected]> wrote:
..
>>> Mmm.. I wonder if this could be what killed resume-from-RAM
>>> on my notebook, between -rc6 and -final ?
..
> I'll look through all of the post-rc6 changes and see if anything
> else might be a candidate.
Thus far, 2.6.18-rc7 seems to be okay, though it will take a day
or so to win full confidence here. So now to pick over the rc7-final
patches..
Cheers
In-Reply-To: <[email protected]>
On Tue, 19 Sep 2006 21:33:54 -0700, Linus Torvalds wrote:
> She's good to go, hoist anchor!
>
> Here's some real booty for all you land-lubbers.
> Davy Jones:
> Didn't do anything, the scurvy lad. Ahoy!
"I turned leeward in time to witness the full sail yardarm give way and
came crashing down on my midshipman's hind quarters. He let out a scream
that could be heard all the way down in Davy Jones' locker. Micky
Dolenz's locker too, and Peter Tork's locker. All the Monkees had
lockers."
-- Crappy Jack the Sailor