Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Apr 2002 17:24:47 +0200
From:      Bjoern Fischer <bfischer@Techfak.Uni-Bielefeld.DE>
To:        =?iso-8859-1?Q?S=F8ren?= Schmidt <sos@freebsd.dk>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Problems w/ MFCed ata driver
Message-ID:  <20020405152447.GA919@frolic.no-support.loc>

next in thread | raw e-mail | index | archive | help
Hello S=F8ren,

While I'm building a backup solution for a client I was very pleased
about the MFC of the attach/detach capable ata driver. The machine
uses a SiS 5591, OS is out-of-the-box 4.5-20020402-STABLE, vanilla
GENERIC+DDB kernel. During normal operarion everything seems to work
fine, but I have a reproducible crash situation and some other issues:

  su-2.05a# atacontrol list
  ATA channel 0:
      Master:  ad0 <ST340016A/3.10> ATA/ATAPI rev 5
      Slave:       no device present
  ATA channel 1:
      Master:  ad2 <ST340016A/3.10> ATA/ATAPI rev 5
      Slave:       no device present

1.) FreeBSD constantly crashes, when I try to detach a channel twice:

  su-2.05a# atacontrol detach 1
  su-2.05a# atacontrol detach 1
  <CRASH>

ata_detach() seems to call bus_release_resource() with
(dev=3D0xc15a8300, type=3D1, rid=3D0, r=3D0x0; the latter one does not seem=
 right)
although the channel is already detached and the kernel crashes later in
nexus_release_resource().

BTW: It is possible to detach a channel with mounted devices. Ok, this
is a "Doctor, it hurts when I poke me here."--"Then don't do it."-thing,
but would it be that complicated to add some protect-me-from-myself-securit=
y?

2.) This one is somehow more complicated. Fortunately it is not critical
    for me since there are no supported devices in my system:

  su-2.05a# atacontrol enclosure 1 0
  atacontrol: ioctl(ATAENCSTAT): Device not configured
  su-2.05a# atacontrol enclosure 1 0
  <HANG>

The process hangs in tsleep() resp. mi_switch() forever. Any further
actions on that ata channel may lead to a crash. Everything else keeps
running.

3.) Is there a way to determine whether a channel is detached or attached
with no devices?

I can supply complete crash dumps on demand.

-Bj=F6rn Fischer

--=20
-----BEGIN GEEK CODE BLOCK-----
GCS d--(+) s++: a- C+++(-) UB++++OSI++++$ P+++(-) L---(++) !E W- N+ o>+
K- !w !O !M !V  PS++  PE-  PGP++  t+++  !5 X++ tv- b+++ D++ G e+ h-- y+=20
------END GEEK CODE BLOCK------

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020405152447.GA919>