Re: 2.5.43 oops in adaptec driver

Doug Ledford (dledford@redhat.com)
Wed, 16 Oct 2002 13:57:54 -0400


--ikeVEW9yuYc//A+q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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/