Re: dentry cache order 7 is broken

2001-02-07 Thread David S. Miller


dean gaudet writes:
 > also, for order > 7, was the real intention to use a shift of
 > (order*2)&31?

No, the whole thing is buggered.  How stupid, my fault.
It was the 64-bit platform fascist at work :-)

How does this work for you (against 2.4.x)?

--- fs/dcache.c.~1~ Tue Feb  6 23:00:58 2001
+++ fs/dcache.c Thu Feb  8 00:09:10 2001
@@ -696,7 +696,8 @@
 static inline struct list_head * d_hash(struct dentry * parent, unsigned long hash)
 {
hash += (unsigned long) parent / L1_CACHE_BYTES;
-   hash = hash ^ (hash >> D_HASHBITS) ^ (hash >> D_HASHBITS*2);
+   hash = hash ^ (hash >> D_HASHBITS) ^
+   (hash >> (D_HASHBITS+(D_HASHBITS/2)));
return dentry_hashtable + (hash & D_HASHMASK);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: aacraid 2.4.0 kernel

2001-02-07 Thread Alan Cox

> much-improved block layer of 2.4.x throws larger I/Os at the driver.  So,
> the developers at Adaptec are busy trying to add support to break large
> requests into smaller chunks, and then gather them back together.

That sounds like it should be doable at the queuing layer. If not the scsi
queue code or ll_rw_blk wants a bit of tweaking - Jens ?


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: PS/2 Mouse/Keyboard conflict and lockup

2001-02-07 Thread Peter Horton

On Thu, Feb 08, 2001 at 03:35:00AM +0100, Udo A. Steinberg wrote:
> 
> I'm not sure whether this is related to the ominous ps/2 mouse bug
> you have been chasing, but this problem is 100% reproducible and
> very annoying.
> 
> After upgrading my Asus A7V Bios from 1003 to 1005D, gpm no longer
> receives any mouse events and the mouse doesn't work in text
> consoles. Once I kill gpm and restart gpm -t ps2 the keyboard
> locks up.
> 
> Logging in remotely and looking at dmesg revealed the following:
> 
> keyboard: Timeout - AT keyboard not present?
> keyboard: unrecognized scancode (70) - ignored
> 
> If I don't kill and restart gpm, but start X, the mouse works
> perfectly, but only in X.
> 

Similiar problems here after my upgrade to 1005D. Linux somehow kills
the keyboard if I start the box without a PS/2 mouse connected. I have
another machine (these are both 2.4.1) which is a much older K6-233, and
it too kills the keyboard if no mouse is present. Keyboard works at LILO
prompt but is dead by the time I get to login. GPM doesn't work for me
either.

P.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: PS/2 Mouse/Keyboard conflict and lockup

2001-02-07 Thread Alan Cox

> I'm not sure whether this is related to the ominous ps/2 mouse bug
> you have been chasing, but this problem is 100% reproducible and
> very annoying.

It isnt but it might be related to which 2.2.19pre you are running (if any)

> After upgrading my Asus A7V Bios from 1003 to 1005D, gpm no longer
> receives any mouse events and the mouse doesn't work in text
> consoles. Once I kill gpm and restart gpm -t ps2 the keyboard
> locks up.

Does downgrading the bios fix it. If so then I suspect you need to talk to
the BIOS vendor.  You might find that turning off USB legacy keyboard/mouse
emulation helps too


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] eepro100.c, kernel 2.4.1

2001-02-07 Thread Ion Badulescu

On Thu, 8 Feb 2001, Alan Cox wrote:

> > It's the printk that gets it wrong, although that's harmless.
> > Intel's documentation states that the bug does NOT exist if the
> > bits 0 and 1 in eeprom[3] are 1. Thus, the workaround is correct,
> > the printk is wrong.
> 
> So why does it fix the problem for him. His report and your reply don't
> make sense viewed together

I don't think it fixes *this* bug. However, the bug workaround effectively
reinitializes the chip, so it might serve as a generic 'reset and try
again' kind of workaround. In that case, we might as well enable it
unconditionally... but I don't see it as a good solution. It's a stop-gap 
measure at best.

We need to find out what exactly happens. Until he tells us more about how 
his boxes "were failing before", there really isn't much we can diagnose.

I happen to also have an Intel ISP1100 box here, and I know what's inside 
-- i82559 C-step chips which definitely don't have this bug. The bug is an 
i82557-only bug; what makes things confusing is Intel idea of giving 
multiple chips the same PCI id. They can be identified via the PCI rev:

i82557 step A-C: rev 1-3
i82558 step A-B: rev 4-5
i82559 step A-C: rev 6-8

Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] eepro100.c, kernel 2.4.1

2001-02-07 Thread Alan Cox

> It's the printk that gets it wrong, although that's harmless.
> Intel's documentation states that the bug does NOT exist if the
> bits 0 and 1 in eeprom[3] are 1. Thus, the workaround is correct,
> the printk is wrong.

So why does it fix the problem for him. His report and your reply don't
make sense viewed together

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] eepro100.c, kernel 2.4.1

2001-02-07 Thread Augustin Vidovic

On Wed, Feb 07, 2001 at 11:23:01PM -0800, Ion Badulescu wrote:
> Intel's documentation states that the bug does NOT exist if the
> bits 0 and 1 in eeprom[3] are 1. Thus, the workaround is correct,
> the printk is wrong.

I wonder if it's not Intel's documentation which is wrong : it seems
that the bug showed up also with the network cards used in my boxes,
and the patch I proposed seemed to fix that problem.

-- 
Augustin Vidovic   http://www.vidovic.org/augustin/
"Nous sommes tous quelque chose de naissance, musicien ou assassin,
 mais il faut apprendre le maniement de la harpe ou du couteau."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[Patch] aic7xxx update.

2001-02-07 Thread Doug Ledford


This is relative to the 5.2.2 driver already in 2.4.1-ac4 and it fixes the
7880 (and similar) problems.  Alan, you'll need to make sure the little patch
I sent earlier is not already applied to your tree since it will conflict with
this patch.

This has been tested on a 7850, 7880, 7890, and 7892 chipset.  In general,
this covers two of the four classes of aic7xxx controller.  The 7890 and 7892
both fall in the class Ultra2 and if one works the other typically does as
well.  The 7850 and 7880 both fall in the class of legacy non-Ultra2
controller and if one works the other usually does.  The other two classes are
all 7770 based controllers (EISA/VLB controllers, which I don't have any
machines with these cards to test on any more) and 7895 controllers, which are
half way between a legacy controller and an Ultra2 controller and don't fit in
any class except their own.

So, what this driver really needs is someone with a 7895 and someone with a
VLB/EISA controller to test it out.  All the other controllers should be
working reliably at this point.

-- 

 Doug Ledford <[EMAIL PROTECTED]>  http://people.redhat.com/dledford
  Please check my web site for aic7xxx updates/answers before
  e-mailing me about problems

diff -U3 -rN scsi.save/aic7xxx/aic7xxx.seq scsi/aic7xxx/aic7xxx.seq
--- scsi.save/aic7xxx/aic7xxx.seq   Wed Feb  7 15:07:28 2001
+++ scsi/aic7xxx/aic7xxx.seqThu Feb  8 01:52:38 2001
@@ -291,11 +291,7 @@
 
mov A, LASTPHASE;
 
-   if ((p->features & AHC_ULTRA2) != 0) {
-   testA, ~P_DATAINjz u2_p_data;
-   } else {
-   testA, ~P_DATAINjz p_data;
-   }
+   testA, ~P_DATAINjz p_data;
cmp A,P_COMMAND je p_command;
cmp A,P_MESGOUT je p_mesgout;
cmp A,P_STATUS  je p_status;
@@ -336,73 +332,130 @@
/* clear target specific flags */
clr SEQ_FLAGS ret;
 
