On Wed, Oct 16, 2002 at 06:41:22PM +0100, Matthew Wilcox wrote:
> 
> >>EIP; c021723c <aic7xxx_slave_attach+68/d0>   <=====
> 
Duh, forgot to add INIT_LIST_HEAD(&p->aic_devs); to aic7xxx_register() so 
the list_add() is oopsing.  Patch attached.  Let me know if this *doesn't* 
solve the problem (I'm not at work where I can test this yet).
-- 
  Doug Ledford <dledford@redhat.com>     919-754-3700 x44233
         Red Hat, Inc. 
         1801 Varsity Dr.
         Raleigh, NC 27606
  
--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="aic_oops.patch"
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.857   -> 1.858  
#	drivers/scsi/aic7xxx_old.c	1.29    -> 1.30   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/16	dledford@aladin.rdu.redhat.com	1.858
# aic7xxx_old.c:
#   Fix mistake with list_head structs
# --------------------------------------------
#
diff -Nru a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
--- a/drivers/scsi/aic7xxx_old.c	Wed Oct 16 13:57:12 2002
+++ b/drivers/scsi/aic7xxx_old.c	Wed Oct 16 13:57:12 2002
@@ -6723,7 +6723,7 @@
   struct aic7xxx_host *p = (struct aic7xxx_host *) sdpnt->host->hostdata;
   struct aic_dev_data *aic_dev;
   int scbnum;
-  struct list_head *list_ptr, *list_head;
+  struct list_head *list_ptr;
 
   if(!sdpnt->hostdata) {
     sdpnt->hostdata = kmalloc(sizeof(struct aic_dev_data), GFP_ATOMIC);
@@ -6742,8 +6742,7 @@
   aic7xxx_device_queue_depth(p, sdpnt);
 
   scbnum = 0;
-  list_head = &p->aic_devs;
-  list_for_each(list_ptr, list_head) {
+  list_for_each(list_ptr, &p->aic_devs) {
     aic_dev = list_entry(list_ptr, struct aic_dev_data, list);
     scbnum += aic_dev->max_q_depth;
   }
@@ -7879,6 +7878,7 @@
   p->completeq.tail = NULL;
   scbq_init(&p->scb_data->free_scbs);
   scbq_init(&p->waiting_scbs);
+  INIT_LIST_HEAD(&p->aic_devs);
 
   /*
    * We currently have no commands of any type
--ikeVEW9yuYc//A+q--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/