* Re: [PATCH 2.6.2-rc1-mm3] drivers/usb/storage/dpcm.c
From: Randy.Dunlap @ 2004-01-26 18:12 UTC (permalink / raw)
To: Bryan Whitehead; +Cc: mdharm-kernel, linux-kernel
In-Reply-To: <40138599.1030406@jpl.nasa.gov>
On Sun, 25 Jan 2004 01:00:09 -0800 Bryan Whitehead <driver@jpl.nasa.gov> wrote:
| Matthew Dharm wrote:
| > One message a day to report a particular bug is really enough.... :)
| >
| > That said, I think it would be better to add the ifdef's instead of more
| > substantial code changes.
|
| No problemo, I was just getting my feet wet on small compiler warning
| fixes and the SubmitingPatches doc said ifdefs were from the devil. ;)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FWIW, I prefer Bryan's patch instead of the #ifdefs.
--
~Randy
| I'll sent a patch later sunday...
|
| >
| > Matt
| >
| > On Sat, Jan 24, 2004 at 09:03:42PM -0800, Bryan Whitehead wrote:
| >
| >>In function dpcm_transport the compiler complains about ret not being used:
| >>drivers/usb/storage/dpcm.c: In function `dpcm_transport':
| >>drivers/usb/storage/dpcm.c:46: warning: unused variable `ret'
| >>
| >>ret is not used if CONFIG_USB_STORAGE_SDDR09 is not set. Instead of adding
| >>more ifdef's to the code this patch puts ret to use for the other 2 cases in
| >>the switch statement (case 0 and default).
| >>
| >>--- drivers/usb/storage/dpcm.c.orig 2004-01-24 20:51:40.631038904 -0800
| >>+++ drivers/usb/storage/dpcm.c 2004-01-24 20:50:05.155553384 -0800
| >>@@ -56,7 +56,8 @@ int dpcm_transport(Scsi_Cmnd *srb, struc
| >> /*
| >> * LUN 0 corresponds to the CompactFlash card reader.
| >> */
| >>- return usb_stor_CB_transport(srb, us);
| >>+ ret = usb_stor_CB_transport(srb, us);
| >>+ break;
| >>
| >> #ifdef CONFIG_USB_STORAGE_SDDR09
| >> case 1:
| >>@@ -72,11 +73,12 @@ int dpcm_transport(Scsi_Cmnd *srb, struc
| >> ret = sddr09_transport(srb, us);
| >> srb->device->lun = 1; us->srb->device->lun = 1;
| >>
| >>- return ret;
| >>+ break;
| >> #endif
| >>
| >> default:
| >> US_DEBUGP("dpcm_transport: Invalid LUN %d\n", srb->device->lun);
| >>- return USB_STOR_TRANSPORT_ERROR;
| >>+ ret = USB_STOR_TRANSPORT_ERROR;
| >> }
| >>+ return ret;
| >> }
| >>
| >>--
^ permalink raw reply
* [U-Boot-Users] Patch: bzip2 compression for small memory footprint boards
From: Yuli Barcohen @ 2004-01-26 18:16 UTC (permalink / raw)
To: u-boot
BZIP2 decompression algorithm requires at least 4MB of malloc space. If
such an amount is unavailable, another (slower) algorithm can be used
which requires ~2300KB in the worst case. Attached patch selects the
decompression algorithm according to the available memory.
--
========================================================================
Yuli Barcohen | Phone +972-9-765-1788 | Software Project Leader
yuli at arabellasw.com | Fax +972-9-765-7494 | Arabella Software, Israel
========================================================================
-------------- next part --------------
Index: common/cmd_bootm.c
===================================================================
RCS file: /home/CVS/u-boot/u-boot/common/cmd_bootm.c,v
retrieving revision 1.1.1.9
retrieving revision 1.4
diff -p -u -r1.1.1.9 -r1.4
--- common/cmd_bootm.c 7 Jan 2004 13:32:42 -0000 1.1.1.9
+++ common/cmd_bootm.c 22 Jan 2004 21:14:32 -0000 1.4
@@ -333,8 +333,14 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag
#ifdef CONFIG_BZIP2
case IH_COMP_BZIP2:
printf (" Uncompressing %s ... ", name);
+ /*
+ * If we've got less than 4 MB of malloc() space,
+ * use slower decompression algorithm which requires
+ * at most 2300 KB of memory.
+ */
i = BZ2_bzBuffToBuffDecompress ((char*)ntohl(hdr->ih_load),
- &unc_len, (char *)data, len, 0, 0);
+ &unc_len, (char *)data, len,
+ CFG_MALLOC_LEN < (4096 * 1024), 0);
if (i != BZ_OK) {
printf ("BUNZIP2 ERROR %d - must RESET board to recover\n", i);
SHOW_BOOT_PROGRESS (-6);
^ permalink raw reply
* Re: meaning of sizeof(_OS)?
From: Sergey Vlasov @ 2004-01-26 18:14 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
In-Reply-To: <20040126111648.GA2004@luna.mooo.com>
On Mon, 26 Jan 2004 13:16:48 +0200 Micha Feigin wrote:
> Was wondering at least theoretically what is supposed to be done
> different by the dsdt if the os is M$ NT/XP since I saw there is an
> explicit check of _OS against "Microsoft Windows NT".
> Also I saw some people talking about a size check of the _OS variable
> against 0x14 to see if its the M$ os. In my dsdt the check is for some
> reason against 0x27, any idea what os its looking for? (is LEqual less
> then or equall or does the L mean something else?)
0x27 is probably "Microsoft WindowsME:Millennium Edition".
(I have seen a DSDT which compares strings in one place and checks
length in another place...)
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* Re: [PATCH] Better "Losing Ticks" Error Message
From: Pavel Machek @ 2004-01-26 18:12 UTC (permalink / raw)
To: akpm, johnstul, linux-kernel
In-Reply-To: <20040124032147.GA177@h00a0cca1a6cf.ne.client2.attbi.com>
Hi!
>
> Andrew,
>
> Seems like a lot of people see the below error message, but aren't quite sure
> why it happens or how to fix it. I sure didn't.
>
> Here's my attempt at remedying that - Should apply cleanly against 2.6.1.
>
> Thanks,
> Timothy
>
> diff -urN linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c
> --- linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c 2004-01-09 01:59:46.000000000 -0500
> +++ linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c 2004-01-23 21:16:24.000000000 -0500
> @@ -232,9 +232,13 @@
> /* sanity check to ensure we're not always losing ticks */
> if (lost_count++ > 100) {
> printk(KERN_WARNING "Losing too many ticks!\n");
> - printk(KERN_WARNING "TSC cannot be used as a timesource."
> - " (Are you running with SpeedStep?)\n");
> - printk(KERN_WARNING "Falling back to a sane timesource.\n");
> + printk(KERN_WARNING "TSC cannot be used as a timesource. ");
> + printk(KERN_WARNING "Possible reasons for this are:\n");
> + printk(KERN_WARNING " You're running with Speedstep,\n");
> + printk(KERN_WARNING " You don't have DMA enabled for your hard disk (see hdparm),\n");
> + printk(KERN_WARNING " Incorrect TSC synchronization on an SMP system (see dmesg).\n");
> + printk(KERN_WARNING "Falling back to a sane timesource now.\n");
> +
> clock_fallback();
> }
> } else
If something, make it "Loosing too many ticks, TSC cannot be used as a
timesource (see Documentation/time.txt)". We do not want 7 lines of
messages....
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
^ permalink raw reply
* [2.6.2-rc1-mm3] Badness in interruptible_sleep_on.
From: Paul Blazejowski @ 2004-01-26 18:11 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, XFS List
[-- Attachment #1.1: Type: text/plain, Size: 1131 bytes --]
Hello Andrew,
I see these panics rated to pagebuf from XFS on:
Linux blaze 2.6.2-rc1-mm3 #1 Sun Jan 25 18:24:01 EST 2004 i686 AMD
Athlon(tm) XP 3200+ AuthenticAMD GNU/Linux
Code snip:
Badness in interruptible_sleep_on at kernel/sched.c:2242
Call Trace:
[<c011cb93>] interruptible_sleep_on+0x103/0x110
[<c011c740>] default_wake_function+0x0/0x20
[<c0209db0>] pagebuf_daemon+0x0/0x260
[<c0209ff4>] pagebuf_daemon+0x244/0x260
ret_from_fork+0x6/0x14
[<c0209d80>] pagebuf_daemon_wakeup+0x0/0x30
[<c0209db0>] <6>hda: 58633344 sectors (30020 MB) w/2048KiB Cache,
CHS=58168/16/63, UDMA(100)
hda: hda1
pagebuf_daemon+0x0/0x260
[<c0108e49>] kernel_thread_helper+0x5/0xc
Also this creaps in:
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
atkbd.c: Unknown key released (translated set 2, code 0x7a on
isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
Regards,
Paul B.
[-- Attachment #1.2: dmesg-2.6.2-rc1-mm3.txt --]
[-- Type: text/plain, Size: 21034 bytes --]
Linux version 2.6.2-rc1-mm3 (root@blaze) (gcc version 3.3.2) #1 Sun Jan 25 18:24:01 EST 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)
BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f5330
hm, page 000f5000 reserved twice.
hm, page 000f6000 reserved twice.
hm, page 000f0000 reserved twice.
hm, page 000f1000 reserved twice.
zapping low mappings.
On node 0 totalpages: 262128
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 32752 pages, LIFO batch:7
DMI 2.3 present.
ACPI: RSDP (v000 Nvidia ) @ 0x000f6d30
ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3000
ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3040
ACPI: MADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff7640
ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:10 APIC version 16
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x02] address[0xfec00000] global_irq_base[0x0])
IOAPIC[0]: Assigned apic_id 2
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, IRQ 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI BALANCE SET
Enabling APIC mode: Flat. Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Built 1 zonelists
Kernel command line: auto BOOT_IMAGE=Slackware ro root=801 rootflags=quota console=ttyS0,57600n8 console=tty0
current: c0392a60
current->thread_info: c0408000
Initializing CPU#0
PID hash table entries: 4096 (order 12: 32768 bytes)
Detected 2204.975 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Memory: 1033604k/1048512k available (2308k kernel code, 14000k reserved, 790k data, 176k init, 131008k highmem)
Calibrating delay loop... 4358.14 BogoMIPS
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (ungzip failed); looks like an initrd
Freeing initrd memory: 38k freed
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(tm) XP 3200+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
ENABLING IO-APIC IRQs
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not connected.
..TIMER: vector=0x31 pin1=2 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC
...trying to set up timer (IRQ0) through the 8259A ... failed.
...trying to set up timer as Virtual Wire IRQ... failed.
...trying to set up timer as ExtINT IRQ... works.
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 2204.0554 MHz.
..... host bus clock speed is 400.0828 MHz.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfaf10, last bus=3
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040116
IOAPIC[0]: Set PCI routing entry (2-9 -> 0x71 -> IRQ 9 Mode:1 Active:0)
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LAPU] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [APC1] (IRQs *16)
ACPI: PCI Interrupt Link [APC2] (IRQs *17)
ACPI: PCI Interrupt Link [APC3] (IRQs *18)
ACPI: PCI Interrupt Link [APC4] (IRQs *19)
ACPI: PCI Interrupt Link [APC5] (IRQs 16)
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCS] (IRQs *23)
ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22)
ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22)
SCSI subsystem initialized
drivers/usb/core/usb.c: registered new driver usbfs
drivers/usb/core/usb.c: registered new driver hub
ACPI: PCI Interrupt Link [APCS] enabled at IRQ 23
IOAPIC[0]: Set PCI routing entry (2-23 -> 0xa9 -> IRQ 23 Mode:1 Active:0)
00:00:01[A] -> 2-23 -> IRQ 23
Pin 2-23 already programmed
ACPI: PCI Interrupt Link [APCF] enabled at IRQ 20
IOAPIC[0]: Set PCI routing entry (2-20 -> 0xb1 -> IRQ 20 Mode:1 Active:0)
00:00:02[A] -> 2-20 -> IRQ 20
ACPI: PCI Interrupt Link [APCG] enabled at IRQ 22
IOAPIC[0]: Set PCI routing entry (2-22 -> 0xb9 -> IRQ 22 Mode:1 Active:0)
00:00:02[B] -> 2-22 -> IRQ 22
ACPI: PCI Interrupt Link [APCL] enabled at IRQ 21
IOAPIC[0]: Set PCI routing entry (2-21 -> 0xc1 -> IRQ 21 Mode:1 Active:0)
00:00:02[C] -> 2-21 -> IRQ 21
ACPI: PCI Interrupt Link [APCH] enabled at IRQ 20
Pin 2-20 already programmed
ACPI: PCI Interrupt Link [APCI] enabled at IRQ 22
Pin 2-22 already programmed
ACPI: PCI Interrupt Link [APCJ] enabled at IRQ 21
Pin 2-21 already programmed
ACPI: PCI Interrupt Link [APCK] enabled at IRQ 20
Pin 2-20 already programmed
ACPI: PCI Interrupt Link [APCM] enabled at IRQ 22
Pin 2-22 already programmed
ACPI: PCI Interrupt Link [APCZ] enabled at IRQ 21
Pin 2-21 already programmed
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
IOAPIC[0]: Set PCI routing entry (2-18 -> 0xc9 -> IRQ 18 Mode:1 Active:0)
00:01:06[A] -> 2-18 -> IRQ 18
ACPI: PCI Interrupt Link [APC4] enabled at IRQ 19
IOAPIC[0]: Set PCI routing entry (2-19 -> 0xd1 -> IRQ 19 Mode:1 Active:0)
00:01:06[B] -> 2-19 -> IRQ 19
ACPI: PCI Interrupt Link [APC1] enabled at IRQ 16
IOAPIC[0]: Set PCI routing entry (2-16 -> 0xd9 -> IRQ 16 Mode:1 Active:0)
00:01:06[C] -> 2-16 -> IRQ 16
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
IOAPIC[0]: Set PCI routing entry (2-17 -> 0xe1 -> IRQ 17 Mode:1 Active:0)
00:01:06[D] -> 2-17 -> IRQ 17
Pin 2-19 already programmed
Pin 2-16 already programmed
Pin 2-17 already programmed
Pin 2-18 already programmed
Pin 2-16 already programmed
Pin 2-17 already programmed
Pin 2-18 already programmed
Pin 2-19 already programmed
Pin 2-17 already programmed
Pin 2-18 already programmed
Pin 2-19 already programmed
Pin 2-16 already programmed
Pin 2-18 already programmed
Pin 2-19 already programmed
Pin 2-16 already programmed
Pin 2-17 already programmed
Pin 2-16 already programmed
Pin 2-16 already programmed
Pin 2-16 already programmed
Pin 2-16 already programmed
Pin 2-18 already programmed
Pin 2-18 already programmed
Pin 2-18 already programmed
Pin 2-18 already programmed
Pin 2-17 already programmed
Pin 2-17 already programmed
Pin 2-17 already programmed
Pin 2-17 already programmed
Pin 2-19 already programmed
number of MP IRQ sources: 15.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
....... : Delivery Type: 0
....... : LTS : 0
.... register #01: 00170011
....... : max redirection entries: 0017
....... : PRQ implemented: 0
....... : IO APIC version: 0011
.... register #02: 00000000
....... : arbitration: 00
.... IRQ redirection table:
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
00 000 00 1 0 0 0 0 0 0 00
01 001 01 0 0 0 0 0 1 1 39
02 000 00 1 0 0 0 0 0 0 00
03 001 01 0 0 0 0 0 1 1 41
04 001 01 0 0 0 0 0 1 1 49
05 001 01 0 0 0 0 0 1 1 51
06 001 01 0 0 0 0 0 1 1 59
07 001 01 1 0 0 0 0 1 1 61
08 001 01 0 0 0 0 0 1 1 69
09 001 01 0 1 0 0 0 1 1 71
0a 001 01 0 0 0 0 0 1 1 79
0b 001 01 0 0 0 0 0 1 1 81
0c 001 01 0 0 0 0 0 1 1 89
0d 001 01 0 0 0 0 0 1 1 91
0e 001 01 0 0 0 0 0 1 1 99
0f 001 01 0 0 0 0 0 1 1 A1
10 001 01 1 1 0 0 0 1 1 D9
11 001 01 1 1 0 0 0 1 1 E1
12 001 01 1 1 0 0 0 1 1 C9
13 001 01 1 1 0 0 0 1 1 D1
14 001 01 1 1 0 0 0 1 1 B1
15 001 01 1 1 0 0 0 1 1 C1
16 001 01 1 1 0 0 0 1 1 B9
17 001 01 1 1 0 0 0 1 1 A9
IRQ to pin mappings:
IRQ0 -> 0:2
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9-> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
IRQ16 -> 0:16
IRQ17 -> 0:17
IRQ18 -> 0:18
IRQ19 -> 0:19
IRQ20 -> 0:20
IRQ21 -> 0:21
IRQ22 -> 0:22
IRQ23 -> 0:23
.................................... done.
PCI: Using ACPI for IRQ routing
PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off'
vesafb: framebuffer at 0xd0000000, mapped to 0xf880c000, size 16384k
vesafb: mode is 1024x768x16, linelength=2048, pages=41
vesafb: protected mode interface info at c000:5654
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
fb0: VESA VGA frame buffer device
Machine check exception polling timer started.
Total HugeTLB memory allocated, 0
ikconfig 0.7 with /proc/config*
highmem bounce pool size: 64 pages
VFS: Disk quotas dquot_6.5.1
SGI XFS with ACLs, large block numbers, no debug enabled
SGI XFS Quota Management subsystem
Initializing Cryptographic API
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
ACPI: Power Button (FF) [PWRF]
ACPI: Processor [CPU0] (supports C1)
Badness in interruptible_sleep_on at kernel/sched.c:2242
Call Trace:
[<c011cb93>] interruptible_sleep_on+0x103/0x110
[<c011c740>] default_wake_function+0x0/0x20
[<c0209db0>] pagebuf_daemon+0x0/0x260
[<c0209ff4>] pagebuf_daemon+0x244/0x260
[<c034049a>] <6>bootsplash 3.1.3-2003/11/14: looking for picture.... silentjpeg size 19730 bytes, found (1024x768, 19600 bytes, v3).
Console: switching to colour frame buffer device 128x48
pty: 512 Unix98 ptys configured
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE2: IDE controller at PCI slot 0000:00:09.0
NFORCE2: chipset revision 162
NFORCE2: not 100% native mode: will probe irqs later
NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
hda: WDC WD300BB-00AUA1, ATA DISK drive
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hdc: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
ret_from_fork+0x6/0x14
[<c0209d80>] pagebuf_daemon_wakeup+0x0/0x30
[<c0209db0>] <6>hda: 58633344 sectors (30020 MB) w/2048KiB Cache, CHS=58168/16/63, UDMA(100)
hda: hda1
pagebuf_daemon+0x0/0x260
[<c0108e49>] kernel_thread_helper+0x5/0xc
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 2940 Ultra2 SCSI adapter>
aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
(scsi0:A:3): 40.000MB/s transfers (20.000MHz, offset 15, 16bit)
Vendor: PLEXTOR Model: CD-ROM PX-40TW Rev: 1.05
Type: CD-ROM ANSI SCSI revision: 02
(scsi0:A:4): 20.000MB/s transfers (20.000MHz, offset 16)
Vendor: PLEXTOR Model: CD-R PX-W1210S Rev: 1.06
Type: CD-ROM ANSI SCSI revision: 02
(scsi0:A:6): 80.000MB/s transfers (40.000MHz, offset 63, 16bit)
Vendor: IBM Model: DDYS-T36950N Rev: S80D
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled. Depth 32
SCSI device sda: 71687340 512-byte hdwr sectors (36704 MB)
SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 >
Attached scsi disk sda at scsi0, channel 0, id 6, lun 0
Console: switching to colour frame buffer device 128x48
ehci_hcd 0000:00:02.2: EHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.2 to 64
ehci_hcd 0000:00:02.2: irq 21, pci mem f980f000
ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1
PCI: cache line size of 64 is not supported by device 0000:00:02.2
ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
ohci_hcd: 2003 Oct 13 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd 0000:00:02.0: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.0 to 64
ohci_hcd 0000:00:02.0: irq 20, pci mem f9811000
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ohci_hcd 0000:00:02.1: OHCI Host Controller
PCI: Setting latency timer of device 0000:00:02.1 to 64
ohci_hcd 0000:00:02.1: irq 22, pci mem f9813000
ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
drivers/usb/core/usb.c: registered new driver usb-storage
USB Mass Storage support registered.
drivers/usb/core/usb.c: registered new driver hid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP: Hash tables configured (established 262144 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
BIOS EDD facility v0.11 2003-Dec-17, 3 devices found
Please report your BIOS at http://domsch.com/linux/edd30/results.html
XFS mounting filesystem sda1
Ending clean XFS mount for filesystem: sda1
VFS: Mounted root (xfs filesystem) readonly.
Freeing unused kernel memory: 176k freed
hub 2-0:1.0: new USB device on port 2, assigned address 2
drivers/usb/input/hid-ff.c: hid_ff_init could not find initializer
input: USB HID v1.10 Mouse [Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)] on usb-0000:00:02.0-2
Adding 248968k swap on /dev/sda7. Priority:-1 extents:1
hub 3-0:1.0: new USB device on port 1, assigned address 2
XFS mounting filesystem sda2
Ending clean XFS mount for filesystem: sda2
XFS mounting filesystem sda3
Ending clean XFS mount for filesystem: sda3
XFS mounting filesystem sda5
Ending clean XFS mount for filesystem: sda5
XFS mounting filesystem sda6
Ending clean XFS mount for filesystem: sda6
Real Time Clock Driver v1.12
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected NVIDIA nForce2 chipset
agpgart: Maximum main memory to use for agp memory: 941M
agpgart: AGP aperture is 256M @ 0xc0000000
Intel(R) PRO/1000 Network Driver - version 5.2.27-k1
Copyright (c) 1999-2003 Intel Corporation.
eth0: Intel(R) PRO/1000 Network Connection
NET: Registered protocol family 10
Disabled Privacy Extensions on device c03cb3a0(lo)
IPv6 over IPv4 tunneling driver
request_module: failed /sbin/modprobe -- parport_lowlevel. error = 256
lp: driver loaded but no devices found
PCI: Setting latency timer of device 0000:00:06.0 to 64
intel8x0_measure_ac97_clock: measured 49397 usecs
intel8x0: clocking to 47422
request_module: failed /sbin/modprobe -- char-major-10-134. error = 256
request_module: failed /sbin/modprobe -- char-major-226-0. error = 256
fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[fglrx] Maximum main memory to use for locked dma buffers: 928 MBytes.
[fglrx] module loaded - fglrx 3.2.9 [Nov 10 2003] on minor 0
[fglrx] AGP detected, AgpState = 0x1f000217 (hardware caps of chipset)
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:03:00.0 into 4x mode
[fglrx] AGP enabled, AgpCommand = 0x1f000314 (selected caps)
[fglrx] free AGP = 256126976
[fglrx] max AGP = 256126976
[fglrx] free LFB = 49283072
[fglrx] max LFB = 49283072
[fglrx] free Inv = 0
[fglrx] max Inv = 0
[fglrx] total Inv = 0
[fglrx] total TIM = 0
[fglrx] total FB = 0
[fglrx] total AGP = 65536
atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
e1000: eth0 NIC Link is Up 100 Mbps Full Duplex
eth0: no IPv6 routers present
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- block-major-11-0. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
request_module: failed /sbin/modprobe -- sound-slot-1. error = 256
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* [PATCH] More dgrs cleanup
From: Stephen Hemminger @ 2004-01-26 18:10 UTC (permalink / raw)
To: viro; +Cc: Andrew Morton, Jeff Garzik, netdev
In-Reply-To: <20040124070450.GN21151@parcelfarce.linux.theplanet.co.uk>
On Sat, 24 Jan 2004 07:04:50 +0000
viro@parcelfarce.linux.theplanet.co.uk wrote:
> On Fri, Jan 23, 2004 at 10:24:59PM -0800, Andrew Morton wrote:
> > static int __init dgrs_eisa_probe (struct device *gendev)
> > {
> > struct net_device *dev;
> > struct eisa_device *edev = to_eisa_device(gendev);
> > uint io = edev->base_addr;
> > uint mem;
> > uint irq;
> > int rc = -ENODEV; /* Not EISA configured */
> >
> > if (!request_region(io, 256, "RightSwitch")) {
> > printk(KERN_ERR "%s: io 0x%3lX, which is busy.\n", dev->name,
> > dev->base_addr);
> > return -EBUSY;
> > }
> >
> > `dev' is uninitialised when we do that printk.
>
> IIRC, dgrs patch was from Stephen. AFAICS, we want edev->base_addr instead
> of dev->base_addr.
Yes, that is what the eisa probe code passes in for the base address.
dev->base_addr is then set in dgrs_found_device.
>Fsck knows what should replace dev->name - for pci
> I'd say pci_name(edev), dunno about eisa...
I just kept what the original code was doing... the name doesn't matter that much.
Many drivers have a problem now when they do setup before register-netdev and print
error messages.
For now how about this which just uses "dgrs" which is what everything else does.
Al can clean it out in the next purge...
---------------------------------------
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1594 -> 1.1595
# drivers/net/dgrs.c 1.23 -> 1.24
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 04/01/26 shemminger@osdl.org 1.1595
# More cleanup.
# * get rid of typedef for private data struct
# * tag most of the printk's with priority
# * don't print "eth%d" when name not set
# * reserve resources as "dgrs" not "RightSwitch"
# * avoid race in irq detect logic
# --------------------------------------------
#
diff -Nru a/drivers/net/dgrs.c b/drivers/net/dgrs.c
--- a/drivers/net/dgrs.c Mon Jan 26 10:08:44 2004
+++ b/drivers/net/dgrs.c Mon Jan 26 10:08:44 2004
@@ -192,7 +192,7 @@
/*
* Private per-board data structure (dev->priv)
*/
-typedef struct
+struct dgrs_priv
{
/*
* Stuff for generic ethercard I/F
@@ -242,9 +242,7 @@
int nports; /* Number of physical ports (4 or 6) */
int chan; /* Channel # (1-6) for this device */
struct net_device *devtbl[6]; /* Ptrs to N device structs */
-
-} DGRS_PRIV;
-
+};
/*
* reset or un-reset the IDT processor
@@ -252,7 +250,7 @@
static void
proc_reset(struct net_device *dev0, int reset)
{
- DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv;
+ struct dgrs_priv *priv0 = dev0->priv;
if (priv0->plxreg)
{
@@ -276,7 +274,7 @@
static int
check_board_dma(struct net_device *dev0)
{
- DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv;
+ struct dgrs_priv *priv0 = dev0->priv;
ulong x;
/*
@@ -357,7 +355,7 @@
{
int i;
ulong csr = 0;
- DGRS_PRIV *priv = (DGRS_PRIV *) dev->priv;
+ struct dgrs_priv *priv = dev->priv;
if (pciaddr)
{
@@ -455,7 +453,7 @@
void
dgrs_rcv_frame(
struct net_device *dev0,
- DGRS_PRIV *priv0,
+ struct dgrs_priv *priv0,
I596_CB *cbp
)
{
@@ -465,7 +463,7 @@
uchar *putp;
uchar *p;
struct net_device *devN;
- DGRS_PRIV *privN;
+ struct dgrs_priv *privN;
/*
* Determine Nth priv and dev structure pointers
@@ -481,7 +479,7 @@
*/
if (devN == NULL)
goto out;
- privN = (DGRS_PRIV *) devN->priv;
+ privN = devN->priv;
}
else
{ /* Switch mode */
@@ -489,8 +487,6 @@
privN = priv0;
}
- if (0) printk("%s: rcv len=%ld\n", devN->name, cbp->xmit.count);
-
/*
* Allocate a message block big enough to hold the whole frame
*/
@@ -694,9 +690,9 @@
static int dgrs_start_xmit(struct sk_buff *skb, struct net_device *devN)
{
- DGRS_PRIV *privN = (DGRS_PRIV *) devN->priv;
+ struct dgrs_priv *privN = devN->priv;
struct net_device *dev0;
- DGRS_PRIV *priv0;
+ struct dgrs_priv *priv0;
I596_RBD *rbdp;
int count;
int i, len, amt;
@@ -707,7 +703,7 @@
if (dgrs_nicmode)
{
dev0 = privN->devtbl[0];
- priv0 = (DGRS_PRIV *) dev0->priv;
+ priv0 = dev0->priv;
}
else
{
@@ -810,7 +806,7 @@
*/
static struct net_device_stats *dgrs_get_stats( struct net_device *dev )
{
- DGRS_PRIV *priv = (DGRS_PRIV *) dev->priv;
+ struct dgrs_priv *priv = dev->priv;
return (&priv->stats);
}
@@ -821,7 +817,7 @@
static void dgrs_set_multicast_list( struct net_device *dev)
{
- DGRS_PRIV *priv = (DGRS_PRIV *) dev->priv;
+ struct dgrs_priv *priv = dev->priv;
priv->port->is_promisc = (dev->flags & IFF_PROMISC) ? 1 : 0;
}
@@ -831,7 +827,7 @@
*/
static int dgrs_ioctl(struct net_device *devN, struct ifreq *ifr, int cmd)
{
- DGRS_PRIV *privN = (DGRS_PRIV *) devN->priv;
+ struct dgrs_priv *privN = devN->priv;
DGRS_IOCTL ioc;
int i;
@@ -897,7 +893,7 @@
static irqreturn_t dgrs_intr(int irq, void *dev_id, struct pt_regs *regs)
{
struct net_device *dev0 = (struct net_device *) dev_id;
- DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv;
+ struct dgrs_priv *priv0 = dev0->priv;
I596_CB *cbp;
int cmd;
int i;
@@ -987,7 +983,7 @@
static int __init
dgrs_download(struct net_device *dev0)
{
- DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv;
+ struct dgrs_priv *priv0 = dev0->priv;
int is;
unsigned long i;
@@ -1147,12 +1143,12 @@
int __init
dgrs_probe1(struct net_device *dev)
{
- DGRS_PRIV *priv = (DGRS_PRIV *) dev->priv;
+ struct dgrs_priv *priv = dev->priv;
unsigned long i;
int rc;
- printk("%s: Digi RightSwitch io=%lx mem=%lx irq=%d plx=%lx dma=%lx\n",
- dev->name, dev->base_addr, dev->mem_start, dev->irq,
+ printk(KERN_INFO "dgrs: Digi RightSwitch io=%lx mem=%lx irq=%d plx=%lx dma=%lx\n",
+ dev->base_addr, dev->mem_start, dev->irq,
priv->plxreg, priv->plxdma);
/*
@@ -1165,19 +1161,24 @@
/*
* Get ether address of board
*/
- printk("%s: Ethernet address", dev->name);
memcpy(dev->dev_addr, priv->port->ethaddr, 6);
- for (i = 0; i < 6; ++i)
- printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
- printk("\n");
- if (dev->dev_addr[0] & 1)
- {
- printk("%s: Illegal Ethernet Address\n", dev->name);
+ if (dev->dev_addr[0] & 1) {
+ printk(KERN_ERR "dgrs: Illegal Ethernet Address");
+ for (i = 0; i < 6; ++i)
+ printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
+ printk("\n");
+
rc = -ENXIO;
goto err_out;
}
+ rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ, "dgrs", dev);
+ if (rc)
+ goto err_out;
+
+ priv->intrcnt = 0;
+
/*
* ACK outstanding interrupts, hook the interrupt,
* and verify that we are getting interrupts from the board.
@@ -1185,21 +1186,17 @@
if (priv->plxreg)
OUTL(dev->base_addr + PLX_LCL2PCI_DOORBELL, 1);
- rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ, "RightSwitch", dev);
- if (rc)
- goto err_out;
-
- priv->intrcnt = 0;
for (i = jiffies + 2*HZ + HZ/2; time_after(i, jiffies); )
{
cpu_relax();
if (priv->intrcnt >= 2)
break;
}
+
if (priv->intrcnt < 2)
{
- printk(KERN_ERR "%s: Not interrupting on IRQ %d (%d)\n",
- dev->name, dev->irq, priv->intrcnt);
+ printk(KERN_ERR "dgrs%x: Not interrupting on IRQ %d (%d)\n",
+ dev->base_addr, dev->irq, priv->intrcnt);
rc = -ENXIO;
goto err_free_irq;
}
@@ -1222,21 +1219,6 @@
return rc;
}
-int __init
-dgrs_initclone(struct net_device *dev)
-{
- DGRS_PRIV *priv = (DGRS_PRIV *) dev->priv;
- int i;
-
- printk("%s: Digi RightSwitch port %d ",
- dev->name, priv->chan);
- for (i = 0; i < 6; ++i)
- printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
- printk("\n");
-
- return (0);
-}
-
static struct net_device * __init
dgrs_found_device(
int io,
@@ -1247,15 +1229,15 @@
struct device *pdev
)
{
- DGRS_PRIV *priv;
+ struct dgrs_priv *priv;
struct net_device *dev;
int i, ret = -ENOMEM;
- dev = alloc_etherdev(sizeof(DGRS_PRIV));
+ dev = alloc_etherdev(sizeof(struct dgrs_priv));
if (!dev)
goto err0;
- priv = (DGRS_PRIV *)dev->priv;
+ priv = (struct dgrs_priv *)dev->priv;
dev->base_addr = io;
dev->mem_start = mem;
@@ -1291,9 +1273,9 @@
for (i = 1; i < priv->nports; ++i)
{
struct net_device *devN;
- DGRS_PRIV *privN;
+ struct dgrs_priv *privN;
/* Allocate new dev and priv structures */
- devN = alloc_etherdev(sizeof(DGRS_PRIV));
+ devN = alloc_etherdev(sizeof(struct dgrs_priv));
ret = -ENOMEM;
if (!devN)
goto fail;
@@ -1301,7 +1283,7 @@
/* Don't copy the network device structure! */
/* copy the priv structure of dev[0] */
- privN = (DGRS_PRIV *)devN->priv;
+ privN = (struct dgrs_priv *)devN->priv;
*privN = *priv;
/* ... and zero out VM areas */
@@ -1312,9 +1294,11 @@
/* ... and base MAC address off address of 1st port */
devN->dev_addr[5] += i;
- ret = dgrs_initclone(devN);
- if (ret)
- goto fail;
+ printk(KERN_INFO "%s: Digi RightSwitch port %d ",
+ dev->name, priv->chan);
+ for (i = 0; i < 6; ++i)
+ printk("%c%2.2x", i ? ':' : ' ', dev->dev_addr[i]);
+ printk("\n");
SET_MODULE_OWNER(devN);
SET_NETDEV_DEV(dev, pdev);
@@ -1346,7 +1330,7 @@
static void __devexit dgrs_remove(struct net_device *dev)
{
- DGRS_PRIV *priv = dev->priv;
+ struct dgrs_priv *priv = dev->priv;
int i;
unregister_netdev(dev);
@@ -1397,7 +1381,8 @@
err = pci_enable_device(pdev);
if (err)
return err;
- err = pci_request_regions(pdev, "RightSwitch");
+
+ err = pci_request_regions(pdev, "dgrs");
if (err)
return err;
@@ -1467,8 +1452,8 @@
uint irq;
int rc = -ENODEV; /* Not EISA configured */
- if (!request_region(io, 256, "RightSwitch")) {
- printk(KERN_ERR "%s: io 0x%3lX, which is busy.\n", dev->name,
+ if (!request_region(io, 256, "dgrs")) {
+ printk(KERN_ERR "dgrs: io 0x%3lX, which is busy.\n",
dev->base_addr);
return -EBUSY;
}
^ permalink raw reply
* Re: MO: opening for write in cdrom.c
From: Pascal Schmidt @ 2004-01-26 18:08 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-kernel
In-Reply-To: <Pine.LNX.4.44.0401261826340.1102-100000@neptune.local>
On Mon, 26 Jan 2004, Pascal Schmidt wrote:
[short summary for l-k: this is about finding out whether an MO is
write-protected or not, code that is yet missing from cdrom.c]
> I'll try to implement the fallback that sd.c uses next. That code
> tries several mode senses with different page and length.
Okay, I got it working with the exact method that sd.c uses. I've put
a few printk's in to see where it fails a mode sense. It's actually
inconsistent:
a) insert a writable disc first after boot, method 1 works
b) then insert a non-writable disc once - suddenly method 1
stops working, even on writable discs, instead method 2
works
c) insert a non-writable disc first after boot, method 1
never works, but method 2 does
There's a third method in sd.c. I've also left that in since I suspect
it might be necessary under some circumstances, too.
>From my testing, I get the impression that this Fujitsu drive only
has mode page 0, meaning that only 0x00 and 0x3F make sense, and that
mode page 0x00 also only contains very few bytes of information -
because asking for 16 bytes from 0x3F didn't work, but 4 bytes does.
What's weird is that asking for all pages can also stop suddenly, after
which only page 0x00 is accessible. And when that happens, we only get
a meaningless request sense of 00/00/00 back.
Oh well, strange hardware indeed.
Here's the patch that works for me, please consider applying and
pushing to Linus/Andrew:
--- linux-2.6.2-rc1/include/linux/cdrom.h.orig Sun Jan 25 23:21:19 2004
+++ linux-2.6.2-rc1/include/linux/cdrom.h Mon Jan 26 18:46:54 2004
@@ -496,6 +496,7 @@ struct cdrom_generic_command
#define GPCMD_GET_MEDIA_STATUS 0xda
/* Mode page codes for mode sense/set */
+#define GPMODE_VENDOR_PAGE 0x00
#define GPMODE_R_W_ERROR_PAGE 0x01
#define GPMODE_WRITE_PARMS_PAGE 0x05
#define GPMODE_AUDIO_CTL_PAGE 0x0e
--- linux-2.6.2-rc1/drivers/cdrom/cdrom.c.orig Sat Jan 24 01:23:30 2004
+++ linux-2.6.2-rc1/drivers/cdrom/cdrom.c Mon Jan 26 18:52:00 2004
@@ -696,6 +696,34 @@ static int cdrom_mrw_open_write(struct c
return ret;
}
+static int mo_open_write(struct cdrom_device_info *cdi)
+{
+ struct cdrom_generic_command cgc;
+ char buffer[255];
+ int ret;
+
+ init_cdrom_command(&cgc, &buffer, 4, CGC_DATA_READ);
+ cgc.quiet = 1;
+
+ /*
+ * obtain write protect information as per
+ * drivers/scsi/sd.c:sd_read_write_protect_flag
+ */
+
+ ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
+ if (ret)
+ ret = cdrom_mode_sense(cdi, &cgc, GPMODE_VENDOR_PAGE, 0);
+ if (ret) {
+ cgc.buflen = 255;
+ ret = cdrom_mode_sense(cdi, &cgc, GPMODE_ALL_PAGES, 0);
+ }
+
+ if (ret)
+ return 1;
+
+ return (buffer[3] & 0x80) != 0;
+}
+
/*
* returns 0 for ok to open write, non-0 to disallow
*/
@@ -707,11 +735,8 @@ static int cdrom_open_write(struct cdrom
ret = cdrom_mrw_open_write(cdi);
else if (CDROM_CAN(CDC_DVD_RAM))
ret = cdrom_dvdram_open_write(cdi);
- /*
- * needs to really check whether media is writeable
- */
else if (CDROM_CAN(CDC_MO_DRIVE))
- ret = 0;
+ ret = mo_open_write(cdi);
return ret;
}
--
Ciao,
Pascal
^ permalink raw reply
* Re: Support for newer gcc/gas options
From: Maciej W. Rozycki @ 2004-01-26 18:08 UTC (permalink / raw)
To: Dimitri Torfs, Ralf Baechle; +Cc: linux-mips
In-Reply-To: <20040125191726.GA18263@sonycom.com>
On Sun, 25 Jan 2004, Dimitri Torfs wrote:
> > Thanks for digging into it. Actually after fixing the typos I've noticed
> > gcc 2.95.4 always implies the ISA from the ABI unless overridden and
> > -mabi=64 implies -mips4, so it bails out with -march/-mcpu set to
> > something like r4600. This also proves the uncertainity about what's
> > passed to gas and so far including an ISA specification in gas settings is
> > tolerable if carefully chosen. So here's a set of new updates -- now the
> > ISA specifier is removed from gcc flags only if it actually works and the
> > ISA specifier for gas is untouched.
> >
> > Hopefully this is the last attempt. Please try it.
>
> Ok for me (tested the HEAD one).
Thanks. Ralf, OK to apply these?
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
patch-mips-2.4.23-20031209-mabi-8
diff -up --recursive --new-file linux-mips-2.4.23-20031209.macro/arch/mips/Makefile linux-mips-2.4.23-20031209/arch/mips/Makefile
--- linux-mips-2.4.23-20031209.macro/arch/mips/Makefile 2003-12-22 02:35:03.000000000 +0000
+++ linux-mips-2.4.23-20031209/arch/mips/Makefile 2004-01-21 23:53:31.000000000 +0000
@@ -98,6 +98,11 @@ while :; do \
gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \
break; \
done; \
+if test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \
+ $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \
+ -xc /dev/null > /dev/null 2>&1 && \
+ gcc_isa=; \
+fi; \
echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa)
#
diff -up --recursive --new-file linux-mips-2.4.23-20031209.macro/arch/mips64/Makefile linux-mips-2.4.23-20031209/arch/mips64/Makefile
--- linux-mips-2.4.23-20031209.macro/arch/mips64/Makefile 2003-12-22 02:32:44.000000000 +0000
+++ linux-mips-2.4.23-20031209/arch/mips64/Makefile 2004-01-21 23:53:25.000000000 +0000
@@ -37,7 +37,7 @@ endif
# crossformat linking we rely on the elf2ecoff tool for format conversion.
#
GCCFLAGS := -I $(TOPDIR)/include/asm/gcc
-GCCFLAGS += -mabi=64 -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipe
+GCCFLAGS += -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipe
GCCFLAGS += $(call check_gcc, -finline-limit=100000,)
LINKFLAGS += -G 0 -static # -N
MODFLAGS += -mlong-calls
@@ -76,6 +76,7 @@ while :; do \
done; \
break; \
done; \
+gcc_abi=-mabi=64; \
gcc_cpu=$$cpu; gcc_isa=$$isa; \
gas_cpu=$$cpu; gas_isa=-Wa,$$isa; \
while :; do \
@@ -87,7 +88,12 @@ while :; do \
gas_opt=; gas_cpu=; gas_isa=; \
break; \
done; \
-echo $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_opt$$gas_cpu $$gas_isa)
+if test "$$gcc_opt" = -march=; then \
+ $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \
+ -xc /dev/null > /dev/null 2>&1 && \
+ gcc_isa=; \
+fi; \
+echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_opt$$gas_cpu $$gas_isa)
#
# CPU-dependent compiler/assembler options for optimization.
patch-mips-2.6.0-20040108-mabi-8
diff -up --recursive --new-file linux-mips-2.6.0-20040108.macro/arch/mips/Makefile linux-mips-2.6.0-20040108/arch/mips/Makefile
--- linux-mips-2.6.0-20040108.macro/arch/mips/Makefile 2004-01-07 04:56:39.000000000 +0000
+++ linux-mips-2.6.0-20040108/arch/mips/Makefile 2004-01-21 23:53:58.000000000 +0000
@@ -108,9 +108,14 @@ while :; do \
gas_abi=; gas_opt=; gas_cpu=; gas_isa=; \
break; \
done; \
-if test x$(gcc-abi) != x$(gas-abi); then \
+if test "$(gcc-abi)" != "$(gas-abi)"; then \
gas_abi="-Wa,-$(gas-abi) -Wa,-mgp$(gcc-abi)"; \
fi; \
+if test "$$gcc_opt" = -march= && test -n "$$gcc_abi"; then \
+ $(CC) $$gcc_abi $$gcc_opt$$gcc_cpu -S -o /dev/null \
+ -xc /dev/null > /dev/null 2>&1 && \
+ gcc_isa=; \
+fi; \
echo $$gcc_abi $$gcc_opt$$gcc_cpu $$gcc_isa $$gas_abi $$gas_opt$$gas_cpu $$gas_isa)
#
^ permalink raw reply
* Squid only on eth1
From: rgomez @ 2004-01-26 18:01 UTC (permalink / raw)
To: linux-newbie
Hi:
I have 2 eth devices in my Linux box, I want that all squid traffic go throw
eth1 an not eth0, how do I configure it?
tks for your time...
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply
* Re: [uml-devel] Draft docs for port console channel
From: Jeff Dike @ 2004-01-26 18:14 UTC (permalink / raw)
To: Dan Shearer; +Cc: user-mode-linux-devel
In-Reply-To: <20040125233841.GT4203@erizo.shearer.org>
dan@shearer.org said:
> Now that you've seen telnetd working reliably, would you accept xterm
> using fd passing too provided testing went ok? Factoring out code and
> one less thing to worry about when porting UML to other types of OS.
There is that, but the xterm man page guarantees that the arguments will
be passed through to the subprocess and makes no such guarantees about
file descriptors.
So, I'd just as soon leave things as they are. This seems to maximize the
likelihood that they will continue to work.
Jeff
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply
* Firewall four nics, two separate routes
From: Ryan Johnson @ 2004-01-26 17:49 UTC (permalink / raw)
To: netfilter
Hi all,
I have a firewall with four nics, two external nics with two public ips and two internal nics with private ips (two different networks). What I would like to do is force all traffic from each internal network to its corresponding external nic. I believe the only solution to this is to use iproute2, but I have had to luck. So traffic from internal net1 will be routed out external nic1, then the other side, internal net2 will be routed out the external nic2. Internal net1 traffic should never go out external nic2 and internal net2 traffic should never go out external nic1.
Thank you in advance,
Ryan
Ryan Johnson
Security Architect
ESP Group
^ permalink raw reply
* Encrypted Filesystem
From: Michael A Halcrow @ 2004-01-26 17:46 UTC (permalink / raw)
To: linux-kernel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I have some time this year to work on an encrypted filesystem for
Linux. I have surveyed various LUG's, tested and reviewed code for
currently existing implementations, and have started modifying some
of them. I would like to settle on a single approach on which to
focus my efforts, and I am interested in getting feedback from the
LKML community as to which approach is the most feasible.
This is the feature wish-list that I have compiled, based on personal
experience and feedback I have received from other individuals and
groups:
- Seamless application to the root filesystem
- Layered over the entire root filesystem
- Unencrypted pass-through mode with minimal overhead
- Files are marked as ``encrypted'' or ``unencrypted'' and treated
accordingly by the encryption layer
- Key->file association
- As opposed to key->blkdev or key->directory granularity
- No encryption metafiles in directories, instead placing that
information into Extended Attributes
- May break some backup utilities that are not EA-aware; may require
another mode where encryption metadata is stored in a header block
on the encrypted file
- Directories can be flagged as ``encrypted-only'', where any new
files created in that directory are, by default, encrypted, with
the key and permissions defined in the directory's metadata
- Processes may have encryption contexts, whereby any new files they
create are encrypted by default according to the process'
authentication
- Make as much metadata about the file as confidential as possible
(filesize, executable bit, etc.)
- Pluggable encryption (I wouldn't mind using a block cipher in CTR
mode)
- Authentication via PAM
- pam_usb
- Bluetooth
- Kerberos
- PAM checks for group membership before allowing access to certain
encrypted files
- Rootplug-based LSM to provide key management (necessary to use
LSM?)
- Secret splitting and/or (m,n)-threshold support on the keys
- Signatures on files flagged for auditing in order to detect
attempts to circumvent the encryption layer (via direct
modifications to the files themselves in the underlying filesystem)
- Ad-hoc groups for access to decrypted versions of files
- i.e., launch web browser, drop group membership by default (like
capability inheritance masks) so that the browser does not have
access to decrypted files by default; PAM module checks for group
membership before allowing access (explicit user authorization on
application access requests)
- Userland utilities to support encrypted file management
- Extensions to nautilus and konqueror to be able to use these
utilities from a common interface (think: right-click, encrypted)
- Distro installation integration
- Transparent shredding, where the underlying filesystem supports it
- Versioning and snapshots (CVS-ish behavior)
- Design to work w/ SE Linux
These are features that have been requested, but are not necessarily
hard requirements for the encrypted filesystem. They are just
suggestions that I have received, and I am not convinced that they are
all feasible.
There are several potential approaches to an encrypted filesystem with
these features, all with varying degrees of modification to the kernel
itself, each with its own set of advantages and disadvantages.
Options that I am aware of include:
- NFS-based (CFS, TCFS)
- CFS is mature
- Performance issues
- Violates UNIX semantics w/ hole behavior
- Single-threaded
- Userland filesystem-based (EncFS+FUSE, CryptoFS+LUFS)
- Newer solutions, not as well accepted or tested as CFS
- KDE team is using SSHFS+FUSE
- Loopback (cryptoloop) encrypted block device
- Mature; in the kernel
- Block device granularity; breaks most incremental backup
applications
- LSM-based
- Is this even possible? Are the hooks that we need there?
- Modifications to VFS (stackable filesystem, like NCryptfs)
- Very low overhead claimed by Erez Zadok
- Full implementation not released
- Key->directory granularity
- Evicts cleartext pages from the cache on process death
- Uses dcache to store attaches
- Other niceties, but it's not released...
My goal is to develop an encrypted filesystem ``for the desktop'',
where a user can right-click on a file in konqueror or nautilus and
check the ``encrypted'' box, and all subsequent accesses by any
processes to that file will require authentication in order for the
file to be decrypted. I have already made some modifications to CFS
to support this functionality, but I am not sure at this moment
whether or not CFS is the best route to go for this.
I have had requests to write a kernel module that, when loaded,
transparently starts acting as the encryption layer on top of whatever
root filesystem is mounted. For example, an ext3 partition may have
encrypted files strewn about, which are accessible only after loading
the module (and authenticating, etc.).
Any advise or direction that the kernel community could provide would
be very much appreciated.
Thanks,
Mike
.___________________________________________________________________.
Michael A. Halcrow
Security Software Engineer, IBM Linux Technology Center
GnuPG Fingerprint: 05B5 08A8 713A 64C1 D35D 2371 2D3C FDDA 3EB6 601D
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQFAFU9wLTz92j62YB0RAkOfAKClVMzKIhw6JtyGvKf8+iFp4e12AwCdFARU
uAhpA7wVjvPMdDQtKSnFzzI=
=TM5Y
-----END PGP SIGNATURE-----
^ permalink raw reply
* RE: preparing toshiba_acpi driver release
From: Brown, Len @ 2004-01-26 17:44 UTC (permalink / raw)
To: John Belmonte; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
Hi John,
In general, it it is best to have smaller patches which are single
logical changes so that they can be reviewed as a unit, tested as a
unit, and applied or un-applied as a unit. However, if the changes are
small, grouping several together is fine.
Also, if the patch applies both to 2.4 and 2.6, but the patch is
different, then I appresiate getting both patches rather than having to
port the patch myself.
Note that the strategy going forward is to create a generic acpi/video
extensions driver that works on all platforms. When it is available, we
should remove the video functionality from toshiba_extras and
asus_extras.
http://bugzilla.kernel.org/show_bug.cgi?id=1944
If anybody is excited about doing this, I'd be happy to work with a
volunteer.
Thanks,
-Len
> -----Original Message-----
> From: John Belmonte [mailto:john-wanGne27zNesTnJN9+BGXg@public.gmane.org]
> Sent: Monday, January 26, 2004 11:33 AM
> To: Brown, Len
> Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: preparing toshiba_acpi driver release
>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello Len,
>
> I'm preparing a new release of the toshiba_acpi driver. Below is the
> tentative changelog. I haven't been following the check-in policy of
> the kernel or acpi subsystem lately, so I'm wondering if I
> can give this
> to you as a single patch or do you need it in several parts.
>
>
> ~ * Fix remote chance of invalid buffer access in write_video.
>
> ~ * Support alternate HCI method path (recent "Phoenix BIOS"
> Toshiba's).
>
> ~ * Report more proc-write errors.
>
> ~ * On proc-reads, report errors via printk instead of proc output.
>
> ~ * Add level to all printk's.
>
> ~ * Add missing __init and __exit function attributes.
>
>
> Regards,
> - -John Belmonte
>
>
> - --
> http:// if ile.org/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.3 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
>
> iD8DBQFAFUE35Nfg6kxAQQoRAjQaAKCsdt8QoBH6w2TbtyPSzfpEy1ywMACguflq
> cc6Z79zaEhCmj4C9USs5TBE=
> =oq55
> -----END PGP SIGNATURE-----
>
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
^ permalink raw reply
* perfctr-2.6.5 released
From: Mikael Pettersson @ 2004-01-26 17:43 UTC (permalink / raw)
To: perfctr-devel; +Cc: linux-kernel
Version 2.6.5 of perfctr, the Linux performance
monitoring counters driver, is now available at the usual
place: http://www.csd.uu.se/~mikpe/linux/perfctr/
Version 2.6.5, 2004-01-26
- Relaxed and corrected control checks on Pentium 4:
* Allow ESCR.CPL_T1 to be non-zero when using global-mode
counters on HT processors.
* Don't require ESCR.CPL_T0 to be non-zero. CPL_T0==0b00
is safe and potentially useful (global counters on HT).
* Require CCCR.ACTIVE_THREAD==0b11 on non-HT processors, as
documented in the IA32 Volume 3 manual. Old non-HT P4s
seem to work Ok for all four values, but this is neither
guaranteed nor useful.
- Per-process counters driver updated for filp->f_mapping
change in 2.6.2-rc kernels.
- Support 2.4.21-9.EL (RHEL3) and 2.4.22-1.2149.nptl (FC1) kernels.
- Library updates for PowerPC:
* Added cpu_type constants for struct perfctr_info.
* Decode PVR and define perfctr_info.cpu_type accordingly.
* Added event set descriptions for 604/604e/750.
/ Mikael Pettersson
^ permalink raw reply
* Re: FYI: ACPI 'sleep 1' resets atkbd keycodes
From: P. Christeas @ 2004-01-26 17:42 UTC (permalink / raw)
To: Vojtech Pavlik; +Cc: lkml
In-Reply-To: <20040125115946.GA414@ucw.cz>
> Patch attached, please test. It'll make it into 2.6.3, with some luck
> even 2.6.2.
Your patch works fine for me. (shame that I had to reboot, though)
Many thanks for your time.
^ permalink raw reply
* Re: [PATCH 3/6][8021q][2.4] Use VLAN tag set functionality in 8021q module
From: Jeff Garzik @ 2004-01-26 17:42 UTC (permalink / raw)
To: Shmuel Hen; +Cc: David S. Miller, netdev, bonding-devel
In-Reply-To: <200401261522.14126.shmulik.hen@intel.com>
Shmuel Hen wrote:
> Also, speaking of the bonding changes queued in netdev-2.4, some of
> those have been queued there since 2.4.23 came out. Will those be
> pushed to Marcelo during 2.4.25 or do you intend to hold them until
> 2.4.26-preX starts?
Sounds like DaveM and I will need to coordinate a bit, then.
Queued bonding stuff for 2.4: Marcelo wanted to wait until 2.4.25
release, so they will go to Marcelo for 2.4.26-pre1.
Queued bonding stuff for 2.6: Similar picture. Waiting for 2.6.2
release, then it goes to Andrew/Linus.
Note that at some point, IMO you need to plan on 2.6-only development,
since keeping bonding the same in 2.4 and 2.6 -through ABI changes- may
not be feasible past the short term. 2.4 developmnent is intentionally
slowing down on Marcelo's side, even though vendors are still shipping
2.4.x stuff.
Jeff
^ permalink raw reply
* Re: [RFC/PATCH] IMQ port to 2.6
From: Vladimir B. Savkin @ 2004-01-26 17:41 UTC (permalink / raw)
To: jamal; +Cc: netdev
In-Reply-To: <1075127396.1746.370.camel@jzny.localdomain>
On Mon, Jan 26, 2004 at 09:29:56AM -0500, jamal wrote:
> > You can see for youself. Police users' traffic to half of the normal rate
> > and here them scream :) Then change policing to shaping using wrr
> > (or htb class for each user), and sfq on the leafs, and users are happy.
> >
>
> ;-> Sorry I dont have time. But this could be a nice paper since
> i havent seen this topic covered. If you want to write one i could
> help provide you an outline.
Over here every good networking engineer I have talked to knows this :)
> > Well, I use wrr + sfq exactly for fairness. No such thing can be
> > achieved with policing only.
> >
>
> Thats what i was assuming. Shaping alone is insufficient as well.
I don't quite understand what you mean here.
Ultimately, any packet will land in some leaf qdisc,
where there is a queue of some maximum size.
If a sender does not reduce its rate, queue overflows, and we drop.
But in my experience this rarely happens with TCP. I think that sender
just see measured RTT increase and reduce its rate or shrinks
its window. I don't know modern TCP implementations in detail,
but I can see it works.
Is this what you call "shaping alone"? If yes, then I don't agree with
you here.
>
> > Here it is:
> >
> > +---------+ +-ppp0- ... - client0
> > | +-eth1-<+-ppp1- ... - client1
> > Internet ----- eth0-+ router | . . . . . . . .
> > | +-eth2-< . . . . . .
> > +---------+ +-pppN- ... - clientN
> >
> >
> > Traffic flows from internet to clients.
> > The ethX names are for example only, my setup is more complex actually,
> > but that complexity is not related to IMQ or traffic shaping.
> > Clients use PPTP or PPPoE to connect to router.
> > See, there's no single interface I can attach qdisc to, if I want
> > to put all clients into the same qdisc.
> >
>
> So why cant you attach a ingress qdisc on eth1-2 and use policing to
> mark excess traffic (not drop)? On eth0 all you do is based on the mark
And where to drop then?
> you stash them on a different class i.e move the stuff you have on
> IMQ0 to eth0.
>
> Example on ingress:
>
> meter1=" police index 1 rate $CIR1"
> meter1a=" police index 2 rate $PIR1"
>
> index 2 is shared by all flows for default.
> index 1 (and others) is guaranteeing rate (20Kbps) for each of the flows
> etc.
> Look for example at examples/Edge32-ca-u32
>
> The most important thing to know is that policers can be shared across
> devices, flows etc using the "index" operator.
So, it's just like IMQ, but without that Q bit, only marking?
But how would I calculate guaranteed rate for a client?
Suppose I have 100 clients connected, then I can only
guarantee a 1/100th of the pipe to each. But if only 5 of them
are active, then each can get 1/5th of the pipe.
Round-robin mechanism such as wrr effectively adjusts rates in dynamic.
I use two-layer hierarchy actually, by applying sfq to every wrr class,
so a user can download a file and play Quake at the same time,
with acceptable delays and no packet loss. At the same time,
user that opens 1000 connections with some evil multithreaded downloader
thing, has the same aggregate rate, but can't play Quake because
of high latency. It works wonderfully.
I suppose we can have a flavor of wrr that will not queue packets,
only find over-active flows and mark or drop over-profile packets
but 1) no such thing exist AFAIK and 2) it will not have separate
queue for each user/flow, thus all flows will have same latency,
only drop probabilities will differ.
So, it seems to me that IMQ fits nicely when there're some artificial
bandwidth limits (as opposed to bandwidth of some physical interface)
and no single egress interface for all flows to be shaped.
>
> I just noticed you are copying linux-kernel. Please take it off the list
> in your response, this is a netdev issue. This should warn anyone
> interested in the thread to join netdev.
>
Done.
~
:wq
With best regards,
Vladimir Savkin.
^ permalink raw reply
* Re: Bluetooth USB oopses on unplug (2.6.1)
From: Pavel Machek @ 2004-01-26 17:39 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: Linux Kernel Mailing List, Max Krasnyansky
In-Reply-To: <1075136997.25442.99.camel@pegasus>
Hi!
> > I'll have to hand-copy the oops, as machine dies after unplug. Here it
> > is:
> >
> > Oops: 2
> > EIP is at uhci_remov_pending_qhs
> > Call trace:
> > uhci_irq
> > usb_hcd_irq
> > handle_irq_event
> > do_IRQ
> > common_interrupt_1
>
> as I expected. It is an UHCI host adapter and it looks like the uhci_hcd
> driver has problems to unlink the ISOC URB's. Look at the LKML and USB
> mailing lists for similiar post. At the moment I don't know of any patch
> for it. Sorry.
No problem. For the record, it works okay without SCO. Thanks for that.
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
^ permalink raw reply
* PATCH to access old-style FAT fs
From: Frodo Looijaard @ 2004-01-26 17:39 UTC (permalink / raw)
To: hirofumi, linux-kernel, linux-7110-psion
[-- Attachment #1: Type: text/plain, Size: 1878 bytes --]
Hi folks,
I have created and attached a new version of my old-style FAT filesystem
patch, this time for the 2.6.0 kernel. It can also be found on
http://debian.frodo.looijaard.name/.
Some old implementation of the FAT standard mark the end of the
directory file index by inserting a filename beginning with a byte 00.
All entries after it should be ignored, even though they are not marked
as deleted. At least some EPOC releases (an OS used on Psion PDAs, for
example) still use this policy.
The included patch adds the `oldfat' mount option for FAT-based
filesystems. Without it, doing an 'ls' on old-style FATs will show a lot
of garbage, both old files that have been deleted, and bogus entries
that have never been filled.
If you do not use the `oldfat' mount option, FAT filesystems should work
exactly as before. I have been very careful not to change the logic of
the FAT driver, in order not to break anything. In fact, the patch could
probably be optimized a bit, but I wanted to keep it as risk-free as
possible.
It should be safe to mount a normal FAT filesystem with the `oldfat'
mount option. I have been doing that on and off with some local Win98
filesystems without any trouble. Actually, the only reason I have
introduced the mount option is to keep the new logic strictly seperated
from the old driver.
All feedback would be very welcome. This patch is released under the
GPL. Feel free to include it in stock kernels.
Debian users can install the .deb on http://debian.frodo.looijaard.name
and have the patch applied automatically when compiling 2.6.x kernels.
Thanks,
Frodo
--
Frodo Looijaard <frodol@dds.nl> PGP key and more: http://huizen.dds.nl/~frodol
Defenestration n. (formal or joc.):
The act of removing Windows from your computer in disgust, usually followed
by the installation of Linux or some other Unix-like operating system.
[-- Attachment #2: linux-fat-2.6.0.patch.gz --]
[-- Type: application/octet-stream, Size: 1458 bytes --]
^ permalink raw reply
* Re: ethtool -d MCAs rx2600
From: Jeff Garzik @ 2004-01-26 17:39 UTC (permalink / raw)
To: linux-ia64
In-Reply-To: <20040123231254.GC31911@cup.hp.com>
Matthew Wilcox wrote:
> On Mon, Jan 26, 2004 at 10:30:23AM -0600, Jack Steiner wrote:
>>Looks like it occurs here (but I dont put a lot of faith in this):
>> GET_REG32_LOOP(BUFMGR_MODE, 0x58);
>> GET_REG32_LOOP(RDMAC_MODE, 0x08);
>> >>>> GET_REG32_LOOP(WDMAC_MODE, 0x08);
>> GET_REG32_LOOP(RX_CPU_BASE, 0x280);
>> GET_REG32_LOOP(TX_CPU_BASE, 0x280);
>
>
> My suspicion is that some tg3 variants don't support this register, but
> it's OK to read the register on x86 because it soft-fails. Most ia64
> chipsets hard-fail so we need to avoid this. Jeff, Dave, can you comment?
I get lockups occasionally on x86 too, but have had higher priority
things to look at. Since regdump is mainly an engineer's tool, we felt
it was a "use at your own risk" feature.
But if we can fix it, all the better.
Tangent -- I would love for somebody to take this output and prettyprint
it in userland ethtool package (d/l and cvs at
http://sf.net/projects/gkernel/).
Jeff
^ permalink raw reply
* [Bluez-devel] Future kernel development
From: Marcel Holtmann @ 2004-01-26 17:36 UTC (permalink / raw)
To: BlueZ Mailing List
Hi Folks,
the resync with the kernel 2.6 series is finished and all outstanding
patches and fixes are merged into 2.6.2-rc1. Now the Bluetooth subsystem
of the 2.4 and 2.6 series share mostly the same code base. I don't have
any plans to send Marcelo further updates for the 2.4 tree and of course
he wouldn't accept them either. The -mh patch for the upcoming 2.4.25
contains only a CAPI and a HID update. And until now, nobody reported
any outstanding bugs with Bluetooth and the 2.4.x kernel.
>>From now on all new stuff should go into 2.6 first, before we even think
of backporting it to 2.4. I started with the integration into the driver
model and the sysfs. And currently it looks like this:
/sys/class/bluetooth/
|-- hci0
| |-- address
| |-- device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:0c.0/usb2/2-2/2-2:1.0
| |-- driver -> ../../../bus/usb/drivers/hci_usb
| |-- flags
| |-- inquiry_cache
| |-- name
| `-- type
`-- hci1
|-- address
|-- device -> ../../../devices/pci0000:00/0000:00:1e.0/0000:02:0c.1/usb3/3-1/3-1:1.0
|-- driver -> ../../../bus/usb/drivers/bfusb
|-- flags
|-- inquiry_cache
|-- name
`-- type
At the moment only a small number of attributes are exported, but in
general we can export everything we like. So my question is what makes
sense to export?
The way for the Bluetooth core and driver model is very clear. If it
comes to L2CAP or RFCOMM I have no idea how to fit this in at the
moment. So any comments are very welcome.
Regards
Marcel
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply
* Re: [PATCH] multple rules files support/symlink rules support
From: Andrey Borzenkov @ 2004-01-26 17:31 UTC (permalink / raw)
To: linux-hotplug
In-Reply-To: <200401172313.00189.arvidjaar@mail.ru>
[-- Attachment #1: Type: text/plain, Size: 3256 bytes --]
On Thursday 22 January 2004 20:44, Svetoslav Slavtchev wrote:
> > On Sat, Jan 17, 2004 at 11:13:00PM +0300, Andrey Borzenkov wrote:
> > > Attached patch adds support for
> > >
> > > - multiple rules files. You can now do
> > >
> > > udev_rules="file1 dir2 file3 ..."
> > >
> > > directory is scanned and all files are read. Currently it does not
> >
> > descend
> >
> > > into subdirs.
> >
> > Ok, that is nice. I like that part of the patch.
> >
I do not :) the only reason to allow multiple files was to allow overriding; I
had to update patch for ude-014 and sorting directory contents turned out to
be quite easy so this is the final version - it takes single name which is
either file or directory; directory is scanned, sorted in ascending order and
read. klibc version does not support directory.
> >
> > I don't really understand this. Can you give an example of how this
> > would work? Why do we want to have multiple symlinks from different
> > rules?
>
distribution comes with predefined rules. Taking Mandrake (which is likely to
use Svetoslav config) it ships with devfs rules that are keyed on kernel
name.
Now user may want to name specific device based on different criteria, e.g.
serial number. I.e. you now have
KERNEL="sd*" SYMLINK="ide/host..."
SYSFS_serial="XYZ123" SYMLINK="my_removable"
you simply can't easily merge these two rules. Allowing second rule (in second
file) is much more flexible - you simply get two symlinks pointing to the
same file. None of them knows or cares about device is really named as long
as symlinks are correctly created.
because this version assumes configuration be ordered it now ignores name only
if it has not already been defined; else name with empty NAME/SYMLINK is
silently ignored.
> please take a look in the attached files
>
> - the first should create layout as the one of static /dev (00-lsb)
> - the second adds devfs symlinks (01-devfs)
Svetoslav did very good job making devfs compatibility config; please consider
adding it to distribution. It appeears to be mostly complete; there is
inherent problem with /dev/discs and /dev/cdroms that probably is not worth
time spent on it (i.e. - drop it).
regards
-andrey
> - additional one's could be used by the configuration
> tools of the distribution( e.g. to create /dev/cd-writer or /dev/dvd)
> - and at the end would come the personal rules of the
> owner of the system
>
> in this way the device would be accessable from the standard
> static /dev, devfs, and the additional system/personal namespaces
>
> in this way, if the owner changes only his rule file, he can not harm the
> system
> he only add's a personal symlink, devices are created as in static dev,
> with symlink for devfs
>
> best,
>
> svetljo
>
> PS.
> small example
> in 00-lsb
> ---------------
> KERNEL="psaux", SYMLINK="psmouse"
> KERNEL="video0", SYMLINK="video"
> KERNEL="radio0", SYMLINK="radio"
> KERNEL="vbi0", SYMLINK="vbi"
> KERNEL="vtx0", SYMLINK="vtx"
> -----------------
> in 01-devfs
> ---------------
> KERNEL="psaux", SYMLINK="misc/%k"
> KERNEL="video[0-9]", SYMLINK="v4l/video%n"
> KERNEL="radio[0-9]", SYMLINK="v4l/radio%n"
> KERNEL="vbi[0-9]", SYMLINK="v4l/vbi%n"
> KERNEL="vtx[0-9]", SYMLINK="v4l/vtx%n"
[-- Attachment #2: udev014_multi.patch --]
[-- Type: text/x-diff, Size: 7067 bytes --]
--- udev-014/namedev.c.multi 2004-01-22 03:45:22.000000000 +0300
+++ udev-014/namedev.c 2004-01-26 20:10:45.273488984 +0300
@@ -703,30 +703,54 @@ int namedev_name_device(struct sysfs_cla
}
}
- /* check if we are instructed to ignore this device */
- if (dev->name[0] == '\0') {
+ /*
+ * check if we are instructed to ignore this device
+ * unless name has already beed assigned
+ */
+ if (udev->name[0] == '\0' && dev->name[0] == '\0' && dev->symlink[0] == '\0') {
dbg("instructed to ignore this device");
return -1;
}
- /* Yup, this rule belongs to us! */
- info("configured rule in '%s' at line %i applied, '%s' becomes '%s'",
- udev_rules_filename, dev->config_line, udev->kernel_name, dev->name);
- strfieldcpy(udev->name, dev->name);
- strfieldcpy(udev->symlink, dev->symlink);
- goto found;
+ /* if everything matched add symlink to list of aliases */
+ if (dev->symlink[0] != '\0') {
+ char temp[NAME_MAX];
+
+ /* do not clobber dev */
+ strfieldcpy(temp, dev->symlink);
+ apply_format(udev, temp);
+ if (strlen(udev->symlink) + strlen(temp) + 2 > sizeof(udev->symlink))
+ dbg("could not append symlink %s for %s",
+ dev->symlink, udev->kernel_name);
+ else {
+ strfieldcat(udev->symlink, temp);
+ strfieldcat(udev->symlink, " ");
+ }
+ }
+
+ /* is this symlink only rule? */
+ if (dev->name[0] == '\0')
+ continue;
+
+ /* Yup, this rule belongs to us!
+ * but continue to collect symlinks */
+ if (udev->name[0] == '\0') {
+ info("configured rule in '%s' at line %i applied, '%s' becomes '%s'",
+ dev->config_file, dev->config_line, udev->kernel_name, dev->name);
+ strfieldcpy(udev->name, dev->name);
+
+ /* substitute placeholder */
+ apply_format(udev, udev->name);
+ } else
+ dbg("conflicting rule for '%s' would become '%s'",
+ dev->kernel, dev->name);
}
/* no rule was found so we use the kernel name */
- strfieldcpy(udev->name, class_dev->name);
- goto done;
-
-found:
- /* substitute placeholder */
- apply_format(udev, udev->name);
- apply_format(udev, udev->symlink);
+ if (udev->name[0] == '\0')
+ strfieldcpy(udev->name, class_dev->name);
+ dbg("symlinks for '%s' are: '%s'", udev->name, udev->symlink);
-done:
perm = find_perm(udev->name);
if (perm) {
udev->mode = perm->mode;
--- udev-014/namedev.h.multi 2004-01-22 02:34:33.000000000 +0300
+++ udev-014/namedev.h 2004-01-26 19:47:14.195005520 +0300
@@ -66,6 +66,7 @@ struct config_device {
char symlink[NAME_SIZE];
struct sysfs_pair sysfs_pair[MAX_SYSFS_PAIRS];
int config_line;
+ char *config_file;
};
struct perm_device {
--- udev-014/namedev_parse.c.multi 2004-01-22 03:46:01.000000000 +0300
+++ udev-014/namedev_parse.c 2004-01-26 19:47:14.335984088 +0300
@@ -34,6 +34,8 @@
#include <ctype.h>
#include <unistd.h>
#include <errno.h>
+#include <dirent.h>
+#include <sys/stat.h>
#include "udev.h"
#include "logging.h"
@@ -120,7 +122,8 @@ void dump_perm_dev_list(void)
dump_perm_dev(dev);
}
-int namedev_init_rules(void)
+
+static int parse_rules_file(const char *file)
{
char line[255];
int lineno;
@@ -131,15 +134,19 @@ int namedev_init_rules(void)
int program_given = 0;
int retval = 0;
struct config_device dev;
+ char *p;
- fd = fopen(udev_rules_filename, "r");
+ fd = fopen(file, "r");
if (fd != NULL) {
- dbg("reading '%s' as rules file", udev_rules_filename);
+ dbg("reading '%s' as rules file", file);
} else {
- dbg("can't open '%s' as a rules file", udev_rules_filename);
+ dbg("can't open '%s' as a rules file", file);
return -ENODEV;
}
+ /* Yes, this is memory leak. It won't be freed */
+ p = strdup(file);
+
/* loop through the whole file */
lineno = 0;
while (1) {
@@ -250,13 +257,14 @@ int namedev_init_rules(void)
}
dev.config_line = lineno;
+ dev.config_file = p;
retval = add_config_dev(&dev);
if (retval) {
dbg("add_config_dev returned with error %d", retval);
continue;
error:
dbg("%s:%d:%d: parse error, rule skipped",
- udev_rules_filename, lineno, temp - line);
+ file, lineno, temp - line);
}
}
exit:
@@ -264,7 +272,7 @@ exit:
return retval;
}
-int namedev_init_permissions(void)
+static int parse_permissions_file(const char *file)
{
char line[255];
char *temp;
@@ -273,11 +281,11 @@ int namedev_init_permissions(void)
int retval = 0;
struct perm_device dev;
- fd = fopen(udev_permissions_filename, "r");
+ fd = fopen(file, "r");
if (fd != NULL) {
- dbg("reading '%s' as permissions file", udev_permissions_filename);
+ dbg("reading '%s' as permissions file", file);
} else {
- dbg("can't open '%s' as permissions file", udev_permissions_filename);
+ dbg("can't open '%s' as permissions file", file);
return -ENODEV;
}
@@ -344,5 +352,98 @@ int namedev_init_permissions(void)
exit:
fclose(fd);
return retval;
+}
+
+static int ends_with(const char *name, const char *suf)
+{
+ char *p = strstr(name, suf);
+
+ if (!p)
+ return 0;
+
+ if (p[strlen(suf)])
+ return 0;
+
+ return 1;
+}
+
+/*
+ * skip
+ * all hidden files
+ * usual backup files from editor or RPM
+ * non-plain files
+ */
+static int filter(const struct dirent *dirent)
+{
+ char *name = dirent->d_name;
+ struct stat buf;
+
+ if (name[0] == '.')
+ return 0;
+
+ if (ends_with(name, ".rpmorig") ||
+ ends_with(name, ".rpmsave") ||
+ ends_with(name, "~") ||
+ ends_with(name, ".orig"))
+ return 0;
+
+ if (stat(name, &buf) == -1)
+ return 0;
+
+ if (!S_ISREG(buf.st_mode))
+ return 0;
+
+ return 1;
+}
+
+static int parse_rules(char *file, int (*func)(const char *))
+{
+ struct stat buf;
+ int err = 0;
+
+
+ if (stat(file, &buf) == -1) {
+ err = errno;
+ dbg("parse_rules: can't stat %s", file);
+ return errno;
+ }
+
+ if (S_ISREG(buf.st_mode))
+ return (*func)(file);
+
+#ifndef __KLIBC__
+ if (S_ISDIR(buf.st_mode)) {
+ struct dirent **dirents;
+ int nfiles, i;
+
+ if ((nfiles = scandir(file, &dirents, filter, alphasort)) == -1) {
+ err = errno;
+ dbg("parse_rules: scandir '%s' error", file);
+ return err;
+ }
+
+ for (i = 0; i < nfiles; i++) {
+ char temp[PATH_MAX + NAME_MAX];
+
+ snprintf(temp, sizeof(temp), "%s/%s", file, dirents[i]->d_name);
+ err = (*func)(temp);
+ }
+
+ return err;
+ }
+#endif
+
+ dbg("parse_rules: '%s' has unknown file type %o", file, buf.st_mode);
+ return -EINVAL;
+
+}
+
+int namedev_init_rules(void)
+{
+ return parse_rules(udev_rules_filename, parse_rules_file);
}
+int namedev_init_permissions(void)
+{
+ return parse_rules(udev_permissions_filename, parse_permissions_file);
+}
--- udev-014/udev.h.multi 2004-01-22 03:32:55.000000000 +0300
+++ udev-014/udev.h 2004-01-26 19:47:14.473963112 +0300
@@ -56,6 +56,13 @@ do { \
strncpy(to, from, sizeof(to)-1); \
} while (0)
+#define strfieldcat(to, from) \
+do { \
+ to[sizeof(to)-1] = '\0'; \
+ strncat(to, from, sizeof(to)-1); \
+} while (0)
+
+
extern int udev_add_device(char *path, char *subsystem);
extern int udev_remove_device(char *path, char *subsystem);
extern void udev_init_config(void);
^ permalink raw reply
* [2.6.2-rc2] bttv oops
From: Bernd Schubert @ 2004-01-26 17:29 UTC (permalink / raw)
To: linux-kernel
Hello,
on loading the bttv driver I get the following messages:
bttv: driver version 0.9.12 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:00:0f.0, irq: 19, latency: 64, mmio: 0xcddfe000
bttv0: using: Lifeview FlyVideo 2000 /FlyVideo A2/ Lifetec LT 9415 TV [LR90]
[card=54,insmod option]
bttv0: gpio: en=00000000, out=00000000 in=00449fff [init]
i2c_adapter i2c-1: registered as adapter #1
bttv0: FlyVideo Radio=yes RemoteControl=no Tuner=5 gpio=0x449fff
bttv0: FlyVideo LR90=yes tda9821/tda9820=yes capture_only=no
bttv0: using tuner=5
bttv0: i2c: checking for MSP34xx @ 0x80... <7>i2c_adapter i2c-1: master_recv:
reading 1 bytes.
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
e0cf8fd3
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0f20:[<e0cf8fd3>] Tainted: P
EFLAGS: 00010202
EIP is at i2c_master_recv+0xc3/0x110 [i2c_core]
eax: 00000000 ebx: e0e6ec60 ecx: e0e6ec60 edx: 00000023
esi: ffffff87 edi: e0e6ec44 ebp: e0e6ee70 esp: dac13e24
ds: 0f3b es: 0f3b ss: 0f28
Process modprobe (pid: 1705, threadinfo=dac12000 task=dac146b0)
Stack: e0e6ec44 dac13e3c e0e6eee4 ffffff87 00000001 00000040 00010040 00000001
dac13e73 00000246 00000080 e0e6ec40 e0e620c8 00000000 e0e5fc7b e0e6ee70
dac13e73 00000001 00000080 00e6ec40 e0e6ec40 00000000 00000001 e0e17ed8
Call Trace:
[<e0e5fc7b>] bttv_I2CRead+0x8b/0x100 [bttv]
[<e0e17ed8>] bttv_init_card2+0x368/0x610 [bttv]
[<e0e1760b>] bttv_probe+0x47b/0x6b0 [bttv]
[<c016c162>] dput+0x22/0x210
[<c01ef032>] pci_device_probe_static+0x52/0x70
[<c01ef079>] __pci_device_probe+0x29/0x30
[<c01ef0ac>] pci_device_probe+0x2c/0x50
[<c0259a0f>] bus_match+0x3f/0x70
[<c0259b39>] driver_attach+0x59/0x90
[<c0259ddd>] bus_add_driver+0x8d/0xa0
[<c025a21f>] driver_register+0x2f/0x40
[<c0259fd4>] bus_register+0x84/0xa0
[<c01ef274>] pci_register_driver+0x34/0x50
[<e0e5b922>] bttv_init_module+0xa2/0x130 [bttv]
[<c0137e78>] sys_init_module+0x118/0x230
[<c010942f>] syscall_call+0x7/0xb
Code: 8b 00 c7 04 24 60 ad cf e0 89 44 24 04 e8 ab 97 42 df 8b 44
As you can guess watching tv doesn't work anymore ;)
Thanks,
Bernd
^ permalink raw reply
* Re: scheduler crash 2.6.2-rc1-mm2
From: m0sia @ 2004-01-26 17:25 UTC (permalink / raw)
To: Chmouel Boudjnah, linux-kernel
In-Reply-To: <m3fze2vb90.fsf@dark.chmouel.fr>
On 26 Jan 2004 19:02:51 +0100
Chmouel Boudjnah <chmouel@chmouel.com> wrote:
> Hi,
>
> I don't have a proper way to reproduce it (it crashed while the
> cmputer was idle and i was in the shower) but i am going to test -rc2
> and -rc1-mm3
>
> version:
> 2.6.2-rc1-mm2 : gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-4mdk)
>
> dmesg:
>
> request_module: failed /sbin/modprobe -- char-major-81-0. error = 256
> atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
> atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.
> request_module: failed /sbin/modprobe -- sound-service-1-0. error = 256
> request_module: failed /sbin/modprobe -- sound-service-1-0. error = 256
> request_module: failed /sbin/modprobe -- char-major-116-0. error = 256
> request_module: failed /sbin/modprobe -- char-major-116-0. error = 256
> request_module: failed /sbin/modprobe -- char-major-116-0. error = 256
> request_module: failed /sbin/modprobe -- sound-service-1-0. error = 256
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> Badness in interruptible_sleep_on_timeout at kernel/sched.c:2245
> Call Trace:
> [<c011d765>] interruptible_sleep_on_timeout+0xf5/0x130
> [<c011d290>] default_wake_function+0x0/0x10
> [<e08fbdcf>] cm_write+0x51f/0x7b0 [cmpci]
> [<c0154de0>] vfs_write+0xb0/0x110
> [<c0154ee8>] sys_write+0x38/0x60
> [<c02488a6>] sysenter_past_esp+0x43/0x65
>
> request_module: failed /sbin/modprobe -- char-major-116-0. error = 256
> request_module: failed /sbin/modprobe -- sound-service-1-0. error = 256
> request_module: failed /sbin/modprobe -- sound-service-1-0. error = 256
>
> Cheers,
>
> --
> Travel's around the world - http://www.chmouel.com/
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
I had the same problem on 2.6.1-love3. I simply disabled ACPI in kernel.
^ permalink raw reply
* Re: [parisc-linux] A fix for B2k and CONFIG_PDC_CONSOLE pb
From: Matthew Wilcox @ 2004-01-26 17:25 UTC (permalink / raw)
To: Joel Soete; +Cc: Christoph Plattner, Grant Grundler, parisc-linux
In-Reply-To: <400CB8A100004C60@ocpmta3.freegates.net>
On Mon, Jan 26, 2004 at 06:00:53PM +0100, Joel Soete wrote:
>
> /* Bail if no console input device. */
> - if (!PAGE0->mem_kbd.iodc_io)
> + if ((PAGE0->mem_cons.cl_class != CL_DUPLEX) && !PAGE0->mem_kbd.iodc_io)
> return 0;
>
> /* wait for a keyboard (rs232)-input */
> spin_lock_irqsave(&pdc_lock, flags);
> - real32_call(PAGE0->mem_kbd.iodc_io,
> - (unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN,
> - PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers),
> - __pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
> + if (PAGE0->mem_cons.cl_class == CL_DUPLEX)
This doesn't make sense. PAGE0->mem_cons.cl_class has to be CL_DUPLEX
otherwise the test above would have failed. Do you perhaps mean that &&
above to be an || ? If so, this would all read better as ...
/* wait for a keyboard (rs232)-input */
spin_lock_irqsave(&pdc_lock, flags);
if (PAGE0->mem_cons.cl_class == CL_DUPLEX) {
real32_call(PAGE0->mem_cons.iodc_io,
(unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_CIN,
PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
__pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
} else if (PAGE0->mem_kbd.iodc_io) {
real32_call(PAGE0->mem_kbd.iodc_io,
(unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN,
PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers),
__pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
} else {
spin_unlock_irqrestore(&pdc_lock, flags);
return 0;
}
Slightly ugly to have two unlocks for the same lock, but that's better
than duplicating the test. I haven't looked at the code, maybe we could
use a goto instead.
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.