-   if ((p->features & AHC_ULTRA2) != 0) {
-
-
 
-u2_data_phase_reinit:
+data_phase_reinit:
 /*
  * If we re-enter the data phase after going through another phase, the
  * STCNT may have been cleared, so restore it from the residual field.
  * On Ultra2, we have to put it into the HCNT field because we have to
  * drop the data down into the shadow layer via the preload ability.
  */
+   if ((p->features & AHC_ULTRA2) != 0) {
bmovHADDR, SHADDR, 4;
bmovHCNT, SCB_RESID_DCNT, 3;
-   jmp u2_data_phase_loop;
-u2_p_data:
+   }
+   if ((p->chip & AHC_CHIPID_MASK) == AHC_AIC7895) {
+   bmovSTCNT, SCB_RESID_DCNT, 3;
+   }
+   if ((p->features & AHC_CMD_CHAN) == 0) {
+   mvi DINDEX, STCNT;
+   mvi SCB_RESID_DCNT  call bcopy_3;
+   }
+   jmp data_phase_loop;
+p_data:
+   if ((p->features & AHC_ULTRA2) != 0) {
mvi DMAPARAMS, PRELOADEN|SCSIEN|HDMAEN;
-   testLASTPHASE, IOI jnz . + 2;
-   or  DMAPARAMS, DIRECTION;
-   callassert; /*
-* Ensure entering a data
-* phase is okay - seen identify, etc.
-*/
+   } else {
+   mvi DMAPARAMS, WIDEODD|SCSIEN|SDMAEN|HDMAEN|FIFORESET;
+   }
+   testLASTPHASE, IOI jnz . + 2;
+   or  DMAPARAMS, DIRECTION;
+   callassert; /*
+* Ensure entering a data
+* phase is okay - seen identify, etc.
+*/
+   if ((p->features & AHC_CMD_CHAN) != 0) {
mvi CCSGADDR, CCSGADDR_MAX;
-   testSEQ_FLAGS, DPHASE   jnz u2_data_phase_reinit;
-   or  SEQ_FLAGS, DPHASE;  /* we've seen a data phase */
-   /*
-* Initialize the DMA address and counter from the SCB.
-* Also set SG_COUNT and SG_NEXT in memory since we cannot
-* modify the values in the SCB itself until we see a
-* save data pointers message.
-*/
+   }
+
+   testSEQ_FLAGS, DPHASE   jnz data_phase_reinit;
+   or  SEQ_FLAGS, DPHASE;  /* we've seen a data phase */
+   /*
+* Initialize the DMA address and counter from the SCB.
+* Also set SG_COUNT and SG_NEXT in memory since we cannot
+* modify the values in the SCB itself until we see a
+* save data pointers message.
+*/
+   if ((p->features & AHC_CMD_CHAN) != 0) {
bmovHADDR, SCB_DATAPTR, 7;
bmovSG_COUNT, SCB_SGCOUNT, 5;
-u2_data_phase_loop:
-   /* Guard against overruns */
-   testSG_COUNT, 0xff jnz u2_data_phase_inbounds;
+   if ((p->features & AHC_ULTRA2) == 0) {
+   bmov  

Re: [PATCH] eepro100.c, kernel 2.4.1

2001-02-07 Thread Ion Badulescu

On Thu, 8 Feb 2001 14:53:55 +0900, Augustin Vidovic <[EMAIL PROTECTED]> wrote:

> --- linux-2.4.1/drivers/net/eepro100.c  Sun Jan 28 03:40:14 2001
> +++ linux-2.4.1-vido1/drivers/net/eepro100.cThu Feb  8 14:08:49 2001
> @@ -815,7 +815,7 @@
>  
> sp->phy[0] = eeprom[6];
> sp->phy[1] = eeprom[7];
> -   sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1;
> +   sp->rx_bug = eeprom[3] & 0x03;
>  
> if (sp->rx_bug)
> printk(KERN_INFO "  Receiver lock-up workaround activated.\n");

This patch is wrong, please DON'T apply it.

It's the printk that gets it wrong, although that's harmless.
Intel's documentation states that the bug does NOT exist if the
bits 0 and 1 in eeprom[3] are 1. Thus, the workaround is correct,
the printk is wrong.

The correct patch for 2.4.1 is attached. 2.2.18 needs something
similar, the same patch can be applied with some fuzz.

Thanks,
Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.

--- /usr/src/local/linux-2.4.vanilla/drivers/net/eepro100.c Wed Feb  7 15:45:16 
2001
+++ linux-2.4/drivers/net/eepro100.cWed Feb  7 23:07:29 2001
@@ -725,7 +725,7 @@
/* The self-test results must be paragraph aligned. */
volatile s32 *self_test_results;
int boguscnt = 16000;   /* Timeout for set-test. */
-   if (eeprom[3] & 0x03)
+   if ((eeprom[3] & 0x03) != 0x03)
printk(KERN_INFO "  Receiver lock-up bug exists -- enabling"
   " work-around.\n");
printk(KERN_INFO "  Board assembly %4.4x%2.2x-%3.3d, Physical"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



dentry cache order 7 is broken

2001-02-07 Thread dean gaudet

this looks to be a problem going back all the way to at least 2.2.

if you've got 512Mb of RAM you end up with a dentry cache of order 7 --
65536 entries.

this results in a D_HASHBITS of 16.  if you look at d_hash it contains
this code:

hash = hash ^ (hash >> D_HASHBITS) ^ (hash >> D_HASHBITS*2);

D_HASHBITS*2 = 32, which on an x86 results in a shift of 0.  (ia32 is
defined to mask a variable shift down to the low 5 bits and use the low 5
bits.)

this results in a hash with very little perturbance at all, since the 1st
and 3rd terms of the xor are equal and cancel... and the resulting
performance is pretty abysmal.  i'm getting hash chains with well over 100
entries in them just doing a find on the kernel source tree.

if i hard code to order 8 then i get nice well distributed hash chains, 5
entries max.

also, for order > 7, was the real intention to use a shift of
(order*2)&31?

-dean

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



DMA overrun in i810_audio

2001-02-07 Thread Michael S. Fischer

I'm getting hundreds of thousands of "DMA overrun on send" messages 
in my kernel logs from the i810_audio driver.  Help!  I'm running stock
Linux 2.4.1.

-- syslog --
Feb  7 22:34:27 angeline kernel: Intel 810 + AC97 Audio, version 0.01, 22:21:54
Feb  7 2001
Feb  7 22:34:27 angeline kernel: PCI: Found IRQ 11 for device 00:1f.5
Feb  7 22:34:27 angeline kernel: PCI: Setting latency timer of device 00:1f.5 to 64
Feb  7 22:34:27 angeline kernel: i810: Intel ICH2 found at IO 0xdc00 and 0xd800, IRQ 11
Feb  7 22:34:27 angeline kernel: ac97_codec: AC97 Audio codec, id: 0x414c:0x432f 
(Unknown)
Feb  7 22:34:27 angeline kernel: i810_audio: only 48Khz playback available.
...
Feb  7 22:34:57 angeline kernel: DMA overrun on send
Feb  7 22:34:57 angeline last message repeated 633 times
Feb  7 22:34:57 angeline kernel: on send
Feb  7 22:34:57 angeline kernel: DMA overrun on send
Feb  7 22:34:58 angeline last message repeated 2740 times
...

-- lspci -vvv-
00:00.0 Host bridge: Intel Corporation: Unknown device 1130 (rev 02)
Subsystem: ABIT Computer Corp.: Unknown device 0402
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- 

00:01.0 PCI bridge: Intel Corporation: Unknown device 1131 (rev 02) (prog-if 00 
[Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR+ FastB2B-
Status: Cap- 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- Reset- FastB2B-

00:1e.0 PCI bridge: Intel Corporation 82820 820 (Camino 2) Chipset PCI (rev 01) 
(prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- Reset- FastB2B-

00:1f.0 ISA bridge: Intel Corporation 82820 820 (Camino 2) Chipset ISA Bridge (ICH2) 
(rev 01)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR-  [disabled] [size=64K]
Capabilities: [60] Power Management version 1
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [44] AGP version 2.0
Status: RQ=31 SBA- 64bit- FW+ Rate=x1,x2
Command: RQ=0 SBA- AGP- 64bit- FW- Rate=

02:02.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 08)
Subsystem: Intel Corporation EtherExpress PRO/100+ Management Adapter
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-  [disabled] [size=1M]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA 
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-

02:03.0 Multimedia audio controller: Aureal Semiconductor Vortex 2 (rev fe)
Subsystem: Diamond Multimedia Systems Monster Sound II
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR-  [disabled] [size=64K]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-


-- 
Michael S. Fischer <[EMAIL PROTECTED]>  AKA Otterley _O_
Lead Hacketeer, Dynamine Consulting, Silicon Valley, CA  |
Phone: +1 650 533 4684 | AIM: IsThisOtterley | ICQ: 4218323  |
"From the bricks of shame is built the hope"--Alan Wilder net.goth
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] Re: Apparent instability of reiserfs on 2.4.1

2001-02-07 Thread Daniel Stone

On 07 Feb 2001 11:48:16 -0500, Chris Mason wrote:
> 
> 
> On Wednesday, February 07, 2001 08:38:54 AM -0800 David Rees
> <[EMAIL PROTECTED]> wrote:
> 
> > On Wed, Feb 07, 2001 at 10:47:09AM -0500, Chris Mason wrote:
> >> 
> >> Ok, how about we list the known bugs:
> >> 
> >> zeros in log files, apparently only between bytes 2048 and 4096 (not
> >> reproduced yet).
> > 
> > Could this bug be related to the reported corruption that people with
> > new VIA chipsets have been also reporting on ext2?  It seems similar
> > because of the location of the corruption:
> > 
> > http://marc.theaimsgroup.com/?l=linux-kernel=98147483712620=2
> > 
> > Anyway, it can't hurt to ask the bug reported if they're using a
> > newer VIA chipset and see if they will upgrade their BIOS which seems
> > to fix the problem.
> 
> I'd love to blame this on VIA problems, but people are seeing it on other
> chipsets too ;-)  
> 
> People who report this aren't seeing general corruption, just zeros in
> files of specific sizes.  So, it really should be a reiserfs bug.

I run Reiser on all but /boot, and it seems to enjoy corrupting my
mbox'es randomly.
Using the old-style Reiser FS format, 2.4.2-pre1, Evolution, on a CMD640
chipset with the fixes enabled.
This also occurs in some log files, but I put it down to syslogd
crashing or something.

d

-- 
Daniel Stone
Linux Kernel Developer
[EMAIL PROTECTED]

-BEGIN GEEK CODE BLOCK-
Version: 3.1
G!>CS d s++:- a C++ ULS$>B P L+++> E+(joe)>+++ W++ N->++ !o
K? w++(--) O M- V-- PS+++ PE- Y PGP>++ t--- 5-- X- R- tv-(!) b+++ DI+++ 
D+ G e->++ h!(+) r+(%) y? UF++
--END GEEK CODE BLOCK--



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Module usage count - sound

2001-02-07 Thread Mauricio Martinez


Kernel 2.4.1

I have sound support, OSS and my soundcard (sb) configured as modules

If I just play a sound on /dev/dsp, I get the following after the program
exits:

mixcoac:~> cat /proc/modules
sb  2000   0 (autoclean)
sb_lib 33504   0 (autoclean) [sb]
uart401 6224   0 (autoclean) [sb_lib]
sound  55280   0 (autoclean) [sb_lib uart401]
soundcore   3664   5 (autoclean) [sb_lib sound]

This means that the sound modules are not longer used and thus,
removable. Everything OK so far.

The problem occurs when /dev/dsp is blocked by the above described
process, and another process (say SOX, XMMS and such) attempts to write
to the same device. After the two of them finish, the usage count is not
reset for some reason, like

mixcoac:~> cat /proc/modules
sb  2000   1 (autoclean)
sb_lib 33504   0 (autoclean) [sb]
uart401 6224   0 (autoclean) [sb_lib]
sound  55280   0 (autoclean) [sb_lib uart401]
soundcore   3664   5 (autoclean) [sb_lib sound]

So, the module cannot be removed and stays loaded forever.

This problem is 100% reproductable.

What's wrong? any ideas?

---
Mauricio Martínez  Northeastern University[EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[PATCH] eepro100.c, kernel 2.4.1

2001-02-07 Thread Augustin Vidovic

Patch for drivers/net/eepro100.c in kernel 2.4.1 (and before).
For some of the bugged Intel EtherExpress Pro 100 network cards,
although the driver diagnoses the receiver lock-up bug, the workaround
is not enabled. It appears that the test for the diagnostic and the test
for the workaround activation are different. I assumed the diagnostic
test is OK and I changed the work-around activation test. I had several
Intel ISP1100 boxes with the bug diagnosed, but the workaround not enabled,
and after the patch, the workaround is activated and the boxes seem to
be alright even under very high network trafic (they were failing before,
due to the card bug, I think).

Attached is the tarball of the patch, I believe conform to the list
FAQ guidelines. Since the patch is only one line, I also include it
in the body of this message as plain text.

--- linux-2.4.1/drivers/net/eepro100.c  Sun Jan 28 03:40:14 2001
+++ linux-2.4.1-vido1/drivers/net/eepro100.cThu Feb  8 14:08:49 2001
@@ -815,7 +815,7 @@
 
sp->phy[0] = eeprom[6];
sp->phy[1] = eeprom[7];
-   sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1;
+   sp->rx_bug = eeprom[3] & 0x03;
 
if (sp->rx_bug)
printk(KERN_INFO "  Receiver lock-up workaround activated.\n");

I don't understand why the tests for the diagnostic and for the
workaround activation were different. Maybe a simple bug, but maybe there
was an obscure reason. I someone knows...

-- 
Augustin Vidovic   http://www.vidovic.org/augustin/
"Nous sommes tous quelque chose de naissance, musicien ou assassin,
 mais il faut apprendre le maniement de la harpe ou du couteau."

 patch-eepro100-vido1.tar


PATCH 2.4.1.ac5: Update ac97 codec ids and codec-specific patches

2001-02-07 Thread Jeff Garzik

Alan,

Attached is a patch against 2.4.1-ac5 which syncs the codec id list and
codec-specific init functions with the ones in my CVS tree.  Most of
this is a merge from ALSA, and I would put the changes in the category
"needs to go to Linus, but only after a bunch of testing"

Important changes:
* Merge codec-specific initialization code from ALSA and maestro.c
* Sort codec id list by value.  Add several new codec ids.  None removed
(thrice checked!), of course.  Note the Tritech device id from maestro
(0x00FF) seems almost certainly wrong... but since maestro.c didn't mask
it at all, I won't either.

Minor changes:
* Add URLs for Intel AC97 docs and homepage
* Use kernel-standard ARRAY_SIZE macro, not arraysize
* Const-ify a couple tables
* Remove excess whitespace after AC97_REC_PHONE mention
* Change existing sigmatel_init return values from one to zero (not that
the return values are -ever- used, at present)

-- 
Jeff Garzik   | "You see, in this world there's two kinds of
Building 1024 |  people, my friend: Those with loaded guns
MandrakeSoft  |  and those who dig. You dig."  --Blondie

Index: linux_2_4/drivers/sound/ac97_codec.c
diff -u linux_2_4/drivers/sound/ac97_codec.c:1.1.1.11 
linux_2_4/drivers/sound/ac97_codec.c:1.1.1.11.4.3
--- linux_2_4/drivers/sound/ac97_codec.c:1.1.1.11   Tue Feb  6 21:46:55 2001
+++ linux_2_4/drivers/sound/ac97_codec.cWed Feb  7 21:40:40 2001
@@ -20,6 +20,16 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
+ **
+ *
+ * The Intel Audio Codec '97 specification is available at the Intel
+ * audio homepage: http://developer.intel.com/ial/scalableplatforms/audio/
+ *
+ * The specification itself is currently available at:
+ * ftp://download.intel.com/ial/scalableplatforms/ac97r22.pdf
+ *
+ **
+ *
  * History
  * v0.4 Mar 15 2000 Ollie Lho
  * dual codecs support verified with 4 channels output
@@ -49,42 +59,61 @@
 
 static int ac97_init_mixer(struct ac97_codec *codec);
 
-static int sigmatel_init(struct ac97_codec *codec);
+static int wolfson_init(struct ac97_codec * codec);
+static int tritech_init(struct ac97_codec * codec);
+static int tritech_maestro_init(struct ac97_codec * codec);
+static int sigmatel_9708_init(struct ac97_codec *codec);
+static int sigmatel_9721_init(struct ac97_codec *codec);
+static int sigmatel_9744_init(struct ac97_codec *codec);
 static int enable_eapd(struct ac97_codec *codec);
-
-#define arraysize(x)   (sizeof(x)/sizeof((x)[0]))
 
-static struct {
-   unsigned int id;
+/* sorted by vendor/device id */
+static const struct {
+   u32 id;
char *name;
int  (*init)  (struct ac97_codec *codec);
 } ac97_codec_ids[] = {
-   {0x414B4D00, "Asahi Kasei AK4540 rev 0", NULL},
-   {0x414B4D01, "Asahi Kasei AK4540 rev 1", NULL},
-   {0x41445340, "Analog Devices AD1881"  , NULL},
-   {0x41445360, "Analog Devices AD1885"  , enable_eapd},
-   {0x43525900, "Cirrus Logic CS4297", enable_eapd},
-   {0x43525903, "Cirrus Logic CS4297"  ,   enable_eapd},
-   {0x43525913, "Cirrus Logic CS4297A"   , enable_eapd},
-   {0x43525923, "Cirrus Logic CS4298", NULL},
-   {0x4352592B, "Cirrus Logic CS4294", NULL},
-   {0x4352592D, "Cirrus Logic CS4294", NULL},
-   {0x43525931, "Cirrus Logic CS4299", NULL},
-   {0x43525934, "Cirrus Logic CS4299", NULL},
-   {0x4e534331, "National Semiconductor LM4549" ,  NULL},
-   {0x53494c22, "Silicon Laboratory Si3036" ,  NULL},
-   {0x53494c23, "Silicon Laboratory Si3038" ,  NULL},
-   {0x83847600, "SigmaTel STAC"  , NULL},
+   {0x41445303, "Analog Devices AD1819",   NULL},
+   {0x41445340, "Analog Devices AD1881",   NULL},
+   {0x41445348, "Analog Devices AD1881A",  NULL},
+   {0x41445460, "Analog Devices AD1885",   enable_eapd},
+   {0x414B4D00, "Asahi Kasei AK4540",  NULL},
+   {0x414B4D01, "Asahi Kasei AK4542",  NULL},
+   {0x414B4D02, "Asahi Kasei AK4543",  NULL},
+   {0x414C4710, "ALC200/200P", NULL},
+   {0x43525900, "Cirrus Logic CS4297", enable_eapd},
+   {0x43525903, "Cirrus Logic CS4297", enable_eapd},
+   {0x43525913, "Cirrus Logic CS4297A rev A", enable_eapd},
+   {0x43525914, "Cirrus Logic CS4297A rev B", NULL},
+   {0x43525923, "Cirrus Logic CS4298", NULL},
+   {0x4352592B, "Cirrus Logic CS4294", NULL},
+   {0x4352592D, "Cirrus Logic CS4294", NULL},
+   {0x43525931, "Cirrus Logic CS4299 rev A", NULL},
+   {0x43525933, "Cirrus Logic CS4299 rev C", NULL},
+   {0x43525934, "Cirrus Logic CS4299 rev D", NULL},
+   {0x45838308, "ESS Allegro ES1988",  NULL},
+   {0x49434511, "ICE1232", NULL}, /* I hope --jk 

Re: [PATCH] Re: UP APIC reenabling vs. cpu type detection ordering

2001-02-07 Thread H. Peter Anvin

Mikael Pettersson wrote:
> 
> H. Peter Anvin wrote:
> 
> >"Maciej W. Rozycki" wrote:
> >...
> >>  It might be viable just to delete the test altogether, though and just
> >> trap #GP(0) on the MSR access.  For the sake of simplicity.  If a problem
> >> with a system ever arizes, we may handle it then.
> >>
> >>  Note that we still have to choose appropriate vendor-specific PeMo
> >> handling and an event for the NMI watchdog anyway.
> >
> >Right... if that is the case then it seems reasonable.
> 
> No, poking into MSRs not explicitly defined on the current CPU is
> inherently unsafe. I have several x86 CPU data sheets here in front
> of me which say the same thing: "Don't write to undocumented MSRs."
> You cannot assume that every single x86 out there stays clear of
> all Intel-defined MSRs. Intel has also expanded this set over time:
> older designs may not even have known about the APIC_BASE MSR.
> 

You misread me.  "In that case it seems reasonable to do vendor-specific
detection."

-hpa

-- 
<[EMAIL PROTECTED]> at work, <[EMAIL PROTECTED]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Promise, DMA and RAID5 problems running 2.4.1

2001-02-07 Thread A.Sajjad Zaidi

Petr Vandrovec wrote:

> It is known bug which I reported to Andre already. Open
> drivers/ide/ide.c in favorite text editor, and replace strange
> body of ide_delay_50ms() with simple mdelay(50). Promise driver
> invokes ide_delay_50ms with interrupts disabled, so it freezes
> here forever. If you have NMI watchdog, you'll get nice oopses.
>
> As for DMA failure itself, I have no idea what is wrong in your
> case, but I found that mine Promise works with Linux only iff there
> is master on each channel, slave alone does not work. And I did not
> tried master+slave together.
> Petr Vandrovec
> [EMAIL PROTECTED]

Ok, I changed ide.c and stopped getting the freeze, but bad DMA status errors
were still showing up.

Then I connected all the drives as masters (2x ATA-100, 2x ATA-66) and havent
gotten anything yet. Buffered disk reads are still about 36.50 MB/sec on the
raid5 device, so its fast enough for what I need.

Next step is to see how well Reiserfs works here.

Thank you everyone who has helped.

A.Sajjad Zaidi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.1-ac5 - The loopback hang saga continues (not me ?)

2001-02-07 Thread Dejan Muhamedagic

The same here.  I have had no problems with either 2.4.0 or 2.4.1,
and I don't even have the Axboe's patch applied.  Which makes me
wonder where is the problem.

I am also using encryption (patch-int-2.4.0.3, idea cipher) and
util-linux-2.10o.  The container file is not as big, only 256MB
with 65MB of data, and the largest file is ~30MB.  I had to
convert from the blowfish and used dump|restore.  There were no
problems whatsoever.

Dejan

On Thu, Feb 08, 2001 at 03:48:34AM +0100, Pascal Brisset wrote:
> FYI following hints from the linux-crypto mailing-list archives, I am
> using the following configuration :
> 
> linux-2.4.0
> patch-int-2.4.0.3
> http://www.kernel.org/pub/linux/kernel/people/axboe/patches/2.4.0/loop-1.gz
> http://www.kernel.org/pub/linux/kernel/people/axboe/patches/2.4.0/loop-bdev-inc-1.gz
> util-linux-2.10o
> Documentation/crypto/util-linux-2.10o.patch
> 
> I setup an encrypted 2097152000 byte loopback partition and moved
> 800MB of data there, including a 90MB file.
> 
> My only problems are:
> - rc.d/init.d/S01reboot sometimes fails to unmount partitions with
>   loop files on them (this already happened with 2.2.17).
> - losetup after losetup -d sometimes fails.
> 
> -- Pascal
> 
> 
> Linux-crypto:  cryptography in and on the Linux system
> Archive:   http://mail.nl.linux.org/linux-crypto/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[PATCH] Re: UP APIC reenabling vs. cpu type detection ordering

2001-02-07 Thread Mikael Pettersson

H. Peter Anvin wrote:

>"Maciej W. Rozycki" wrote:
>...
>>  It might be viable just to delete the test altogether, though and just
>> trap #GP(0) on the MSR access.  For the sake of simplicity.  If a problem
>> with a system ever arizes, we may handle it then.
>> 
>>  Note that we still have to choose appropriate vendor-specific PeMo
>> handling and an event for the NMI watchdog anyway.
>> 
>
>Right... if that is the case then it seems reasonable.

No, poking into MSRs not explicitly defined on the current CPU is
inherently unsafe. I have several x86 CPU data sheets here in front
of me which say the same thing: "Don't write to undocumented MSRs."
You cannot assume that every single x86 out there stays clear of
all Intel-defined MSRs. Intel has also expanded this set over time:
older designs may not even have known about the APIC_BASE MSR.

No, the problem we're facing here is a phase ordering issue.
There are actually several bugs lurking here:

1. identify_cpu() (and more importantly get_cpu_vendor()) is called
   very late (init/main.c's check_bugs()), while we obviously need
   that info much earlier. Thus, boot_cpu_data.x86_vendor is still
   uninitialised (zero by .bss) when we read it for the purpose of
   setting up the local APIC.

2. include/asm-i386/processor.h #defines X86_VENDOR_INTEL as 0.
   Thus, we may accidentally believe that the CPU is an Intel, if
   we read x86_vendor before identify_cpu() had done its deed.
   This explains why Petr Vandrovec's testing on K7 succeeded (the
   APIC-enabling code mistook his K7 for a P6). Change Intel's
   vendor id to something non-zero and you'll see that on
   UP P6 the local APIC doesn't get initialised.

3. init/main.c calls time_init() before check_bugs() and thus
   identify_cpu(). time_init() calls dodgy_tsc() which calls
   get_cpu_vendor(). However, get_cpu_vendor() only works on
   CPUID-enabled CPUs, so dodgy_tsc()'s call to init_cyrix()
   isn't guaranteed to happen. (init_cyrix() will be called later,
   but that may be too late.)
   Also, time_init() checks cpu_has_tsc, but since this is before
   identify_cpu() has done its thing, the capabilities are still
   the raw ones from head.S's CPUID calls.

4. The cpu detection code rewrite in 2.4.0-test
   introduced a bug. The capabilities field was expanded from
   one to four words, which changed the starting offset of
   the vendor_id string. But the offsets in head.S weren't
   updated, causing head.S's initial vendor_id data to be stored
   in the wrong place. This hasn't been noticed yet since
   identify_cpu() does this work again correctly, but it does
   mean that calling get_cpu_vendor() before identify_cpu()
   doesn't work any more.

Below is a patch against 2.4.1-ac5 which fixes CPU detection
as far as the UP_APIC stuff is concerned. I had to add a
get_cpu_vendor() call to detect_init_APIC(), so that our
detection code gets a chance to work. I also fixed the field
ordering and offsets in processor.h and head.S. The resulting
kernel works ok on my UP P6.
(Petr: can you check that it still works on your K7?)

Ideally, identify_cpu() should be run before init_apic_mappings(),
but my attempts to do so has so far had some weird side-effects
(lost interrupts, incorrect bogomips, apparently stuck watchdog,
and keyboard timeouts), so I won't touch that stuff.

/Mikael

--- linux-2.4.1-ac5/arch/i386/kernel/apic.c.~1~ Thu Feb  8 02:01:39 2001
+++ linux-2.4.1-ac5/arch/i386/kernel/apic.c Thu Feb  8 05:28:21 2001
@@ -388,21 +388,23 @@
 {
u32 h, l, dummy, features;
 
-   if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) {
-   printk("No APIC support for non-Intel processors.\n");
-   return -1;
-   }
+   get_cpu_vendor(_cpu_data);
 
-   if (boot_cpu_data.x86 < 5) {
-   printk("No local APIC on pre-Pentium Intel processors.\n");
-   return -1;
+   switch (boot_cpu_data.x86_vendor) {
+   case X86_VENDOR_AMD:
+   if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1)
+   break;
+   goto no_apic;
+   case X86_VENDOR_INTEL:
+   if (boot_cpu_data.x86 == 6 ||
+   (boot_cpu_data.x86 == 5 && cpu_has_apic))
+   break;
+   goto no_apic;
+   default:
+   goto no_apic;
}
 
if (!cpu_has_apic) {
-   if (boot_cpu_data.x86 == 5) {
-   printk("APIC turned off by hardware.\n");
-   return -1;
-   }
/*
 * Some BIOSes disable the local APIC in the
 * APIC_BASE MSR. This can only be done in
@@ -434,6 +436,10 @@
printk("Found and enabled local APIC!\n");
 
return 0;
+
+no_apic:
+   printk("No local APIC present or hardware disabled\n");
+   return -1;
 }
 
 void __init init_apic_mappings(void)
--- linux-2.4.1-ac5/arch/i386/kernel/head.S.~1~ Tue Dec 12 

[PATCH] starfire driver for 2.2.x

2001-02-07 Thread Ion Badulescu

Hi Alan,

As promised, here is the same driver ported to 2.2.x. I used the
definitions in kcomp.h, as well as the excellent stuff from emu10k1's 
wrapper.

The patch was generated agains 2.2.18, but I checked that it applies 
cleanly to 2.2.19pre8.

BTW, would you consider a patch adding more stuff to kcomp.h?

Thanks,
Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.
-
diff -urNX diff_kernel_excludes 
/usr/src/local/linux-2.2.18-vanilla/Documentation/Configure.help 
linux-2.2.18/Documentation/Configure.help
--- /usr/src/local/linux-2.2.18-vanilla/Documentation/Configure.helpSun Dec 10 
16:49:41 2000
+++ linux-2.2.18/Documentation/Configure.help   Wed Feb  7 19:40:42 2001
@@ -6238,6 +6238,18 @@
 
   If you don't have this card, of course say N.
 
+Adaptec Starfire support (EXPERIMENTAL)
+CONFIG_ADAPTEC_STARFIRE
+  Say Y here if you have an Adaptec Starfire (or DuraLAN) PCI network
+  adapter. The DuraLAN chip is used on the 64 bit PCI boards from
+  Adaptec e.g. the ANA-6922A. The older 32 bit boards use the tulip
+  driver.
+  
+  If you want to compile this driver as a module ( = code which can be
+  inserted in and removed from the running kernel whenever you want),
+  say M here and read Documentation/modules.txt. This is recommended.
+  The module will be called starfire.o.
+  
 Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support
 CONFIG_ACENIC
   Say Y here if you have an Alteon AceNIC or 3Com 3C985 PCI Gigabit
diff -urNX diff_kernel_excludes /usr/src/local/linux-2.2.18-vanilla/MAINTAINERS 
linux-2.2.18/MAINTAINERS
--- /usr/src/local/linux-2.2.18-vanilla/MAINTAINERS Sun Dec 10 16:49:41 2000
+++ linux-2.2.18/MAINTAINERSWed Feb  7 19:34:25 2001
@@ -916,6 +916,11 @@
 W: http://www.stallion.com
 S: Supported
 
+STARFIRE/DURALAN NETWORK DRIVER
+P: Ion Badulescu
+M: [EMAIL PROTECTED]
+S: Maintained
+
 STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
 W: http://mosquitonet.Stanford.EDU/strip.html
 S: Unsupported ?
diff -urNX diff_kernel_excludes 
/usr/src/local/linux-2.2.18-vanilla/drivers/net/Config.in 
linux-2.2.18/drivers/net/Config.in
--- /usr/src/local/linux-2.2.18-vanilla/drivers/net/Config.in   Sun Dec 10 16:49:42 
2000
+++ linux-2.2.18/drivers/net/Config.in  Wed Feb  7 17:56:02 2001
@@ -132,6 +132,7 @@
   if [ "$CONFIG_NET_EISA" = "y" ]; then
 tristate 'AMD PCnet32 (VLB and PCI) support' CONFIG_PCNET32
 if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+  tristate 'Adaptec Starfire support (EXPERIMENTAL)' CONFIG_ADAPTEC_STARFIRE
   tristate 'Ansel Communications EISA 3200 support (EXPERIMENTAL)' CONFIG_AC3200
 fi
 tristate 'Apricot Xen-II on board Ethernet' CONFIG_APRICOT
diff -urNX diff_kernel_excludes 
/usr/src/local/linux-2.2.18-vanilla/drivers/net/Makefile 
linux-2.2.18/drivers/net/Makefile
--- /usr/src/local/linux-2.2.18-vanilla/drivers/net/MakefileSun Dec 10 16:49:42 
2000
+++ linux-2.2.18/drivers/net/Makefile   Wed Feb  7 17:57:21 2001
@@ -742,6 +742,14 @@
   endif
 endif
 
+ifeq ($(CONFIG_ADAPTEC_STARFIRE),y)
+L_OBJS += starfire.o
+else
+  ifeq ($(CONFIG_ADAPTEC_STARFIRE),m)
+  M_OBJS += starfire.o
+  endif
+endif
+
 ifeq ($(CONFIG_AC3200),y)
 L_OBJS += ac3200.o
 CONFIG_8390_BUILTIN = y
diff -urNX diff_kernel_excludes 
/usr/src/local/linux-2.2.18-vanilla/drivers/net/starfire.c 
linux-2.2.18/drivers/net/starfire.c
--- /usr/src/local/linux-2.2.18-vanilla/drivers/net/starfire.c  Wed Dec 31 16:00:00 
1969
+++ linux-2.2.18/drivers/net/starfire.c Wed Feb  7 19:33:56 2001
@@ -0,0 +1,1903 @@
+/* starfire.c: Linux device driver for the Adaptec Starfire network adapter. */
+/*
+   Written 1998-2000 by Donald Becker.
+
+   This software may be used and distributed according to the terms of
+   the GNU General Public License (GPL), incorporated herein by reference.
+   Drivers based on or derived from this code fall under the GPL and must
+   retain the authorship, copyright and license notice.  This file is not
+   a complete program and may only be used when the entire operating
+   system is licensed under the GPL.
+
+   The author may be reached as [EMAIL PROTECTED], or C/O
+   Scyld Computing Corporation
+   410 Severn Ave., Suite 210
+   Annapolis MD 21403
+
+   Support and updates available at
+   http://www.scyld.com/network/starfire.html
+
+   ---
+
+   Linux kernel-specific changes:
+   
+   LK1.1.1 (jgarzik):
+   - Use PCI driver interface
+   - Fix MOD_xxx races
+   - softnet fixups
+
+   LK1.1.2 (jgarzik):
+   - Merge Becker version 0.15
+
+   LK1.1.3 (Andrew Morton)
+   - Timer cleanups
+   
+   LK1.1.4 (jgarzik):
+   - Merge Becker version 1.03
+
+   LK1.2.1 (Ion Badulescu <[EMAIL PROTECTED]>)
+   - Support hardware Rx/Tx checksumming
+   - Use the GFP firmware 

Re: reiserfs - problems mounting after power outage (FIXED)

2001-02-07 Thread Jeff McWilliams

Problem solved.  I downloaded the latest reiserfs_utils 3.6.25 from
namesys.com and built and ran reiserfsck against the partition with the
--rebuild-tree option.  It completed successfully and I was able to mount
the partition without any further problems.

I'll build and install a 2.4.1 kernel sometime tomorrow and get it running on
that machine to address any further issues.

many thanks for the tips & suggestions

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] starfire reads irq before pci_enable_device.

2001-02-07 Thread Jeff Garzik

Manfred Spraul wrote:
> 
> Jeff Garzik wrote:
> >
> > +   SET_MODULE_OWNER(dev);
> >
> > irq = pdev->irq;
> >
> 
> One question:
> The code copies 'pdev->irq' into 'dev->irq'.
> 
> Is that required, who need 'dev->irq'?
> 
> > retval = request_irq(dev->irq, _handler, SA_SHIRQ, dev->name, dev);
> 
> Can't the driver use?
>  retval = request_irq(np->pci_dev->irq)

Sure it can.  A PCI driver can completely ignore dev->irq, if it so
desires.  However...

Setting dev->irq is really a courtesy, because while the net core code
doesn't use it at all, it is reported to userspace such as ifconfig. 
And because the netdev setup code could potentially assign a value to
dev->irq on its own, if the driver does -not- set dev->irq, the value
reported to userspace might incorrect instead of just being zero.

[side note - ifconfig only obtains the lower 16 bits of the
dev->base_addr value, grump grump]

Jeff


-- 
Jeff Garzik   | "You see, in this world there's two kinds of
Building 1024 |  people, my friend: Those with loaded guns
MandrakeSoft  |  and those who dig. You dig."  --Blondie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: TCP_NOPUSH on FreeBSD, TCP_CORK on Linux (was: Is sendfile all that

2001-02-07 Thread Tony Finch

Dan Kegel <[EMAIL PROTECTED]> wrote:
>
>Tony, are people using the TCP_NOPUSH define as a way to detect
>the presence of T/TCP support?

No, MSG_EOF is the right way to do that.

Tony.
-- 
f.a.n.finch[EMAIL PROTECTED][EMAIL PROTECTED]
FAIR ISLE: WESTERLY VEERING NORTHERLY 4 OR 5. WINTRY SHOWERS. MAINLY GOOD.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Remaining net/ pci_enable_device cleanups.

2001-02-07 Thread Jeff Garzik

[EMAIL PROTECTED] wrote:
> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/defxx.c 
>linux-dj/drivers/net/defxx.c
> --- linux/drivers/net/defxx.c   Wed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/defxx.cWed Feb  7 22:34:27 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/dgrs.c 
>linux-dj/drivers/net/dgrs.c
> --- linux/drivers/net/dgrs.cWed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/dgrs.c Wed Feb  7 22:17:37 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/dmfe.c 
>linux-dj/drivers/net/dmfe.c
> --- linux/drivers/net/dmfe.cWed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/dmfe.c Wed Feb  7 22:18:18 2001
> @@ -356,6 +356,11 @@
> 
> DMFE_DBUG(0, "dmfe_probe()", 0);
> 
> +   /* Enable Master/IO access, Disable memory access */
> +   if (pci_enable_device(pdev))
> +   goto err_out;
> +   pci_set_master(pdev);

not applied -- used this code instead:

/* Enable Master/IO access, Disable memory access */
i = pci_enable_device(pdev);
if (i) return i;

pci_set_master(pdev);
pci_read_config_word(pdev, PCI_COMMAND, _command);
pci_comand &= ~PCI_COMMAND_MEM;
pci_write_config_word(pdev, PCI_COMMAND, pci_command);


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/eepro100.c 
>linux-dj/drivers/net/eepro100.c
> --- linux/drivers/net/eepro100.cWed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/eepro100.c Wed Feb  7 22:00:35 2001
> @@ -557,6 +557,17 @@
> if (speedo_debug > 0  &&  did_version++ == 0)
> printk(version);
> 
> +   /* save power state b4 pci_enable_device overwrites it */
> +   pm = pci_find_capability(pdev, PCI_CAP_ID_PM);
> +   if (pm) {
> +   u16 pwr_command;
> +   pci_read_config_word(pdev, pm + PCI_PM_CTRL, _command);
> +   acpi_idle_state = pwr_command & PCI_PM_CTRL_STATE_MASK;
> +   }
> +
> +   if (pci_enable_device(pdev))
> +   goto err_out_none;

applied then modified:  -ENODEV is rarely a descriptive return code on
pci_enable_device failure

> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/epic100.c 
>linux-dj/drivers/net/epic100.c
> --- linux/drivers/net/epic100.c Wed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/epic100.c  Wed Feb  7 22:15:22 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/natsemi.c 
>linux-dj/drivers/net/natsemi.c
> --- linux/drivers/net/natsemi.c Wed Feb  7 21:55:56 2001
> +++ linux-dj/drivers/net/natsemi.c  Wed Feb  7 22:03:05 2001

already applied/fixed


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/pcnet32.c 
>linux-dj/drivers/net/pcnet32.c
> --- linux/drivers/net/pcnet32.c Wed Feb  7 21:55:57 2001
> +++ linux-dj/drivers/net/pcnet32.c  Wed Feb  7 22:00:35 2001
> @@ -482,7 +482,12 @@
> 
>  printk(KERN_INFO "pcnet32_probe_pci: found device %#08x.%#08x\n", ent->vendor, 
>ent->device);
> 
> -ioaddr = pci_resource_start (pdev, 0);
> +   if ((err = pci_enable_device(pdev)) < 0) {
> +   printk(KERN_ERR "pcnet32.c: failed to enable device -- err=%d\n", err);
> +   return err;
> +   }
> +
> +   ioaddr = pci_resource_start (pdev, 0);

applied, then fixed up the fubar'd indentation..


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/rcpci45.c 
>linux-dj/drivers/net/rcpci45.c
> --- linux/drivers/net/rcpci45.c Wed Feb  7 21:55:57 2001
> +++ linux-dj/drivers/net/rcpci45.c  Wed Feb  7 22:13:56 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/rtl8129.c 
>linux-dj/drivers/net/rtl8129.c
> --- linux/drivers/net/rtl8129.c Wed Feb  7 21:55:57 2001
> +++ linux-dj/drivers/net/rtl8129.c  Wed Feb  7 22:08:47 2001

not applied -- already met its demise in my tree :)


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/sis900.c 
>linux-dj/drivers/net/sis900.c
> --- linux/drivers/net/sis900.c  Wed Feb  7 21:55:57 2001
> +++ linux-dj/drivers/net/sis900.c   Wed Feb  7 22:08:04 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/sundance.c 
>linux-dj/drivers/net/sundance.c
> --- linux/drivers/net/sundance.cMon Dec 11 21:38:29 2000
> +++ linux-dj/drivers/net/sundance.c Wed Feb  7 22:03:56 2001

applied


> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/winbond-840.c 
>linux-dj/drivers/net/winbond-840.c
> --- linux/drivers/net/winbond-840.c Wed Feb  7 21:56:00 2001
> +++ linux-dj/drivers/net/winbond-840.c  Wed Feb  7 22:05:21 2001

applied

-- 
Jeff Garzik   | "You see, in this world there's two kinds of
Building 1024 |  people, my friend: Those with loaded guns
MandrakeSoft  |  and those who dig. You dig."  --Blondie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL 

2.4.2-pre1: kernel oops during unmount

2001-02-07 Thread Dieter Nützel

2.4.2-pre1 + ReiserFS 3.6.25 (included) + loop-4

ksymoops 2.3.7 on i686 2.4.2-pre1.  Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.2-pre1/ (default)
 -m /boot/System.map (specified)
 
Unable to handle kernel NULL pointer dereference at virtual address 

c0143023
*pde = 
Oops: 
CPU:0
EIP:0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00013206
eax: c14d3e00   ebx: c81051c0   ecx: cfa3f000   edx: cf7f36c0
esi:    edi:    ebp: ce469f3c   esp: ce469f04
ds: 0018   es: 0018   ss: 0018
Process umount (pid: 9117, stackpage=ce469000)
Stack: c14d3e00 ce469f3c ce469f3c c025d5b8   c01430d5 
c025bf1c
   c14d3e00 ce469f3c c14d3e00 cf9b32c0 c025d580 c025d5b8 ce469f3c 
ce469f3c
   c01354d3 c14d3e00 c14c0440 c14d3e00  b53c c0134839 
c01358d1
Call Trace: [] [] [] [] 
[] [] []
   []
Code: 8b 3f 3b 74 24 1c 74 65 8d 5e f8 8b 44 24 20 39 83 8c 00 00
 
>>EIP; c0143023<=
Trace; c01430d5 
Trace; c01354d3 
Trace; c0134839 
Trace; c01358d1 
Trace; c01359aa 
Trace; c0122fcb 
Trace; c01359eb 
Trace; c0108fe7 
Code;  c0143023 
 <_EIP>:
Code;  c0143023<=
   0:   8b 3f mov(%edi),%edi   <=
Code;  c0143025 
   2:   3b 74 24 1c   cmp0x1c(%esp,1),%esi
Code;  c0143029 
   6:   74 65 je 6d <_EIP+0x6d> c0143090 

Code;  c014302b 
   8:   8d 5e f8  lea0xfff8(%esi),%ebx
Code;  c014302e 
   b:   8b 44 24 20   mov0x20(%esp,1),%eax
Code;  c0143032 
   f:   39 83 8c 00 00 00 cmp%eax,0x8c(%ebx)

-- 
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
Cognitive Systems Group
Vogt-Kölln-Straße 30
D-22527 Hamburg, Germany

email: [EMAIL PROTECTED]
@home: [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: aacraid 2.4.0 kernel

2001-02-07 Thread Jens Axboe

On Wed, Feb 07 2001, [EMAIL PROTECTED] wrote:
> > I haven't seen this driver, but if it uses the SCSI layer instead
> > of being a "pure" block driver then I can see a slight problem
> > in that currently only understand max sg entry limits and not
> > total request sizes. I would rather fix this limitation then, and
> > would also be interested to know if any of the (older) SCSI drivers
> > have such limitations too.
> 
> Yes, it's a SCSI driver, not a block driver.  Adaptec thought it prudent to
> try to fix this in their driver rather than try to change the SCSI layer in
> 2.4.x just now.  They expected it would be more difficult getting such a
> change through validation and into the kernel in a timely manner.

The changes are going to be really small and obvious. Which I bet
the driver changes won't :-). And as I said, if other drivers have
this limitation too then we need to do it anyway.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[ANNOUNCE] PCI-SCI Drivers v1.2-1 Released

2001-02-07 Thread Jeff V. Merkey



Linux Kernel,

The PCI-SCI Drivers for the Dolphin Scalable Coherent Interface
v1.2-1 has posted at vger.timpanogas.org:/sci/pci-sci-1.2-1.  This 
release corrects several hardware related bugs, and corrects 
several previously reported build and performance problems related 
to the RedHat 7.1 Fischer Release.  

These drivers are released under the GNU public license, and are 
freely downloadable and re-distributable.  These drivers are provided
in both .tar.gz and RPM formats.  

Please direct any questions, bug reports, or comments to either
[EMAIL PROTECTED] or [EMAIL PROTECTED]  

Analysis of performance problems related to the gcc 2.96 compiler on the 
fischer release indicate that there are some problems with mixing 
powertools RPMs and egcs compatibility modules on a base release 
that may result in poor code generation.  We wiped the entire 
RedHat 7.1 Fischer system, and performed a clean install with just
the base compiler, and none of the compatibilty tools, and the 
performance numbers for sci_copy (scibench2) came back up to 
expected levels for the target system.  

Since SCI allows userspace -> userspace copying across systems,
the problem code was being generated in user space and not kernel.
We did not attempt to track any further than installing just the 
base RedHat 7.1 Fischer release -- the numbers were acceptable
for the target system.  The performance numbers attached to this 
release wer run on a PIII Intel System using the 440BX Bridge 
chipset on a system with a maximum PCI throughput of 87 MB/S.  


NOTES:

*Fixed concurrent DMA and PIO error detection bug for D330 adapters

*Linux:Fixed problems to allocate ATT tables for large SCI memsizes.

*Linux:Added proper handling of driver unload if driver load fails.

*Linux:fixed sleepOk flags to allow __GFP_WAIT flags to be passed to 
 __get_free_pages() to correct alloc failures in Linux when 
 memory gets fragmented. 

*Linux:fixed ASSERT() macros for modversioned IRM builds on Linux 
 systems. 

*Added SIMD/MMX support / Windows 2000. Not ported to Linux yet.
  (coming to Linux soon)

*Added proper handling of SCIInitialize() failiure in all
 examples/demos.

*UNIX: Fixed SCIMapLocal/RemoteSegment() bug when mapping to a segment
 offset.

*Linux:added code to /src/adm/MAKE/CONFIG-LINUX to append the 
 -D__SMP__ build option when SMP support is detected in 
 kernel source tree to correct SMP build errors on 2.2/2.4 kernels JVM
 
Please note: call to SCIInitialize/SCITerminate will be mandatory from 
next version of SISCI. 

SISCI applications should update code ASAP. SCIInitialize() 
must be the first SISCI function used. SCITerminate() should be the 
last one used.
  

 /opt/DIS/bin/scibench2 compiled Feb  7 2001 : 19:15:19

Test parameters for client 


Local nodeId: 4
Remote nodeId   : 8
Local adapter no.   : 0
Segment size: 65536
Loops to execute: 1
ILoops to execute   : 1000
Key Offset  : 0
Source buffer type  : User malloc
Memcopy mode: scicopy
Direction   : PUSH
Error Check : No
SISCI API version   : SISCI API version 1.10.0 (  Feb  7 2001 )
Adapter type: D320
Serial number   : 100963
Hostbridge  : 440BX
IO Bus frequency: 33 MHz
SCI Link frequency  : 100 MHz
B-Link frequency: 66 MHz


Connect to remote segment (id=0x80400)  connected
Remote segment (id=0x80400) is connected.
Remote segment (id=0x80400) is mapped to user space. 

-- Starting the data transfer -- 



Segment Size:   Average Transfer Time:  Throughput:

4 2.14 us 1.87 MBytes/s
8 2.22 us 3.61 MBytes/s
162.53 us 6.32 MBytes/s
324.25 us 7.53 MBytes/s
643.42 us18.70 MBytes/s
128   6.07 us21.09 MBytes/s
256   6.34 us40.40 MBytes/s
512   6.46 us79.28 MBytes/s
1024 12.57 us81.46 MBytes/s
2048 29.53 us69.36 MBytes/s
4096 50.59 us80.96 MBytes/s
8192100.85 us81.23 MBytes/s
16384   208.46 us78.60 MBytes/s
32768   404.03 us81.10 MBytes/s
65536   808.05 us81.10 MBytes/s
Node 4 triggering interrupt

Interrupt message sent to remote node
The remote segment is unmapped
The segment is disconnected

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



RE: aacraid 2.4.0 kernel

2001-02-07 Thread Matt_Domsch

> I haven't seen this driver, but if it uses the SCSI layer instead
> of being a "pure" block driver then I can see a slight problem
> in that currently only understand max sg entry limits and not
> total request sizes. I would rather fix this limitation then, and
> would also be interested to know if any of the (older) SCSI drivers
> have such limitations too.

Yes, it's a SCSI driver, not a block driver.  Adaptec thought it prudent to
try to fix this in their driver rather than try to change the SCSI layer in
2.4.x just now.  They expected it would be more difficult getting such a
change through validation and into the kernel in a timely manner.

-Matt


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: aacraid 2.4.0 kernel

2001-02-07 Thread Jens Axboe

On Wed, Feb 07 2001, [EMAIL PROTECTED] wrote:
> Adaptec is still working on it.  Basically (and as Jason discovered), the
> driver and firmware can't handle single I/O requests larger than 64KB.  Even
> when scatter/gathered, if the total is >64KB, it chokes.  This was just fine
> for 2.2.x (no one has ever run into this problem there), but the
> much-improved block layer of 2.4.x throws larger I/Os at the driver.  So,
> the developers at Adaptec are busy trying to add support to break large
> requests into smaller chunks, and then gather them back together.

Poor hardware, even IDE does better than this with scatter gather.
However, that's not why I'm replying. A driver should never have
to deal with bigger requests than it can handle. This just leads
to duplicated code in the block drivers and someone getting it
wrong (in fact, 2.4.1-pre showed bugs in the cpqarray driver
doing this for sg). The block layer is flexible enough to stop
merging beyond the low level drivers limit.

I haven't seen this driver, but if it uses the SCSI layer instead
of being a "pure" block driver then I can see a slight problem
in that currently only understand max sg entry limits and not
total request sizes. I would rather fix this limitation then, and
would also be interested to know if any of the (older) SCSI drivers
have such limitations too.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: RedHat kernel RPM 2.2.16

2001-02-07 Thread Jim Roland

AH HA!  Thanks!


- Original Message -
From: "David Woodhouse" <[EMAIL PROTECTED]>
To: "Jim Roland" <[EMAIL PROTECTED]>
Cc: "J. Dow" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Wednesday, February 07, 2001 2:37 AM
Subject: Re: RedHat kernel RPM 2.2.16


>
> [EMAIL PROTECTED] said:
> >  FWIW, the rpm -i did unpack the kernel to the /usr/src/redhat/SOURCES
> > directory, however, I had to manually untar the sources to /usr/src to
> > get my kernel, move over the appropriate .config file, and manually
> > run the patches to patch the sources.  Forcing RPM to be very
> > talkative (via -vv) gave me a bunch of "action unknown" errors, and
> > the rpm's install scripts did not execute.  This occurs on an RH7
> > system as well.  Seems to be something wrong with RH's kernel rpm?
>
> Install the kernel-source binary RPM, which contains the build tree
already
> extracted and set up as you desire, instead of the master SRPM which
> contains build instructions for all the kernel versions.
>
> i.e. kernel-source-2.2.16-3.i386.rpm, not kernel-2.2.16-3.src.rpm
>
> --
> dwmw2
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



RE: aacraid 2.4.0 kernel

2001-02-07 Thread Matt_Domsch

> I see in the archives of this mailing list that someone was 
> working on the
> aacraid driver for the 2.4 kernel however that post was 
> almost 2 months old.

Adaptec is still working on it.  Basically (and as Jason discovered), the
driver and firmware can't handle single I/O requests larger than 64KB.  Even
when scatter/gathered, if the total is >64KB, it chokes.  This was just fine
for 2.2.x (no one has ever run into this problem there), but the
much-improved block layer of 2.4.x throws larger I/Os at the driver.  So,
the developers at Adaptec are busy trying to add support to break large
requests into smaller chunks, and then gather them back together.

> I know Alan Cox denied inclusion of the driver due to the 
> poor nature it was
> written for the 2.2 tree. Every post that I have seen so far 
> has just said
> that Adaptec is working on it.

So, there are three objectives:
1) Get and maintain a working 2.2.x driver.  Yes, Alan Cox doesn't want to
merge this into the stock kernel, so until then, it's available separately,
and several distributions have picked it up, such as Red Hat Linux 7.

2) Get a working 2.4.x driver.  Dell and Adaptec both believe this is
critical.  Again, we don't expect this driver to make it into the 2.4.x
stock kernel, it'll be made available separately to those who want it.  This
is where development time is being spent today.  The best I can say here is
"we hope to have something soon".

3) Develop an aacraid driver for both 2.2.x and 2.4.x that will be accepted
into the stock kernels.  For this to happen, Adaptec engineers will be
re-writing the driver from the ground up as a Linux driver.  Due to schedule
constraints (wanting 2.4.x support sooner rather than later), and because we
didn't expect the 64K issue, this has been delayed until 2) is finished.
Hopefully the 64K limit will be eradicated then too.


I've made a web page http://domsch.com/linux on which I've posted all the
2.2.x aacraid patches, and where I'll post a 2.4.x patch when it's
available.  I've also created an announcements-only mailing list
http://domsch.com/mailman/listinfo/linux-aacraid-announce which you may
subscribe to and receive notices of new driver availability.  I've created a
developers list http://domsch.com/mailman/listinfo/linux-aacraid-devel for
discussion of the driver if you wish to contribute.

Both the web page and mailing lists will likely be moved to a Dell.com
server in the near future.


I hope this helps clarify the situation.  Thank you for your interest and
continued patience.

-- 
Matt Domsch
Dell Linux Systems Group
Linux OS Development
www.dell.com/linux


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: reiserfs - problems mounting after power outage

2001-02-07 Thread Jeff McWilliams

Quoting Andre Hedrick <[EMAIL PROTECTED]>:

>
> Dream on if you think "Writeback cacheing is disabled" on all systems
> bye
> default.  If you did not wack it.  It is not off.
>
Yeah, I know, Andre.  I turned it off in the 3ware card's BIOS setup.
I'm not completely idiotic, just dumb enough to not have ordered a UPS for this
box sooner.  One is on the way now though.  :-)

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Oopses in 2.4.1 (lots of them)

2001-02-07 Thread Arthur Pedyczak

On Wed, 7 Feb 2001, Alan Cox wrote:

> > am not sure how to eliminate or confirm this. Recently I added some RAM
> > (256->384) and decided to get rid of swap. This seemed to have destabilized
> > the system, although nothing is obvious. I can try to stress the system by
>
> Get a copy of memtest86, its a standalone memory tester.
>
Alan, Linus,

Thanks for your help. I ran memtest86 for 6 hrs. RAM looks
O.K.. I added swap back (just in case). Now I will be eliminating
suspicious kernel modules one by one.
Will post results in few days.
Cheers!

Arthur

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.1-ac5 - The loopback hang saga continues (not me ?)

2001-02-07 Thread Pascal Brisset

FYI following hints from the linux-crypto mailing-list archives, I am
using the following configuration :

linux-2.4.0
patch-int-2.4.0.3
http://www.kernel.org/pub/linux/kernel/people/axboe/patches/2.4.0/loop-1.gz
http://www.kernel.org/pub/linux/kernel/people/axboe/patches/2.4.0/loop-bdev-inc-1.gz
util-linux-2.10o
Documentation/crypto/util-linux-2.10o.patch

I setup an encrypted 2097152000 byte loopback partition and moved
800MB of data there, including a 90MB file.

My only problems are:
- rc.d/init.d/S01reboot sometimes fails to unmount partitions with
  loop files on them (this already happened with 2.2.17).
- losetup after losetup -d sometimes fails.

-- Pascal

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: PS/2 Mouse/Keyboard conflict and lockup

2001-02-07 Thread Udo A. Steinberg

"Udo A. Steinberg" wrote:
> 
> I'm not sure whether this is related to the ominous ps/2 mouse bug
> you have been chasing, but this problem is 100% reproducible and
> very annoying.
> 
> After upgrading my Asus A7V Bios from 1003 to 1005D, gpm no longer
> receives any mouse events and the mouse doesn't work in text
> consoles. Once I kill gpm and restart gpm -t ps2 the keyboard
> locks up.

Alright, I found the culprit - ACPI. Once I had compiled the kernel
without it, all the problems mysteriously vanished. I knew there was
a reason it was marked 'Experimental' :)

Sorry for the noise.

-Udo.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: reiserfs - problems mounting after power outage

2001-02-07 Thread Andre Hedrick


Dream on if you think "Writeback cacheing is disabled" on all systems bye
default.  If you did not wack it.  It is not off.

On Wed, 7 Feb 2001, Jeff McWilliams wrote:

> Chris,
> 
> Thanks for the reply.
> 
> > Which reiserfs version is this?  Upgrading to the reiserfs included in
> > 2.4.1 would be a good plan, there have been a few bug fixes since test9
> > times (none specfically related to this).
> >
> 
> /var/log/messages shows ReiserFS reporting version 3.6.18.
> 
> > If this raid controller has writeback cache, make sure you either have a
> > battery backup for the cache, or have writeback turned off.
> >
> 
> It has no battery backup for the cache.  Writeback cacheing is disabled.
> 
> > How hung is it?  Does the whole system stop, or does this mount just
> > block forever?
> >
> 
> When the mount hangs the rest of the system is responsive.  I can to go other
> virtual consoles and do other things and it works fine. If I attempt to shut
> down the system (shutdown -h now) the kernel blocks trying to unmount local
> filesystems just before powering down.
> 
> 
> The reiserfs tools I used are from Debian's reiserfsprogs_3.0.20001019-3.deb
> 
> > These programs also hang?  Does reiserfsck (which version BTW) give any
> > output at all?
> >
> >
> 
> If I do a reiserfsck /dev/sda7 I get the following:
> 
> ns2:/usr/share/doc/reiserfsprogs# reiserfsck --rebuild-tree /dev/sda7
> 
> <-reiserfsck, 2000->
> reiserfsprogs 3.x
> 
> This is an experimental version of reiserfsck, MAKE A BACKUP FIRST!
> Don't run this program unless something is broken.  You may want
> to backup first.  Some types of random FS damage can be recovered
> from by this program, which basically throws away the internal nodes
> of the tree and then reconstructs them.  This program is for use only
> by the desperate, and is of only beta quality.  Email
> [EMAIL PROTECTED] with bug reports.
> Will replay just like mounting would
> Do you want to run this program?[N/Yes] (note need to type Yes):Yes
> Replaying log..
> Looking for the oldest transaction to start with  ok
> 1 valid trans found. Will replay from 50 to 50
> Replaying transaction..   0 left..
> 
> 
> How long should I wait for this to run?  It's an 8 gig partition with perhaps
> a few megs of data on it.  I've let this run for 20 minutes or so (the system is
> a Pentium 200MMX with 64M of RAM, console mode only, no XFree86 stuff), and
> it just runs, consuming 97% CPU according to top. /proc/loadavg reports
> 1.00 0.97 0.71 2/29 378
> 
> I'm interested in building 2.4.1 but I haven't seen a released one yet and
> haven't done an Alan Cox patch series kernel build before.  Maybe it's time to
> try.  :-)
> 
> That might have to wait until this weekend though.  I'm a developer by day,
> and a sys admin by night or on the weekends.  I can also grab and build the
> latest toolset instead of using the Debian pre-packaged ones if you think that
> this will help.
> 
> Jeff
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
> 

