* Re: [PATCH] PPC64: lockfix for rtas error log
From: David Gibson @ 2004-06-30 1:17 UTC (permalink / raw)
To: linas; +Cc: paulus, paulus, linuxppc64-dev, linux-kernel
In-Reply-To: <20040629175007.P21634@forte.austin.ibm.com>
On Tue, Jun 29, 2004 at 05:50:07PM -0500, linas@austin.ibm.com wrote:
>
> Paul,
>
> Could you please apply the following path to the ameslab tree, and/or
> forward it to the main 2.6 kernel maintainers.
>
> This patch moves the location of a lock in order to protect
> the contents of a buffer until it has been copied to its final
> destination. Prior to this, a race existed whereby the buffer
> could be filled even while it was being emptied.
>
> Signed-off-by: Linas Vepstas <linas@linas.org>
Hmm... I note that log_error() does nothing but call ppc_md.log_error,
and I can't see anywhere that that is set to be non-NULL...
> +++ arch/ppc64/kernel/rtas.c 2004-06-29 17:14:05.000000000 -0500
> @@ -134,9 +134,10 @@ log_rtas_error(void)
>
> spin_lock_irqsave(&rtas.lock, s);
> rc = __log_rtas_error();
> - spin_unlock_irqrestore(&rtas.lock, s);
> - if (rc == 0)
> + if (rc == 0) {
> log_error(rtas_err_buf, ERR_TYPE_RTAS_LOG, 0);
> + }
> + spin_unlock_irqrestore(&rtas.lock, s);
> }
>
> int
> @@ -193,12 +194,13 @@ rtas_call(int token, int nargs, int nret
> outputs[i] = rtas_args->rets[i+1];
> ret = (int)((nret > 0) ? rtas_args->rets[0] : 0);
>
> + if (logit) {
> + log_error(rtas_err_buf, ERR_TYPE_RTAS_LOG, 0);
> + }
> +
> /* Gotta do something different here, use global lock for now... */
> spin_unlock_irqrestore(&rtas.lock, s);
>
> - if (logit)
> - log_error(rtas_err_buf, ERR_TYPE_RTAS_LOG, 0);
> -
> return ret;
> }
>
--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
^ permalink raw reply
* Re: Cached memory never gets released
From: Ross Biro @ 2004-06-30 1:25 UTC (permalink / raw)
To: David Ashley; +Cc: linux-kernel
In-Reply-To: <200406291618.i5TGIQ8F028141@xdr.com>
On Tue, 29 Jun 2004 09:18:26 -0700, David Ashley <dash@xdr.com> wrote:
>
>
> In the thread this is made clear somewhat, but when I post new
> emails I don't summarize all that is known about the problem.
Sorry, I missed that part of the thread.
It does sounds like you may have a real problem, so the next step I
would do is instrument kswapd to explain why it's not freeing cache
when it's under demand.
The first step is to add something to kernel/sysctrl.c to create a
variable to turn the debugging code on or off.
Then add a bunch of printk's to mm/vmscan.c explaining why every page
is not being freed, but only when the sysctrl variable is set.
Then get the machine into the bad state and turn on the printks.
Run your program that can't allocate memory
Turn off the printks and analyze the logs.
I'll be happy to help you figure out where to put printks and go over
the logs, but you have to make sure you are really getting an OOM kill
with that much cache for the output to be useful.
^ permalink raw reply
* Re: How to notify app of changed cpu/mem/io node configuration?
From: Paul Jackson @ 2004-06-30 1:22 UTC (permalink / raw)
To: linux-hotplug
In-Reply-To: <20040628173808.04718b83.pj@sgi.com>
Dave wrote:
> (in response to my query of whether you meant "sync" or "async"):
> Some kind of notification that the kernel sends where it can be sure
> that the app received it.
Huh - I'm confused as to what you think is essential here. I have this
sense that you are saying we need reliably acknowledged notification.
But this seems impossible to me - one cannot have the kernel depending
on some random bit of user code sending a timely acknowledgement, much
less on such code doing something competent with the notice.
Whatever ... in any case ... one element that I consider essential is an
agreed to convention whereby a system service such as a batch manager
can send to the several tasks in a job "fair and adequate" notification
that they (the tasks) had better pack up and move - or be shot if they
don't. In particular, the mbind() and set_mempolicy() calls can only be
done by a task on itself, not by some third party. I doubt that the
kernel is party to or even aware of this convention.
> Rudely being migrated to CPU 0 would break the app,
> and could (in theory) cause data corruption.
Then I am surpised that you accept the following bit of code, now
in Linus' 2.6.7:
kernel/sched.c:migrate_all_tasks()
if (dest_cpu = NR_CPUS) {
cpus_setall(tsk->cpus_allowed);
dest_cpu = any_online_cpu(tsk->cpus_allowed);
The usual affect of this is to force cpus_allowed to all possible CPUs,
and to set "dest_cpu = 0". It happens in the case of a migration, when
none of the remaining CPUs allowed to a task are online.
Hmmm ... thinking out loud ... why not set cpus_allowed to the single
cpu which is the lowest numbered online cpu, rather than all cpus?
I see no need to give orphans the run of the entire city!
> > ... before it told the kernel "all clear - remove old Node from service"
>
> I just worry about the complexity of feeding all of this information
> back to the kernel.
Huh - what's to tell the kernel at this step? "Remove CPU or Memory
node X from service, with ruthless abandon to any residual user tasks or
memory left there" -- that's all I see.
> I think we need Rusty to remind us all ...
Good idea !!
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.650.933.1373
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply
* Re: libata: 2.6.7-bk6,12 hang with ata_piix in combined mode; -bk5 ok
From: Jeff Garzik @ 2004-06-30 1:20 UTC (permalink / raw)
To: Bill Rugolsky Jr., linux-kernel
In-Reply-To: <20040630005420.GA4163@ti64.telemetry-investments.com>
On Tue, Jun 29, 2004 at 08:54:20PM -0400, Bill Rugolsky Jr. wrote:
> ata_piix: combined mode detected
> ACPI: PCI interrupt 0000:1f.2[A]: no GSI
[...]
> sda:<3>ata1: command 0x25 timeout, stat 0xd0 host_stat 0x64
I wonder what "no GSI" is. Since the command is timing out, that is
often a symptom of ACPI interrupt routing problems.
Does booting with "noapic" or "acpi=off" help anything?
Also, does disabling combined mode solve anything?
Jeff
^ permalink raw reply
* opening a port without root permission
From: Anshuman Singh Rawat @ 2004-06-30 1:20 UTC (permalink / raw)
To: linux-newbie@vger.kernel.org
Hi,
Is there any way one can open a port, in my specific case - the ARP port, so that I could do an Arping without a root access ?
Or is there any way the root could give permission to a user to open a port ?
Or does anyone know a way by which I can extract the MAC address of a remote machine in a different subnet, where I do not have to be a super-user?
Any pointers would be greatly appreciated.
Thanks.
-Anshuman
-
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: mlmmj-webinterface (for mlmmj-0.8.1)
From: Christoph Thiel @ 2004-06-30 1:19 UTC (permalink / raw)
To: mlmmj
In-Reply-To: <Pine.LNX.4.58.0406271300400.4730@hermes.cthiel.de>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi there,
On Tue, 29 Jun 2004, Mads Martin Joergensen wrote:
> > enclosed the first release of the mlmmj-webinterface. Have fun... :)
>
> Very nice. How hard would it be to make an admin page to link from the
> subscribers page. It would have to be protected by an htaccess file, and
> be allowed to write in listdir/control (possibly by sharing a group or
> similar).
>
> All the variables in TUNABLES could be adjusted from there, checkboxes,
> inputlines and textfields.
Well, on the whole it wouldn't be to hard, but the problem is to get the
permissions right, and I don't really now how to handle that.
Regards
Christoph
- --
Christoph Thiel <ct@kki.org>, http://ct.kki.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFA4hUXSQ2wS9JeDp0RAgu+AJ99bLS0fW/DLjEAA5f4gMTag5mgTwCfaCiP
fgbdx0RUwxRizzSgvhYk0Zw=WWn2
-----END PGP SIGNATURE-----
^ permalink raw reply
* kernel update (relative to 2.6.7, second try)
From: David Mosberger @ 2004-06-30 1:15 UTC (permalink / raw)
To: linux-ia64
Just a quick update before disappearing (again) for a few days (this
time it's vacation at least... ;-):
The latest ia64 patch can now be found at:
ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/v2.6/
in file:
linux-2.6.7-ia64-040629.diff.gz
This should hopefully fix most, if not all, the boot-problems that the
original 2.6.7 patch has caused. Perhaps SN2 machines still don't
work (?) but all the machines and configurations I have tried seem to
be fine again (Big Sur, UP/MP zx6000/rx2600, UP/MP 4-way rx5670, Ski
simulator). Thanks to Ken for the good work on tracking down this
nasty bug!
Hopefully, your mileage will vary at lot less this time.
Enjoy,
--david
^ permalink raw reply
* Re[2]: make error with iptables 1.2.11
From: mortar @ 2004-06-30 1:08 UTC (permalink / raw)
To: netfilter
In-Reply-To: <200406292309.38461.Antony@Soft-Solutions.co.uk>
Witam
Wednesday, June 30, 2004, 12:09:38 AM, you wrote:
AS> Okay - that narrows it down. Anyone else here have experience with kernel
AS> 2.4.26 and iptables 1.2.11? I can't offer any advice on this one...
I have 2.4.26 and iptables 1.2.11. I patched kernel and iptables
sources with latest pom-ng and then succesfully builded both. I'm using
Slackware Linux with gcc 3.3.4. Here is step by step how I make this
things works ;)
1. Get kernel 2.4.26 sources, and decompress it to
/usr/src/linux-2.4.26
2. Make a symbolic link
#ln -s /usr/src/linux-2.4.26 linux
3. Get iptables sources
#wget http://www.iptables.org/files/iptables-1.2.11.tar.bz2
and decompress it to /usr/src/iptables-1.2.11
4. Make a symbolic link
#ln -s /usr/src/iptables-1.2.11 iptables
5. Get lates p-o-m-ng
#wget http://www.netfilter.org/files/patch-o-matic-ng-20040621.tar.bz2
and decompress it to /usr/src/patch-o-matic-ng-20040621
6. cd /usr/src/patch-o-matic-ng-20040621
7. Now patch your sources with any extensions you want (i suggest you
to choose only what your realy need). For example:
#KERNEL_DIR=/usr/src/linux ./runme string
#KERNEL_DIR=/usr/src/linux ./runme CONNMARK
...
8. And now the most important step ;)
#cd /usr/src/iptables
#make BINDIR=/sbin LIBDIR=/usr/lib
#make BINDIR=/sbin LIBDIR=/usr/lib install
9. If everything is fine, you can build your kernel.
10. If not ... maybe try older (or newer) version of gcc.
I hope this will help you.
(Sorry for my poooooore english :)
--
Pozdrawiam
Marcin mailto:slacklist@op.pl
^ permalink raw reply
* Missing config entries
From: Gene Heskett @ 2004-06-30 1:07 UTC (permalink / raw)
To: linux-kernel
Greetings;
I just took note of an odd error message from amanda, so I took a look
at linux-2.6.7mm3, then -mm2, and found that while the advansys code
is still there in the drivers/scsi dir, the config file entries are
not, so its not possible to build this driver into the kernel
starting with 2.6.7-mm3 without hacking it back into the .config.
Was ths intentional?
--
Cheers, Gene
There are 4 boxes to be used in defense of liberty.
Soap, ballot, jury, and ammo.
Please use in that order, starting now. -Ed Howdershelt, Author
Additions to this message made by Gene Heskett are Copyright 2004,
Maurice E. Heskett, all rights reserved.
^ permalink raw reply
* [U-Boot-Users] Hello_world problem
From: Frank Young @ 2004-06-30 1:01 UTC (permalink / raw)
To: u-boot
Hi all,
I am using ppc 405 custom board. I managed to have u-boot running on my
board. But for some reason the hello_world couldn't run on my board. Below
are the detail:
1) I used TFTP to download hello_world.srec and put it to memory starting
from 0x40004.
=> tftpboot 0x40004 hello_world.srec
ENET Speed is 100 Mbps - HALF duplex connection
TFTP from server 138.31.3.162; our IP address is 138.31.3.79
Filename 'hello_world.srec'.
Load address: 0x40004
Loading: #
done
Bytes transferred = 1920 (780 hex)
2) Run the application from 0x40004, as written in the manual. But the
following error came up:
=> go 0x40004 Hello world! This is a test
## Starting application at 0x00040004 ...
NIP: 00002B94 XER: 00000000 LR: 0000219C REGS: 00006cf5 TRAP: 0700 DAR:
00000000
MSR: 00001000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
GPR00: 00FEA9A8 00006DE5 40000000 00006DF5 00FBBE7C 00000000 00000000
3A0AFB97
GPR08: 00FE6674 F0003964 00000003 00000002 00FF96B4 00000000 01002100
0175D000
GPR16: 00000000 00007CF9 00034286 00000000 00001000 00006DE5 00000000
0000219C
GPR24: 00002B94 00000D0A 00000000 00000007 00010000 00FBBF60 0100270C
00FBBE7C
** Illegal Instruction **
Call backtrace:
00000000 00000000
Program Check Exception
I guess I didn't download the application to the right place or I didn't
download the right file. So in the memory starting from 40004 has
unrecognized instruction. But what should I do if I want to use TFTP to
download image and run it?
Thanks,
Frank
_________________________________________________________________
MSN 9 Dial-up Internet Access fights spam and pop-ups ? now 3 months FREE!
http://join.msn.click-url.com/go/onm00200361ave/direct/01/
^ permalink raw reply
* Re: [PATCH 2/5] POSIX Locking fixes. Take 2...
From: Matthew Wilcox @ 2004-06-30 0:54 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-fsdevel, Andrew Morton
In-Reply-To: <1088555285.4573.110.camel@lade.trondhjem.org>
On Tue, Jun 29, 2004 at 08:29:09PM -0400, Trond Myklebust wrote:
> VFS: More extensive fix to locking code. Add file_lock_operations to
> deal with copy/release of private data in the file_lock->fl_u field. Add
> filesystem hooks for steal_locks(): changing the lockowner is hardly a
> supported concept in most file locking protocols.
The thing that got me most confused when I was trying to rip fl_notify,
fl_insert and fl_remove out of the existing struct file_lock was that one
of them is "owned" by the host fs, and two are owned by the exporting fs.
Or was it the other way around... anyway, which is this new f_l_ops for,
and can fl_notify or fl_insert/fl_remove move into it?
--
"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
* libata: 2.6.7-bk6,12 hang with ata_piix in combined mode; -bk5 ok
From: Bill Rugolsky Jr. @ 2004-06-30 0:54 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel
Jeff,
I have a Dell Poweredge 750 with a pair of Maxtor 250GB SATA drives
running Fedora Core 1 + upgrades to support 2.6.
The Dell BIOS configures the controller in combined mode.
Kernel 2.6.7-bk5 boots, while 2.6.7-bk6,bk12 generate the following
timeout (copied by hand):
ata_piix: combined mode detected
ACPI: PCI interrupt 0000:1f.2[A]: no GSI
ata: 0x1f0 IDE port busy
ata1: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xFEA8 irq 15
ata1: dev 0 ATA, max UDMA/133 488281250 sectors: lba48
ata1: dev 1 ATA, max UDMA/133 488281250 sectors: lba48
ata1: dev0 configured for UDMA/133
ata1: dev1 configured for UDMA/133
scsi0: ata_piix
Vendor: ATA Model: Maxtor 7Y250M0 Rev: YAR5
Type: Direct Access ANSI SCSI revision: 05
SCSI device sda: 488281250 512-byte hdwr sectors (250000MB)
SCSI device sda: drive cache: write back
sda:<3>ata1: command 0x25 timeout, stat 0xd0 host_stat 0x64
scsi0: ERROR on channel 0, id 0, lun 0, CDB: Read (10) 00 00 00 00 00 00 00 08 00
Current sda: sense key Medium Error
Additional sense: Unrecovered read error - auto reallocate failed
end_request: I/O error, dev sda, sector 0
ATA: abnormal status 0xD0 on port 0x177
ATA: abnormal status 0xD0 on port 0x177
ATA: abnormal status 0xD0 on port 0x177
boot log and lspci -vvv for 2.6.7-bk5 follow.
Bill Rugolsky
Linux version 2.6.7-bk5 (rugolsky@ti70) (gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)) #1 Tue Jun 29 20:27:03 EDT 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
BIOS-e820: 0000000000100000 - 000000003ffc0000 (usable)
BIOS-e820: 000000003ffc0000 - 000000003ffcfc00 (ACPI data)
BIOS-e820: 000000003ffcfc00 - 000000003ffff000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec90000 (reserved)
BIOS-e820: 00000000fed20000 - 00000000fed8ffff (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 262080
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 32704 pages, LIFO batch:7
DMI 2.3 present.
ACPI: RSDP (v000 DELL ) @ 0x000fdc40
ACPI: RSDT (v001 DELL PE750 0x00000001 MSFT 0x0100000a) @ 0x000fdc54
ACPI: FADT (v001 DELL PE750 0x00000001 MSFT 0x0100000a) @ 0x000fdc84
ACPI: MADT (v001 DELL PE750 0x00000001 MSFT 0x0100000a) @ 0x000fdcf8
ACPI: SPCR (v001 DELL PE750 0x00000001 MSFT 0x0100000a) @ 0x000fdd6c
ACPI: DSDT (v001 DELL PE7xx 0x00000001 MSFT 0x0100000a) @ 0x00000000
ACPI: PM-Timer IO Port: 0x808
Built 1 zonelists
Kernel command line: ro root=LABEL=/ acpi=on selinux=0 vdso=0
Initializing CPU#0
CPU 0 irqstacks, hard=c039d000 soft=c039c000
PID hash table entries: 4096 (order 12: 32768 bytes)
Detected 2801.122 MHz processor.
Using pmtmr for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1034972k/1048320k available (1851k kernel code, 12424k reserved, 653k data, 152k init, 130816k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 5554.17 BogoMIPS
Security Scaffold v1.0.0 initialized
SELinux: Disabled at boot.
Capability LSM initialized
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000
CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000
monitor/mwait feature present.
using mwait in idle threads.
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 1024K
CPU: After all inits, caps: bfebfbff 00000000 00000000 00000080
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 04
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 301k freed
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfc9de, last bus=3
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040326
ACPI: IRQ9 SCI: Edge set to Level Trigger.
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.2
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI2._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI3._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 7 9 10 11 12)
ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 7 9 10 11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 *10 11 12)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 *11 12)
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 *7 9 10 11 12)
Linux Plug and Play Support v0.97 (c) Adam Belay
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 11 (level, low) -> IRQ 11
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 10 (level, low) -> IRQ 10
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 7
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 7 (level, low) -> IRQ 7
ACPI: PCI interrupt 0000:00:1f.2[A]: no GSI
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5
ACPI: PCI interrupt 0000:00:1f.3[B] -> GSI 5 (level, low) -> IRQ 5
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 3
ACPI: PCI interrupt 0000:01:01.0[A] -> GSI 3 (level, low) -> IRQ 3
ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 11
ACPI: PCI interrupt 0000:03:02.0[A] -> GSI 11 (level, low) -> IRQ 11
vesafb: probe of vesafb0 failed with error -6
apm: BIOS not found.
audit: initializing netlink socket (disabled)
audit(1088555762.296:0): initialized
highmem bounce pool size: 64 pages
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
ACPI: Processor [CPU0] (supports C1)
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel i875 Chipset.
agpgart: Maximum main memory to use for agp memory: 941M
agpgart: AGP aperture is 4M @ 0xfe800000
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
divert: not allocating divert_blk for non-ethernet device lo
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: SAMSUNG CD-ROM SN-124, ATAPI CD/DVD-ROM drive
ide1: I/O resource 0x170-0x177 not free.
ide1: ports already in use, skipping probe
Using anticipatory io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ATAPI 24X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.20
ide-floppy driver 0.99.newide
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
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
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP: Hash tables configured (established 262144 bind 65536)
Initializing IPsec netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
ACPI: (supports S0 S4 S5)
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
SCSI subsystem initialized
libata version 1.02 loaded.
ata_piix version 1.02
ata_piix: combined mode detected
ACPI: PCI interrupt 0000:00:1f.2[A]: no GSI
ata: 0x1f0 IDE port busy
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ata1: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xFEA8 irq 15
ata1: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003 88:207f
ata1: dev 0 ATA, max UDMA/133, 488281250 sectors: lba48
ata1: dev 1 cfg 49:2f00 82:7c6b 83:7f09 84:4003 85:7c69 86:3e01 87:4003 88:207f
ata1: dev 1 ATA, max UDMA/133, 488281250 sectors: lba48
ata1: dev 0 configured for UDMA/133
ata1: dev 1 configured for UDMA/133
scsi0 : ata_piix
Vendor: ATA Model: Maxtor 7Y250M0 Rev: YAR5
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 488281250 512-byte hdwr sectors (250000 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 0, lun 0
Vendor: ATA Model: Maxtor 7Y250M0 Rev: YAR5
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sdb: 488281250 512-byte hdwr sectors (250000 MB)
SCSI device sdb: drive cache: write back
sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 sdb6 sdb7 >
Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0
device-mapper: 4.1.0-ioctl (2003-12-10) initialised: dm@uk.sistina.com
md: raid1 personality registered as nr 3
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdb7 ...
md: adding sdb7 ...
md: sdb6 has different UUID to sdb7
md: sdb5 has different UUID to sdb7
md: sdb3 has different UUID to sdb7
md: sdb2 has different UUID to sdb7
md: sdb1 has different UUID to sdb7
md: adding sda7 ...
md: sda6 has different UUID to sdb7
md: sda5 has different UUID to sdb7
md: sda3 has different UUID to sdb7
md: sda2 has different UUID to sdb7
md: sda1 has different UUID to sdb7
md: created md7
md: bind<sda7>
md: bind<sdb7>
md: running: <sdb7><sda7>
raid1: raid set md7 active with 2 out of 2 mirrors
md: considering sdb6 ...
md: adding sdb6 ...
md: sdb5 has different UUID to sdb6
md: sdb3 has different UUID to sdb6
md: sdb2 has different UUID to sdb6
md: sdb1 has different UUID to sdb6
md: adding sda6 ...
md: sda5 has different UUID to sdb6
md: sda3 has different UUID to sdb6
md: sda2 has different UUID to sdb6
md: sda1 has different UUID to sdb6
md: created md6
md: bind<sda6>
md: bind<sdb6>
md: running: <sdb6><sda6>
raid1: raid set md6 active with 2 out of 2 mirrors
md: considering sdb5 ...
md: adding sdb5 ...
md: sdb3 has different UUID to sdb5
md: sdb2 has different UUID to sdb5
md: sdb1 has different UUID to sdb5
md: adding sda5 ...
md: sda3 has different UUID to sdb5
md: sda2 has different UUID to sdb5
md: sda1 has different UUID to sdb5
md: created md5
md: bind<sda5>
md: bind<sdb5>
md: running: <sdb5><sda5>
raid1: raid set md5 active with 2 out of 2 mirrors
md: considering sdb3 ...
md: adding sdb3 ...
md: sdb2 has different UUID to sdb3
md: sdb1 has different UUID to sdb3
md: adding sda3 ...
md: sda2 has different UUID to sdb3
md: sda1 has different UUID to sdb3
md: created md3
md: bind<sda3>
md: bind<sdb3>
md: running: <sdb3><sda3>
raid1: raid set md3 active with 2 out of 2 mirrors
md: considering sdb2 ...
md: adding sdb2 ...
md: sdb1 has different UUID to sdb2
md: adding sda2 ...
md: sda1 has different UUID to sdb2
md: created md2
md: bind<sda2>
md: bind<sdb2>
md: running: <sdb2><sda2>
raid1: raid set md2 active with 2 out of 2 mirrors
md: considering sdb1 ...
md: adding sdb1 ...
md: adding sda1 ...
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: running: <sdb1><sda1>
raid1: raid set md1 active with 2 out of 2 mirrors
md: ... autorun DONE.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Freeing unused kernel memory: 152k freed
ACPI: Power Button (FF) [PWRF]
EXT3 FS on md2, internal journal
Adding 522040k swap on /dev/md3. Priority:-1 extents:1
kjournald starting. Commit interval 5 seconds
EXT3 FS on md1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on md6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on md5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
IA-32 Microcode Update Driver: v1.13 <tigran@veritas.com>
microcode: No suitable data for cpu 0
ip_tables: (C) 2000-2002 Netfilter core team
e1000: Ignoring new-style parameters in presence of obsolete ones
Intel(R) PRO/1000 Network Driver - version 5.2.52-k4
Copyright (c) 1999-2004 Intel Corporation.
ACPI: PCI interrupt 0000:01:01.0[A] -> GSI 3 (level, low) -> IRQ 3
PCI: Setting latency timer of device 0000:01:01.0 to 64
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_validate_option: Transmit Descriptors set to 1024
divert: allocating divert_blk for eth0
ACPI: PCI interrupt 0000:03:02.0[A] -> GSI 11 (level, low) -> IRQ 11
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
divert: allocating divert_blk for eth1
ip_tables: (C) 2000-2002 Netfilter core team
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
process `syslogd' is using obsolete setsockopt SO_BSDCOMPAT
nfs warning: mount version older than kernel
nfs warning: mount version older than kernel
process `snmptrapd' is using obsolete setsockopt SO_BSDCOMPAT
lp: driver loaded but no devices found
nfs warning: mount version older than kernel
nfs warning: mount version older than kernel
00:00.0 Host bridge: Intel Corp. 82875P Memory Controller Hub (rev 02)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
Latency: 0
Region 0: Memory at fe800000 (32-bit, prefetchable) [size=4M]
Capabilities: <available only to root>
00:03.0 PCI bridge: Intel Corp. 82875P Processor to PCI to CSA Bridge (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- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fe100000-fe2fffff
Prefetchable memory behind bridge: fff00000-000fffff
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
00:1c.0 PCI bridge: Intel Corp. Enterprise Southbridge Hublink PCI-X Bridge (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- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64, cache line size 10
Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: fff00000-000fffff
Prefetchable memory behind bridge: 00000000fff00000-0000000000000000
BridgeCtl: Parity+ SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: <available only to root>
00:1d.0 USB Controller: Intel Corp. Enterprise Southbridge USB 1.1 UHCI (rev 02) (prog-if 00 [UHCI])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 11
Region 4: I/O ports at cce0 [size=32]
00:1d.1 USB Controller: Intel Corp. Enterprise Southbridge USB 1.1 UHCI (rev 02) (prog-if 00 [UHCI])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 10
Region 4: I/O ports at ccc0 [size=32]
00:1d.4 System peripheral: Intel Corp. Enterprise Southbridge Watchdog Timer (rev 02)
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Region 0: Memory at fe300400 (32-bit, non-prefetchable) [size=16]
00:1d.5 PIC: Intel Corp. Enterprise Southbridge IOxAPIC (rev 02) (prog-if 20 [IO(X)-APIC])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Capabilities: <available only to root>
00:1d.7 USB Controller: Intel Corp. Enterprise Southbridge USB 2.0 EHCI (rev 02) (prog-if 20 [EHCI])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 7
Region 0: Memory at fe300000 (32-bit, non-prefetchable) [size=1K]
Capabilities: <available only to root>
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB/ER Hub interface to PCI Bridge (rev 0a) (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- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Bus: primary=00, secondary=03, subordinate=03, sec-latency=32
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fc000000-fdffffff
Prefetchable memory behind bridge: fff00000-000fffff
BridgeCtl: Parity+ SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
00:1f.0 ISA bridge: Intel Corp. Enterprise Southbridge ISA Bridge (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
00:1f.2 IDE interface: Intel Corp. Enterprise Southbridge SATA cc=IDE (rev 02) (prog-if 8a [Master SecP PriP])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 0
Region 0: I/O ports at <unassigned>
Region 1: I/O ports at <unassigned>
Region 2: I/O ports at <unassigned>
Region 3: I/O ports at <unassigned>
Region 4: I/O ports at fea0 [size=16]
00:1f.3 SMBus: Intel Corp. Enterprise Southbridge SMBUS (rev 02)
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin B routed to IRQ 5
Region 4: I/O ports at 08c0 [size=32]
01:01.0 Ethernet controller: Intel Corp. 82547GI Gigabit Ethernet Controller
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (63750ns min), cache line size 10
Interrupt: pin A routed to IRQ 3
Region 0: Memory at fe1e0000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at ece0 [size=32]
Capabilities: <available only to root>
03:02.0 Ethernet controller: Intel Corp. 82541GI/PI Gigabit Ethernet Controller
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (63750ns min), cache line size 10
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fdee0000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at dcc0 [size=64]
Capabilities: <available only to root>
03:0e.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) (prog-if 00 [VGA])
Subsystem: Dell Computer Corporation: Unknown device 0165
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop+ ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (2000ns min), cache line size 10
Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
Region 1: I/O ports at d800 [size=256]
Region 2: Memory at fdedf000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: <available only to root>
^ permalink raw reply
* Re: bk pull on ia64 linux tree
From: David Mosberger @ 2004-06-30 0:52 UTC (permalink / raw)
To: linux-ia64
In-Reply-To: <Pine.LNX.4.58.0401121658240.14305@evo.osdl.org>
Hi Peter,
Can you feed this directly to the respective maintainer? I want to
get 2.6.7 to work properly before moving on to newer things (and going
on vacation first... ;-).
Thanks,
--david
>>>>> On Wed, 30 Jun 2004 10:44:10 +1000, Peter Chubb <peter@chubb.wattle.id.au> said:
>>>>> "David" = David Mosberger <davidm@napali.hpl.hp.com> writes:
David> Hi Linus, please do a
David> bk pull http://lia64.bkbits.net/to-linus-2.5
David> This will update the files shown below.
Peter> David, even after doing this I see CC drivers/firmware/pcdp.o
Peter> /home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:
Peter> In function `setup_serial_console':
Peter> /home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:67:
Peter> warning: implicit declaration of function `ioremap'
Peter> /home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:67:
Peter> warning: assignment makes pointer from integer without a cast
Peter> ...
Peter> drivers/built-in.o(.init.text+0x11262): In function
Peter> `setup_serial_console': : undefined reference to `ioremap'
Peter> when building for ZX1.
Peter> I found I needed this patch:
Peter> Index: linux-2.6-preempt-davidm/drivers/firmware/pcdp.c
Peter> ================================= Peter> --- linux-2.6-preempt-davidm.orig/drivers/firmware/pcdp.c +++
Peter> linux-2.6-preempt-davidm/drivers/firmware/pcdp.c @@ -14,6
Peter> +14,7 @@ #include <linux/serial.h> #include
Peter> <linux/serial_core.h> #include <asm/serial.h> +#include
Peter> <asm/io.h> #include "pcdp.h"
Peter> static inline int
^ permalink raw reply
* Re: [PATCH 1/5] POSIX Locking fixes. Take 2...
From: Matthew Wilcox @ 2004-06-30 0:45 UTC (permalink / raw)
To: Trond Myklebust; +Cc: linux-fsdevel, Andrew Morton
In-Reply-To: <1088555282.4573.108.camel@lade.trondhjem.org>
On Tue, Jun 29, 2004 at 08:29:08PM -0400, Trond Myklebust wrote:
> struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
> - if ((fl->fl_owner == blocked_owner)
> - && (fl->fl_pid == blocked_pid)) {
> + if (IS_POSIX(fl) && posix_same_owner(fl, block_fl)) {
This check is spurious. Only POSIX locks go on the fl_link list.
--
"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
* Re: bk pull on ia64 linux tree
From: Peter Chubb @ 2004-06-30 0:44 UTC (permalink / raw)
To: linux-ia64
In-Reply-To: <Pine.LNX.4.58.0401121658240.14305@evo.osdl.org>
>>>>> "David" = David Mosberger <davidm@napali.hpl.hp.com> writes:
David> Hi Linus, please do a
David> bk pull http://lia64.bkbits.net/to-linus-2.5
David> This will update the files shown below.
David,
even after doing this I see
CC drivers/firmware/pcdp.o
/home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:
In function `setup_serial_console':
/home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:67:
warning: implicit declaration of function `ioremap'
/home/peterc/kernels/linux-2.6-preempt-davidm/drivers/firmware/pcdp.c:67:
warning: assignment makes pointer from integer without a cast
...
drivers/built-in.o(.init.text+0x11262): In function
`setup_serial_console': : undefined reference to `ioremap'
when building for ZX1.
I found I needed this patch:
Index: linux-2.6-preempt-davidm/drivers/firmware/pcdp.c
=================================--- linux-2.6-preempt-davidm.orig/drivers/firmware/pcdp.c
+++ linux-2.6-preempt-davidm/drivers/firmware/pcdp.c
@@ -14,6 +14,7 @@
#include <linux/serial.h>
#include <linux/serial_core.h>
#include <asm/serial.h>
+#include <asm/io.h>
#include "pcdp.h"
static inline int
^ permalink raw reply
* [U-Boot-Users] [PATCH] for Xilinx's ml300 board
From: sean chang @ 2004-06-30 0:41 UTC (permalink / raw)
To: u-boot
In-Reply-To: <20040629183141.GA28357@acmay.homeip.net>
Hi,
Sorry for the mess. Apparently I missed a step in cleaning up the
spacing for
my patch. Please ignore this patch and I'll submit another one soon.
Andrew, your points are well taken. I was planning on doing this in
different
steps but it doesn't seem like a good idea after all. I'll separate out
the
non-standard environment functions from IIC support and re-submit the
patch.
Further comments/suggestions are welcomed.
Thanks,
Sean
Andrew May wrote:
>
> On Tue, Jun 29, 2004 at 09:06:51AM -0700, Sean Chang wrote:
> > Hi Wolfgang,
> >
> > This is the first time I am submitting a patch, so if there is any problem
> > please let me know and I'll be more than happy to fix it.
> >
> > This patch is applied against the u-boot 1.1.1 release. Basically it adds
> > support for the ml300 board to read out its environment information stored
> > on the EEPROM.
>
> I would think the more important feature is that IIC support is added.
> I also wouldn't skip the fact that the OS independent code has changes as
> well.
> There are also a lot of tab to spaces conversions, that hide the real
> changes.
>
> It would be up to Wolfgang if he wants the stuff redone, but I would like
> to see a more complete change log. like
>
> CHANGELOG:
> Patch by Sean Chang, 28 Jun 2004:
> Updates to Virtex-II Pro/ml300 board
> OS independent code to Xilinx EDK 6.2
> Added IIC support (with non-standard environment functions)
> Add support for ml300 board to read out its environment
> information stored on the EEPROM.
> Convert Xilinx style environment vars to U-boot style vars.
>
> The non-standard env stuff should really be moved to a separate file so
> people can use just the IIC support without pulling that garbage in.
>
> The whole xparameters.h file is really annoying. It makes the IPIF code
> impossible to use on more than one board type without a recompile. That
> may be OK for U-boot but it is horrible in the Linux kernel.
>
> These things really need some ()'s.
> +#define XIIC_CR_REG_OFFSET 0x00+XIIC_REG_OFFSET /* Control Register */
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
^ permalink raw reply
* 2.6.7-mm[3-4] doesn't boot (alsa or pnp related)
From: caszonyi @ 2004-06-30 0:40 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 966 bytes --]
Hi all
I just tried today 2.6.7-mm3 and 2.6.7-mm4.
They both stop booting at:
Advanced Linux Sound Architecture Driver Version 1.0.5 (Sun May 30
10:49:40 2004 UTC)
pnp: Device 01:01.00 activated
pnp: Device 01:01.02 activated
pnp: Device 01:01.03 activated
on a normal boot it is (vanila 2.6.7):
Advanced Linux Sound Architecture Driver Version 1.0.4 (Mon May 17
14:31:44 2004 U
TC).
pnp: the driver 'cs423x' has been registered
pnp: match found with the PnP device '01:01.00' and the driver 'cs423x'
pnp: match found with the PnP device '01:01.02' and the driver 'cs423x'
pnp: match found with the PnP device '01:01.03' and the driver 'cs423x'
pnp: Device 01:01.00 activated.
pnp: Device 01:01.02 activated.
pnp: Device 01:01.03 activated.
ALSA device list:
#0: CS4239 at 0x534, irq 5, dma 1&0
#1: Brooktree Bt878 at 0xe2002000, irq 10
config is attached
Bye
Calin
--
"A mouse is a device used to point at
the xterm you want to type in".
Kim Alm on a.s.r.
[-- Attachment #2: Type: TEXT/PLAIN, Size: 27937 bytes --]
#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_CLEAN_COMPILE is not set
# CONFIG_STANDALONE is not set
CONFIG_BROKEN=y
CONFIG_BROKEN_ON_SMP=y
#
# General setup
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# 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_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_TSC=y
# CONFIG_X86_MCE is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_REGPARM=y
#
# Performance-monitoring counters support
#
# CONFIG_PERFCTR is not set
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_SOFTWARE_SUSPEND is not set
# CONFIG_PM_DISK is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
# CONFIG_ACPI_SLEEP is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_X86_PM_TIMER is not set
#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
CONFIG_PCI_GODIRECT=y
# CONFIG_PCI_GOANY is not set
CONFIG_PCI_DIRECT=y
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
# CONFIG_PARPORT_SERIAL is not set
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
#
# Plug and Play support
#
CONFIG_PNP=y
CONFIG_PNP_DEBUG=y
#
# Protocols
#
CONFIG_ISAPNP=y
CONFIG_PNPBIOS=y
CONFIG_PNPBIOS_PROC_FS=y
#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_TASKFILE_IO=y
#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
# CONFIG_SCSI is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set
#
# I2O device support
#
# CONFIG_I2O is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK_DEV=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
CONFIG_IP_ROUTE_TOS=y
# CONFIG_IP_ROUTE_VERBOSE is not set
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_FTP=y
CONFIG_IP_NF_IRC=y
CONFIG_IP_NF_TFTP=y
# CONFIG_IP_NF_AMANDA is not set
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_PKTTYPE=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_DSCP=y
CONFIG_IP_NF_MATCH_AH_ESP=y
CONFIG_IP_NF_MATCH_LENGTH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_HELPER=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_CONNTRACK=y
CONFIG_IP_NF_MATCH_OWNER=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_SAME=y
CONFIG_IP_NF_NAT_LOCAL=y
CONFIG_IP_NF_NAT_SNMP_BASIC=y
CONFIG_IP_NF_NAT_IRC=y
CONFIG_IP_NF_NAT_FTP=y
CONFIG_IP_NF_NAT_TFTP=y
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_DSCP=y
CONFIG_IP_NF_TARGET_MARK=y
CONFIG_IP_NF_TARGET_CLASSIFY=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
# CONFIG_IP_NF_ARP_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
# CONFIG_IP_NF_MATCH_REALM is not set
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_KGDBOE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
# CONFIG_NET_SB1000 is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=y
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_NET_POCKET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
# CONFIG_WAVELAN is not set
#
# Wireless 802.11b ISA/PCI cards support
#
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
CONFIG_NET_WIRELESS=y
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_RAW is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_UINPUT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
# CONFIG_SERIAL_8250_ACPI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
# CONFIG_SERIAL_8250_SHARE_IRQ is not set
CONFIG_SERIAL_8250_DETECT_IRQ=y
# CONFIG_SERIAL_8250_MULTIPORT is not set
CONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=512
CONFIG_PRINTER=y
CONFIG_LP_CONSOLE=y
CONFIG_PPDEV=y
# CONFIG_TIPAR is not set
# CONFIG_QIC02_TAPE is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=y
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_INTEL_MCH is not set
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_AGP_VIA=y
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_NOMMAP=y
# CONFIG_HANGCHECK_TIMER is not set
#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_ALGOPCF=y
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
CONFIG_I2C_ISA=y
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_VIA=y
CONFIG_I2C_VIAPRO=y
# CONFIG_I2C_VOODOO3 is not set
#
# Hardware Sensors Chip support
#
CONFIG_I2C_SENSOR=y
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_MAX1619 is not set
CONFIG_SENSORS_VIA686A=y
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
#
# Other I2C Chip support
#
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# Misc devices
#
# CONFIG_IBM_ASM is not set
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=y
#
# Video For Linux
#
#
# Video Adapters
#
CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_ZR36120 is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_CX88 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
#
# Radio Adapters
#
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_RTRACK is not set
# CONFIG_RADIO_RTRACK2 is not set
# CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_GEMTEK is not set
# CONFIG_RADIO_GEMTEK_PCI is not set
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_MAESTRO is not set
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_SF16FMR2 is not set
# CONFIG_RADIO_TERRATEC is not set
# CONFIG_RADIO_TRUST is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
#
# Graphics support
#
# CONFIG_FB is not set
CONFIG_VIDEO_SELECT=y
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=y
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=y
CONFIG_SND_OPL3_LIB=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
CONFIG_SND_MPU401=y
#
# ISA devices
#
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
CONFIG_SND_CS4236=y
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_WAVEFRONT is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
#
# PCI devices
#
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
CONFIG_SND_BT87X=y
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VX222 is not set
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#
# CONFIG_USB is not set
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
CONFIG_XFS_POSIX_ACL=y
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
CONFIG_UDF_FS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
CONFIG_UFS_FS=y
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
# CONFIG_RPCSEC_GSS_KRB5 is not set
CONFIG_SMB_FS=y
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
CONFIG_CODA_FS=y
CONFIG_CODA_FS_OLD_API=y
# CONFIG_AFS_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_MINIX_SUBPARTITION is not set
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-2"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_CODEPAGE_1250=y
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
CONFIG_DEBUG_KERNEL=y
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_KGDB is not set
# CONFIG_FRAME_POINTER is not set
# CONFIG_4KSTACKS is not set
#
# Security options
#
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
# CONFIG_CRYPTO is not set
#
# Library routines
#
CONFIG_CRC16=y
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_PC=y
^ permalink raw reply
* [PATCH] PPC4xx preempt fix
From: Matt Porter @ 2004-06-30 0:33 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
PPC4xx preempt fixes. Based on previous Classic PPC patch.
Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
arch/ppc/kernel/head_44x.S | 2 +-
arch/ppc/kernel/head_4xx.S | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--- 1.9/arch/ppc/kernel/head_44x.S 2004-06-02 12:08:05 -07:00
+++ edited/arch/ppc/kernel/head_44x.S 2004-06-08 12:02:32 -07:00
@@ -680,7 +680,7 @@
mfspr r4,SPRN_ESR /* Grab the ESR and save it */
stw r4,_ESR(r11)
addi r3,r1,STACK_FRAME_OVERHEAD
- EXC_XFER_EE(0x700, ProgramCheckException)
+ EXC_XFER_STD(0x700, ProgramCheckException)
/* Floating Point Unavailable Interrupt */
EXCEPTION(0x2010, FloatingPointUnavailable, UnknownException, EXC_XFER_EE)
--- 1.34/arch/ppc/kernel/head_4xx.S 2004-06-02 12:08:05 -07:00
+++ edited/arch/ppc/kernel/head_4xx.S 2004-06-08 12:02:48 -07:00
@@ -451,7 +451,7 @@
mfspr r4,SPRN_ESR /* Grab the ESR and save it */
stw r4,_ESR(r11)
addi r3,r1,STACK_FRAME_OVERHEAD
- EXC_XFER_EE(0x700, ProgramCheckException)
+ EXC_XFER_STD(0x700, ProgramCheckException)
EXCEPTION(0x0800, Trap_08, UnknownException, EXC_XFER_EE)
EXCEPTION(0x0900, Trap_09, UnknownException, EXC_XFER_EE)
^ permalink raw reply
* Re: Re: swsusp and ac status
From: Micha Feigin @ 2004-06-30 0:33 UTC (permalink / raw)
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
In-Reply-To: <20040625151421.GA8852-l0tNAEGuAhhzZ8+rp42Dbp9+tswZ0GTaehPwdyo5hKaELgA04lAiVw@public.gmane.org>
On Fri, Jun 25, 2004 at 03:14:22PM -0000, Stefan Seyfried wrote:
> On Fri, Jun 25, 2004 at 07:29:51PM +0800, Michael Frank wrote:
>
> > >It is NOT in my case. It is one of the first things I did. Now, just
> > >in case, I gave it another try, but it does not work.
> > >
> > >modprobe -r ac
> > >suspend
> > >unplug
> > >resume
> > >modprobe ac
> > >
> > >cat /proc/acpi/ac_adapter/C131/state
> > >state: on-line
> > >
> > >If now, after resuming, I plug and unplug the adapter...
> > >
> > >cat /proc/acpi/ac_adapter/C131/state
> > >state: off-line
>
> I have exactly the same on a hp compaq nx 5000.
>
> > Too bad, this implies that the AC module does not get reinitialized after
> > resume and I suspect that acpi core is broken on 2.6 in this regard.
>
> Pavel and i and some HP BIOS engineers analyzed this problem and pavel
> proposed an ugly hack in his swsusp code to work around this. I have
> to check back in my archives / bugzilla reports for this.
> The funny thing is, that the BIOS is 100% correct and this leads to this
> problem (at least that was what Pavel concluded). HP would have changed
> the BIOS to work around the linux bug, but this would be even more ugly.
> I will dig my archives for more info and a (probably ugly, but maybe
> somehow working) patch. I'm offline on the train now, so this will have
> to wait until monday.
>
> > I'll compile 2.6 and try it on my HW.
>
> It is completely hardware dependent, i only saw it on the nx5000 up to
> now.
Also saw this on a sony vaio pcg-fxa53 (via + amd 1300+)
>
> > Perhaps the ACPI people could advise how to increase debug verbosity
> > to see what happens or if that can't be done, put some printks into AC
> > module to see what happens when the module is loaded on resume.
>
> I am not even sure that the AC module is to blame, i have to check
> my archives, i don't remember all the gory details.
For me compiling battery as a module and unloading/swsusp/resume
bypasses the problem.
> --
> Stefan Seyfried
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
>
> +++++++++++++++++++++++++++++++++++++++++++
> This Mail Was Scanned By Mail-seCure System
> at the Tel-Aviv University CC.
>
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
^ permalink raw reply
* Re: remap_pte_range
From: Andrew Morton @ 2004-06-30 0:30 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: linux-mm, linux-kernel
In-Reply-To: <65600000.1088554644@flay>
"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> I have no idea what remap_pte_range is trying to do here, but what it
> is doing makes no sense (to me at least).
>
> If the pfn is not valid, we CANNOT safely call PageReserved on it -
> the *page returned from pfn_to_page is bullshit, and we crash deref'ing
> it.
>
> Perhaps this was what it was trying to do? Not sure.
>
> diff -purN -X /home/mbligh/.diff.exclude virgin/mm/memory.c remap_pte_range/mm/memory.c
> --- virgin/mm/memory.c 2004-06-16 10:22:15.000000000 -0700
> +++ remap_pte_range/mm/memory.c 2004-06-29 17:15:35.000000000 -0700
> @@ -908,7 +908,7 @@ static inline void remap_pte_range(pte_t
> pfn = phys_addr >> PAGE_SHIFT;
> do {
> BUG_ON(!pte_none(*pte));
> - if (!pfn_valid(pfn) || PageReserved(pfn_to_page(pfn)))
> + if (pfn_valid(pfn) && !PageReserved(pfn_to_page(pfn)))
> set_pte(pte, pfn_pte(pfn, prot));
> address += PAGE_SIZE;
> pfn++;
It seems OK as-is.
If the pfn is not valid then establish the pte to point at physical memory.
If the pfn _is_ valid then check PageReserved. If the page is reserved
then establish a pte to point at it.
The slightly weird thing is that we do
pfn = phys_addr >> PAGE_SHIFT;
...
pfn_pte(pfn);
to go from the physical address back to a masked&shifted version of the
physical address. Maybe that operation is doing the wrong thing in your
setup and we should go straight from the physical address to the pte value,
like 2.4's mk_pte_phys().
^ permalink raw reply
* [PATCH] PPC44x updates
From: Matt Porter @ 2004-06-30 0:30 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
Update PPC44x defconfigs and some fixes.
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
===== arch/ppc/configs/ebony_defconfig 1.6 vs edited =====
--- 1.6/arch/ppc/configs/ebony_defconfig Tue May 18 07:48:09 2004
+++ edited/arch/ppc/configs/ebony_defconfig Tue Jun 29 15:40:57 2004
@@ -30,6 +30,7 @@
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -56,6 +57,8 @@
# CONFIG_POWER3 is not set
# CONFIG_POWER4 is not set
# CONFIG_8xx is not set
+# CONFIG_E500 is not set
+CONFIG_BOOKE=y
CONFIG_PTE_64BIT=y
# CONFIG_MATH_EMULATION is not set
# CONFIG_CPU_FREQ is not set
@@ -68,7 +71,6 @@
# CONFIG_OCOTEA is not set
CONFIG_440GP=y
CONFIG_440=y
-CONFIG_BOOKE=y
CONFIG_IBM_OCP=y
# CONFIG_PM is not set
CONFIG_NOT_COHERENT_CACHE=y
@@ -106,6 +108,8 @@
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_BOOT_LOAD=0x01000000
#
@@ -115,6 +119,7 @@
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
#
@@ -141,7 +146,7 @@
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_LBD=y
@@ -247,6 +252,7 @@
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -272,6 +278,12 @@
# Ethernet (10 or 100Mbit)
#
# CONFIG_NET_ETHERNET is not set
+CONFIG_IBM_EMAC=y
+# CONFIG_IBM_EMAC_ERRMSG is not set
+CONFIG_IBM_EMAC_RXB=64
+CONFIG_IBM_EMAC_TXB=8
+CONFIG_IBM_EMAC_FGAP=8
+CONFIG_IBM_EMAC_SKBRES=0
#
# Ethernet (1000 Mbit)
@@ -310,7 +322,6 @@
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
-# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
@@ -543,6 +554,11 @@
#
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
#
# Kernel hacking
===== arch/ppc/configs/ocotea_defconfig 1.4 vs edited =====
--- 1.4/arch/ppc/configs/ocotea_defconfig Fri May 14 19:00:24 2004
+++ edited/arch/ppc/configs/ocotea_defconfig Mon Jun 28 13:16:56 2004
@@ -21,18 +21,22 @@
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
@@ -54,6 +58,8 @@
# CONFIG_POWER3 is not set
# CONFIG_POWER4 is not set
# CONFIG_8xx is not set
+# CONFIG_E500 is not set
+CONFIG_BOOKE=y
CONFIG_PTE_64BIT=y
# CONFIG_MATH_EMULATION is not set
# CONFIG_CPU_FREQ is not set
@@ -66,9 +72,7 @@
CONFIG_OCOTEA=y
CONFIG_440GX=y
CONFIG_440A=y
-CONFIG_BOOKE=y
CONFIG_IBM_OCP=y
-CONFIG_PPC_OCP=y
CONFIG_IBM_EMAC4=y
# CONFIG_PM is not set
CONFIG_NOT_COHERENT_CACHE=y
@@ -106,6 +110,8 @@
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_BOOT_LOAD=0x01000000
#
@@ -115,6 +121,7 @@
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
#
@@ -141,7 +148,7 @@
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -163,7 +170,6 @@
#
# Fusion MPT device support
#
-# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
@@ -212,8 +218,6 @@
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
-# CONFIG_DECNET is not set
-# CONFIG_BRIDGE is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -232,7 +236,9 @@
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
@@ -248,21 +254,27 @@
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
#
# Ethernet (10 or 100Mbit)
@@ -279,6 +291,12 @@
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
+CONFIG_IBM_EMAC=y
+# CONFIG_IBM_EMAC_ERRMSG is not set
+CONFIG_IBM_EMAC_RXB=128
+CONFIG_IBM_EMAC_TXB=128
+CONFIG_IBM_EMAC_FGAP=8
+CONFIG_IBM_EMAC_SKBRES=0
# CONFIG_NET_PCI is not set
#
@@ -291,7 +309,6 @@
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
@@ -299,51 +316,28 @@
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
-CONFIG_IBM_EMAC=y
-# CONFIG_IBM_EMAC_ERRMSG is not set
-CONFIG_IBM_EMAC_RXB=128
-CONFIG_IBM_EMAC_TXB=128
-CONFIG_IBM_EMAC_FGAP=8
-CONFIG_IBM_EMAC_SKBRES=0
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
+# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
-# CONFIG_RCPCI is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
+# Wireless LAN (non-hamradio)
#
-# CONFIG_IRDA is not set
+# CONFIG_NET_RADIO is not set
#
-# Bluetooth support
+# Wan interfaces
#
-# CONFIG_BT is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
@@ -515,6 +509,7 @@
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
# CONFIG_TMPFS is not set
@@ -555,7 +550,6 @@
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
@@ -573,6 +567,12 @@
# Library routines
#
CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
#
# Kernel hacking
@@ -587,7 +587,7 @@
CONFIG_BDI_SWITCH=y
CONFIG_DEBUG_INFO=y
# CONFIG_SERIAL_TEXT_DEBUG is not set
-CONFIG_OCP=y
+CONFIG_PPC_OCP=y
#
# Security options
===== arch/ppc/kernel/head_44x.S 1.9 vs edited =====
--- 1.9/arch/ppc/kernel/head_44x.S Sat May 29 00:26:35 2004
+++ edited/arch/ppc/kernel/head_44x.S Tue Jun 29 15:38:10 2004
@@ -177,11 +177,11 @@
rfi
/* If necessary, invalidate original entry we used */
-3: cmpwi r23,62
+3: cmpwi r23,63
beq 4f
li r6,0
tlbwe r6,r23,PPC44x_TLB_PAGEID
- sync
+ isync
4:
#ifdef CONFIG_SERIAL_TEXT_DEBUG
===== arch/ppc/syslib/ibm440gp_common.c 1.4 vs edited =====
--- 1.4/arch/ppc/syslib/ibm440gp_common.c Fri May 14 19:00:24 2004
+++ edited/arch/ppc/syslib/ibm440gp_common.c Tue Jun 29 16:48:45 2004
@@ -30,7 +30,8 @@
{
u32 cpc0_sys0 = mfdcr(DCRN_CPC0_SYS0);
u32 cpc0_cr0 = mfdcr(DCRN_CPC0_CR0);
- u32 opdv, epdv;
+ u32 opdv = ((cpc0_sys0 >> 10) & 0x3) + 1;
+ u32 epdv = ((cpc0_sys0 >> 8) & 0x3) + 1;
if (cpc0_sys0 & 0x2){
/* Bypass system PLL */
@@ -59,9 +60,6 @@
p->cpu = vco / fwdva;
p->plb = vco / fwdvb;
}
-
- opdv = ((cpc0_sys0 >> 10) & 0x3) + 1;
- epdv = ((cpc0_sys0 >> 8) & 0x3) + 1;
p->opb = p->plb / opdv;
p->ebc = p->opb / epdv;
^ permalink raw reply
* Re: remap_pte_range
From: Andrew Morton @ 2004-06-30 0:30 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: linux-mm, linux-kernel
In-Reply-To: <65600000.1088554644@flay>
"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> I have no idea what remap_pte_range is trying to do here, but what it
> is doing makes no sense (to me at least).
>
> If the pfn is not valid, we CANNOT safely call PageReserved on it -
> the *page returned from pfn_to_page is bullshit, and we crash deref'ing
> it.
>
> Perhaps this was what it was trying to do? Not sure.
>
> diff -purN -X /home/mbligh/.diff.exclude virgin/mm/memory.c remap_pte_range/mm/memory.c
> --- virgin/mm/memory.c 2004-06-16 10:22:15.000000000 -0700
> +++ remap_pte_range/mm/memory.c 2004-06-29 17:15:35.000000000 -0700
> @@ -908,7 +908,7 @@ static inline void remap_pte_range(pte_t
> pfn = phys_addr >> PAGE_SHIFT;
> do {
> BUG_ON(!pte_none(*pte));
> - if (!pfn_valid(pfn) || PageReserved(pfn_to_page(pfn)))
> + if (pfn_valid(pfn) && !PageReserved(pfn_to_page(pfn)))
> set_pte(pte, pfn_pte(pfn, prot));
> address += PAGE_SIZE;
> pfn++;
It seems OK as-is.
If the pfn is not valid then establish the pte to point at physical memory.
If the pfn _is_ valid then check PageReserved. If the page is reserved
then establish a pte to point at it.
The slightly weird thing is that we do
pfn = phys_addr >> PAGE_SHIFT;
...
pfn_pte(pfn);
to go from the physical address back to a masked&shifted version of the
physical address. Maybe that operation is doing the wrong thing in your
setup and we should go straight from the physical address to the pte value,
like 2.4's mk_pte_phys().
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
^ permalink raw reply
* [PATCH 5/5] POSIX Locking fixes. Take 2...
From: Trond Myklebust @ 2004-06-30 0:29 UTC (permalink / raw)
To: linux-fsdevel; +Cc: Andrew Morton
NLM/lockd: set up a unique mapping between the fl_owner_t and a unique
32-bit "pid" on the client side. We can't use the real pid of the
process/thread 'cos CLONE_FILES does not automatically imply
CLONE_THREAD.
fs/lockd/clntlock.c | 4 +-
fs/lockd/clntproc.c | 85 ++++++++++++++++++++++++++++++++++++++++++--
fs/lockd/host.c | 18 +++++----
include/linux/lockd/lockd.h | 17 ++++++++
include/linux/nfs_fs_i.h | 4 +-
5 files changed, 114 insertions(+), 14 deletions(-)
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_lockd/fs/lockd/clntlock.c linux-2.6.7-03-nlm_lockowner/fs/lockd/clntlock.c
--- linux-2.6.7-02-fix_lockd/fs/lockd/clntlock.c 2004-06-28 21:45:33.000000000 -0400
+++ linux-2.6.7-03-nlm_lockowner/fs/lockd/clntlock.c 2004-06-29 10:54:12.000000000 -0400
@@ -146,7 +146,7 @@ void nlmclnt_mark_reclaim(struct nlm_hos
inode = fl->fl_file->f_dentry->d_inode;
if (inode->i_sb->s_magic != NFS_SUPER_MAGIC)
continue;
- if (fl->fl_u.nfs_fl.host != host)
+ if (fl->fl_u.nfs_fl.owner->host != host)
continue;
if (!(fl->fl_u.nfs_fl.flags & NFS_LCK_GRANTED))
continue;
@@ -215,7 +215,7 @@ restart:
inode = fl->fl_file->f_dentry->d_inode;
if (inode->i_sb->s_magic != NFS_SUPER_MAGIC)
continue;
- if (fl->fl_u.nfs_fl.host != host)
+ if (fl->fl_u.nfs_fl.owner->host != host)
continue;
if (!(fl->fl_u.nfs_fl.flags & NFS_LCK_RECLAIM))
continue;
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_lockd/fs/lockd/clntproc.c linux-2.6.7-03-nlm_lockowner/fs/lockd/clntproc.c
--- linux-2.6.7-02-fix_lockd/fs/lockd/clntproc.c 2004-06-29 16:36:43.000000000 -0400
+++ linux-2.6.7-03-nlm_lockowner/fs/lockd/clntproc.c 2004-06-29 16:35:54.000000000 -0400
@@ -42,6 +42,79 @@ static inline void nlmclnt_next_cookie(s
nlm_cookie++;
}
+static struct nlm_lockowner *nlm_get_lockowner(struct nlm_lockowner *lockowner)
+{
+ atomic_inc(&lockowner->count);
+ return lockowner;
+}
+
+static void nlm_put_lockowner(struct nlm_lockowner *lockowner)
+{
+ if (!atomic_dec_and_lock(&lockowner->count, &lockowner->host->h_lock))
+ return;
+ list_del(&lockowner->list);
+ spin_unlock(&lockowner->host->h_lock);
+ nlm_release_host(lockowner->host);
+ kfree(lockowner);
+}
+
+static inline int nlm_pidbusy(struct nlm_host *host, uint32_t pid)
+{
+ struct nlm_lockowner *lockowner;
+ list_for_each_entry(lockowner, &host->h_lockowners, list) {
+ if (lockowner->pid == pid)
+ return -EBUSY;
+ }
+ return 0;
+}
+
+static inline uint32_t __nlm_alloc_pid(struct nlm_host *host)
+{
+ uint32_t res;
+ do {
+ res = host->h_pidcount++;
+ } while (nlm_pidbusy(host, res) < 0);
+ return res;
+}
+
+static struct nlm_lockowner *__nlm_find_lockowner(struct nlm_host *host, fl_owner_t owner)
+{
+ struct nlm_lockowner *lockowner;
+ list_for_each_entry(lockowner, &host->h_lockowners, list) {
+ if (lockowner->owner != owner)
+ continue;
+ return nlm_get_lockowner(lockowner);
+ }
+ return NULL;
+}
+
+static struct nlm_lockowner *nlm_find_lockowner(struct nlm_host *host, fl_owner_t owner)
+{
+ struct nlm_lockowner *res, *new = NULL;
+
+ spin_lock(&host->h_lock);
+ res = __nlm_find_lockowner(host, owner);
+ if (res == NULL) {
+ spin_unlock(&host->h_lock);
+ new = (struct nlm_lockowner *)kmalloc(sizeof(*new), GFP_KERNEL);
+ spin_lock(&host->h_lock);
+ res = __nlm_find_lockowner(host, owner);
+ if (res == NULL && new != NULL) {
+ res = new;
+ atomic_set(&new->count, 1);
+ new->owner = owner;
+ new->pid = __nlm_alloc_pid(host);
+ new->host = nlm_get_host(host);
+ list_add(&new->list, &host->h_lockowners);
+ new = NULL;
+ }
+ }
+ spin_unlock(&host->h_lock);
+ if (new != NULL)
+ kfree(new);
+ return res;
+}
+
/*
* Initialize arguments for TEST/LOCK/UNLOCK/CANCEL calls
*/
@@ -415,15 +488,20 @@ nlmclnt_test(struct nlm_rqst *req, struc
return 0;
}
+static int nlmclnt_locks_same_owner(struct file_lock *fl1, struct file_lock *fl2)
+{
+ return fl1->fl_u.nfs_fl.owner == fl2->fl_u.nfs_fl.owner;
+}
+
static void nlmclnt_locks_copy_lock(struct file_lock *new, struct file_lock *fl)
{
memcpy(&new->fl_u.nfs_fl, &fl->fl_u.nfs_fl, sizeof(new->fl_u.nfs_fl));
- nlm_get_host(new->fl_u.nfs_fl.host);
+ nlm_get_lockowner(new->fl_u.nfs_fl.owner);
}
static void nlmclnt_locks_release_private(struct file_lock *fl)
{
- nlm_release_host(fl->fl_u.nfs_fl.host);
+ nlm_put_lockowner(fl->fl_u.nfs_fl.owner);
fl->fl_ops = NULL;
}
@@ -433,6 +511,7 @@ static void nlmclnt_steal_locks(struct f
}
static struct file_lock_operations nlmclnt_lock_ops = {
+ .fl_compare_owner = nlmclnt_locks_same_owner,
.fl_copy_lock = nlmclnt_locks_copy_lock,
.fl_release_private = nlmclnt_locks_release_private,
.fl_steal_locks = nlmclnt_steal_locks,
@@ -443,7 +522,7 @@ static void nlmclnt_locks_init_private(s
BUG_ON(fl->fl_ops != NULL);
fl->fl_u.nfs_fl.state = 0;
fl->fl_u.nfs_fl.flags = 0;
- fl->fl_u.nfs_fl.host = nlm_get_host(host);
+ fl->fl_u.nfs_fl.owner = nlm_find_lockowner(host, fl->fl_owner);
fl->fl_ops = &nlmclnt_lock_ops;
}
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_lockd/fs/lockd/host.c linux-2.6.7-03-nlm_lockowner/fs/lockd/host.c
--- linux-2.6.7-02-fix_lockd/fs/lockd/host.c 2004-06-28 21:45:18.000000000 -0400
+++ linux-2.6.7-03-nlm_lockowner/fs/lockd/host.c 2004-06-29 13:16:45.000000000 -0400
@@ -119,13 +119,15 @@ nlm_lookup_host(int server, struct socka
init_MUTEX(&host->h_sema);
host->h_nextrebind = jiffies + NLM_HOST_REBIND;
host->h_expires = jiffies + NLM_HOST_EXPIRE;
- host->h_count = 1;
+ atomic_set(&host->h_count, 1);
init_waitqueue_head(&host->h_gracewait);
host->h_state = 0; /* pseudo NSM state */
host->h_nsmstate = 0; /* real NSM state */
host->h_server = server;
host->h_next = nlm_hosts[hash];
nlm_hosts[hash] = host;
+ INIT_LIST_HEAD(&host->h_lockowners);
+ spin_lock_init(&host->h_lock);
if (++nrhosts > NLM_HOST_MAX)
next_gc = 0;
@@ -235,7 +237,7 @@ struct nlm_host * nlm_get_host(struct nl
{
if (host) {
dprintk("lockd: get host %s\n", host->h_name);
- host->h_count ++;
+ atomic_inc(&host->h_count);
host->h_expires = jiffies + NLM_HOST_EXPIRE;
}
return host;
@@ -246,9 +248,10 @@ struct nlm_host * nlm_get_host(struct nl
*/
void nlm_release_host(struct nlm_host *host)
{
- if (host && host->h_count) {
+ if (host != NULL) {
dprintk("lockd: release host %s\n", host->h_name);
- host->h_count --;
+ atomic_dec(&host->h_count);
+ BUG_ON(atomic_read(&host->h_count) < 0);
}
}
@@ -283,7 +286,7 @@ nlm_shutdown_hosts(void)
for (i = 0; i < NLM_HOST_NRHASH; i++) {
for (host = nlm_hosts[i]; host; host = host->h_next) {
dprintk(" %s (cnt %d use %d exp %ld)\n",
- host->h_name, host->h_count,
+ host->h_name, atomic_read(&host->h_count),
host->h_inuse, host->h_expires);
}
}
@@ -314,10 +317,10 @@ nlm_gc_hosts(void)
for (i = 0; i < NLM_HOST_NRHASH; i++) {
q = &nlm_hosts[i];
while ((host = *q) != NULL) {
- if (host->h_count || host->h_inuse
+ if (atomic_read(&host->h_count) || host->h_inuse
|| time_before(jiffies, host->h_expires)) {
dprintk("nlm_gc_hosts skipping %s (cnt %d use %d exp %ld)\n",
- host->h_name, host->h_count,
+ host->h_name, atomic_read(&host->h_count),
host->h_inuse, host->h_expires);
q = &host->h_next;
continue;
@@ -336,6 +339,7 @@ nlm_gc_hosts(void)
rpc_destroy_client(host->h_rpcclnt);
}
}
+ BUG_ON(!list_empty(&host->h_lockowners));
kfree(host);
nrhosts--;
}
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_lockd/include/linux/lockd/lockd.h linux-2.6.7-03-nlm_lockowner/include/linux/lockd/lockd.h
--- linux-2.6.7-02-fix_lockd/include/linux/lockd/lockd.h 2004-06-28 21:47:13.000000000 -0400
+++ linux-2.6.7-03-nlm_lockowner/include/linux/lockd/lockd.h 2004-06-29 11:05:57.000000000 -0400
@@ -52,10 +52,25 @@ struct nlm_host {
wait_queue_head_t h_gracewait; /* wait while reclaiming */
u32 h_state; /* pseudo-state counter */
u32 h_nsmstate; /* true remote NSM state */
- unsigned int h_count; /* reference count */
+ u32 h_pidcount; /* Pseudopids */
+ atomic_t h_count; /* reference count */
struct semaphore h_sema; /* mutex for pmap binding */
unsigned long h_nextrebind; /* next portmap call */
unsigned long h_expires; /* eligible for GC */
+ struct list_head h_lockowners; /* Lockowners for the client */
+ spinlock_t h_lock;
+};
+
+/*
+ * Map an fl_owner_t into a unique 32-bit "pid"
+ */
+struct nlm_lockowner {
+ struct list_head list;
+ atomic_t count;
+
+ struct nlm_host *host;
+ fl_owner_t owner;
+ uint32_t pid;
};
/*
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_lockd/include/linux/nfs_fs_i.h linux-2.6.7-03-nlm_lockowner/include/linux/nfs_fs_i.h
--- linux-2.6.7-02-fix_lockd/include/linux/nfs_fs_i.h 2004-06-28 21:45:05.000000000 -0400
+++ linux-2.6.7-03-nlm_lockowner/include/linux/nfs_fs_i.h 2004-06-28 22:24:01.000000000 -0400
@@ -5,13 +5,15 @@
#include <linux/list.h>
#include <linux/nfs.h>
+struct nlm_lockowner;
+
/*
* NFS lock info
*/
struct nfs_lock_info {
u32 state;
u32 flags;
- struct nlm_host *host;
+ struct nlm_lockowner *owner;
};
/*
^ permalink raw reply
* [PATCH 4/5] POSIX Locking fixes. Take 2...
From: Trond Myklebust @ 2004-06-30 0:29 UTC (permalink / raw)
To: linux-fsdevel; +Cc: Andrew Morton
NLM/lockd: Fix up lockd to make use of the new interface. In particular
set up fl_compare_owner() methods for both client and server.
NLM/lockd: Make the client release all locks in a "steal_locks"
situation.
NLM/lockd: Fix up copying/release of the file_lock->fl_u.nfs_fl private
data.
fs/lockd/clntproc.c | 98 +++++++++++++++++++++++++++++++-------------
fs/lockd/svc4proc.c | 1
fs/lockd/svclock.c | 10 ++++
fs/lockd/svcproc.c | 1
include/linux/lockd/lockd.h | 2
6 files changed, 91 insertions(+), 34 deletions(-)
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/fs/lockd/clntproc.c linux-2.6.7-03-fix_lockd/fs/lockd/clntproc.c
--- linux-2.6.7-02-fix_locks2/fs/lockd/clntproc.c 2004-06-28 21:44:59.000000000 -0400
+++ linux-2.6.7-03-fix_lockd/fs/lockd/clntproc.c 2004-06-29 16:36:43.000000000 -0400
@@ -27,6 +27,7 @@ static int nlmclnt_unlock(struct nlm_rqs
static void nlmclnt_unlock_callback(struct rpc_task *);
static void nlmclnt_cancel_callback(struct rpc_task *);
static int nlm_stat_to_errno(u32 stat);
+static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host);
/*
* Cookie counter for NLM requests
@@ -44,8 +45,7 @@ static inline void nlmclnt_next_cookie(s
/*
* Initialize arguments for TEST/LOCK/UNLOCK/CANCEL calls
*/
-static inline void
-nlmclnt_setlockargs(struct nlm_rqst *req, struct file_lock *fl)
+static void nlmclnt_setlockargs(struct nlm_rqst *req, struct file_lock *fl)
{
struct nlm_args *argp = &req->a_args;
struct nlm_lock *lock = &argp->lock;
@@ -60,6 +60,14 @@ nlmclnt_setlockargs(struct nlm_rqst *req
locks_copy_lock(&lock->fl, fl);
}
+static void nlmclnt_release_lockargs(struct nlm_rqst *req)
+{
+ struct file_lock *fl = &req->a_args.lock.fl;
+
+ if (fl->fl_ops && fl->fl_ops->fl_release_private)
+ fl->fl_ops->fl_release_private(fl);
+}
+
/*
* Initialize arguments for GRANTED call. The nlm_rqst structure
* has been cleared already.
@@ -77,8 +85,10 @@ nlmclnt_setgrantargs(struct nlm_rqst *ca
if (lock->oh.len > NLMCLNT_OHSIZE) {
void *data = kmalloc(lock->oh.len, GFP_KERNEL);
- if (!data)
+ if (!data) {
+ nlmclnt_freegrantargs(call);
return 0;
+ }
call->a_args.lock.oh.data = (u8 *) data;
}
@@ -89,12 +99,15 @@ nlmclnt_setgrantargs(struct nlm_rqst *ca
void
nlmclnt_freegrantargs(struct nlm_rqst *call)
{
+ struct file_lock *fl = &call->a_args.lock.fl;
/*
* Check whether we allocated memory for the owner.
*/
if (call->a_args.lock.oh.data != (u8 *) call->a_owner) {
kfree(call->a_args.lock.oh.data);
}
+ if (fl->fl_ops && fl->fl_ops->fl_release_private)
+ fl->fl_ops->fl_release_private(fl);
}
/*
@@ -165,6 +178,8 @@ nlmclnt_proc(struct inode *inode, int cm
}
call->a_host = host;
+ nlmclnt_locks_init_private(fl, host);
+
/* Set up the argument struct */
nlmclnt_setlockargs(call, fl);
@@ -179,9 +194,6 @@ nlmclnt_proc(struct inode *inode, int cm
else
status = -EINVAL;
- if (status < 0 && (call->a_flags & RPC_TASK_ASYNC))
- kfree(call);
-
out_restore:
spin_lock_irqsave(¤t->sighand->siglock, flags);
current->blocked = oldset;
@@ -382,7 +394,9 @@ nlmclnt_test(struct nlm_rqst *req, struc
{
int status;
- if ((status = nlmclnt_call(req, NLMPROC_TEST)) < 0)
+ status = nlmclnt_call(req, NLMPROC_TEST);
+ nlmclnt_release_lockargs(req);
+ if (status < 0)
return status;
status = req->a_res.status;
@@ -391,10 +405,9 @@ nlmclnt_test(struct nlm_rqst *req, struc
} if (status == NLM_LCK_DENIED) {
/*
* Report the conflicting lock back to the application.
- * FIXME: Is it OK to report the pid back as well?
*/
locks_copy_lock(fl, &req->a_res.lock.fl);
- /* fl->fl_pid = 0; */
+ fl->fl_pid = 0;
} else {
return nlm_stat_to_errno(req->a_res.status);
}
@@ -402,18 +415,36 @@ nlmclnt_test(struct nlm_rqst *req, struc
return 0;
}
-static
-void nlmclnt_insert_lock_callback(struct file_lock *fl)
+static void nlmclnt_locks_copy_lock(struct file_lock *new, struct file_lock *fl)
{
- nlm_get_host(fl->fl_u.nfs_fl.host);
+ memcpy(&new->fl_u.nfs_fl, &fl->fl_u.nfs_fl, sizeof(new->fl_u.nfs_fl));
+ nlm_get_host(new->fl_u.nfs_fl.host);
}
-static
-void nlmclnt_remove_lock_callback(struct file_lock *fl)
+
+static void nlmclnt_locks_release_private(struct file_lock *fl)
{
- if (fl->fl_u.nfs_fl.host) {
- nlm_release_host(fl->fl_u.nfs_fl.host);
- fl->fl_u.nfs_fl.host = NULL;
- }
+ nlm_release_host(fl->fl_u.nfs_fl.host);
+ fl->fl_ops = NULL;
+}
+
+static void nlmclnt_steal_locks(struct file_lock *fl, fl_owner_t owner)
+{
+ locks_remove_posix(fl->fl_file, owner);
+}
+
+static struct file_lock_operations nlmclnt_lock_ops = {
+ .fl_copy_lock = nlmclnt_locks_copy_lock,
+ .fl_release_private = nlmclnt_locks_release_private,
+ .fl_steal_locks = nlmclnt_steal_locks,
+};
+
+static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host)
+{
+ BUG_ON(fl->fl_ops != NULL);
+ fl->fl_u.nfs_fl.state = 0;
+ fl->fl_u.nfs_fl.flags = 0;
+ fl->fl_u.nfs_fl.host = nlm_get_host(host);
+ fl->fl_ops = &nlmclnt_lock_ops;
}
/*
@@ -446,7 +477,8 @@ nlmclnt_lock(struct nlm_rqst *req, struc
if (!host->h_monitored && nsm_monitor(host) < 0) {
printk(KERN_NOTICE "lockd: failed to monitor %s\n",
host->h_name);
- return -ENOLCK;
+ status = -ENOLCK;
+ goto out;
}
do {
@@ -456,18 +488,17 @@ nlmclnt_lock(struct nlm_rqst *req, struc
status = nlmclnt_block(host, fl, &resp->status);
}
if (status < 0)
- return status;
+ goto out;
} while (resp->status == NLM_LCK_BLOCKED && req->a_args.block);
if (resp->status == NLM_LCK_GRANTED) {
fl->fl_u.nfs_fl.state = host->h_state;
fl->fl_u.nfs_fl.flags |= NFS_LCK_GRANTED;
- fl->fl_u.nfs_fl.host = host;
- fl->fl_insert = nlmclnt_insert_lock_callback;
- fl->fl_remove = nlmclnt_remove_lock_callback;
}
-
- return nlm_stat_to_errno(resp->status);
+ status = nlm_stat_to_errno(resp->status);
+out:
+ nlmclnt_release_lockargs(req);
+ return status;
}
/*
@@ -527,11 +558,18 @@ nlmclnt_unlock(struct nlm_rqst *req, str
fl->fl_u.nfs_fl.flags &= ~NFS_LCK_GRANTED;
if (req->a_flags & RPC_TASK_ASYNC) {
- return nlmclnt_async_call(req, NLMPROC_UNLOCK,
+ status = nlmclnt_async_call(req, NLMPROC_UNLOCK,
nlmclnt_unlock_callback);
+ if (status < 0) {
+ nlmclnt_release_lockargs(req);
+ kfree(req);
+ }
+ return status;
}
- if ((status = nlmclnt_call(req, NLMPROC_UNLOCK)) < 0)
+ status = nlmclnt_call(req, NLMPROC_UNLOCK);
+ nlmclnt_release_lockargs(req);
+ if (status < 0)
return status;
if (resp->status == NLM_LCK_GRANTED)
@@ -567,6 +605,7 @@ nlmclnt_unlock_callback(struct rpc_task
die:
nlm_release_host(req->a_host);
+ nlmclnt_release_lockargs(req);
kfree(req);
return;
retry_rebind:
@@ -605,8 +644,10 @@ nlmclnt_cancel(struct nlm_host *host, st
status = nlmclnt_async_call(req, NLMPROC_CANCEL,
nlmclnt_cancel_callback);
- if (status < 0)
+ if (status < 0) {
+ nlmclnt_release_lockargs(req);
kfree(req);
+ }
spin_lock_irqsave(¤t->sighand->siglock, flags);
current->blocked = oldset;
@@ -648,6 +689,7 @@ nlmclnt_cancel_callback(struct rpc_task
die:
nlm_release_host(req->a_host);
+ nlmclnt_release_lockargs(req);
kfree(req);
return;
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/fs/lockd/svc4proc.c linux-2.6.7-03-fix_lockd/fs/lockd/svc4proc.c
--- linux-2.6.7-02-fix_locks2/fs/lockd/svc4proc.c 2004-06-28 21:45:05.000000000 -0400
+++ linux-2.6.7-03-fix_lockd/fs/lockd/svc4proc.c 2004-06-28 21:47:13.000000000 -0400
@@ -55,6 +55,7 @@ nlm4svc_retrieve_args(struct svc_rqst *r
/* Set up the missing parts of the file_lock structure */
lock->fl.fl_file = &file->f_file;
lock->fl.fl_owner = (fl_owner_t) host;
+ lock->fl.fl_ops = &nlmsvc_lock_operations;
}
return 0;
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/fs/lockd/svclock.c linux-2.6.7-03-fix_lockd/fs/lockd/svclock.c
--- linux-2.6.7-02-fix_locks2/fs/lockd/svclock.c 2004-06-28 21:45:04.000000000 -0400
+++ linux-2.6.7-03-fix_lockd/fs/lockd/svclock.c 2004-06-28 21:47:13.000000000 -0400
@@ -194,6 +194,7 @@ nlmsvc_create_block(struct svc_rqst *rqs
/* Set notifier function for VFS, and init args */
block->b_call.a_args.lock.fl.fl_notify = nlmsvc_notify_blocked;
+ block->b_call.a_args.lock.fl.fl_ops = &nlmsvc_lock_operations;
block->b_call.a_args.cookie = *cookie; /* see above */
dprintk("lockd: created block %p...\n", block);
@@ -479,6 +480,15 @@ nlmsvc_notify_blocked(struct file_lock *
printk(KERN_WARNING "lockd: notification for unknown block!\n");
}
+static int nlmsvc_same_owner(struct file_lock *fl1, struct file_lock *fl2)
+{
+ return fl1->fl_owner == fl2->fl_owner && fl1->fl_pid == fl2->fl_pid;
+}
+
+struct file_lock_operations nlmsvc_lock_operations = {
+ .fl_compare_owner = nlmsvc_same_owner,
+};
+
/*
* Try to claim a lock that was previously blocked.
*
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/fs/lockd/svcproc.c linux-2.6.7-03-fix_lockd/fs/lockd/svcproc.c
--- linux-2.6.7-02-fix_locks2/fs/lockd/svcproc.c 2004-06-28 21:45:20.000000000 -0400
+++ linux-2.6.7-03-fix_lockd/fs/lockd/svcproc.c 2004-06-28 21:47:13.000000000 -0400
@@ -84,6 +84,7 @@ nlmsvc_retrieve_args(struct svc_rqst *rq
/* Set up the missing parts of the file_lock structure */
lock->fl.fl_file = &file->f_file;
lock->fl.fl_owner = (fl_owner_t) host;
+ lock->fl.fl_ops = &nlmsvc_lock_operations;
}
return 0;
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/include/linux/lockd/lockd.h linux-2.6.7-03-fix_lockd/include/linux/lockd/lockd.h
--- linux-2.6.7-02-fix_locks2/include/linux/lockd/lockd.h 2004-06-28 21:45:02.000000000 -0400
+++ linux-2.6.7-03-fix_lockd/include/linux/lockd/lockd.h 2004-06-28 21:47:13.000000000 -0400
@@ -205,6 +205,8 @@ nlm_compare_locks(struct file_lock *fl1,
&&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK);
}
+extern struct file_lock_operations nlmsvc_lock_operations;
+
#endif /* __KERNEL__ */
#endif /* LINUX_LOCKD_LOCKD_H */
^ permalink raw reply
* [PATCH 3/5] POSIX Locking fixes. Take 2...
From: Trond Myklebust @ 2004-06-30 0:29 UTC (permalink / raw)
To: linux-fsdevel; +Cc: Andrew Morton
NFSv4 server: Fix up nfs4state.c to support the file_lock_operations.
nfs4state.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff -u --recursive --new-file --show-c-function linux-2.6.7-02-fix_locks2/fs/nfsd/nfs4state.c linux-2.6.7-03-fix_nfsd/fs/nfsd/nfs4state.c
--- linux-2.6.7-02-fix_locks2/fs/nfsd/nfs4state.c 2004-06-29 17:27:53.000000000 -0400
+++ linux-2.6.7-03-fix_nfsd/fs/nfsd/nfs4state.c 2004-06-29 17:45:42.000000000 -0400
@@ -2180,6 +2180,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struc
goto out;
}
+ locks_init_lock(&file_lock);
switch (lock->lk_type) {
case NFS4_READ_LT:
case NFS4_READW_LT:
@@ -2197,9 +2198,6 @@ nfsd4_lock(struct svc_rqst *rqstp, struc
file_lock.fl_pid = lockownerid_hashval(lock->lk_stateowner->so_id);
file_lock.fl_file = filp;
file_lock.fl_flags = FL_POSIX;
- file_lock.fl_notify = NULL;
- file_lock.fl_insert = NULL;
- file_lock.fl_remove = NULL;
file_lock.fl_start = lock->lk_offset;
if ((lock->lk_length == ~(u64)0) ||
@@ -2215,6 +2213,8 @@ nfsd4_lock(struct svc_rqst *rqstp, struc
*/
status = posix_lock_file(filp, &file_lock);
+ if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
+ file_lock.fl_ops->fl_release_private(&file_lock);
dprintk("NFSD: nfsd4_lock: posix_test_lock passed. posix_lock_file status %d\n",status);
switch (-status) {
case 0: /* success! */
@@ -2296,6 +2296,7 @@ nfsd4_lockt(struct svc_rqst *rqstp, stru
}
inode = current_fh->fh_dentry->d_inode;
+ locks_init_lock(&file_lock);
switch (lockt->lt_type) {
case NFS4_READ_LT:
case NFS4_READW_LT:
@@ -2381,14 +2382,12 @@ nfsd4_locku(struct svc_rqst *rqstp, stru
filp = &stp->st_vfs_file;
BUG_ON(!filp);
+ locks_init_lock(&file_lock);
file_lock.fl_type = F_UNLCK;
file_lock.fl_owner = (fl_owner_t) locku->lu_stateowner;
file_lock.fl_pid = lockownerid_hashval(locku->lu_stateowner->so_id);
file_lock.fl_file = filp;
file_lock.fl_flags = FL_POSIX;
- file_lock.fl_notify = NULL;
- file_lock.fl_insert = NULL;
- file_lock.fl_remove = NULL;
file_lock.fl_start = locku->lu_offset;
if ((locku->lu_length == ~(u64)0) || LOFF_OVERFLOW(locku->lu_offset, locku->lu_length))
@@ -2401,6 +2400,8 @@ nfsd4_locku(struct svc_rqst *rqstp, stru
* Try to unlock the file in the VFS.
*/
status = posix_lock_file(filp, &file_lock);
+ if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
+ file_lock.fl_ops->fl_release_private(&file_lock);
if (status) {
printk("NFSD: nfs4_locku: posix_lock_file failed!\n");
goto out_nfserr;
^ 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.