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]
Message-Id: <200706081913.07975.s.L-H@gmx.de>
Date:	Fri, 8 Jun 2007 19:12:58 +0200
From:	Stefan Lippers-Hollmann <s.L-H@....de>
To:	Chris Wright <chrisw@...s-sol.org>
Cc:	linux-kernel@...r.kernel.org, stable@...nel.org,
	Mark Salyzyn <aacraid@...ptec.com>,
	James Bottomley <James.Bottomley@...eleye.com>,
	Greg Kroah-Hartman <gregkh@...e.de>
Subject: Re: [patch 37/54] SCSI: aacraid: Correct sa platform support. (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1)

Hi

On Freitag, 8. Juni 2007, you wrote:
> -stable review patch.  If anyone has any objections, please let us know.
> ---------------------
>
> From: Mark Salyzyn <mark_salyzyn@...ptec.com>
>
> As discussed in the bugzilla outlined below, we have an sa based
> (Mustang) RAID adapter on the system, a Dell PERC2/QC. Affected
> controllers are HP NetRAID, Adaptec AAC-364, Dell PERC2/QC or Adaptec
> 5400S. This problem  coincides with the introduction of the adapter_comm
> and adapter_deliver platform functions (Message [PATCH 1/4] aacraid:
> rework communication support code, January 23 2007, which initially
> migrated to 2.6.21)
>
> The panic occurs with an uninitialized adapter_deliver platform function
> pointer. The enclosed patch, unmodified as tested by Rainer, solves the
> problem.
>
> Signed-off-by: Mark Salyzyn <aacraid@...ptec.com>
> Signed-off-by: James Bottomley <James.Bottomley@...elEye.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...e.de>
> Signed-off-by: Chris Wright <chrisw@...s-sol.org>
>
> ---
>  drivers/scsi/aacraid/aacraid.h |    1 +
>  drivers/scsi/aacraid/rx.c      |    2 +-
>  drivers/scsi/aacraid/sa.c      |    9 ++++++++-
>  3 files changed, 10 insertions(+), 2 deletions(-)


This patch fails to compile on amd64 and i386 with the attached config 
(CONFIG_SCSI_AACRAID=m, 2.6.21.5-rc1):
  CC [M]  drivers/scsi/aacraid/linit.o
  CC [M]  drivers/scsi/aacraid/aachba.o
  CC [M]  drivers/scsi/aacraid/commctrl.o
  CC [M]  drivers/scsi/aacraid/comminit.o
  CC [M]  drivers/scsi/aacraid/commsup.o
  CC [M]  drivers/scsi/aacraid/dpcsup.o
  CC [M]  drivers/scsi/aacraid/rx.o
  CC [M]  drivers/scsi/aacraid/sa.o
drivers/scsi/aacraid/sa.c: In function 'aac_sa_init':
drivers/scsi/aacraid/sa.c:375: error: 'struct adapter_ops' has no member 
named 'adapter_restart'
make[5]: *** [drivers/scsi/aacraid/sa.o] Error 1
make[4]: *** [drivers/scsi/aacraid] Error 2
make[3]: *** [drivers/scsi] Error 2
make[2]: *** [drivers] Error 2
make[2]: Leaving directory `/tmp/pkg/linux-2.6.21.5-rc1-slh64-smp-1'
make[1]: *** [debian/stamp-build-kernel] Error 2
make[1]: Leaving directory `/tmp/pkg/linux-2.6.21.5-rc1-slh64-smp-1'
make: *** [realfast] Fehler 2

Reverting this patch allows compiling 2.6.21.5-rc1 with the same config 
again.

Debian unstable/ current.
$ gcc --version
gcc (GCC) 4.1.3 20070601 (prerelease) (Debian 4.1.2-12)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ dpkg -l | grep -e gcc-4.1\  -e binutils
ii  binutils  2.17cvs20070426-8   The GNU assembler, linker and binary 
utiliti
ii  gcc-4.1   4.1.2-12            The GNU C compiler

> --- linux-2.6.21.4.orig/drivers/scsi/aacraid/aacraid.h
> +++ linux-2.6.21.4/drivers/scsi/aacraid/aacraid.h
> @@ -1840,6 +1840,7 @@ struct aac_driver_ident* aac_get_driver_
>  int aac_get_adapter_info(struct aac_dev* dev);
>  int aac_send_shutdown(struct aac_dev *dev);
>  int aac_probe_container(struct aac_dev *dev, int cid);
> +int aac_rx_deliver_producer(struct fib * fib);
>  extern int numacb;
>  extern int acbsize;
>  extern char aac_driver_version[];
> --- linux-2.6.21.4.orig/drivers/scsi/aacraid/rx.c
> +++ linux-2.6.21.4/drivers/scsi/aacraid/rx.c
> @@ -378,7 +378,7 @@ static int aac_rx_check_health(struct aa
>   *
>   *	Will send a fib, returning 0 if successful.
>   */
> -static int aac_rx_deliver_producer(struct fib * fib)
> +int aac_rx_deliver_producer(struct fib * fib)
>  {
>  	struct aac_dev *dev = fib->dev;
>  	struct aac_queue *q = &dev->queues->queue[AdapNormCmdQueue];
> --- linux-2.6.21.4.orig/drivers/scsi/aacraid/sa.c
> +++ linux-2.6.21.4/drivers/scsi/aacraid/sa.c
> @@ -5,7 +5,7 @@
>   * based on the old aacraid driver that is..
>   * Adaptec aacraid device driver for Linux.
>   *
> - * Copyright (c) 2000 Adaptec, Inc. (aacraid@...ptec.com)
> + * Copyright (c) 2000-2007 Adaptec, Inc. (aacraid@...ptec.com)
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> @@ -258,6 +258,11 @@ static void aac_sa_start_adapter(struct
>  			NULL, NULL, NULL, NULL, NULL);
>  }
>
> +static int aac_sa_restart_adapter(struct aac_dev *dev, int bled)
> +{
> +	return -EINVAL;
> +}
> +
>  /**
>   *	aac_sa_check_health
>   *	@dev: device to check if healthy
> @@ -367,7 +372,9 @@ int aac_sa_init(struct aac_dev *dev)
>  	dev->a_ops.adapter_notify = aac_sa_notify_adapter;
>  	dev->a_ops.adapter_sync_cmd = sa_sync_cmd;
>  	dev->a_ops.adapter_check_health = aac_sa_check_health;
> +	dev->a_ops.adapter_restart = aac_sa_restart_adapter;
>  	dev->a_ops.adapter_intr = aac_sa_intr;
> +	dev->a_ops.adapter_deliver = aac_rx_deliver_producer;
>  	dev->a_ops.adapter_ioremap = aac_sa_ioremap;
>
>  	/*

Regards
	Stefan Lippers-Hollmann

Download attachment "config-2.6.21.5-rc1-slh64-smp-1.gz" of type "application/x-gzip" (18558 bytes)

Download attachment "signature.asc " of type "application/pgp-signature" (190 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