Andre Hedrick
Linux ATA Development
ASL Kernel Development
-
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035Web: www.aslab.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: reiserfs - problems mounting after power outage

2001-02-07 Thread Jeff McWilliams

Chris,

Thanks for the reply.

> Which reiserfs version is this?  Upgrading to the reiserfs included in
> 2.4.1 would be a good plan, there have been a few bug fixes since test9
> times (none specfically related to this).
>

/var/log/messages shows ReiserFS reporting version 3.6.18.

> If this raid controller has writeback cache, make sure you either have a
> battery backup for the cache, or have writeback turned off.
>

It has no battery backup for the cache.  Writeback cacheing is disabled.

> How hung is it?  Does the whole system stop, or does this mount just
> block forever?
>

When the mount hangs the rest of the system is responsive.  I can to go other
virtual consoles and do other things and it works fine. If I attempt to shut
down the system (shutdown -h now) the kernel blocks trying to unmount local
filesystems just before powering down.


The reiserfs tools I used are from Debian's reiserfsprogs_3.0.20001019-3.deb

> These programs also hang?  Does reiserfsck (which version BTW) give any
> output at all?
>
>

If I do a reiserfsck /dev/sda7 I get the following:

ns2:/usr/share/doc/reiserfsprogs# reiserfsck --rebuild-tree /dev/sda7

