On Tue, 10 Jun 2008 20:20:09 +1000 Grant Coady <grant_lkml@xxxxxxxxxxx> wrote: > On Mon, 9 Jun 2008 22:31:45 -0700, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.26-rc5/2.6.26-rc5-mm2/ > > > >- This is a bugfixed version of 2.6.26-rc5-mm1 - mainly to repair a > > vmscan.c bug which would have prevented testing of the other vmscan.c > > bugs^Wchanges. > > No it's not :) > > -mm1 worked fine here but -mm2 locks up just after saying: > agpgart: Detected 7164K stolen memory. > > Nothing in logs (session not recorded - hit reset to restart). > > config and dmseg for -mm1 at (same .config for mm2): > > http://bugsplatter.mine.nu/test/boxen/pooh/config-2.6.26-rc5-mm1a.gz > http://bugsplatter.mine.nu/test/boxen/pooh/dmesg-2.6.26-rc5-mm1a.gz > > Grant. hm, intel-agp gtt stuff. Can you please see whether reverting Keith's stuff fixes it? drivers/char/agp/agp.h | 3 --- drivers/char/agp/backend.c | 2 -- drivers/char/agp/generic.c | 28 ---------------------------- drivers/char/agp/intel-agp.c | 5 ----- include/linux/agp_backend.h | 5 ----- 5 files changed, 43 deletions(-) diff -puN drivers/char/agp/agp.h~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/agp.h --- a/drivers/char/agp/agp.h~revert-intel-agp-rewrite-gtt-on-resume +++ a/drivers/char/agp/agp.h @@ -148,9 +148,6 @@ struct agp_bridge_data { char minor_version; struct list_head list; u32 apbase_config; - /* list of agp_memory mapped to the aperture */ - struct list_head mapped_list; - spinlock_t mapped_lock; }; #define KB(x) ((x) * 1024) diff -puN drivers/char/agp/backend.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/backend.c --- a/drivers/char/agp/backend.c~revert-intel-agp-rewrite-gtt-on-resume +++ a/drivers/char/agp/backend.c @@ -183,8 +183,6 @@ static int agp_backend_initialize(struct rc = -EINVAL; goto err_out; } - INIT_LIST_HEAD(&bridge->mapped_list); - spin_lock_init(&bridge->mapped_lock); return 0; diff -puN drivers/char/agp/generic.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/generic.c --- a/drivers/char/agp/generic.c~revert-intel-agp-rewrite-gtt-on-resume +++ a/drivers/char/agp/generic.c @@ -426,10 +426,6 @@ int agp_bind_memory(struct agp_memory *c curr->is_bound = TRUE; curr->pg_start = pg_start; - spin_lock(&agp_bridge->mapped_lock); - list_add(&curr->mapped_list, &agp_bridge->mapped_list); - spin_unlock(&agp_bridge->mapped_lock); - return 0; } EXPORT_SYMBOL(agp_bind_memory); @@ -462,34 +458,10 @@ int agp_unbind_memory(struct agp_memory curr->is_bound = FALSE; curr->pg_start = 0; - spin_lock(&curr->bridge->mapped_lock); - list_del(&curr->mapped_list); - spin_unlock(&curr->bridge->mapped_lock); return 0; } EXPORT_SYMBOL(agp_unbind_memory); -/** - * agp_rebind_emmory - Rewrite the entire GATT, useful on resume - */ -int agp_rebind_memory(void) -{ - struct agp_memory *curr; - int ret_val = 0; - - spin_lock(&agp_bridge->mapped_lock); - list_for_each_entry(curr, &agp_bridge->mapped_list, mapped_list) { - ret_val = curr->bridge->driver->insert_memory(curr, - curr->pg_start, - curr->type); - if (ret_val != 0) - break; - } - spin_unlock(&agp_bridge->mapped_lock); - return ret_val; -} -EXPORT_SYMBOL(agp_rebind_memory); - /* End - Routines for handling swapping of agp_memory into the GATT */ diff -puN drivers/char/agp/intel-agp.c~revert-intel-agp-rewrite-gtt-on-resume drivers/char/agp/intel-agp.c --- a/drivers/char/agp/intel-agp.c~revert-intel-agp-rewrite-gtt-on-resume +++ a/drivers/char/agp/intel-agp.c @@ -2176,7 +2176,6 @@ static void __devexit agp_intel_remove(s static int agp_intel_resume(struct pci_dev *pdev) { struct agp_bridge_data *bridge = pci_get_drvdata(pdev); - int ret_val; pci_restore_state(pdev); @@ -2204,10 +2203,6 @@ static int agp_intel_resume(struct pci_d else if (bridge->driver == &intel_i965_driver) intel_i915_configure(); - ret_val = agp_rebind_memory(); - if (ret_val != 0) - return ret_val; - return 0; } #endif diff -puN include/linux/agp_backend.h~revert-intel-agp-rewrite-gtt-on-resume include/linux/agp_backend.h --- a/include/linux/agp_backend.h~revert-intel-agp-rewrite-gtt-on-resume +++ a/include/linux/agp_backend.h @@ -30,8 +30,6 @@ #ifndef _AGP_BACKEND_H #define _AGP_BACKEND_H 1 -#include <linux/list.h> - #ifndef TRUE #define TRUE 1 #endif @@ -88,8 +86,6 @@ struct agp_memory { u8 is_bound; u8 is_flushed; u8 vmalloc_flag; - /* list of agp_memory mapped to the aperture */ - struct list_head mapped_list; }; #define AGP_NORMAL_MEMORY 0 @@ -108,7 +104,6 @@ extern struct agp_memory *agp_allocate_m extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *); extern int agp_bind_memory(struct agp_memory *, off_t); extern int agp_unbind_memory(struct agp_memory *); -extern int agp_rebind_memory(void); extern void agp_enable(struct agp_bridge_data *, u32); extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *); extern void agp_backend_release(struct agp_bridge_data *); _ -- To unsubscribe from this list: send the line "unsubscribe kernel-testers" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html