lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 10 Jun 2008 11:18:32 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Grant Coady <gcoady.lk@...il.com>
Cc:	Grant Coady <grant_lkml@...o.com.au>, linux-kernel@...r.kernel.org,
	kernel-testers@...r.kernel.org, linux-mm@...ck.org,
	Keith Packard <keithp@...thp.com>
Subject: Re: 2.6.26-rc5-mm2 lockup up on Intel G33+ICH9R+Core2Duo, -mm1 okay

On Tue, 10 Jun 2008 20:20:09 +1000 Grant Coady <grant_lkml@...o.com.au> wrote:

> On Mon, 9 Jun 2008 22:31:45 -0700, Andrew Morton <akpm@...ux-foundation.org> 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 linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