<-reiserfsck, 2000->
reiserfsprogs 3.x

This is an experimental version of reiserfsck, MAKE A BACKUP FIRST!
Don't run this program unless something is broken.  You may want
to backup first.  Some types of random FS damage can be recovered
from by this program, which basically throws away the internal nodes
of the tree and then reconstructs them.  This program is for use only
by the desperate, and is of only beta quality.  Email
[EMAIL PROTECTED] with bug reports.
Will replay just like mounting would
Do you want to run this program?[N/Yes] (note need to type Yes):Yes
Replaying log..
Looking for the oldest transaction to start with  ok
1 valid trans found. Will replay from 50 to 50
Replaying transaction..   0 left..


How long should I wait for this to run?  It's an 8 gig partition with perhaps
a few megs of data on it.  I've let this run for 20 minutes or so (the system is
a Pentium 200MMX with 64M of RAM, console mode only, no XFree86 stuff), and
it just runs, consuming 97% CPU according to top. /proc/loadavg reports
1.00 0.97 0.71 2/29 378

I'm interested in building 2.4.1 but I haven't seen a released one yet and
haven't done an Alan Cox patch series kernel build before.  Maybe it's time to
try.  :-)

That might have to wait until this weekend though.  I'm a developer by day,
and a sys admin by night or on the weekends.  I can also grab and build the
latest toolset instead of using the Debian pre-packaged ones if you think that
this will help.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Promise, DMA and RAID5 problems running 2.4.1

2001-02-07 Thread Stephen Wille Padnos

"A.Sajjad Zaidi" wrote:

> > do you understand that you can't really have raid on ide involving
> > two drives on the same channel?
>
> Is that just because of performance or are there other problems? Its working
> fine as it is, but Im considering setting up all drives as masters (2x
> ATA-100, 2x ATA-66).

It's because IDE is a blocking bus - each drive must complete its' task before
the data bus is released for the next IO operation.  So, the first drive will
finish writing to the disk before the second drive can start.  (That's one
reason why SCSI is preferred for high end systems - you can "disconnect" from
an IO operation to allow other IO's to be sent to other devices on the same
bus)

--
Stephen Wille Padnos
Programmer, Engineer, Problem Solver
[EMAIL PROTECTED]



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Promise, DMA and RAID5 problems running 2.4.1

2001-02-07 Thread A.Sajjad Zaidi
Mark Hahn wrote:

> > drives (all IBM-DTLA307045 s) that I realised that the cylinder/head
> > translation is different and I cant use the whole drive unless its
> > partitioned while attached to the other IDE ports.
>
> no, it's just that the bios doesn't perform the LBA geometry lie
> outside the hd[abcd].

Hmm, thats weird, because hd[abcd] were the ones without the LBA geometry.
Maybe it was because ide was reversed (ide=reverse lilo parameter).

> boot with hde=",255,63" (or whatever).

Thanks, I was searching for something like that.

> > Second, I set up raid mirroring for 4 drives(2 raid, 2spare).  Since one
> > drive isnt available yet, one of the 2 raid partitions are set as
> > 'failed-disk'. All drives are connected to the ATA-100 controller. This
>
> do you understand that you can't really have raid on ide involving
> two drives on the same channel?

Is that just because of performance or are there other problems? Its working
fine as it is, but Im considering setting up all drives as masters (2x
ATA-100, 2x ATA-66).

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/


Re: [PATCH] starfire reads irq before pci_enable_device.

2001-02-07 Thread Ion Badulescu

Hi Jeff,

On Wed, 07 Feb 2001 14:57:16 -0500, Jeff Garzik <[EMAIL PROTECTED]> wrote:

> Here's the patch I have, against vanilla 2.4.2-pre1, with the
> pci_enable_device preferred changes included...

Well, I decided to bite the bullet and port my zerocopy starfire
changes to the official tree, properly ifdef'ed. So here it goes,
the patch was made against 2.4.1 vanilla and includes all the
fixes from Jeff and myself that were sent to the list so far.

I've also added myself as the starfire maintainer -- I hope
nobody objects.

Alan, if you want, I can rediff this against 2.4.1-ac. I'll
also try and send a 2.2.19 patch shortly.

Thanks,
Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.
--
--- linux-2.4.vanilla/MAINTAINERS   Wed Feb  7 15:45:15 2001
+++ linux-2.4-boxter/MAINTAINERSWed Feb  7 17:38:50 2001
@@ -1166,6 +1166,11 @@
 W: http://www.stallion.com
 S: Supported
 
+STARFIRE/DURALAN NETWORK DRIVER
+P: Ion Badulescu
+M: [EMAIL PROTECTED]
+S: Maintained
+
 STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
 W: http://mosquitonet.Stanford.EDU/strip.html
 S: Unsupported ?
--- linux-2.4.vanilla/drivers/net/starfire.cFri Aug 11 15:57:58 2000
+++ linux-2.4-boxter/drivers/net/starfire.c Wed Feb  7 17:38:19 2001
@@ -34,6 +34,10 @@

LK1.1.4 (jgarzik):
- Merge Becker version 1.03
+
+   LK1.2.1 (Ion Badulescu <[EMAIL PROTECTED]>)
+   - Support hardware Rx/Tx checksumming
+   - Use the GFP firmware taken from Adaptec's Netware driver
 */
 
 /* These identify the driver base version and may not be removed. */
@@ -43,11 +47,36 @@
 " Updates and info at http://www.scyld.com/network/starfire.html\n";
 
 static const char version3[] =
-" (unofficial 2.4.x kernel port, version 1.1.4, August 10, 2000)\n";
+" (unofficial 2.4.x kernel port, version 1.2.1, February 07, 2001)\n";
 
 /* The user-configurable values.
These may be modified when a driver module is loaded.*/
 
+/*
+ * Adaptec's license for their Novell drivers (which is where I got the
+ * firmware files) does not allow to redistribute them. Thus, we can't
+ * include them with this driver.
+ *
+ * However, an end-user is allowed to download and use them, after
+ * converting them to C header files using starfire_firmware.pl.
+ * Once that's done, the #undef must be changed into a #define
+ * for this driver to really use the firmware. Note that Rx/Tx
+ * hardware TCP checksumming is not possible without the firmware.
+ *
+ * I'm currently talking to Adaptec about this redistribution issue.
+ * Stay tuned...
+ */
+#undef HAS_FIRMWARE
+/*
+ * The current frame processor firmware fails to checksum a fragment
+ * of length 1. If and when this is fixed, the #define below can be removed.
+ */
+#define HAS_BROKEN_FIRMWARE
+/*
+ * Define this if using the driver with the zero-copy patch
+ */
+#undef ZEROCOPY
+
 /* Used for tuning interrupt latency vs. overhead. */
 static int interrupt_mitigation = 0x0;
 
@@ -88,25 +117,39 @@
 
 #define PKT_BUF_SZ 1536/* Size of each temporary Rx 
buffer.*/
 
+/*
+ * The ia64 doesn't allow for unaligned loads even of integers being
+ * misaligned on a 2 byte boundary. Thus always force copying of
+ * packets as the starfire doesn't allow for misaligned DMAs ;-(
+ * 23/10/2000 - Jes
+ *
+ * Neither does the Alpha. -Ion
+ */
+#if defined(__ia64__) || defined(__alpha__)
+#define PKT_SHOULD_COPY(pkt_len)   1
+#else
+#define PKT_SHOULD_COPY(pkt_len)   (pkt_len < rx_copybreak)
+#endif
+
+#ifdef ZEROCOPY
+#define skb_first_frag_len(skb)skb_headlen(skb)
+#else  /* not ZEROCOPY */
+#define skb_first_frag_len(skb)(skb->len)
+#endif /* not ZEROCOPY */
+
 #if !defined(__OPTIMIZE__)
 #warning  You must compile this file with the correct options!
 #warning  See the last lines of the source file.
 #error You must compile this driver with "-O".
 #endif
 
-/* Include files, designed to support most kernel versions 2.0.0 and later. */
-#include 
 #include 
-#if LINUX_VERSION_CODE < 0x20300  &&  defined(MODVERSIONS)
-#include 
-#endif
-
 #include 
 #include 
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
@@ -117,12 +160,17 @@
 #include 
 #include 
 
+#ifdef HAS_FIRMWARE
+#include "starfire_firmware.h"
+#endif /* HAS_FIRMWARE */
+
 MODULE_AUTHOR("Donald Becker <[EMAIL PROTECTED]>");
 MODULE_DESCRIPTION("Adaptec Starfire Ethernet driver");
 MODULE_PARM(max_interrupt_work, "i");
 MODULE_PARM(mtu, "i");
 MODULE_PARM(debug, "i");
 MODULE_PARM(rx_copybreak, "i");
+MODULE_PARM(interrupt_mitigation, "i");
 MODULE_PARM(options, "1-" __MODULE_STRING(MAX_UNITS) "i");
 MODULE_PARM(full_duplex, "1-" __MODULE_STRING(MAX_UNITS) "i");
 
@@ -155,8 +203,9 @@
 See the Adaptec manual for the many possible structures, and options for
 each structure.  There are far too many to document here.
 
-For transmit 

PS/2 Mouse/Keyboard conflict and lockup

2001-02-07 Thread Udo A. Steinberg


Hi Alan et. all

I'm not sure whether this is related to the ominous ps/2 mouse bug
you have been chasing, but this problem is 100% reproducible and
very annoying.

After upgrading my Asus A7V Bios from 1003 to 1005D, gpm no longer
receives any mouse events and the mouse doesn't work in text
consoles. Once I kill gpm and restart gpm -t ps2 the keyboard
locks up.

Logging in remotely and looking at dmesg revealed the following:

keyboard: Timeout - AT keyboard not present?
keyboard: unrecognized scancode (70) - ignored

If I don't kill and restart gpm, but start X, the mouse works
perfectly, but only in X.

Any ideas?

-Udo.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.1 Kernel Crash

2001-02-07 Thread Kai Germaschewski

On Wed, 7 Feb 2001, David Woodhouse wrote:

> [EMAIL PROTECTED] said:
> >  On one of my linux boxen, that is used as an ISDN router after a 3
> > days of up time I get this: 
> 
> Read http://www.tux.org/lkml/#s4-3
> 
> Particularly the "Don't even bother..." part.

The Call Trace was decoded by klogd, running it through ksymoops won't 
really work. AFAICS the trace makes sense. Since I can't think of any 
relation to the ISDN stack, I asked BaRT to post the trace to l-k, and I 
think it actually provides useful information.

So I'ld hope somebody takes a look into this.

--Kai



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



turn $2000.00 into $16000.00 in 2 weeks

2001-02-07 Thread ava77lper


New Concept in Gifting!
Join A Team Of 6 And 7 Figure Earners

The sole purpose of this Activity is to enable us to bless more people and to change 
lives by helping others receive gifts, which will enable the receiver to share their 
blessings with others!

* Gift $2000 to prosper over $16,000

* No dues or membership fees

* Introduce only two into this private activity

* No purchases, no quotas, no selling!

* No meetings, conference calls, no pressure! 

* Participation is by invitation only and of your own free will.

* 6 & 7 figure income earners as leadership

Interested? The program is moving fast.  Go to: http://serfd.pokeadot.com for more 
details.

If you can not get to the website call 1-310-706-2050 ext. 4594 and please leave your:

Name
Email address
Phone number (with area code)
Time zone and best time to call



