Re: PCMCIA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

From: Linus Torvalds (torvalds@transmeta.com)
Date: Thu Jan 13 2000 - 13:39:57 EST


On Thu, 13 Jan 2000 timecop@japan.co.jp wrote:
> Jan 13 18:41:37 localhost cardmgr[68]: socket 0: Megahertz CC/XJEM3336 Ethernet/Modem
> Jan 13 18:41:37 localhost kernel: odd IO request: base 0300 align 0010

Hmm.. This actually looks like a bug that has been there forever. I don't
know why it hasn't shown itself with the old code, because it looks like
it was there since day 1.

Try changing drivers/pcmcia/cs.c, alloc_io_space(), line 746 or so, which
looks like

        if ((*base & ~(align-1)) {
                ..

to

        if (align && (*base & (align-1)) {

and see if that makes it work for you.

> I was under impression that linux kernel development was supposed to be about
> fixing things, not breaking things.

It is. The old code was a "let's make this work" with not much design, and
definitely broken for CardBus devices.

The new code has a clearer design, but is new. New code always has bugs,
and I'm trying to track them down. In this case, it was the OLD code that
had bugs, but it looks like something else hid the bug when used with
other old kernels.

> Ever since you started screwing with the PCMCIA in the kernel shit hasn't been
> working right. Soon after 2.3.30-or something, PCMCIA in the kernel became
> unusable on my laptop, and now after 2.3.37, David Hinds refuses to support
> Kernels above 2.3.37, because PCI and PCMCIA code has gotten so fucked, even
> he doesn't want to screw with it anymore. Please explain the reasoning behind
> fucking with the PCMCIA and making it unusable, and also some pointers as far
> as fixing this shit on MY laptop.

I appreciate bug reports, but keep the profanity down.

If you don't want new features, then stay at a 2.2.x kernel. Forever.

If you want Linux to become a better system, and you want to take
advantage of new improvements, then help by testing (and coding if you
can), and by making bug-reports.

David Hinds agrees with you. He'd rather not touch the PCMCIA subsystem,
because the old one works, and is held together with years of duct-tape,
added to make it work.

It may actually be that for 2.4.x I'll have to split off the new code and
revert to the old code as a backup option, but I _wanted_ to break things
in order to find the breakage. In order to get bug-reports, and in order
to make people aware that the thing is changing to more seamlessly support
CardBus as a real PCI subsystem rather than as an afterthought.

So keep your temper, and send me bug-reports. Tell me if the above fix
makes any difference, and I'll figure out why the hell it was EVER
supposed to work (the code is plain buggy, clean and simple, and has been
since long before I started making changes).

Or decide that you don't want to upgrade, and don't complain when you
don't get new features.

                Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jan 15 2000 - 21:00:22 EST