i386/58458: ATAPI-CDROM DMA Support on ALi Aladdin V Chipset is brocken

Bruce Evans bde at zeta.org.au
Thu Oct 23 22:32:51 PDT 2003


On Thu, 23 Oct 2003, Rolf Witt wrote:

> >Description:
> If DMA on IDE-Channel 1 Device 0 aktiv, the DVD-ROM Drive no more works.
> Only PIO works. I have testet this with 2 Drive (both have UDMA33 ability).
> On Pre 4.8 Releases it still functioned.

I forwarded the following usenet article to the author of the bug, but
received no reply.

% Date: Mon, 13 Oct 2003 08:07:01 +0000 (UTC)
% From: viro at parcelfarce.linux.theplanet.co.uk
% Newsgroups: comp.unix.bsd.freebsd.misc
% Subject: Re: Linux vs. FreeBSD (supportability)
%
% In article <3f8a362c$1_2 at corp.newsgroups.com>,
% Donn Miller  <dmmiller at cvzoom.net> wrote:
%
% >I've had problems with filesystem corruption with both ext2 and ext3,
% >but never ext3.
%
% <shrug>  Count the bug reports and see.  Most of the cases of fs corruption
% turn out to be either random memory corruption or breakage in underlying
% block device driver.  Neither of those cares about fs type, obviously.
%
% If you have real cases of ext2 corruption (not of these two classes and not
% "I had a dirty shutdown and fsck complained about something, I don't remember
% what") - post a bug report.
%
% >  I think ext2 is the most crude and cruddy hack of a
% >filesystem ever created.  ReiserFS is clearly the best filesystem for
% >Linux right now.
%
% <raised brows>
%
% >Sounds like he must've been compiling his world and kernel with -O3
% >-fomit-frame-pointer -fthread-jumps -funroll-all-loops
% >-fstrength-reduce again.  Believe it or not, the default Gentoo
% >optimization flags were along the same lines at one time.  The Linux
% >kernel seemed more forgiving in the past of such idiotic optimization
% >levels, but I think he might be getting "more lucky" with Linux in such
% >a situation.  Even knowledgeable Linux people will advise against
% >building the kernel with such insane optimizations.
%
% FWIW, that sort of bugs tend to boil down to missing memory barrier or
% missing lock.  Not that gcc was too tolerant to anything past -O2, but
% more often than not the real problem is in the code.  BTDT...
%
% Idiocy happens.  Case in point: while digging through ata-dma.c in 4.9-RC
% a couple of hours ago, I've found the following gem:
%
%             switch(ATA_PIO0 + apiomode) {
%             case ATA_PIO0: timing = 0x006d0003;
%             case ATA_PIO1: timing = 0x00580002;
%             case ATA_PIO2: timing = 0x00440001;
%             case ATA_PIO3: timing = 0x00330001;
%             case ATA_PIO4: timing = 0x00310001;
%             default:       timing = 0x006d0003;
%             }
%
% (M5229 support, in case you wonder and no, -CURRENT doesn't have that bug).
% Had been there for quite a while and that's exactly the sort of bug that
% is harder to find.  I'd seen equivalents blamed on compiler, OS, hardware,
% admin, yadda, yadda.  Usually ends up with massive blushing when you
% finally realize that yes, it was _that_ dumb...
%
%

Bruce


More information about the freebsd-i386 mailing list