To be removed send an email to: [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: TCP_NOPUSH on FreeBSD, TCP_CORK on Linux (was: Is sendfile all that

2001-02-07 Thread Dan Kegel

Alexy wrote:

> > > How close is TCP_NOPUSH to behaving identically to TCP_CORK now? 
> 
> They have not so much of common. 
> 
> TCP_NOPUSH enables T/TCP and its presense used to mean that 
> T/TCP is possible on this system. Linux headers cannot 
> even contain TCP_NOPUSH.

But Tony Finch wrote:
> They are exactly the same. 

Alexy, Tony just checked in a change to FreeBSD to make TCP_NOPUSH behave the
same as TCP_CORK.

Tony, are people using the TCP_NOPUSH define as a way to detect
the presence of T/TCP support?  In that case, perhaps the right
thing to do to achieve source compatibility would be for FreeBSD
to also define TCP_CORK (and give it TCP_NOPUSH as a value, perhaps).

- Dan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] micro-opt DEBUG_ADD_PAGE

2001-02-07 Thread Kai Germaschewski

On Wed, 7 Feb 2001, Linus Torvalds wrote:

> No. The optimization is entirely legal - but the fact that
> "constant_test_bit()" uses a "volatile unsigned int *" is the reason why
> gcc thinks it can't optimize it.

This thing did attract me somewhat and I decided to learn a little about 
compilers.

Result: Unfortunately it's not just the volatile, there's a bunch of 
conditions you have to fulfill to have the compiler optimize this. (Sounds 
like work for the compiler guys).

Test program is attached, inspecting the code (egcs 2.91.66 and 
gcc-2.96 (-69) generate the same code gives the following conclusions:

- f1(unsigned long f): manually optimized

if (f & ((1 << 1) | (1 << 2) | (1 << 4))) {

  -> optimized code (of course)


- f2(unsigned long f): leave some work to the compiler

if ((f & (1 << 1)) || (f & (1 << 2)) || (f & (1 << 4))) {

  -> optimized code (good)


- f3(unsigned int f): use constant_test_bit macro

  if (constant_test_bit(1, ) || constant_test_bit(2, ) || 
  constant_test_bit(4, )) {
 
  -> optimized code

  where

#define constant_test_bit(nr, addr) \
(((1UL << (nr & 31)) & ((unsigned int*)(addr))[nr >> 5]) != 0)

  (doesn't optimize when putting *const* unsigned int there)

- f4: same thing as f3, but use (unsigned long f) instead of 
  (unsigned int f)
  
  -> no optimization

- f5: same thing as f3, but use inline function for constant_test_bit

  -> no optimization

- f6: same thing as f3, but use test_bit instead of constant_test_bit,
  where

#define test_bit(nr,addr) \
(__builtin_constant_p(nr) ? \
constant_test_bit((nr),(addr)) : \
variable_test_bit((nr),(addr)))

  -> no optimization


Conclusion: With the compilers tested, lots of cases are not optimized 
although the could be in theory:
- casting even from unsigned int to unsigned long breaks optimization
- macros are better than inline
- Even though evaluated at compile time, __builtin_constant_p breaks
  optimization here, too.

BTW: volatile makes optimization impossible as well, of course, it leads 
to repeated reloads of the variable, whereas otherwise it's cached in a 
register in the above "no optimization" cases. That's expected behavior.

--Kai

Test code:
--

#define ADDR (*(volatile long *) addr)

static __inline__ int inl_constant_test_bit(int nr, const void * addr)
{
return ((1UL << (nr & 31)) & (((unsigned int *) addr)[nr >> 5])) != 0;
}

#define constant_test_bit(nr, addr) (((1UL << (nr & 31)) & ((unsigned int*)(addr))[nr 
>> 5]) != 0)

static __inline__ int variable_test_bit(int nr, volatile void * addr)
{
int oldbit;

__asm__ __volatile__(
"btl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit)
:"m" (ADDR),"Ir" (nr));
return oldbit;
}

#define test_bit(nr,addr) \
(__builtin_constant_p(nr) ? \
 constant_test_bit((nr),(addr)) : \
 variable_test_bit((nr),(addr)))




int f1(unsigned long f)
{
  if (f & ((1 << 1) | (1 << 2) | (1 << 4))) {
return 1;
  }
  return 0;
}

int f2(unsigned long f)
{
  if ((f & (1 << 1)) || (f & (1 << 2)) || (f & (1 << 4))) {
return 1;
  }
  return 0;
}

int f3(unsigned int f)
{
  if (constant_test_bit(1, ) || constant_test_bit(2, ) || constant_test_bit(4, 
)) {
return 1;
  }
  return 0;
}

int f4(unsigned long f)
{
  if (constant_test_bit(1, ) || constant_test_bit(2, ) || constant_test_bit(4, 
)) {
return 1;
  }
  return 0;
}

int f5(unsigned int f)
{
  if (inl_constant_test_bit(1, ) || inl_constant_test_bit(2, ) || 
inl_constant_test_bit(4, )) {
return 1;
  }
  return 0;
}

int f6(unsigned int f)
{
  if (test_bit(1, ) || test_bit(2, ) || test_bit(4, )) {
return 1;
  }
  return 0;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: nfs_refresh_inode: inode number mismatch

2001-02-07 Thread Neil Brown

On Wednesday February 7, [EMAIL PROTECTED] wrote:
> 
> This is a weird problem that I am looking at right.  It seems to indicate a
> bug in the nfs server.
> 
> I have a MIPS machine that boots from a NFS root fs hosted on a redhat 6.2
> workstation.  Everything works fine except that after a few reboots I start to
> see the error messages like the following:

What verison of Linux?  If it is less than 2.2.18, then an upgrade 
will help you a lot.

If it is >= 2.2.18, I will look some more.

NeilBrown
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



nfs_refresh_inode: inode number mismatch

2001-02-07 Thread Jun Sun


This is a weird problem that I am looking at right.  It seems to indicate a
bug in the nfs server.

I have a MIPS machine that boots from a NFS root fs hosted on a redhat 6.2
workstation.  Everything works fine except that after a few reboots I start to
see the error messages like the following:

Freeing unused kernel memory: 24k freed
INIT: version 2.77 booting
nfs_refresh_inode: inode number mismatch
expected (0x308/0x28b3d2), got (0x308/0x12b91b)
INIT: Entering runlevel: 3
sh-2.03# 

Restarting the nfs server on the host does not get rid of the messages. 
Things will get better if I reboot the host.

I traced the network packets, and it seems obvious that the server is
returning wrong fileid in the "write reply" message.  Below is a segment of
the extracted packet trace.  It is obvious that the nfs server returns a wrong
fileid for the same handle it returned earlier to the client.  The confusing
part is the nfs server actually serves the first write request, and a couple
of other requests, correctly but failed for the second time, returning a wrong
fileid.

In my particular setup, it seems only certain files (inodes) tend to get
screwed up.

Does anybody have an idea as to what is wrong here?

Please cc your reply to my email address.  TIA.


Jun

--
round 3:

case 1:

2177 lookup:
ioctl.save

2178 lookup reply:
fileid: 2667474
handle:
cabaebfed2b32800e6ab28000803080354c21100b2302b0c

2181 write:
offset:0
total count: 60
handle:
cabaebfed2b32800e6ab28000803080354c21100b2302b0c

2182 write reply:
fileid: 2667474
size: 60

2183 setattr:
handle:
cabaebfed2b32800e6ab28000803080354c21100b2302b0c

2184 setattr reply:
fileid: 2667474

2185 write:
handle:
cabaebfed2b32800e6ab28000803080354c21100b2302b0c

2186 write reply:
fileid 1227035
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Memory Setting with prom_meminit() in memory.c.....

2001-02-07 Thread Greeen-III

Dear all,

The board I used has two pieces of RAM.  The virtual address start at 0x
 and
0x0200 . One is 4 MB(0x ) and the other is 16 MB(0x0200 ).
But
orginal file is writted as the following. How could I modify this file to
match my
target board?


Green


/*
 * memory.c: memory initialisation code.
 *
 * Copyright (C) Harald Koerfgen
 * Copyright (C) Jim Pick
 * Copyright (C) Pavel Machek
 *
 * $Id: memory.c,v 1.16 2000/07/09 03:36:18 nop Exp $
 */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

/* À³¸Ó¤£¬O¥Îvitec_helio¡A©Ò¥H·|¶]other >This line is Chinese(Big5) */
/* We don't use VTECH_HELIO. So the CONFIG_VTECH_HELIO is not defined */

#ifdef CONFIG_VTECH_HELIO
#define PROM_DEBUG
#endif

#ifdef PROM_DEBUG
extern int prom_printf(char * fmt, ...);
#endif

#ifndef CONFIG_VTECH_HELIO
int main_memory = CONFIG_MAIN_MEMORY; /* We should autoconfigure this. For
now, just let the user select. */
int exp_memory = CONFIG_EXP_MEMORY;
#define MEGA (1024*1024)
#endif

extern char _end;
extern char _fdata;

#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
#define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK)

/* Modyfied by Green  2001/02/07  */
/* This function show the message through COM port */
#ifdef JAODEBUG
extern int Jprom_printf(const char * fmt, ...);
#else
#define Jprom_printf(fmt, a...)
#endif
/* End of modification*/



#ifdef CONFIG_VTECH_HELIO  /* We didn't go here insteal of
prom_meminit_other() */
static void __init prom_meminit_helio(void)
{
.
.
}

#else  /* CONFIG_VTECH_HELIO */

static void __init prom_meminit_other(void)
{
 extern unsigned long videomemory;
 unsigned long free_start;
 unsigned long free_end;
 unsigned long start_pfn;
 unsigned long bootmap_size;
 unsigned long ramspace;

 static char vidmem[(320 * 240 / 2) + PAGE_SIZE - 1];

 /* Okay the Helio has an odd memory layout, split into 4 banks of 2M
  * at the following places:
  *
  * 0x
  * 0x0040
  * 0x0200
  * 0x0240 (add 0x8000 for virtual address)
  *
  * We allocate the bootmem as a continuous bank and then free up the
  * relevant memory holes.  Of these the kernel will be using some
  * of the first bank so be careful how we deal with it.
  */
Jprom_printf("prom_meminit_other>Beginning\n");

videomemory = KSEG0ADDR(PFN_ALIGN(vidmem));
start_pfn = PFN_UP((unsigned long)&_end);
/*_end=801abba0>0x000801ac*/
free_start = PHYSADDR(PFN_ALIGN(&_end));

#ifdef CONFIG_VTECH_HELIO_EMULATOR
/* What's worse, the emulator implements two 4M banks at
 * 0x and 0x0200.  Fixing soon, but until then:
 */
 ramspace = 0x0240; /* With holes!! */
 free_end = 0x0040;

 Jprom_printf("--->ramspace: 0x%08x\n", ramspace);

 bootmap_size = init_bootmem(start_pfn, ramspace >> PAGE_SHIFT);

 /* Free up the *two* memory banks */
 free_bootmem(free_start + bootmap_size, free_end - free_start -
bootmap_size);
 free_bootmem(0x0200, 0x0040);
#else
 ramspace = 0x0260; /* With holes!! */
 free_end = 0x0020;

 bootmap_size = init_bootmem(start_pfn, ramspace >> PAGE_SHIFT);
 Jprom_printf("_end = 0x%08x>_end   \n",&_end);
 Jprom_printf("start_pfn= 0x%08x>FPN_UP()   \n",start_pfn);
 Jprom_printf("free_start   = 0x%08x>PHYSADDR   \n",free_start);
 Jprom_printf("free_end = 0x%08x>0x0020 \n",free_end);
Jprom_printf("bootmap_size =
0x%08x>bootmapsize\n",bootmap_size);
 Jprom_printf("PAGE_SHIFT   = 0x%08x>PAGE_SHIFT \n",PAGE_SHIFT);
Jprom_printf("ramspace = 0x%08x>0x0260 \n",ramspace);
 /* Free up the four memory banks */
 free_bootmem(free_start + bootmap_size, free_end - free_start -
bootmap_size);
 free_bootmem(0x0040, 0x0020);
 free_bootmem(0x0200, 0x0020);
 free_bootmem(0x0240, 0x0020);
#endif


//#ifdef CONFIG_FB
// extern unsigned long videomemory;
//#endif
// unsigned long free_start, free_end, start_pfn, bootmap_size;
// unsigned long mem_size = main_memory*MEGA;
//
// free_end = mem_size;
// if (exp_memory)
//  mem_size = 0x0200 | (exp_memory*MEGA);
//
// free_start = PHYSADDR(PFN_ALIGN(&_end));
// start_pfn = PFN_UP((unsigned long)&_end);
//
// #ifdef CONFIG_FB
/*
 * This has to be in line with VIDEORAM_SIZE in r3912fb.c
 */
// switch (mips_machtype) {
// case MACH_R39XX_SHARP_MOBILON:
// case MACH_R39XX_COMPAQ:
//modified by Jao
//free_end -= 640*240;
//  free_end -= 320*240;
//  videomemory = KSEG0ADDR(free_end);
//  break;
// case MACH_R39XX_PHILIPS_VELO:
//  free_end -= 480*240/2; /* Velo has actually 2 different bit depths, this
is for 4bit.
//It is bigger that's why it is used here. */
//  videomemory = KSEG0ADDR(free_end);
//  break;
// case 

Re: 2.4.1-ac5 - The loopback hang saga continues

2001-02-07 Thread Billy Harvey

 > It appears that the loopback-hang parasite is alive and well in 2.4.1-ac5.
 > I've done several tests and I thus provide the following information:
 > 
 > The bug is independent of UP or SMP configured.. it hung both ways, but the
 > box itself is UP.
 > 
 > It appears to hang when internal buffers get filled. The way I see it, copying
 > files from disk to the loopback device (which is a file on the same disk)
 > begins to read from the disk. When the internal read buffer is full, the
 > kernel's queued writes start activating and the data gets copied to the
 > loopback file. This process repeats over and over, as it should normally.
 > 
 > Sometimes however, during a read from the disk, it fills up its buffers and
 > then never makes the accompanying write. In fact, the entire device freezes on
 > the read.
 > 
 > I was able to lessen the frequency of hanging by using the -v flag and tapping
 > ^S and ^Q to temporarily 'pause' copying. This ensures that the read buffer
 > will never become full to the point where it could cause the hang, and appears
 > to work -- until it came across the libc.a file. There was no way to pause it
 > here because nothing is being outputted to the screen while it's copying
 > libc.a. Unfortunately, it fills the buffer too quick and hangs 100% every time.
 > The disk is totally nonresponsive at this point, and a hard reset is necessary.
 > 
 > I hope this helps anyone who is still tracking down the loopback problem.
 > 
 > Regards,
 >  Byron
 > 
 > -- 
 > Byron Stanoszek Ph: (330) 644-3059

I can confirm this.  The system totally locks when this occurs.  I let
it sit all night when it did this the last time, and it didn't
recover.

It requires a large file transfer to usually invoke it.

Billy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



RE: aacraid 2.4.0 kernel

2001-02-07 Thread Byron Stanoszek

On Wed, 7 Feb 2001, Jason Ford wrote:

> Byron,
> 
> I got your patch to compile in fine however it still exhibits the same
> behavior that the older patches did. It looks like the commands sent to the
> controller are still not working correctly as the new subsystem in the
> kernel was rewritten.
> 
> This is the error I get in my messages file when trying to copy from one
> disk partition to another one.
> 
> so on and so on.. Am I doing something wrong?

Nope. It looks horribly broken.  Oh well.. I guess I'd stick to 2.2.19-pre on
the Dell machines for the time being.

 -Byron

-- 
Byron Stanoszek Ph: (330) 644-3059
Systems Programmer  Fax: (330) 644-8110
Commercial Timesharing Inc. Email: [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Problem: OOPS in getblk in 2.2.16-3smp - may be software RAID related

2001-02-07 Thread Orion Henry


I sent this oops to the file system and a raid maintainer asking for
more 
info and received no response.  Please let mw know if there is a better
place to send it.

I received a kernel oops in the file system layer on my dual PIII w/
software Raid5
running RedHat 6.2 with the redhat kernel 2.2.16-3smp. I took down all
the system
info that I thought would be relevant, if I missed anything let me know.
The oops occurred suddenly after doing what it had been doing for 6
solid months
and has not given me any grief since.

If there are known errors that could have caused this in the kernel I am
running
please let me know.

Please CC me on any responses.

Much thanks
Orion Henry

Jan  8 19:18:30 aule kernel: Unable to handle kernel paging request at
virtual address 00020078
Jan  8 19:18:30 aule kernel: current->tss.cr3 = 0e52f000, %%cr3 =
0e52f000
Jan  8 19:18:30 aule kernel: *pde = 
Jan  8 19:18:30 aule kernel: Oops: 0002
Jan  8 19:18:30 aule kernel: CPU:0
Jan  8 19:18:30 aule kernel: EIP:0010:[getblk+205/324]
Jan  8 19:18:30 aule kernel: EFLAGS: 00010207
Jan  8 19:18:30 aule kernel: eax: c11e00e0   ebx: c11e06e0   ecx:
000c   edx: 00020040
Jan  8 19:18:30 aule kernel: esi: 1000   edi: 000c   ebp:
0900   esp: ce613d9c
Jan  8 19:18:30 aule kernel: ds: 0018   es: 0018   ss: 0018
Jan  8 19:18:30 aule kernel: Process spawn (pid: 28305, process nr: 45,
stackpage=ce613000)
Jan  8 19:18:30 aule kernel: Stack: 0900 03a9 000c c0141ee7
0900 004503a9 1000 0045
Jan  8 19:18:30 aule kernel:ce613f08 dce91100 dce91100 0e75
1000 0008 03b0 0e75
Jan  8 19:18:30 aule kernel:0900 de14c480 ce613e24 8000
de14c480 ce612000 0008 0e75
Jan  8 19:18:30 aule kernel: Call Trace: [ext2_new_block+2291/2756]
[ext2_alloc_block+344/356] [inode_getblk+205/392] [ext2_getblk+194/524]
[ext2_file_write+1308/1584] [refile_buffer+86/184]
[locks_delete_lock+52/128]

The Offending Code is Here
--
>From /usr/src/linux-2.2.16/fs/buffer.c:
--

/*
 * Ok, this is getblk, and it isn't very clear, again to hinder
 * race-conditions. Most of the code is seldom used, (ie repeating),
 * so it should be much more efficient than it looks.
 *
 * The algorithm is changed: hopefully better, and an elusive bug
removed.
 *
 * 14.02.92: changed it to sync dirty buffers a bit: better performance
 * when the filesystem starts to get full of dirty blocks (I hope).
 */
struct buffer_head * getblk(kdev_t dev, int block, int size)
{
struct buffer_head * bh;
int isize;

repeat:
bh = get_hash_table(dev, block, size);
if (bh) {
if (!buffer_dirty(bh)) {
bh->b_flushtime = 0;
}
return bh;
}

isize = BUFSIZE_INDEX(size);
get_free:
bh = free_list[isize];
if (!bh)
goto refill;
remove_from_free_list(bh);

/* OK, FINALLY we know that this buffer is the only one of its
kind,
 * and that it's unused (b_count=0), unlocked, and clean.
 */
init_buffer(bh, dev, block, end_buffer_io_sync, NULL);
bh->b_state=0;
insert_into_queues(bh);
return bh;

/*
 * If we block while refilling the free list, somebody may
 * create the buffer first ... search the hashes again.
 */
refill:
refill_freelist(size);
if (!find_buffer(dev,block,size))
goto get_free;
goto repeat;
}

--

And it looks like this in the debugger:

$ gdb /boot/vmlinux-2.2.16-3
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux"...
(no debugging symbols found)...
(gdb) disas getblk
Dump of assembler code for function getblk:
0xc012765c :sub$0x4,%esp
0xc012765f :  push   %ebp
0xc0127660 :  push   %edi
0xc0127661 :  push   %esi
0xc0127662 :  push   %ebx
0xc0127663 :  xor%ebp,%ebp
0xc0127665 :  mov0x20(%esp,1),%esi
0xc0127669 : mov0x18(%esp,1),%bp
0xc012766e : push   %esi
0xc012766f : mov0x20(%esp,1),%edi
0xc0127673 : push   %edi
0xc0127674 : push   %ebp
0xc0127675 : call   0xc01272f4 
0xc012767a : mov%eax,%ebx
0xc012767c : add$0xc,%esp
0xc012767f : test   %ebx,%ebx
0xc0127681 : je 0xc0127698 
0xc0127683 : mov0x18(%ebx),%eax
0xc0127686 : test   $0x2,%al
0xc0127688 : jne0xc0127691 
0xc012768a : movl   $0x0,0x2c(%ebx)
0xc0127691 : mov%ebx,%eax
0xc0127693 : jmp0xc0127798 
0xc0127698 : mov%esi,%eax
0xc012769a : sar

[PATCH] to deal with bad dev->refcnt in unregister_netdevice()

2001-02-07 Thread Thomas Hood

Earlier I reported error messages when I tried to eject
a Xircom CEM56 network card under Linux 2.4.x.  (See below.
I also submitted this patch as a followup to that thread.)

Here is a patch which may not solve the underlying
problem but which does prevent the kernel from generating
an infinite number of 
"unregister_netdevice: waiting for eth0 to become free.
 Usage count = -1"
messages on "cardctl eject" and from hanging up at shutdown.

-
root@thanatos:/usr/src/kernel-source-2.4.1-ac3/net/core# diff -Naur dev.c_ORIG dev.c
--- dev.c_ORIG  Mon Feb  5 17:39:31 2001
+++ dev.c   Wed Feb  7 18:35:45 2001
@@ -2555,7 +2555,7 @@
 */
 
now = warning_time = jiffies;
-   while (atomic_read(>refcnt) != 1) {
+   while (atomic_read(>refcnt) > 1) {
if ((jiffies - now) > 1*HZ) {
/* Rebroadcast unregister notification */
notifier_call_chain(_chain, NETDEV_UNREGISTER, dev);
---

The underlying problem seem so be that refcnt is zero or
less at this point.  This is erroneous.  The error in 
maintaining the refcnt appears to occur only when 
I configure the eth0 interface (using pump or dhclient).
The more times I "ifup eth0" and "ifdown eth0" before
ejecting the card, the lower the "usage count" is 
reported to be (i.e., the larger the negative number!).

Be that as it may, because of the erroneous refcnt,
the above while loop within unregister_netdevice()
loops forever in the original code.  As modified it
falls through; and this makes the kernel usable for me.

In order to avoid the 
   "KERNEL: assertion(dev->ip_ptr==NULL)failed at
dev.c(2422):netdev_finish_unregister"
message and the occasional
   "Freeing alive device"
message it seems to suffice that I kill the dhclient
process before running "ifdown eth0".  Am I right in
assuming that the latter messages aren't serious?

I hope the networking gurus can find the real bugs here.

Thomas Hood

> I have a bit more information about this bug now.
> The message "assertion(yadda) failed ..." occurs only
> if the eth0 interface has been configured using pump
> or dhclient.  If the card isn't connected to the network
> the message never occurs.  If eth0 is merely brought up
> and down using ifconfig the message doesn't occur.  Only
> if pump or dhclient has configured eth0 does the message
> occur.  Sometimes it occurs on "ifdown eth0", sometimes
> on "cardctl eject" and sometimes during the shutdown
> sequence.
> 
> Thomas
> 
> > 
> > Dear l-k.
> > 
> > I'm still having this problem with kernel 2.4.0:
> > 
> > Conditions:
> > Linux 2.4.0 compiled on an IBM ThinkPad 600 51U (Pentium II)
> > laptop with PCMCIA support.  Same behavior with integral kernel
> > PCMCIA, modular kernel PCMCIA and modular Hinds PCMCIA.  System
> > is Progeny Debian beta II.
> > 
> > I have a Xircom modem/ethernet card which works correctly using
> > the serial_cs, xirc2ps_cs, ds, i82365 and pcmcia_core modules;
> > however when I try to "cardctl eject" or "reboot" I get first,
> >"KERNEL: assertion(dev->ip_ptr==NULL)failed at
> > dev.c(2422):netdev_finish_unregister"
> > (not exact since I had to copy it down on paper ... doesn't
> > show up in the logs) then a perpetual series of:
> >"unregister_netdevice: waiting for eth0 to become free.
> > Usage count = -1"
> > messages every five seconds or so.  "ps -A" reveals that
> > modprobe is running; it can't be killed even with "kill -9".
> > The "ifconfig" command locks up.  Shutdown won't complete
> > so I end up having to use SysRq-S-U-B to reboot.
> > 
> > This problem only occurs if the Xircom card is connected to
> > the Ethernet (in which case it is configured using DHCP).
> > If the card is left unconnected to the network, the problem
> > does not occur---the card can be ejected.
> >
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



someone knows a good sendmail mailing list ?

2001-02-07 Thread osamu


someone knows a good sendmail mailing list ? active like this one ?
thanks..
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: ACPI slowdown...

2001-02-07 Thread Tony Hoyle

Grover, Andrew wrote:

> Since you have a symtomatic system, if you're willing to do some testing to
> either prove or disprove your theory (that entering C2/C3 interrupts enabled
> helps things) I would greatly appreciate it.

Leaving interrupts enabled does help a little, but the machine is still 
unusably slow, so it's not the fix.

 
> Also, the next ACPI update will let you disable using this code for idle (so
> we have some breathing room while we fix it) and will print some more C
> state info on boot, because although you don't say, it sounds like you have
> a desktop system, which usually don't support C2/C3, and so should not be
> trying to enter them.

Disabling the idle code definitely fixes it.

Tony


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[Patch] ServerWorks peer bus fix for 2.4.x

2001-02-07 Thread Zink, Dan

The ServerWorks peer bus problem is still present on the 2.4.1 kernel.  The
problem stems from the fact that there can be more than one secondary bus
for a given north bridge.  For example, the Compaq Proliant DL580 has two
"root busses" coming off of a single north bridge.  I'm including below an
email from Adam Lackorzynski.  In his email, he includes a patch that fixes
the problem.  I think Martin objected because he thought the patch got the
meaning of the two config registers wrong, but it is, in fact, correct.

Please accept this patch so that the 2.4 kernel can see all PCI devices on
systems with the ServerWorks chipset.

Thanks,
Dan Zink


[EMAIL PROTECTED]

--

The patch below (against vanilla 2.4.0) makes Linux recognize
PCI-Devices sitting in another PCI bus than 0 (or 1).

This was tested on a Netfinity 7100-8666 using a ServerWorks chipset.


00:00.0 Host bridge: ServerWorks CNB20HE (rev 21)
00:00.1 Host bridge: ServerWorks CNB20HE (rev 01)
00:00.2 Host bridge: ServerWorks: Unknown device 0006
00:00.3 Host bridge: ServerWorks: Unknown device 0006
00:01.0 SCSI storage controller: Adaptec 7896
00:01.1 SCSI storage controller: Adaptec 7896
00:05.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet
LANCE] (rev 44)
00:06.0 VGA compatible controller: S3 Inc. Trio 64 3D (rev 01)
00:0f.0 ISA bridge: ServerWorks OSB4 (rev 4f)
00:0f.1 IDE interface: ServerWorks: Unknown device 0211
00:0f.2 USB Controller: ServerWorks: Unknown device 0220 (rev 04)
02:04.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43
(rev 41)
02:06.0 RAID bus controller: IBM: Unknown device 01bd

The last two lines do not occur without the patch.


diff -ur linux-2.4.0/linux/arch/i386/kernel/pci-pc.c
linux/arch/i386/kernel/pci-pc.c
--- linux-2.4.0/linux/arch/i386/kernel/pci-pc.c Thu Jun 22 16:17:16 2000
+++ linux/arch/i386/kernel/pci-pc.c Tue Jan 16 18:10:30 2001
@@ -849,10 +849,13 @@
 * ServerWorks host bridges -- Find and scan all secondary buses.
 * Register 0x44 contains first, 0x45 last bus number routed there.
 */
-   u8 busno;
-   pci_read_config_byte(d, 0x44, );
-   printk("PCI: ServerWorks host bridge: secondary bus %02x\n", busno);
-   pci_scan_bus(busno, pci_root_ops, NULL);
+   u8 busno_first, busno_last, i;
+   pci_read_config_byte(d, 0x44, _first);
+   pci_read_config_byte(d, 0x45, _last);
+   for (i = busno_first; i <= busno_last; i++) {
+   printk("PCI: ServerWorks host bridge: secondary bus %02x\n",
i);
+   pci_scan_bus(i, pci_root_ops, NULL);
+   }
pcibios_last_bus = -1;
 }
 


Adam
-- 
Adam [EMAIL PROTECTED]
  Lackorzynski http://a.home.dhs.org

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



RE: aacraid 2.4.0 kernel

2001-02-07 Thread Jason Ford

Byron,

I got your patch to compile in fine however it still exhibits the same
behavior that the older patches did. It looks like the commands sent to the
controller are still not working correctly as the new subsystem in the
kernel was rewritten.

This is the error I get in my messages file when trying to copy from one
disk partition to another one.

Feb  7 19:32:11 bass kernel: SCSI disk error : host 0 channel 0 id 0 lun 0
return code = 1
Feb  7 19:32:11 bass kernel:  I/O error: dev 08:08, sector 657672
Feb  7 19:32:11 bass kernel:
Feb  7 19:32:11 bass kernel:
Feb  7 19:32:11 bass kernel: AacHba_`DoScsiWrite: WRITE request is larger
than 64K
Feb  7 19:32:11 bass kernel: AacHba_DoScsiWrite: ByteCount: 69632
Feb  7 19:32:11 bass kernel: AacHba_DoScsiWrite: SG ELEMENTS: 16
Feb  7 19:32:11 bass kernel: Dump SG Element Size...
Feb  7 19:32:11 bass kernel: SG Segment 0: 4096
Feb  7 19:32:11 bass kernel: SG Segment 1: 4096
Feb  7 19:32:11 bass kernel: SG Segment 2: 4096
Feb  7 19:32:11 bass kernel: SG Segment 3: 4096
Feb  7 19:32:11 bass kernel: SG Segment 4: 4096
Feb  7 19:32:11 bass kernel: SG Segment 5: 4096
Feb  7 19:32:11 bass kernel: SG Segment 6: 4096
Feb  7 19:32:11 bass kernel: SG Segment 7: 8192
Feb  7 19:32:11 bass kernel: SG Segment 8: 4096
Feb  7 19:32:11 bass kernel: SG Segment 9: 4096
Feb  7 19:32:11 bass kernel: SG Segment 10: 4096
Feb  7 19:32:11 bass kernel: SG Segment 11: 4096
Feb  7 19:32:11 bass kernel: SG Segment 12: 4096
Feb  7 19:32:11 bass kernel: SG Segment 13: 4096
Feb  7 19:32:11 bass kernel: SG Segment 14: 4096
Feb  7 19:32:11 bass kernel: SG Segment 15: 4096
Feb  7 19:32:11 bass kernel:
Feb  7 19:32:12 bass kernel:
Feb  7 19:32:12 bass kernel: SCSI disk error : host 0 channel 0 id 0 lun 0
return code = 1
Feb  7 19:32:12 bass kernel:  I/O error: dev 08:08, sector 665864
Feb  7 19:32:12 bass kernel:
Feb  7 19:32:12 bass kernel:
Feb  7 19:32:12 bass kernel: AacHba_`DoScsiWrite: WRITE request is larger
than 64K
Feb  7 19:32:12 bass kernel: AacHba_DoScsiWrite: ByteCount: 69632
Feb  7 19:32:12 bass kernel: AacHba_DoScsiWrite: SG ELEMENTS: 16
Feb  7 19:32:12 bass kernel: Dump SG Element Size...
Feb  7 19:32:12 bass kernel: SG Segment 0: 4096
Feb  7 19:32:12 bass kernel: SG Segment 1: 4096
Feb  7 19:32:12 bass kernel: SG Segment 2: 4096
Feb  7 19:32:12 bass kernel: SG Segment 3: 4096
Feb  7 19:32:12 bass kernel: SG Segment 4: 4096
Feb  7 19:32:12 bass kernel: SG Segment 5: 4096
Feb  7 19:32:12 bass kernel: SG Segment 6: 4096
Feb  7 19:32:12 bass kernel: SG Segment 7: 4096
Feb  7 19:32:12 bass kernel: SG Segment 8: 8192
Feb  7 19:32:12 bass kernel: SG Segment 9: 4096
Feb  7 19:32:12 bass kernel: SG Segment 10: 4096
Feb  7 19:32:12 bass kernel: SG Segment 11: 4096
Feb  7 19:32:12 bass kernel: SG Segment 12: 4096
Feb  7 19:32:12 bass kernel: SG Segment 13: 4096
Feb  7 19:32:12 bass kernel: SG Segment 14: 4096
Feb  7 19:32:12 bass kernel: SG Segment 15: 4096
Feb  7 19:32:12 bass kernel:
Feb  7 19:32:12 bass kernel:

so on and so on.. Am I doing something wrong?

Thanks for your reply post..

Jason


-Original Message-
From: Byron Stanoszek [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, February 07, 2001 5:48 PM
To: Jason Ford
Cc: [EMAIL PROTECTED]
Subject: Re: aacraid 2.4.0 kernel


On Wed, 7 Feb 2001, Jason Ford wrote:

> I see in the archives of this mailing list that someone was working on the
> aacraid driver for the 2.4 kernel however that post was almost 2 months
old.
> I know Alan Cox denied inclusion of the driver due to the poor nature it
was
> written for the 2.2 tree. Every post that I have seen so far has just said
> that Adaptec is working on it. However, I am sure there are many people
out
> there like myself that have to support this card in enviroments that would
> be benifical to upgrade to 2.4 kernel. I am not a part of this list
however
> have been scouring through geocrawler.com archives of this list everyday
for
> the last month hoping and waiting.

While it's totally unofficial, I have a patch for aacraid 1.0.6 for
2.4.1-ac5.
I have not tested it yet, but it compiles cleanly. I'd like to hear any
results
(good or bad) you have on it.

You can find it at:

  ftp://ftp.winds.org/linux/patches/2.4.1/aacraid-2.4.1-1.0.6.patch

Regards,
 Byron

--
Byron Stanoszek Ph: (330) 644-3059
Systems Programmer  Fax: (330) 644-8110
Commercial Timesharing Inc. Email: [EMAIL PROTECTED]


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Bug: 2.4.0 w/ PCMCIA on ThinkPad: KERNEL: assertion(dev->ip_ptr==NULL)failed at dev.c(2422):netdev_finish_unregister

2001-02-07 Thread Thomas Hood

Here is a patch which may not solve the underlying
problem but which does prevent the kernel from 
generating an infinite number of error messages
on "cardctl eject" and from hanging up on shutdown.


jdthood@thanatos:/usr/src/kernel-source-2.4.1-ac3/net/core# diff dev.c_ORIG dev.c
2558c2558
<   while (atomic_read(>refcnt) != 1) {
---
>   while (atomic_read(>refcnt) > 1) {
-

The underlying problem is that refcnt is zero or less
at this point.  This is erroneous.  The error in 
maintaining the refcnt appears to occur only when 
I configure the eth0 interface using pump or dhclient.
Be that as it may, because of the erroneous refcnt,
this while loop loops forever in the original.  As
modified it falls through; and this makes the kernel
usable for me.

I hope the networking gurus can find the real bug.

Thomas Hood

> I have a bit more information about this bug now.
> The message "assertion(yadda) failed ..." occurs only
> if the eth0 interface has been configured using pump
> or dhclient.  If the card isn't connected to the network
> the message never occurs.  If eth0 is merely brought up
> and down using ifconfig the message doesn't occur.  Only
> if pump or dhclient has configured eth0 does the message
> occur.  Sometimes it occurs on "ifdown eth0", sometimes
> on "cardctl eject" and sometimes during the shutdown
> sequence.
> 
> Thomas
> 
> > Dear l-k. 
> > 
> > I'm still having this problem with kernel 2.4.0: 
> > 
> > Conditions: 
> > Linux 2.4.0 compiled on an IBM ThinkPad 600 51U (Pentium II) 
> > laptop with PCMCIA support. Same behavior with integral kernel 
> > PCMCIA, modular kernel PCMCIA and modular Hinds PCMCIA. System 
> > is Progeny Debian beta II. 
> > 
> > I have a Xircom modem/ethernet card which works correctly using 
> > the serial_cs, xirc2ps_cs, ds, i82365 and pcmcia_core modules; 
> > however when I try to "cardctl eject" or "reboot" I get first, 
> >"KERNEL: assertion(dev->ip_ptr==NULL)failed at 
> > dev.c(2422):netdev_finish_unregister" 
> > (not exact since I had to copy it down on paper ... doesn't 
> > show up in the logs) then a perpetual series of: 
> >"unregister_netdevice: waiting for eth0 to become free. 
> > Usage count = -1" 
> > messages every five seconds or so. "ps -A" reveals that 
> > modprobe is running; it can't be killed even with "kill -9". 
> > The "ifconfig" command locks up. Shutdown won't complete 
> > so I end up having to use SysRq-S-U-B to reboot. 
> > 
> > This problem only occurs if the Xircom card is connected to 
> > the Ethernet (in which case it is configured using DHCP). 
> > If the card is left unconnected to the network, the problem 
> > does not occur---the card can be ejected. 
> > 
> > Thomas Hood 
> > Please cc: your replies to me at jdthood_AT_yahoo.co.uk
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait

2001-02-07 Thread Neil Brown

On Wednesday February 7, [EMAIL PROTECTED] wrote:
> 
> 
> On Wed, 7 Feb 2001, Christoph Hellwig wrote:
> 
> > On Tue, Feb 06, 2001 at 12:59:02PM -0800, Linus Torvalds wrote:
> > > 
> > > Actually, they really aren't.
> > > 
> > > They kind of _used_ to be, but more and more they've moved away from that
> > > historical use. Check in particular the page cache, and as a really
> > > extreme case the swap cache version of the page cache.
> > 
> > Yes.  And that exactly why I think it's ugly to have the left-over
> > caching stuff in the same data sctruture as the IO buffer.
> 
> I do agree.
> 
> I would not be opposed to factoring out the "pure block IO" part from the
> bh struct. It should not even be very hard. You'd do something like
> 
>   struct block_io {
>   .. here is the stuff needed for block IO ..
>   };
> 
>   struct buffer_head {
>   struct block_io io;
>   .. here is the stuff needed for hashing etc ..
>   }
> 
> and then you make "generic_make_request()" and everything lower down take
> just the "struct block_io".
> 

I was just thinking the same, or a similar thing.
I wanted to do

struct io_head {
 stuff
};
struct buffer_head {
 struct io_head;
 more stuff;
}

so that, as an unnamed substructure, the content of the struct io_head
would automagically be promoted to appear to be content of
buffer_head.
However I then remembered (when it didn't work) that unnamed
substructures are a feature of the Plan-9 C compiler, not the GNU
Compiler Collection. (Any gcc coders out there think this would be a
good thing to add?
  http://plan9.bell-labs.com/sys/doc/compiler.html
)

Anyway, I produced the same result in a rather ugly way with #defines
and modified raid5 to use 32byte block_io structures instead of the
80+ byte buffer_heads, and it ... doesn't quite work :-( it boots
fine, but raid5 dies and the Oops message is a few kilometers away.
Anyway, I think the concept it fine.

Patch is below for your inspection.

It occurs to me that Stephen's desire to pass lots of requests through
make_request all at once isn't a bad idea and could be done by simply
linking the io_heads together with b_reqnext.
This would require:
  1/ all callers of generic_make_request (there are 3) to initialise
 b_reqnext
  2/ all registered make_request_fn functions (there are again 3 I
 think)  to cope with following b_reqnext

It shouldn't be too hard to make the elevator code take advantage of
any ordering that it fines in the list.

I don't have a patch which does this.

NeilBrown


--- ./include/linux/fs.h2001/02/07 22:45:37 1.1
+++ ./include/linux/fs.h2001/02/07 23:09:05
@@ -207,6 +207,7 @@
 #define BH_Protected   6   /* 1 if the buffer is protected */
 
 /*
+ * THIS COMMENT NO-LONGER CORRECT.
  * Try to keep the most commonly used fields in single cache lines (16
  * bytes) to improve performance.  This ordering should be
  * particularly beneficial on 32-bit processors.
@@ -217,31 +218,43 @@
  * The second 16 bytes we use for lru buffer scans, as used by
  * sync_buffers() and refill_freelist().  -- sct
  */
+
+/* 
+ * io_head is all that is needed by device drivers.
+ */
+#define io_head_fields \
+   unsigned long b_state;  /* buffer state bitmap (see above) */   \
+   struct buffer_head *b_reqnext;  /* request queue */ \
+   unsigned short b_size;  /* block size */\
+   kdev_t b_rdev;  /* Real device */   \
+   unsigned long b_rsector;/* Real buffer location on disk */  \
+   char * b_data;  /* pointer to data block (512 byte) */  \
+   void (*b_end_io)(struct buffer_head *bh, int uptodate); /* I/O completion */ \
+   void *b_private;/* reserved for b_end_io */ \
+   struct page *b_page;/* the page this bh is mapped to */ \
+ /* this line intensionally left blank */
+struct io_head {
+   io_head_fields
+};
+
+/* buffer_head adds all the stuff needed by the buffer cache */
 struct buffer_head {
-   /* First cache line: */
+   io_head_fields
+
struct buffer_head *b_next; /* Hash queue list */
unsigned long b_blocknr;/* block number */
-   unsigned short b_size;  /* block size */
unsigned short b_list;  /* List that this buffer appears */
kdev_t b_dev;   /* device (B_FREE = free) */
 
atomic_t b_count;   /* users using this block */
-   kdev_t b_rdev;  /* Real device */
-   unsigned long b_state;  /* buffer state bitmap (see above) */
unsigned long b_flushtime;  /* Time when (dirty) buffer should be written 
*/
 
struct buffer_head *b_next_free;/* lru/free list linkage */
struct buffer_head *b_prev_free;/* doubly linked list 

RE: 2.4.x and oops on 'mount -t smbfs'

2001-02-07 Thread JShaw

Resolved!  Running like a bought one now.  Thanks Urban, you are so cool
that you should be in movies.

~NJ!~

> -Original Message-
> From: Urban Widmark [SMTP:[EMAIL PROTECTED]]
> Sent: Thursday, February 08, 2001 9:39 AM
> To:   Jim Shaw
> Cc:   [EMAIL PROTECTED]
> Subject:  Re: 2.4.x and oops on 'mount -t smbfs'
> 
> On Wed, 7 Feb 2001 [EMAIL PROTECTED] wrote:
> 
> > I've compiled a number of 2.4.1 and 2.4.0 kernels (actually supports the
> 4GB
> > RAM!!!  Yay), and I have only one more problem to sort out.  Under
> > 2.4.x, the mount completes successfully, but 'ls /net' causes an OOPS:
> .
> 
> Try http://www.hojdpunkten.ac.se/054/samba/smbfs-2.4.1-pre10-cache-2.patch
> 
> Let me know if it works for you or not.
> (patch should be ok with 2.4.0 or 2.4.1)
> 
> /Urban
  JBWere Limited
DISCLAIMER

JBWere Limited and its related entities distributing this document and 
each of their respective directors, officers and agents ("the Were Group") 
believe that the information contained in this document is correct and that
any estimates, opinions, conclusions or recommendations contained in this 
document are reasonably held or made as at the time of compilation. However, 
no warranty is made as to the accuracy or reliability of any estimates, 
opinions, conclusions, recommendations (which may change without notice) or 
other information contained in this document and, to the maximum extent 
permitted by law, the Were Group disclaims all liability and responsibility 
for any direct or indirect loss or damage which may be suffered by any recipient 
through relying on anything contained in or omitted from this document.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: suspecious ide hdparm results with 2.4.1 (and a minor capacity question)

2001-02-07 Thread Andries . Brouwer

>> There are two entirely different things both called LBA.
>> Neither of them wastes any space.

> You sure?

Yes. One is the hardware disk access - all disk access is LBA
these days, certainly by Linux, but if the disk is small
one can also use CHS access, when it is old one has to use CHS.

The other thing called LBA is a translation scheme.
Translation means that the BIOS will use one set of parameters
when talking to the disk, and another when talking to DOS or so.
This just means that the same sector on the disk has different
names.

But when you partition your disk using DOS fdisk, it will want
to use an integral number of "cylinders" for each partition,
and for example with 8MB cylinders you may have the bad luck
that the rounding costs you almost 8MB. But here each of the
possible translations can be lucky or unlucky.
Under Linux there is no restriction that a partition has to
start on a cylinder boundary, but an integral number of blocks
is used, so for example with 1KB blocks and an odd number of
sectors this may cost you 512 bytes.
These days one sees various (rather ugly) patches floating around
just to get at this last sector. (But they are unnecessary, I think.)

Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [bug] aic7xxx panic Re: Linux 2.4.1-ac5

2001-02-07 Thread Doug Ledford

"J . A . Magallon" wrote:
> 
> On 02.07 Tigran Aivazian wrote:
> > Alan, Doug,
> >
> > If this is a known problem -- ignore. Otherwise, I will gladly assist as
> > much as you need.
> >
> > Just tried ac5 kernel and, behold (btw, why does serial console not work
> > anymore, I had to copy these by hand):
> >
> > (scsi0) BRKADRINT error(0x44):
> >   Illegal Opcode in sequencer program
> >   PCI Error detected
> > (scsi0)  SEQADDR=0x58
> > Kernel panic: aic7xxx: unrecoverable BRKADRINT
> >
> > The Linux 2.4.2-pre1 works fine. Next thing I was thinking was to try ac4
> > and also to try on a different machine which has a different revision of
> > the same type of aic7xxx HBA.
> >
> 
> I am running ac5 on a  AHA-2940U2/W, no problem.
> 
> I patched the kernel with a patch from Doug Ledford posted in the list.

Problems with disks and CD-ROMs connected to non-Ultra2 controllers is
confirmed and I think my fix is just about done (currently testing a minor
sequencer change to solve the problem, I cleared SG_COUNT when I shouldn't
have, which meant disconnects in the middle of a transfer spelled death for
the transfer, resulting in a data overrun on reconnect, and this problem only
shows up on non-Ultra2 controllers under real transfers scenarios, which my
testing missed because I was using all Ultra2 controllers, so I built another
test machine with non-Ultra2 controllers to check my fix)

-- 

 Doug Ledford <[EMAIL PROTECTED]>  http://people.redhat.com/dledford
  Please check my web site for aic7xxx updates/answers before
  e-mailing me about problems
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Mailing lists for Linux on OS/390?

2001-02-07 Thread List User

We are starting to look at setting up a test environment
for Linux on OS/390 platforms (probably using VM/VSE).  Does anyone know of
any good mail-lists or
usenet groups et al that would be specific to this type of porting/running
on this platform?

Steve

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs] SPEC SFS fails at low loads...

2001-02-07 Thread Chris Mason



On Wednesday, February 07, 2001 04:35:32 PM + Tigran Aivazian <[EMAIL PROTECTED]> 
wrote:

> Hi,
> 
> Under 2.4.1, after a little bit of running SPEC SFS (with NFSv3) I get
> these messages on the server:
> 
> vs-13042: reiserfs_read_inode2: [0 1 0x0 SD] not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> 
> and the run aborts.
> 
> Any clues?

Andi covered most of the details, you can get a combined version of patches from Neil 
Brown and I at ftp.reiserfs.org, which I can't seem to get to right now.  If you want 
a copy, I can send along in private mail.

-chris




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: reiserfs - problems mounting after power outage

2001-02-07 Thread Chris Mason



On Wednesday, February 07, 2001 12:31:43 PM -0500 Jeff McWilliams 
<[EMAIL PROTECTED]> wrote:

> I'm having difficulty mounting a reiserfs partition after a power outage.
> 
> This is 2.4.0-test9 compiled with reiserfs as a module, and 

Which reiserfs version is this?  Upgrading to the reiserfs included in 2.4.1 would be 
a good plan, there have been a few bug fixes since test9 times (none specfically 
related to this).

> the ide.2.4.0-t9-6.task.0923.path IDE patch - mostly to get updated support for
> the 3WARE IDE RAID controller.  
> 

If this raid controller has writeback cache, make sure you either have a battery 
backup for the cache, or have writeback turned off.

> /dev/sda is the 3ware escalade raid mirror - two Maxtor 20 gig drives.
> 
> reiserfs is compiled as a module, the distribution is Debian Linux 
> "Potato"
> 
[ ... ]

> The partition I'm having trouble with is /dev/sda7.  /dev/sda6 recovered okay.
> /dev/sda7 doesn't have a lot of data on it, and I CAN deal with the lost data,
> but it doesn't leave me with a very good feeling of confidence in reiserfs
> if I can't successfully recover from a power failure.
> 
> 
> What happens when I type mount /dev/sda7 is this:
> 
> reiserfs: using 3.5.x disk format
> reiserfs: checking transaction log (device 08:07) ...
> 
> and then it hangs.  I then have to hit the reset button to reboot.
> 

How hung is it?  Does the whole system stop, or does this mount just block forever?

> I've tried running reiserfsck with --check, --correct-bitmap, 
> --rebuild-sb, and --rebuild-tree.  NO luck there.
> 

These programs also hang?  Does reiserfsck (which version BTW) give any output at all?

-chris


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.x and oops on 'mount -t smbfs'

2001-02-07 Thread Urban Widmark

On Wed, 7 Feb 2001 [EMAIL PROTECTED] wrote:

> I've compiled a number of 2.4.1 and 2.4.0 kernels (actually supports the 4GB
> RAM!!!  Yay), and I have only one more problem to sort out.  Under
> 2.4.x, the mount completes successfully, but 'ls /net' causes an OOPS: .

Try http://www.hojdpunkten.ac.se/054/samba/smbfs-2.4.1-pre10-cache-2.patch

Let me know if it works for you or not.
(patch should be ok with 2.4.0 or 2.4.1)

/Urban

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [bug] aic7xxx panic Re: Linux 2.4.1-ac5

2001-02-07 Thread J . A . Magallon


On 02.07 Tigran Aivazian wrote:
> Alan, Doug,
> 
> If this is a known problem -- ignore. Otherwise, I will gladly assist as
> much as you need.
> 
> Just tried ac5 kernel and, behold (btw, why does serial console not work
> anymore, I had to copy these by hand):
> 
> (scsi0) BRKADRINT error(0x44):
>   Illegal Opcode in sequencer program
>   PCI Error detected
> (scsi0)  SEQADDR=0x58
> Kernel panic: aic7xxx: unrecoverable BRKADRINT
> 
> The Linux 2.4.2-pre1 works fine. Next thing I was thinking was to try ac4
> and also to try on a different machine which has a different revision of
> the same type of aic7xxx HBA.
> 

I am running ac5 on a  AHA-2940U2/W, no problem.

I patched the kernel with a patch from Doug Ledford posted in the list.

-- 
J.A. Magallon  $> cd pub
mailto:[EMAIL PROTECTED]  $> more beer

Linux werewolf 2.4.1-ac5 #1 SMP Wed Feb 7 22:15:19 CET 2001 i686

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: VIA silent disk corruption - patch

2001-02-07 Thread Peter Horton

On Tue, Feb 06, 2001 at 05:01:46PM +0100, Udo A. Steinberg wrote:
> Dale Farnsworth wrote:
> > 
> > However, if I enable the BIOS parameter "I/O Recovery Time", I can still
> > enable read caching without seeing any data corruption.
> > The lastest BIOS revision (1005C) enables "I/O Recovery Time" by default
> > where the previous revision I had (1004D) did not.
> 
> Interesting stuff.
> 
> Asus, Germany released 1005D today. It's available from
> ftp://ftp.asuscom.de/pub/ASUSCOM/BIOS/Socket_A/VIA_Chipset/Apollo_KT133/A7V/1005D.zip
> 
> No comments about what they changed and/or fixed.
> 

Good news here, looks like the new BIOS fixes it (1005D). I've run a
heavy test for at least 10 hours without a single blip. The BIOS is set
for "optimal". Hoorah!

Here's the North bridge diff for anyone who can't get a BIOS update :-)

P.

--- bad.pci Sun Feb  4 22:29:22 2001
+++ new.pci Wed Feb  7 23:11:28 2001
@@ -1,7 +1,7 @@
 00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev 02)
Subsystem: Asustek Computer, Inc.: Unknown device 8033
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
-   Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- http://www.tux.org/lkml/



Re: [reiserfs] SPEC SFS fails at low loads...

2001-02-07 Thread Andi Kleen

Tigran Aivazian <[EMAIL PROTECTED]> writes:

> Hi,
> 
> Under 2.4.1, after a little bit of running SPEC SFS (with NFSv3) I get
> these messages on the server:
> 
> vs-13042: reiserfs_read_inode2: [0 1 0x0 SD] not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> vs-13048: reiserfs_iget: bad_inode. Stat data of (0 1) not found
> 
> and the run aborts.
> 
> Any clues?

Reiserfs really needs 64bit of inode in the NFS file handles, otherwise
this happens as soon as you run out of the file handle cache with many
active clients. The 2.2 code did a brute force search in this case (the
handles are unique in 32bit, it's just very costly to look them up without
the other 32bit), but it usually consumed so much CPU time that people 
thought the server crashed.

There are patches to do that for knfsd for both 2.2 and 2.4, but they
haven't been merged yet. It needs a small VFS enhancement and knfsd changes.

Note that stock (unpatched) unfsd also doesn't work in all cases for other
reasons, it makes assumptions about the inode space that do not work out
on a longer used reiserfs. This has also been fixed.

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[PATCH] Remaining net/ pci_enable_device cleanups.

2001-02-07 Thread davej


Hi Jeff, l-k,

 Here's my current diff resynced against ac5. This catches
all the remaining cases in drivers/net except for starfire
(which you posted a bigger patch for).

Oh, there's also a kmalloc change in macsonic.c that I've
had hanging around for a while.

If this looks ok, I'll split it into chunks for Alan & the
appropriate maintainers.

regards,

Dave.

-- 
| Dave Jones.http://www.suse.de/~davej
| SuSE Labs


diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/defxx.c 
linux-dj/drivers/net/defxx.c
--- linux/drivers/net/defxx.c   Wed Feb  7 21:55:56 2001
+++ linux-dj/drivers/net/defxx.cWed Feb  7 22:34:27 2001
@@ -393,6 +393,7 @@
  *
  * Arguments:
  *   pdev - pointer to pci device information (NULL for EISA)
+ *   ioaddr - pointer to port (NULL for PCI)
  *
  * Functional Description:
  *
@@ -426,6 +427,13 @@
 */
dev = init_fddidev( NULL, sizeof(*bp));

+   /* Enable PCI device. */
+   if (pdev != NULL) {
+   if (pci_enable_device (pdev))
+   goto err_out;
+   ioaddr = pci_resource_start (pdev, 1);
+   }
+
if (!dev) {
printk (KERN_ERR "defxx: unable to allocate fddidev, aborting\n");
return -ENOMEM;
@@ -461,8 +469,6 @@
bp->bus_type = DFX_BUS_TYPE_PCI;
bp->pci_dev = pdev;
pdev->driver_data = dev;
-   if (pci_enable_device (pdev))
-   goto err_out_region;
pci_set_master (pdev);
}

@@ -481,7 +487,7 @@

 static int __devinit dfx_init_one(struct pci_dev *pdev, const struct pci_device_id 
*ent)
 {
-   return  dfx_init_one_pci_or_eisa(pdev, pci_resource_start (pdev, 1));
+   return  dfx_init_one_pci_or_eisa(pdev, NULL);
 }

 static int __init dfx_eisa_init(void)
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/dgrs.c 
linux-dj/drivers/net/dgrs.c
--- linux/drivers/net/dgrs.cWed Feb  7 21:55:56 2001
+++ linux-dj/drivers/net/dgrs.c Wed Feb  7 22:17:37 2001
@@ -1368,6 +1368,17 @@

while ((pdev = pci_find_device(SE6_PCI_VENDOR_ID, SE6_PCI_DEVICE_ID, 
pdev)) != NULL)
{
+   /*
+* Get and check the bus-master and latency values.
+* Some PCI BIOSes fail to set the master-enable bit,
+* and the latency timer must be set to the maximum
+* value to avoid data corruption that occurs when the
+* timer expires during a transfer.  Yes, it's a bug.
+*/
+   if (pci_enable_device(pdev))
+   continue;
+   pci_set_master(pdev);
+
plxreg = pci_resource_start (pdev, 0);
io = pci_resource_start (pdev, 1);
mem = pci_resource_start (pdev, 2);
@@ -1391,17 +1402,6 @@
pci_write_config_dword(pdev, 0x30, plxdma + 1);
pci_read_config_dword(pdev, 0x30, );
plxdma &= ~15;
-
-   /*
-* Get and check the bus-master and latency values.
-* Some PCI BIOSes fail to set the master-enable bit,
-* and the latency timer must be set to the maximum
-* value to avoid data corruption that occurs when the
-* timer expires during a transfer.  Yes, it's a bug.
-*/
-   if (pci_enable_device(pdev))
-   continue;
-   pci_set_master(pdev);

dgrs_found_device(io, mem, irq, plxreg, plxdma);

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/dmfe.c 
linux-dj/drivers/net/dmfe.c
--- linux/drivers/net/dmfe.cWed Feb  7 21:55:56 2001
+++ linux-dj/drivers/net/dmfe.c Wed Feb  7 22:18:18 2001
@@ -356,6 +356,11 @@

DMFE_DBUG(0, "dmfe_probe()", 0);

+   /* Enable Master/IO access, Disable memory access */
+   if (pci_enable_device(pdev))
+   goto err_out;
+   pci_set_master(pdev);
+
pci_iobase = pci_resource_start(pdev, 0);
pci_irqline = pdev->irq;

@@ -371,11 +376,6 @@
printk(KERN_ERR "dmfe: I/O base is zero\n");
goto err_out;
}
-
-   /* Enable Master/IO access, Disable memory access */
-   if (pci_enable_device(pdev))
-   goto err_out;
-   pci_set_master(pdev);

 #if 0  /* pci_{enable_device,set_master} sets minimum latency for us now */

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/net/eepro100.c 
linux-dj/drivers/net/eepro100.c
--- linux/drivers/net/eepro100.cWed Feb  7 21:55:56 2001
+++ linux-dj/drivers/net/eepro100.c Wed Feb  7 22:00:35 2001
@@ -557,6 +557,17 @@
if (speedo_debug > 0  

Re: bidirectional named pipe?

2001-02-07 Thread David L. Nicol

Alan Cox wrote:
> 
> > I'm porting some software to Linux that requires use of a bidirectional,
> > named pipe.  The architecture is as follows:  A server creates a named pipe
> 
> Pipes are not bidirectional in Linux. We follow traditional non stream
> behaviour
> 
> > /dev/spx".  I experiemented with socket-based pipes under Linux, but I
> > couldn't gain access to them by open()ing the name.  Is there help?  I
> 
> AF_UNIX sockets are bidirectional but like all sockets use bind() and
> connect().

How hard would it be to add? The limitation on fifos that you get the same
one every time you open it makes some things tricky -- the server has to
move the fifo and mkfifo a new one to replace its data with something else,
for instance, which is not atomic.

I don't understand, in the original problem, how the server opens
the named bipipe differently from the servers, to be on one end rather than
the other.

A way to map a file name to a socket pair would be nice, the first to open
it could get one end of it and everyone else would get the other end, or there
would be a switch.

You could patch the file system code, I wonder how deep the changes would have
to be, if you did it in terms of lots of fifos.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: aacraid 2.4.0 kernel

2001-02-07 Thread Byron Stanoszek

On Wed, 7 Feb 2001, Jason Ford wrote:

> I see in the archives of this mailing list that someone was working on the
> aacraid driver for the 2.4 kernel however that post was almost 2 months old.
> I know Alan Cox denied inclusion of the driver due to the poor nature it was
> written for the 2.2 tree. Every post that I have seen so far has just said
> that Adaptec is working on it. However, I am sure there are many people out
> there like myself that have to support this card in enviroments that would
> be benifical to upgrade to 2.4 kernel. I am not a part of this list however
> have been scouring through geocrawler.com archives of this list everyday for
> the last month hoping and waiting.

While it's totally unofficial, I have a patch for aacraid 1.0.6 for 2.4.1-ac5.
I have not tested it yet, but it compiles cleanly. I'd like to hear any results
(good or bad) you have on it.

You can find it at:

  ftp://ftp.winds.org/linux/patches/2.4.1/aacraid-2.4.1-1.0.6.patch

Regards,
 Byron

-- 
Byron Stanoszek Ph: (330) 644-3059
Systems Programmer  Fax: (330) 644-8110
Commercial Timesharing Inc. Email: [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: OK to mount multiple FS in one dir?

2001-02-07 Thread David L. Nicol

Peter Samuelson wrote:
 
> A more useful thing to fall out of the same hacking is loopback
> mounting -- i.e. the same filesystem mounted multiple places.  In
> Linux-land I guess we call it 'mount --bind'.
> 
> Peter

Does this kind of thing play nice with nfs and coda, in terms of
change notifications and write-backs? In distributed FS we've got
the same thing mounted multiple places, of course, but not on the
same machine



-- 
  David Nicol 816.235.1187 [EMAIL PROTECTED]
   Pedestrians always have the right of way

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



2.4.1-ac5 - The loopback hang saga continues

2001-02-07 Thread Byron Stanoszek

It appears that the loopback-hang parasite is alive and well in 2.4.1-ac5.
I've done several tests and I thus provide the following information:

The bug is independent of UP or SMP configured.. it hung both ways, but the
box itself is UP.

It appears to hang when internal buffers get filled. The way I see it, copying
files from disk to the loopback device (which is a file on the same disk)
begins to read from the disk. When the internal read buffer is full, the
kernel's queued writes start activating and the data gets copied to the
loopback file. This process repeats over and over, as it should normally.

Sometimes however, during a read from the disk, it fills up its buffers and
then never makes the accompanying write. In fact, the entire device freezes on
the read.

I was able to lessen the frequency of hanging by using the -v flag and tapping
^S and ^Q to temporarily 'pause' copying. This ensures that the read buffer
will never become full to the point where it could cause the hang, and appears
to work -- until it came across the libc.a file. There was no way to pause it
here because nothing is being outputted to the screen while it's copying
libc.a. Unfortunately, it fills the buffer too quick and hangs 100% every time.
The disk is totally nonresponsive at this point, and a hard reset is necessary.

I hope this helps anyone who is still tracking down the loopback problem.

Regards,
 Byron

-- 
Byron Stanoszek Ph: (330) 644-3059
Systems Programmer  Fax: (330) 644-8110
Commercial Timesharing Inc. Email: [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: suspecious ide hdparm results with 2.4.1 (and a minor capacity question)

2001-02-07 Thread CaT

On Wed, Feb 07, 2001 at 06:44:34PM +0100, [EMAIL PROTECTED] wrote:
> > It's currently in LBA mode (I believe) and that, to my knowledge,
> > wastes the most space.
> 
> There are two entirely different things both called LBA.
> Neither of them wastes any space.

You sure? I admit to not having much knowledge of this but BIOS always
reports different sized for LBA, NORMAL and LARGE. This is what I'm
referring to.

-- 
CaT ([EMAIL PROTECTED])*** Jenna has joined the channel.
 speaking of mental giants..
 me, a giant, bullshit
 And i'm not mental
- An IRC session, 20/12/2000

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



RE: hotplugging with regular PCI cards

2001-02-07 Thread Jamey Hicks


It looks like support for this is available at:

   http://opensource.compaq.com/sourceforge/project/?group_id=13



-Jamey Hicks


-Original Message-
From: Adam J. Richter [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, February 07, 2001 1:08 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: hotplugging with regular PCI cards


I saw an interesting demonstration at LinuxWorld last week.
Compaq had a machine that did hot plugging with regular PCI cards (not
Compact PCI).  If anyone out there is familiar with this machine,
I would be interested in knowing what the status is on getting
the support for that backplain integrated into the stock kernels.

When that occurs, that will be yet another reason to treat all
new style PCI drivers as potentially hot pluggable, even if those cards
are not currently available in a CardBus or CompactPCI form, and in
particular to change all of the xxx_pci_tbl declarations in PCI
drivers that are currently marked as __initdata back to __devinitdata.

Adam J. Richter __ __   4880 Stevens Creek Blvd, Suite
104
[EMAIL PROTECTED] \ /  San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l   United States of America
fax +1 408 261-6631  "Free Software For The Rest Of Us."

___
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.1 and Adaptec Duralan aka Starfire.c

2001-02-07 Thread Ion Badulescu

On Wed, 07 Feb 2001 11:48:32 +0100, Stefan Majer <[EMAIL PROTECTED]> wrote:
> Hi All
> 
> I installed a Adaptec Quad Port Ethernet Adapter called Quartet64 and
> after compiling 2.4.1
> with starfire support i got the following  messages in syslog 
> 
> after 
> 
> ifconfig eth2 172.17.1.4 netmask 255.255.0.0 up
> 
> Feb  7 11:37:29 cerro kernel: eth2: Internal fault: The skbuff addresses
> do not match in netdev_rx: 242749457 vs. ce781000 / ce781010.

These are harmless, although very annoying. Use the driver from
2.4.1-acXX, it has this and other things fixed. Just copy starfire.c
into your tree/drivers/net, it will work fine.


Ion

-- 
  It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



aacraid 2.4.0 kernel

2001-02-07 Thread Jason Ford

I see in the archives of this mailing list that someone was working on the
aacraid driver for the 2.4 kernel however that post was almost 2 months old.
I know Alan Cox denied inclusion of the driver due to the poor nature it was
written for the 2.2 tree. Every post that I have seen so far has just said
that Adaptec is working on it. However, I am sure there are many people out
there like myself that have to support this card in enviroments that would
be benifical to upgrade to 2.4 kernel. I am not a part of this list however
have been scouring through geocrawler.com archives of this list everyday for
the last month hoping and waiting.

Does anyone know the status of the driver or even the possibilities of it
getting included into the next kernel version (2.4.2)?

Please CC me on any replies that you may send.

Thanks for you time..

Jason Ford
[EMAIL PROTECTED]

Heymax Interactive

http://www.heymax.com




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Hamachi not doing pci_enable before reading resources

2001-02-07 Thread Richard B. Johnson

On Wed, 7 Feb 2001, [ISO-8859-1] Gérard Roudier wrote:

> 
> You missed the newer statements about every piece of hardware being
> assumed to be hot-pluggable and all the hardware being under full control
> by CPU.
> 
> You also missed the well known point that only device drivers are broken
> under Linux and that all the generic O/S code is just perfect. :-)
> 
>   Gérard.
> 

Yep. I missed a lot. When the next 'release' comes out, I'll have
to rewrite all my drivers again --sigh...

Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] Re: Apparent instability of reiserfs on 2.4.1

2001-02-07 Thread Chris Mason



On Wednesday, February 07, 2001 11:05:51 PM +0100 Xuan Baldauf
<[EMAIL PROTECTED]> wrote:

> Mhhh. It's a busy server from which I am about 700km away. I don't like to
> restart it now. (Especially because it cannot boot from hard disk, only
> from floppy disk, due to bios problems). But I'd be happy if following is
> true:
> 
> (1) Enabling "-o notails" is possible at runtime, i.e. "mount / -o
> remount,notails" works and

Nope.

> (2) Notails is compatible with all the tails found on disk (so notails
> only changes the way the disk is written, not the way the disk is read).
> 

This part is true.

Honestly, I don't want to do this kind of debugging on a busy server.
Sure, it is completely safe, etc, etc, but ...

We'll get the info elsewhere, leave the busy servers out of it ;-)

-chris


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Lock in with 2.4.1 and NFS

2001-02-07 Thread Neil Brown

On Wednesday February 7, [EMAIL PROTECTED] wrote:
> 
> Hi,
> I have a strange problem on one of our server.
> I have 2.4.1 patched with ACLs 0.7.5 (from acl.bestbits.at) and some RAID +
> LVM volumes.
> At regular interval, NFS stops working (nfsd stops) and a stop/start of the
> NFS service doesn't work. 
> The NFS service stop blocks in "exportfs -auv" when trying to unmount a
> client working apparently well. One time
> it was a solaris 2.6 client, another time it was a linux 2.4 machine.
> Any help appreciated.
> Thanks
> -jec
> 
> PS: I'm not in the kernel list. Please CC
> 

This scenario sounds a lot like one of the nfsd threads has oopsed
while holding a readlock on the export table, and so exportfs cannot
get a write lock.

Could you check your kernel logs for an Oops message?

NeilBrown


> 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> Jean-Eric Cuendet
> Linkvest SA
> Av des Baumettes 19, 1020 Renens Switzerland
> Tel +41 21 632 9043  Fax +41 21 632 9090
> http://www.linkvest.com  E-mail: [EMAIL PROTECTED]
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[bug] aic7xxx panic Re: Linux 2.4.1-ac5

2001-02-07 Thread Tigran Aivazian

Alan, Doug,

If this is a known problem -- ignore. Otherwise, I will gladly assist as
much as you need.

Just tried ac5 kernel and, behold (btw, why does serial console not work
anymore, I had to copy these by hand):

(scsi0) BRKADRINT error(0x44):
  Illegal Opcode in sequencer program
  PCI Error detected
(scsi0)  SEQADDR=0x58
Kernel panic: aic7xxx: unrecoverable BRKADRINT

The Linux 2.4.2-pre1 works fine. Next thing I was thinking was to try ac4
and also to try on a different machine which has a different revision of
the same type of aic7xxx HBA.

Any more ideas?

Regards,
Tigran


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] Re: Apparent instability of reiserfs on 2.4.1

2001-02-07 Thread Xuan Baldauf



Chris Mason wrote:

> On Thursday, February 08, 2001 10:47:29 AM +1300 Chris Wedgwood
> <[EMAIL PROTECTED]> wrote:
>
> > these appear on your system every couple of days right? if so... are
> > you able to run with the fs mount notails for a couple of days and
> > see if you still experience these?
> >
> > my guess is you probably still will as most log files aren't
> > candidates for tail-packing (too large) but it will help eliminate
> > one more thing
> >
>
> Yes, it really would.
>
> 1) mount -o notail
> 2) rm old_logfile
> 3) restart syslog
>
> This will ensure the log files don't have tails at all.  Knowing for sure
> the bug doesn't involve tails would remove much code from the search.
>
> -chris

Mhhh. It's a busy server from which I am about 700km away. I don't like to
restart it now. (Especially because it cannot boot from hard disk, only from
floppy disk, due to bios problems). But I'd be happy if following is true:

(1) Enabling "-o notails" is possible at runtime, i.e. "mount / -o
remount,notails" works and
(2) Notails is compatible with all the tails found on disk (so notails only
changes the way the disk is written, not the way the disk is read).

Is this true?

Xuân.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [reiserfs-list] Re: Apparent instability of reiserfs on 2.4.1

2001-02-07 Thread Chris Mason



On Thursday, February 08, 2001 10:47:29 AM +1300 Chris Wedgwood
<[EMAIL PROTECTED]> wrote:

> these appear on your system every couple of days right? if so... are
> you able to run with the fs mount notails for a couple of days and
> see if you still experience these?
> 
> my guess is you probably still will as most log files aren't
> candidates for tail-packing (too large) but it will help eliminate
> one more thing
> 

Yes, it really would.

1) mount -o notail
2) rm old_logfile
3) restart syslog

This will ensure the log files don't have tails at all.  Knowing for sure
the bug doesn't involve tails would remove much code from the search.

-chris

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] Hamachi not doing pci_enable before reading resources

2001-02-07 Thread Gérard Roudier


You missed the newer statements about every piece of hardware being
assumed to be hot-pluggable and all the hardware being under full control
by CPU.

You also missed the well known point that only device drivers are broken
under Linux and that all the generic O/S code is just perfect. :-)

  Gérard.

On Wed, 7 Feb 2001, Richard B. Johnson wrote:

> On Wed, 7 Feb 2001 [EMAIL PROTECTED] wrote:
> 
> > 
> > Hi Alan,
> > 
> >  Another driver not doing pci_enable_device() early enough.
> > 
> > Dave.
> > 
> 
> A PCI device does not and should not be enabled to probe for resources!
> It is only devices that have BIOS that require the device to be enabled
> for memory I/O prior to downloading the BIOS into RAM. The BARs are
> read/writable (and are required to be), even when the Mem/I/O bits
> in the cmd/status register are clear.
> 
> This is a required condition!  You certainly don't want to write all
> ones to a decode (to find the resource length) of a live, on-line chip!
> If the chip hickups (think network chips connected to networks, on a
> warm-boot), you will trash lots of stuff in memory.
> 
> It looks as though you are "fixing" drivers that are not broken and,
> in fact, are trying to do the right thing. Maybe the PCI code in the
> kernel is preventing access to resources unless the device has been
> enabled??? If so, it's broken and should be fixed, instead of all
> the drivers.
> 
> Cheers,
> Dick Johnson
> 
> Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).
> 
> "Memory is like gasoline. You use it up when you are running. Of
> course you get it all back when you reboot..."; Actual explanation
> obtained from the Micro$oft help desk.
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] micro-opt DEBUG_ADD_PAGE

2001-02-07 Thread Linus Torvalds



On Wed, 7 Feb 2001, Hugh Dickins wrote:
> 
> The "(1< activate_page_nolock() compiled -O2 -march=i686 with egcs-2.91.66 (RH7.0
> kgcc), gcc-2.96-69 (RH7.0 gcc+fixes), gcc-2.97 (gcc-snapshot-20010207-1).
> 
> None of those optimizes this: I believe the semantics of "||" (don't
> try next test if first succeeds) forbid the optimization "|" gives?

No. The optimization is entirely legal - but the fact that
"constant_test_bit()" uses a "volatile unsigned int *" is the reason why
gcc thinks it can't optimize it.

Oh, well. That "volatile" is really totally bogus. But it's there because
there are probably drivers that do

while (test_bit(...))
/* nothing */;

and the compiler woul doptimize it away a bit too much without the
volatile. Dang.

You could try to remove the volatile from test_bit, and see if that fixes
it - but then we'd have to find and add the proper "rmb()" calls to people
who do the endless loop kind of thing like above.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



VT82C597 + Maxtor UDMA failures

2001-02-07 Thread Ryan Hayle

I'm trying to troubleshoot a failure with my Maxtor hard drive that I have
experienced consistantly, even in the 2.2.x kernels (I'm now running
2.2.1-test10, .config is attached).  It detects all of my drives fine:

block: queued sectors max/low 126786kB/95090kB, 384 slots per queue
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c586b IDE UDMA33 controller on pci0:7.1
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:DMA
hda: Maxtor 52049U4, ATA DISK drive
hdb: WDC AC31200F, ATA DISK drive
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
hdc: Maxtor 90680D4, ATA DISK drive
hdd: ATAPI 40X CDROM DRIVE, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 40020624 sectors (20491 MB) w/2048KiB Cache, CHS=2491/255/63,
UDMA(33)
hdb: 2503872 sectors (1282 MB) w/64KiB Cache, CHS=621/64/63, DMA
hdc: 13281408 sectors (6800 MB) w/256KiB Cache, CHS=13176/16/63, UDMA(33)
hdd: ATAPI 40X CD-ROM drive, 128kB Cache, UDMA(33)

And then all the services load up, etc.  Once I log in, though, either in
gdm or on the console, it will pause for around 10-15 seconds, and then
display this:

hdc: timeout waiting for DMA
ide_dmaproc: chipset supported ide_dma_timeout func only: 14
hdc: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest }
hdc: status timeout: status=0xd0 { Busy }
hdc: DMA disabled
hdd: DMA disabled
hdc: drive not ready for command
ide1: reset: success

(hdc is the problem, obviously)  Once this occurs, the system appears to
run normally.  I don't really care about hdd (cdrom), although I figure
they are probably related somehow.

Windows is able to use UDMA fine on this drive.  Also note that this isn't
a UDMA66 drive, and I'm not trying to use it (most of the other posts
I've seen with similar problems were related to 66).  

Drives on ide0 seem to run in udma mode just fine, also...

Here's /proc/ide/via:

--VIA BusMastering IDE Configuration
Driver Version: 2.1e
South Bridge:   VIA vt82c586b rev 0x47
Command register:   0x7
Latency timer:  64
PCI clock:  33MHz
Master Read  Cycle IRDY:1ws
Master Write Cycle IRDY:1ws
FIFO Output Data 1/2 Clock Advance: off
BM IDE Status Register Read Retry:  on
Max DRDY Pulse Width:   No limit
---Primary IDE---Secondary IDE--
Read DMA FIFO flush:   on  on
End Sect. FIFO flush:  on  on
Prefetch Buffer:   on  on
Post Write Buffer: on  on
FIFO size:  8   8
Threshold Prim.:  1/2 1/2
Bytes Per Sector: 512 512
Both channels togth:  yes yes
---drive0drive1drive2drive3-
BMDMA enabled:yes   yesnono
Transfer Mode:   UDMA   DMA/PIO  UDMA  UDMA
Address Setup:   30ns  60ns  30ns  30ns
Active Pulse:90ns  90ns  90ns  90ns
Recovery Time:   30ns  60ns  30ns  30ns
Cycle Time:  60ns 150ns  60ns  60ns
Transfer Rate:   33.0MB/s  13.2MB/s  33.0MB/s  33.0MB/s

What I don't understand is, the transfer mode still seems to be "UDMA",
but "BMDMA" is not enabled.  Aren't they inter-dependant?  One in the
same?  I'm obviously no expert, so any help would be appreciated.

Thanks in advance,
Ryan



#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
CONFIG_ISA=y
# CONFIG_SBUS is not set
CONFIG_UID16=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
CONFIG_MK6=y
# CONFIG_MK7 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_TSC=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_TOSHIBA is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# 

Re: 2.4.0 pdev_enable_device() call in setup-bus.c

2001-02-07 Thread Grant Grundler

Ivan Kokshaysky wrote:
> Mainly because there are driverless devices like display adapters,
> PCI bridges, or PCI devices with legacy drivers (IDE, for example).

Ok. It seems that all of those would have to interact with
the PCI code someplace. And that's were pci_enable_device()
could be called. eg. PCI Bridges could be handled in it's
"driver": pci_setup_bridge().


> OTOH, pdev_enable_device() most likely will be removed, but
> it's 2.5 material.

Agreed - standardizing the enable path would be good for above devices.

I'd like to see arch hooks added for stuff like default latency and
PCI_BRIDGE_CONTROL. My gut feeling is the "root" struct pci_bus
allocation and initialization should be done by arch specific code
*before* pci_scan_bus() is called. That would allow cfg space defaults
to be set to arch specific values on a per bus basis *before* doing
the bus walks instead of hacking this in pci_bus_fixup() later.

thanks,
grant

Grant Grundler
parisc-linux {PCI|IOMMU|SMP} hacker
+1.408.447.7253
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: having a hard time with 2.4.x

2001-02-07 Thread piatz

While attempting to port Linux to a new platform using a compiler other
then GCC I noticed that there appears to be a volatile missing on the
declaration of xtime in include/linux/sched.h.  The compiler I am using
considers this to be an error.  The following may help your problem.




include/linux/sched.h
*** sched.h 2001/02/05 21:48:10 1.3
--- sched.h 2001/02/07 05:19:09
***
*** 533,539 
  extern unsigned long volatile jiffies;
  extern unsigned long itimer_ticks;
  extern unsigned long itimer_next;
! extern struct timeval xtime;
  extern void do_timer(struct pt_regs *);
  
  extern unsigned int * prof_buffer;
--- 533,539 
  extern unsigned long volatile jiffies;
  extern unsigned long itimer_ticks;
  extern unsigned long itimer_next;
! extern volatile struct timeval xtime;
  extern void do_timer(struct pt_regs *);


Ulrich Windl writes:
> 
> Hello,
> 
> I have some news on the topic of timekeeping in Linux-2.4:
> 
> As Alan Cox pointed out the ACPI changes between 2.4.0 and 2.4.1 created a 
> extremely slow console output (if not more). Configuring away ACPI support 
> solved that problem.
> 
> However there is still a problem that I cannot explain. I wrote a test program 
> for my modified kernel (I did not try the original one). I'll include the 
> program plus results (if you want to see the patch go to 
> ftp.kernel.org/pub/linux/daemons/ntp/PPS and get PPS-2.4.0-pre3.tar.bz2 (patch 
> plus signature)):
> 
> #include  
> #include  
> #define   NTP_NANO
> #include  
> 
> int   main()
> {
>   struct timextx;
>   longlastns = 0;
> 
>   tx.modes = 0;
>   while(1)
>   {
>   adjtimex();
>   printf("%d %d %d\n",
>  tx.time.tv_sec, tx.time.tv_nsec,
>  tx.time.tv_nsec - lastns);
>   lastns = tx.time.tv_nsec;
>   fflush(stdout);
>   }
> }


-- 
Steve Piatz [EMAIL PROTECTED]
Cray Inc.   651-605-9049
1340 Mendota Heights Road
Mendota Heights, MN 55120
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: single copy pipe/fifo

2001-02-07 Thread David S. Miller


Manfred Spraul writes:
 > process 2 (on cpu 1)
 >  read(fd,buf,64kB).
 >  * reads the data
 >  * now it must wake up, but it will return from the syscall, thus
 > wake_up_interruptible().

Oh, I see and thus the pre-kiovec case would be:

process 2 (on cpu 1)
read(fd, buf,64kb)
* reads 4K
* wake_up_interruptible_sync()
* sleep()
* reads 4K

etc etc.

Later,
David S. Miller
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 2.4.0 pdev_enable_device() call in setup-bus.c

2001-02-07 Thread Ivan Kokshaysky

On Wed, Feb 07, 2001 at 11:50:52AM -0800, Grant Grundler wrote:
> Can you explain why pci_assign_unassigned_resources()
> calls pdev_enable_device() for every PCI device instead
> of having each PCI *driver* call pci_enable_device()
> as part of driver initialization?

Mainly because there are driverless devices like display adapters,
PCI bridges, or PCI devices with legacy drivers (IDE, for example).

OTOH, pdev_enable_device() most likely will be removed, but
it's 2.5 material.

Ivan.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: single copy pipe/fifo

2001-02-07 Thread Manfred Spraul

"David S. Miller" wrote:
> 
> Manfred Spraul writes:
>  > * if you run 2 instances on a dual cpu P II/350 it's a big win, but if
>  > you run only one instance, then the bw_pipe processes will jump from one
>  > cpu to the other and it's only a small improvement (~+15%).
> 
> wake_up_interruptible_sync is meant specifically to avoid
> this cpu hopping behavior.
>
I use it whereever possible, but in this case it's not possible:
pipe is empty.

process 1 (on cpu 1)
write(fd,buf,64kB).
* creates kiobuf
* sleeps.

process 2 (on cpu 1)
read(fd,buf,64kB).
* reads the data
* now it must wake up, but it will return from the syscall, thus
wake_up_interruptible().
* wakeup notices that cpu1 is busy and sends process 1 to cpu 2
* read returns
read(fd, buf, 64kB)
* no data waiting, sleeps.

process 1 (on cpu 2)
* write returns
write(fd, buf, 64 kB)
* creates kiobuf
* wake_up_interruptible_sync(), since it will schedule
* schedule()
but now schedule will pull process 2 to cpu 2

I haven't verified the sequence with kdb, but I'm certain that this
happens.

--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Linux 2.4.1-ac5

2001-02-07 Thread Adrian Bunk

On Wed, 7 Feb 2001, Matthias Schniedermeyer wrote:

> > > now that -ac grows that huge, could you put out incremental patches?
> >
> > Takes me too much time. But if anyone else wants to, go ahead
>
> This is what i use to diff 2 different kernels
>
> - snip -
>...
> - snip -
>
> This takes about 8 seconds (for 2.4 kernels) on my Dual PIII-933, 1Gig-RAM

Or you take the two patches and use interdiff [1].

> Bis denn

cu,
Adrian

[1] http://people.redhat.com/twaugh/ftp/interdiff/stable/


-- 
A "No" uttered from deepest conviction is better and greater than a
"Yes" merely uttered to please, or what is worse, to avoid trouble.
-- Mahatma Ghandi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[BUG] 2.4.x SMP kernel breaks legacy PIC interrupts 13/2

2001-02-07 Thread Schmitz, Christoph

Dear Mr. Molnar, 
Could you please take a look at this issue ? Also, if you could cc: me on a
possible reply, since I am not subscribed to the mailing list...
Thanks in advance, 

Christoph Schmitz


---

The symptom:
Compaq leverages IRQ 13, usually used to raise a floating point exception on
Intel pre-Pentium systems, to trigger management interrupts (i.e. on fan
failure, etc.). This interrupt level is usually NOT shareable, but through
some magic, we managed to register an ISR for our management driver on IRQ
13. In the kernel 2.2.x, this worked fine for both SMP and UP kernels.  On
the 2.4.x SMP kernels, we do NOT get any interrupts when using request_irq()
for IRQ 13.

Debugging:
If you boot the SMP kernel with the 'noapic' parameter, the interrupt works
fine.
We are aware that IRQ 2 and IRQ 13 will be always routed through the legacy
8259A PIC as opposed to the IO-APIC.  If we change the kernel to route IRQ
13 through the APIC, everything works fine.  Furthermore, if we route any
other working interrupt through the PIC, it does not work.  It appears to be
related to putting the PIC into auto-EOI mode.  The 2.4 SMP kernel puts the
PIC in auto-EOI mode while setting up the timer interrupt.  See
init_8259A(1) in the check_timer routine in arch/i386/kernel/io_apic.c.

Conclusion:
PIC and APIC routed interrupts do not coexist peacefully in the 2.4.x SMP
kernel.  We need to figure out why PIC interrupts don't work with the APIC
interrupts enabled, or stop forcing IRQ 2 and 13 to the PIC when APIC
interrupts are enabled.  As it is right now, you will never see an IRQ 2 or
13 while in APIC mode on the 2.4.x SMP kernel, which makes the code
carefully preserving PIC interrupts superfluous. If fixing this kernel flaw
turns out to be too involved, at the very least, we would like to suggest
the code forcing IRQ's 2 and 13 onto the PIC be removed from the 2.4 kernel.
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: VIA silent disk corruption - likely fix

2001-02-07 Thread Matthias Andree

On Mon, 05 Feb 2001, Peter Horton wrote:

> I've found the cause of silent disk corruption on my A7V motherboard,
> and it might affect all boards with the same North bridge (KT133 etc).

...

> [1] the BIOS appears to let you change the option but it defaults the
> option the moment you leave the "advanced settings" screen :-(

Is your BIOS current? Gigabyte 7ZXR BIOSes (F4) e. g. have exhibited
not-so-different troubles (once you set a suspend timeout, you could not
reset it lest you reloaded the entire BIOS anew; with American
Megatrends' BIOS this means you lose ALL settings except your Standard
CMOS setup), this problem is fixed in F5J (I did not bother to look for
an official F5 release yet).

-- 
Matthias Andree
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: [PATCH] drivers/media/radio/radio-maxiradio.c - 2.4.1-ac4

2001-02-07 Thread Dimitromanolakis Apostolos

Thanks for the trouble.

Your patch had some problem in the maxiradio_radio_init function as
pci_register_driver returns the number of devices found and not 0 when
succesful. I fixed it and here is my patch against the original driver.

Diff output is still weird.



--- radio-maxiradio.c.orig  Wed Feb  7 00:27:37 2001
+++ radio-maxiradio.c   Wed Feb  7 22:50:12 2001
@@ -17,6 +17,9 @@
  *
  *
  * CHANGES:
+ *   0.75b
+ * - better pci interface thanks to Francois Romieu <[EMAIL PROTECTED]>
+ *
  *   0.75
  * - tiding up
  * - removed support for multiple devices as it didn't work anyway
@@ -309,80 +312,80 @@
MOD_DEC_USE_COUNT;
 }
 
-
-inline static __u16 radio_install(struct pci_dev *pcidev);
-
 MODULE_AUTHOR("Dimitromanolakis Apostolos, [EMAIL PROTECTED]");
 MODULE_DESCRIPTION("Radio driver for the Guillemot Maxi Radio FM2000 radio.");
 
 EXPORT_NO_SYMBOLS;
 
-void __exit maxiradio_radio_exit(void)
+static int __devinit maxiradio_init_one(struct pci_dev *pdev, const struct 
+pci_device_id *ent)
 {
-   video_unregister_device(_radio);
+   if(!request_region(pci_resource_start(pdev, 0),
+  pci_resource_len(pdev, 0), "Maxi Radio FM 2000")) {
+   printk(KERN_ERR "radio-maxiradio: can't reserve I/O ports\n");
+   goto err_out;
+   }
 
-   release_region(radio_unit.io,4);
-}
+   if (pci_enable_device(pdev))
+   goto err_out_free_region;
 
-int __init maxiradio_radio_init(void)
-{
-   struct pci_dev *pcidev = NULL;
-   int found;
-   
-   if(!pci_present())
-   return -ENODEV;
-   
-   found = 0;
+   radio_unit.io = pci_resource_start(pdev, 0);
+   init_MUTEX(_unit.lock);
+   maxiradio_radio.priv = _unit;
 
-   pcidev = pci_find_device(PCI_VENDOR_ID_GUILLEMOT, 
-   
PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO,
- pcidev);
-   
-   found += radio_install(pcidev);
-   
-   if(found == 0) {
-   printk(KERN_INFO "radio-maxiradio: no devices found.\n");
-   return -ENODEV;
+   if(video_register_device(_radio, VFL_TYPE_RADIO)==-1) {
+   printk("radio-maxiradio: can't register device!");
+   goto err_out_free_region;
}
 
+   printk(KERN_INFO "radio-maxiradio: version "
+  DRIVER_VERSION
+  " time "
+  __TIME__ "  "
+  __DATE__
+  "\n");
+
+   printk(KERN_INFO "radio-maxiradio: found Guillemot MAXI Radio device (io = 
+0x%x)\n",
+  radio_unit.io);
return 0;
-}
 
-module_init(maxiradio_radio_init);
-module_exit(maxiradio_radio_exit);
+err_out_free_region:
+   release_region(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
+err_out:
+   return -ENODEV;
+}
 
-inline static __u16 radio_install(struct pci_dev *pcidev)
+static void __devexit maxiradio_remove_one(struct pci_dev *pdev)
 {
-   radio_unit.io = pcidev->resource[0].start;
+   video_unregister_device(_radio);
+   release_region(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
+}
 
-   pci_enable_device(pcidev);
-   maxiradio_radio.priv = _unit;
-   init_MUTEX(_unit.lock);
-   
-   if(video_register_device(_radio, VFL_TYPE_RADIO)==-1) {
-   printk("radio-maxiradio: can't register device!");
-   return 0;
-   }
-   
-   
-   printk(KERN_INFO "radio-maxiradio: version "
-  DRIVER_VERSION 
-  "\n");
-
-   printk(KERN_INFO 
-   "radio-maxiradio: found Guillemot MAXI Radio device (io = 0x%x)\n",
-   radio_unit.io
-   );
+static struct pci_device_id maxiradio_pci_tbl[] __devinitdata = {
+   { PCI_VENDOR_ID_GUILLEMOT, PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO,
+   PCI_ANY_ID, PCI_ANY_ID, },
+   { 0,}
+};
 
+MODULE_DEVICE_TABLE(pci, maxiradio_pci_tbl);
 
-   if(!request_region(radio_unit.io, 4, "Maxi Radio FM 2000"))
-   {
-   printk(KERN_ERR "radio-maxiradio: port 0x%x already in use\n",
-   radio_unit.io);
-   
-   return 0;
-   }
+static struct pci_driver maxiradio_driver = {
+   name:   "radio-maxiradio",
+   id_table:   maxiradio_pci_tbl,
+   probe:  maxiradio_init_one,
+   remove: maxiradio_remove_one,
+};
+
+int __init maxiradio_radio_init(void)
+{
+   int count = pci_register_driver(_driver);
+   
+   if(count > 0) return 0; else return -ENODEV;
+}
 
-   

Re: Linux 2.4.1-ac5

2001-02-07 Thread Matthias Schniedermeyer

> > now that -ac grows that huge, could you put out incremental patches?
> 
> Takes me too much time. But if anyone else wants to, go ahead

This is what i use to diff 2 different kernels

- snip -
diffkernel)
   mount none /d/kernel -t ramfs
   cd /d/kernel
   tar -zxf $1
   cp -a linux linuxa
   cd /d/kernel/linuxa
   zcat $2 | patch -p1 -E -s
   cd /d/kernel/linux
   zcat $3 | patch -p1 -E -s
   cd /d/kernel
   diff -Nur linuxa linux
   cd
   umount /d/kernel
- snip -

This takes about 8 seconds (for 2.4 kernels) on my Dual PIII-933, 1Gig-RAM




Bis denn

-- 
Real Programmers consider "what you see is what you get" to be just as 
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated, 
cryptic, powerful, unforgiving, dangerous.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Promise, DMA and RAID5 problems running 2.4.1

2001-02-07 Thread Andre Hedrick

On Wed, 7 Feb 2001, Alan Cox wrote:

> > Iff CONFIG_BLK_DEV_IDECS is set then yes, doing schedule is better.
> > But I do not see any benefit in doing
> > 
> > unsigned long timeout = jiffies + ((HZ + 19)/20) + 1;
> > while (0 < (signed long)(timeout - jiffies));
> 
> On that bit we agree.

What do you want fixed?
Send a patch and lets try it

Andre Hedrick
Linux ATA Development
ASL Kernel Development
-
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035Web: www.aslab.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: single copy pipe/fifo

2001-02-07 Thread David S. Miller


Manfred Spraul writes:
 > * if you run 2 instances on a dual cpu P II/350 it's a big win, but if
 > you run only one instance, then the bw_pipe processes will jump from one
 > cpu to the other and it's only a small improvement (~+15%).

wake_up_interruptible_sync is meant specifically to avoid
this cpu hopping behavior.

Later,
David S. Miller
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



single copy pipe/fifo

2001-02-07 Thread Manfred Spraul

I finished my single copy pipe/fifo implementation.

Main changes:
* it's more a rewrite of pipe_read() and pipe_write().
Both functions were a nightmare of nested loops and gotos.
I wrote a test app - with the right timing multiple writers on a fifo
can race and then they busy loop in the current pipe_write() - adding
another set of goto's for single copy is imho a bad idea.

* slightly faster for non-zero copy transfers due to the code
simplification.

* No single copy for exactly 4096 byte writes, only > PIPE_BUF.
Single copy (and thus blocking) such writes could trigger bugs in user
space apps that errorneously assume that a pipe write of PIPE_BUF bytes
after a successful poll(POLLOUT) doesn't block even if O_NONBLOCK is not
set. It's not defined in posix or susv2, but no unix version I tested
blocks in such writes.

* on P II/350 single cpu it's a big win (~+70 % bw_pipe)

* if you run 2 instances on a dual cpu P II/350 it's a big win, but if
you run only one instance, then the bw_pipe processes will jump from one
cpu to the other and it's only a small improvement (~+15%).

I've attached the patch, the test app is at
http://colorfullife.com/~manfred/kiopipe/fail.cpp

Please test it!

--
Manfred

// $Header$
// Kernel Version:
//  VERSION = 2
//  PATCHLEVEL = 4
//  SUBLEVEL = 1
//  EXTRAVERSION =
--- 2.4/fs/pipe.c   Thu Nov 16 22:18:26 2000
+++ build-2.4/fs/pipe.c Wed Feb  7 17:17:13 2001
@@ -10,6 +10,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 #include 
 
@@ -35,97 +37,149 @@
down(PIPE_SEM(*inode));
 }
 
+struct pipe_pio {
+   int *pdone;
+   struct kiobuf iobuf;
+};
+
+static int
+pio_copy_to_user(struct kiobuf* iobuf, int offset, char* ubuf, int chars)
+{
+   int page_nr;
+   offset += iobuf->offset;
+   page_nr = offset/PAGE_SIZE;
+   offset %= PAGE_SIZE;
+   while(chars) {
+   int pcount = PAGE_SIZE-offset;
+   void *kaddr;
+   if (pcount > chars)
+   pcount = chars;
+   kaddr = kmap(iobuf->maplist[page_nr]);
+   if (copy_to_user(ubuf, kaddr+offset, pcount))
+   return 1;
+   kunmap(iobuf->maplist[page_nr]);
+   chars -= pcount;
+   ubuf += pcount;
+   offset = 0;
+   page_nr++;
+   }
+   return 0;
+}
+
 static ssize_t
 pipe_read(struct file *filp, char *buf, size_t count, loff_t *ppos)
 {
struct inode *inode = filp->f_dentry->d_inode;
-   ssize_t size, read, ret;
+   ssize_t read, ret;
 
-   /* Seeks are not allowed on pipes.  */
-   ret = -ESPIPE;
-   read = 0;
+   /* pread is not allowed on pipes.  */
if (ppos != >f_pos)
-   goto out_nolock;
+   return -ESPIPE;
 
/* Always return 0 on null read.  */
-   ret = 0;
if (count == 0)
-   goto out_nolock;
+   return 0;
 
-   /* Get the pipe semaphore */
-   ret = -ERESTARTSYS;
-   if (down_interruptible(PIPE_SEM(*inode)))
-   goto out_nolock;
+   down(PIPE_SEM(*inode));
 
-   if (PIPE_EMPTY(*inode)) {
-do_more_read:
+   read = 0;
+   for (;;) {
+   /* read what data is available */
+   int chars = PIPE_LEN(*inode);
+   if (chars) {
+   char *pipebuf = PIPE_BASE(*inode);
+   int offset = PIPE_START(*inode);
+
+   if (chars > count)
+   chars = count;
+   ret = -EFAULT;
+   if(PIPE_IS_PIO(*inode)) {
+   struct pipe_pio* pio = ((struct pipe_pio*)pipebuf);
+   if(pio_copy_to_user(>iobuf, offset, buf, chars))
+   goto out;
+
+   PIPE_LEN(*inode) -= chars;
+   if(!PIPE_LEN(*inode)) {
+   unmap_kiobuf(>iobuf);
+   *pio->pdone = 1;
+   PIPE_IS_PIO(*inode) = 0;
+   PIPE_START(*inode) = 0;
+   } else {
+   PIPE_START(*inode) += chars;
+   }
+   } else {
+   if (chars > PIPE_SIZE-offset)
+   chars = PIPE_SIZE-offset;
+   if (copy_to_user(buf, pipebuf+offset, chars))
+   goto out;
+   PIPE_LEN(*inode) -= chars;
+   if (!PIPE_LEN(*inode)) {
+   /* Cache behaviour optimization */
+   PIPE_START(*inode) = 0;
+   } else {
+

Re: [PATCH] Hamachi not doing pci_enable before reading resources

2001-02-07 Thread Alan Cox

> I stand by my statement. PCI devices that require resources are
> required to provide read/write registers indicating these resources
> whether or not the enable bits are set. This is mandatory. 

And the assignment of those resources is done by pci_enable_device. So
looking at the irq data or the BAR assignment until pci_enable_device
has done its work doesnt tell you anything meaningful

It doesnt just flip the IO and MEM bits

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



  1   2   3   4   5   >