Matthew Wilcox [Sat, 25 Sep 2004 11:35:17 +0000 (04:35 -0700)]
[PATCH] fix posix_locks_deadlock()
The "blocked_list" used for POSIX deadlock detection should only contain
POSIX locks, or posix_locks_deadlock() can get confused.
As I've noted before (but never posted a patch), we should probably stop
checking for deadlock. POSIX says it's optional for an implementation
to check for deadlock, and since the change to match on tgid, we can
report a deadlock when none exists.
[ Further explanation for Linus: POSIX locks and BSD locks don't block
each other, so checking that the blocker is a POSIX lock also implies
that the waiter is a POSIX lock. ]
Make smbfs with UNIX extensions get file disk usage count right.
We need to convert from bytes to blocks, and we also need to
handle the fact that old smbd's will round up the disk usage
bytecount to even multiples of 1MB, and gracefully fall back
on an estimate based on the file size instead in that case.
Acked by Samuel Thibault who noted the problem in the first
place, and Jeremy Allison wrt smbd behavior.
The generic iomap library needs to be linked unconditionally.
Otherwise modules that get loaded dynamically will not be able
to resolve the iomap functions, if no built-in drivers caused
it to be linked in at compile-time.
drivers/net/3c59x.c: In function `vortex_ioctl':
drivers/net/3c59x.c:2916: warning: dereferencing `void *' pointer
drivers/net/3c59x.c:2916: error: request for member `current_state' in something not a structure or union
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:47:08 +0000 (19:47 -0700)]
[PATCH] uml: don't trash return value
From: Doug Dumitru <doug@easyco.com>
I have been fighting a buffering error when sending large amounts of data out
pty devices from UML. I have tried a couple of patches that did not really
fix the problem (and were rightly rejected by the group), but have finally
found the real bug.
In /arch/um/drivers/line.c there is a function "buffer_data" that is
responsible for storing data into the lines ring buffer. The function is
"supposed" to return the number of characters actually buffered.
Unfortunately, in the case where the buffer wraps, the "len" variable is
decremented by "end" before it is used as the return parameter.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:46:56 +0000 (19:46 -0700)]
[PATCH] uml: print errno before resetting it
Make sure we print ERRNO and not always -1.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:46:44 +0000 (19:46 -0700)]
[PATCH] uml: fix fencepost errors in printks
Simple corrections to some error messages, which list wrong limits for UBD
devices and such.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:46:32 +0000 (19:46 -0700)]
[PATCH] uml: error message improvement
Output a nice error message for people who need mem > 256M but don't increase
on the host /proc/sys/vm/max_map_count, telling them to do so.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:46:21 +0000 (19:46 -0700)]
[PATCH] uml: implement current_text_addr
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:46:09 +0000 (19:46 -0700)]
[PATCH] uml: linker script cleanup
From: "D. Bahi" @ enterasys.com - remove an unneeded line from the dynamic
linker script.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:45:57 +0000 (19:45 -0700)]
[PATCH] uml: allow UML to load in the normal location
This makes UML load at 0x8048000 rather than 0xa0000000 when CONFIG_MODE_SKAS
is on and CONFIG_MODE_TT is off. This will make it more valgrind-friendly,
and also allow much greater physical memory sizes without needing to use
highmem.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:45:45 +0000 (19:45 -0700)]
[PATCH] uml: remove an unused header
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:45:33 +0000 (19:45 -0700)]
[PATCH] uml: free wrapper fixes
__wrap_free is now careful about freeing to the same allocator that allocated
the buffer.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:45:21 +0000 (19:45 -0700)]
[PATCH] uml: small Makefile fixes
Tidied up some whitespace in arch/um/Makefile. Added -DUM_FASTCALL to
Makefile-i386. make clean descends into util in order to get rid of the
binaries there.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Dike [Fri, 24 Sep 2004 02:45:09 +0000 (19:45 -0700)]
[PATCH] uml: move linker script
arch/um/uml.lds.S has already been moved to arch/um/kernel. dyn.lds.S has just
been forgotten, so fix this.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Grzegorz Jaskiewicz <gj at pointblue.com.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nathan Scott [Fri, 24 Sep 2004 02:44:23 +0000 (19:44 -0700)]
[PATCH] Fix generic direct IO code for XFS
The following patch to the generic direct IO code fixes a problem we've
come across that affects the way XFS interacts with it. Between 2.6.5 and
2.6.6 several changes to direct IO were made, in particular the
fallback-to-buffered path was introduced in that timeframe.
Those changes split the locking done within direct-io.c into two cases -
generic filesystems and blkdev/XFS. There is no locking done for the
second case, and we also never set the create parameter to the get_blocks
call (via direct_io_worker ->do_direct_IO->get_more_blocks) for that case.
This meant that XFS was accidentally no longer being told when a direct IO
write was being performed, which in turn meant that XFS would (often -
depending on the inode's size and bmap) tell get_more_blocks that it was
mapping to a hole. It also means that currently all direct writes into XFS
are falling back to buffered writes. Further, skipping the i_alloc_sem
locking entirely is not correct for us, we are relying on that aspect of
the generic locking.
The fallback behaviour from direct to buffered is "silent", so we didn't
actually pick up on these problems until just recently, unfortunately.
The approach I've taken here is to split the blkdev/XFS case into two, and
corrected the new third case behaviour for the functionality XFS provides.
The generic behavior used by other filesystems remains unchanged, as does
direct IO to the block device, and XFS now becomes fully functional.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This patch is for upgrading m32r's code to the 2.6.9-rc1-mm5 source as well as
the other architectures.
* arch/m32r/Makefile: Replace assigment to CHECK with assignment to CHECKFLAGS
* arch/m32r/kernel/vmlinux.lds.S:
- out-of-line locks / m32r; Include LOCK_TEXT to .text section.
- Move param section out of init area, for export of built-in
module params
* arch/m32r/mm/ioremap.c (__ioremap):
Add __iomem modifier to the return value type of __ioremap()
for much stricter type-checking.
* include/asm-m32r/resource.h:
- rlimit-based mlocks for unprivileged users
- Increase per-user mlock limit default to 32k
* include/asm-m32r/socket.h:
- [NET]: Move SOCK_foo types into linux/net.h
* include/asm-m32r/unistd.h:
Add system calls; taken from asm-i386/unistd.h.
- [PATCH][2/6] perfctr-2.7.3 for 2.6.7-rc1-mm1: i386 (05/31/2004)
- [PATCH] Make key management use syscalls not prctls (09/06/2004)
Here is the fix for dio_new_bio() BUG() with fsx tests. The problem is, I
changed dio_pages_in_io calculation to be exactly the number of pages we
needed to map the user-buffer to do the IO. But with fine-grain alignment
(non fs-blocksize), we may need 2 more pages (ZERO_PAGE) to zero out first
and last block if needed.
Here is the bug info.
http://bugme.osdl.org/show_bug.cgi?id=3447
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This fixes a few warnings in radeonfb and add proper PLL divider values
for Apple latest PowerBook Aliminium 17" so the display isn't "fuzzy"
(the LVDS interface needs special PLL values that the driver can't
calculate, on most x86, the BIOS tells us the values to use, on Apple
laptops, we have to hard code them for each model).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The battery calculation code in via-pmu triggers a few warnings (and
actually, one of them would lead to a real error if we ever get an
unrecognized type from the PMU). Fix this.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This makes the ADB->Linux keycodes conversion table a lot more readable
(and thus easy to fix :) and adds conversion of the laptop Fn-enter
(keypad enter, also present on apple laptop keyboards on the bottom
right, left of the arrow keys) to "compose" (or menu key on modern PC
keyboard).
Thanks to Frank Murphy <murphyf@f-m.fm> for spotting this keycode
feature of MacOS (and apple docs)
It also fixes a small possible race in the LED code
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
NTFS: 2.1.19 - Many cleanups, improvements, and a minor bug fix.
- Fix bug found by the new sparse bitwise warnings where the default
upcase table was defined as a pointer to wchar_t rather than ntfschar
in fs/ntfs/ntfs.h and super.c.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
- Fix all the sparse bitwise warnings. Had to change all the enums
storing little endian values to #defines because we cannot set enums
to be little endian so we had lots of bitwise warnings from sparse.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Continuing sparse annotations: finish data types and header files.
- Add leMFT_REF data type to fs/ntfs/layout.h.
- Update all NTFS header files with the new little endian data types.
Affected files are fs/ntfs/layout.h, logfile.h, and time.h.
- Do proper type casting when using ntfs_is_*_recordp() in
fs/ntfs/logfile.c, mft.c, and super.c.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
NTFS: Begin of sparse annotations: new data types and endianness conversion.
- Add le{16,32,64} as well as sle{16,32,64} data types to fs/ntfs/types.h.
- Change ntfschar to be le16 instead of u16 in fs/ntfs/types.h.
- Add le versions of VCN, LCN, and LSN called leVCN, leLCN, and leLSN,
respectively, to fs/ntfs/types.h.
- Update endianness conversion macros in fs/ntfs/endian.h to use the
new types as appropriate.
- Do proper type casting when using sle64_to_cpup() in fs/ntfs/dir.c
and index.c.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
This disables the sched domains debug code, which has a tendency to
print out a *lot* of information. It's helpful for debugging, but a bit
overboard for general use. Also, if you have a high NR_CPUS value, it
tends to scare people and overflow the dmesg buffer.
NTFS: - Update ->truncate (fs/ntfs/inode.c::ntfs_truncate()) to check if the
inode size has changed and to only output an error if so.
- Rename fs/ntfs/attrib.h::attribute_value_length() to ntfs_attr_size().
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
[PATCH] ppc32: Fix typo/bug in bus resource allocation
The code re-allocating new bus resources in case of conflicts use a
function called probe_resource(), which has a typo (spotted by the
uninitialized variable use of gcc) causing it to potentially return
bogus results. This fixes it:
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
The changes to prom_init/offb interaction introduced by the ppc64
monster cleanup patch need a fix to ppc32 prom_init so that offb
works again. ppc32 prom_init() could use a lot more cleanup, but
let's do the minimal fix to make it work now.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
A typo in pmac_feature.c can cause us to use a bogus node pointer when
iterating the i2c controllers during boot. Fortunately, it seems that
we always find the one we are looking for first, and thus never ended
up in an inifinite loop here, but let's fix it and fix the warning at
the same time.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] ppc32: Fix potentially uninitialized var in chrp_setup.c
In chrp_setup.c, chrp_int_ack could be left uninitialized and passed
"as-is" to i8259_init() if the OF node for the 8259 wasn't found. I
don't know if that should happen, but the i8259 code can deal with
int_ack beeing 0, so let's be safe, initialize it, and remove a warning
at the same time.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
When pci_assign_all_busses is set, the common code will re-assign all
the bus numbers, which we still need to do one various pmacs, at least
until XFree/XOrg understands PCI domains properly. However, this
process triggers a bug if during this renumbering, on a given segment, a
P2P bridge not yet renumbered has conflicting downstream bus range with
a P2P bridge just renumbered. The probing will just behave randomly and
either miss devices, show duplicates, or just lockup in some
circumstances. This is typically triggered on Apple Xserve G4s who have
at least 2 P2P bridges built-in on the same segment of the first PCI
(non-AGP) domain
The "workaround" we use on pmac that was in my tree for a while but got
"lost" during the big merge a while ago is to offset the bus numbers
between domains by 16. This avoids the above collision scenario in all
practical cases.
The long term solution of course is to stop renumbering and make sure
that all drivers are domain safe (there may be a couple issue remaining
in the code that matches PCI / OF devices on ppc32) and XFree/XOrg has
to be fixed.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[ide] make sure we are looking at the low bits post error
From: Brett Russ <russb@emc.com>
The following code needs to be added to ide_end_drive_cmd(),
since ide_error() calls ide_end_drive_cmd() after ide_dump_status()
has left the registers pointing at the high order part of the LBA.
Using the taskfile ioctl will then lead to hobRegister[] and
subsequently hob_ports[] being loaded with the wrong values.
I have a Shuttle SN41G2 and the secondary IDE channel alternates between
IRQ 15 (correct) and IRQ 7 (causing failures accessing the DVD+-RW which is
master, no slave and also messing with the parallel port if it is enabled)
on each boot. This is running ACPI and APIC on 2.6.5, 2.6.7 and 2.6.8.
dmesg, dmidecode and /proc/acpi/dsdt are all identical (apart from dmesg
printing of IRQ and errors it causes) regardless of whether it decides to
go on 7 or 15. It is now running the latest BIOS, earlier BIOS did the
same.
bart: IRQ auto-detection sometimes fails and gets "screaming" IRQ
This is the third & hopefully final version of the monster cleanup
patch. It does significant cleanups of the early boot code of the
ppc64 kernel, and begins the long process of cleaning up & splitting
properly the platform support.
It completely reworks the interface between the early code that is
run in the firmware context (prom_init) and the rest of the kernel,
in such a way that will make kexec or static device-tree for embedded
people possible. The early init code can eventually be moved to a
separate link entity, it no longer touches any of the kernel globals,
everything is passed via a single blob of data in memory containing
a flattened version of the device-tree and a memory reserve map.
While doing it, I also cut the ties between pSeries and Powermac. Now,
the kernel config provides a choice between legacy iSeries and
"multiplatform". The later is a set of various supported platform,
each of them beeing a boolean switch, currently defined beeing pSeries
and PowerMac. You can enable both or just one of them. CONFIG_PPC_PSERIES
is now specifically set for IBM pSeries support, you can build a PowerMac
kernel without pSeries support if you which.
The main goal here is to simplify addition of new platform types.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Martin Josefsson [Thu, 23 Sep 2004 07:45:27 +0000 (00:45 -0700)]
[NETFILTER]: Cleanup ctstat
This patch simply adds a macro to increase the statistics.
And it changes icmp_error to error in struct ip_conntrack_stat in order
to adopt to the tcp-windowtracking changes.
Based on patch by Pablo Neira.
Signed-off-by: Martin Josefsson <gandalf@wlug.westbo.se> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Rusty Russell [Thu, 23 Sep 2004 07:36:22 +0000 (00:36 -0700)]
[NETFILTER]: Shuffle conntrack structure for better cacheline behavior
Every time we walk the conntrack hashtable list, we hit the same
cacheline that is dirtied by the use of the conntrack
entry. Shuffling these entries to the end should help this
(sizeof(struct ip_conntrack)) > cacheline size).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Harald Welte [Thu, 23 Sep 2004 07:34:29 +0000 (00:34 -0700)]
[NETFILTER]: add sysctl to read out the number of current connections
Apparently a lot of scripts use a construct like
cat /proc/net/ip_conntrack | wc -l
which has a negative impact on system performance due to all the locking
required.
Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Rusty Russell [Thu, 23 Sep 2004 07:33:20 +0000 (00:33 -0700)]
[NETFILTER]: Don't try to do any random dropping since we now use jenkins hash
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu [Thu, 23 Sep 2004 06:18:34 +0000 (23:18 -0700)]
[IPV4]: Fix thinko in fib_find_alias
fib_find_alias is meant to return either an exact match or the
entry just before where it should be. Currently it returns the
entry after that. This patch fixes that.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
> I am trying to upgrade my labtop to 2.6.8.1. I have ArcNet COM20020
> PCMCIA card. After editing /etc/pcmcia/config to make it know about the
> module, it finds the com20020 with no problems but as soon as I try to
> start the network device the ifconfig process crashes.
:
> I fixed it by changing
> lp->hw.open(dev);
> to
> if(lp->hw.open) {
> lp->hw.open(dev);
> }
Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Robert Olsson [Thu, 23 Sep 2004 06:03:09 +0000 (23:03 -0700)]
[PKTGEN]: Update to 1.4
Stephen's patches. version change and hard_xmit printout removed.
And 2.7 is still a promise...
Signed-off-by: Robert Olsson <Robert.Olsson@data.slu.se> Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Russell King [Thu, 23 Sep 2004 01:08:58 +0000 (18:08 -0700)]
[PATCH] fix problematic flush_cache_page in kernel/ptrace.c
At present, flush_cache_page() is used to handle the case where we
unmap a page or alter the page permissions on the target page with
one exception - access_process_vm(). Based upon the former, the
decision to implement this function is:
do we need to flush the cache when we unmap or change
the mapping permissions?
However, kernel/ptrace.c: access_process_vm() also includes into this:
or we need to ensure cache coherency between the kernel
and user space mapping of this page.
I argue that the use of flush_cache_page() here in the generic
code is wrong, and if an architecture wishes to use it for this
purpose, it should do so within it's architecture private
implementation of copy_to_user_page() and copy_from_user_page().
So this patch removes the flush_cache_page() from kernel/ptrace.c,
adding it to the arch-specific copy_{to,from}_user_page() where
flush_cache_page is non-empty.