]> pilppa.com Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
19 years ago[PATCH] mm: update split ptlock Kconfig
Hugh Dickins [Wed, 23 Nov 2005 21:37:37 +0000 (13:37 -0800)]
[PATCH] mm: update split ptlock Kconfig

Closer attention to the arithmetic shows that neither ppc64 nor sparc really
uses one page for multiple page tables: how on earth could they, while
pte_alloc_one returns just a struct page pointer, with no offset?

Well, arm26 manages it by returning a pte_t pointer cast to a struct page
pointer, harumph, then compensating in its pmd_populate.  But arm26 is never
SMP, so it's not a problem for split ptlock either.

And the PA-RISC situation has been recently improved: CONFIG_PA20 works
without the 16-byte alignment which inflated its spinlock_t.  But the current
union of spinlock_t with private does make the 7xxx struct page significantly
larger, even without debug, so disable its split ptlock.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] revert floppy-fix-read-only-handling
Andrew Morton [Wed, 23 Nov 2005 21:37:36 +0000 (13:37 -0800)]
[PATCH] revert floppy-fix-read-only-handling

This fix causes problems on the very first floppy access - we haven't yet
talked to the FDC so we don't know which state the write-protect tab is in.

Revert for now.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Check the irq number is within bounds
Matthew Wilcox [Thu, 3 Nov 2005 14:51:18 +0000 (07:51 -0700)]
[PATCH] Check the irq number is within bounds

Most of the functions already check. Do the ones that didn't.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoRevert "[NET]: Shut up warnings in net/core/flow.c"
Linus Torvalds [Wed, 23 Nov 2005 16:44:05 +0000 (08:44 -0800)]
Revert "[NET]: Shut up warnings in net/core/flow.c"

This reverts commit af2b4079ab154bd12e8c12b02db5f31b31babe63

Changing the #define to an inline function breaks on non-SMP builds,
since wuite a few places in the kernel do not implement the ipi handler
when compiling for UP.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agocompat-ioctl.c: fix compile with no CONFIG_JBD
Linus Torvalds [Wed, 23 Nov 2005 05:58:37 +0000 (21:58 -0800)]
compat-ioctl.c: fix compile with no CONFIG_JBD

The ext3 compat-ioctl translation wants to translate data structures
that <linux/jbd.h> only declared when CONFIG_JBD was enabled.

So make <linux/jbd.h> play nicely even when we don't actually end up
using it.

Acked-by: Andrew Morton <akpm@osdl.org>
Acked-by: Jeffrey Hundstad <jeffrey.hundstad@mnsu.edu>
Acked-by: Zan Lynx <zlynx@acm.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoFix up GFP_ZONEMASK for GFP_DMA32 usage
Linus Torvalds [Wed, 23 Nov 2005 03:39:30 +0000 (19:39 -0800)]
Fix up GFP_ZONEMASK for GFP_DMA32 usage

There was some confusion about the different zone usage, this should fix
up the resulting mess in the GFP zonemask handling.

The different zone usage is still confusing (it's very easy to mix up
the individual zone numbers with the GFP zone _list_ numbers), so we
might want to clean up some of this in the future, but in the meantime
this should fix the actual problems.

Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Wed, 23 Nov 2005 00:51:33 +0000 (16:51 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

19 years ago[SPARC]: drivers/sbus/char/aurora.c: "extern inline" -> "static inline"
Adrian Bunk [Tue, 22 Nov 2005 23:30:29 +0000 (15:30 -0800)]
[SPARC]: drivers/sbus/char/aurora.c:  "extern inline" -> "static inline"

"extern inline" doesn't make much sense.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Fix ifenslave to not fail on lack of IP information
Neil Horman [Tue, 22 Nov 2005 22:56:32 +0000 (14:56 -0800)]
[NET]: Fix ifenslave to not fail on lack of IP information

Patch to ifenslave so that under older ABI versions, a failure to propogate ip
information from master to slave does not result in a filure to enslave the
slave device.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] ctnetlink: Fix refcount leak ip_conntrack/nat_proto
Pablo Neira Ayuso [Tue, 22 Nov 2005 22:54:34 +0000 (14:54 -0800)]
[NETFILTER] ctnetlink: Fix refcount leak ip_conntrack/nat_proto

Remove proto == NULL checking since ip_conntrack_[nat_]proto_find_get
always returns a valid pointer.

Fix missing ip_conntrack_proto_put in some paths.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: Fix secondary IP addresses after promotion
Jamal Hadi Salim [Tue, 22 Nov 2005 22:47:37 +0000 (14:47 -0800)]
[IPV4]: Fix secondary IP addresses after promotion

This patch fixes the problem with promoting aliases when:
a) a single primary and > 1 secondary addresses
b) multiple primary addresses each with at least one secondary address

Based on earlier efforts from Brian Pomerantz <bapper@piratehaven.org>,
Patrick McHardy <kaber@trash.net> and Thomas Graf <tgraf@suug.ch>

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETLINK]: Use tgid instead of pid for nlmsg_pid
Herbert Xu [Tue, 22 Nov 2005 22:41:50 +0000 (14:41 -0800)]
[NETLINK]: Use tgid instead of pid for nlmsg_pid

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Shut up warnings in net/core/flow.c
Russell King [Tue, 22 Nov 2005 22:38:04 +0000 (14:38 -0800)]
[NET]: Shut up warnings in net/core/flow.c

Not really a network problem, more a !SMP issue.

net/core/flow.c:295: warning: statement with no effect

flow.c:295:        smp_call_function(flow_cache_flush_per_cpu, &info, 1, 0);

Fix this by converting the macro to an inline function, which
also increases the typechecking for !SMP builds.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] prefer pkg-config for the QT check
Roman Zippel [Tue, 22 Nov 2005 05:32:38 +0000 (21:32 -0800)]
[PATCH] prefer pkg-config for the QT check

This makes pkg-config now the prefered way to configure QT and properly
fixes the recent Fedora breakage and leaves the old QT detection as
fallback mechanism.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper raid1: drop mark_region spinlock fix
Jonathan E Brassow [Tue, 22 Nov 2005 05:32:37 +0000 (21:32 -0800)]
[PATCH] device-mapper raid1: drop mark_region spinlock fix

The spinlock region_lock is held while calling mark_region which can sleep.
Drop the spinlock before calling that function.

A region's state and inclusion in the clean list are altered by rh_inc and
rh_dec.  The state variable is set to RH_CLEAN in rh_dec, but only if
'pending' is zero.  It is set to RH_DIRTY in rh_inc, but not if it is already
so.  The changes to 'pending', the state, and the region's inclusion in the
clean list need to be atomicly.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper snapshot: bio_list fix
jblunck@suse.de [Tue, 22 Nov 2005 05:32:36 +0000 (21:32 -0800)]
[PATCH] device-mapper snapshot: bio_list fix

bio_list_merge() should do nothing if the second list is empty - not oops.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper dm-mpath: endio spinlock fix
Stefan Bader [Tue, 22 Nov 2005 05:32:35 +0000 (21:32 -0800)]
[PATCH] device-mapper dm-mpath: endio spinlock fix

do_end_io() can be called without interrupts blocked.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper: mirror log bitset fix
Alasdair G Kergon [Tue, 22 Nov 2005 05:32:34 +0000 (21:32 -0800)]
[PATCH] device-mapper: mirror log bitset fix

The linux bitset operators (test_bit, set_bit etc) work on arrays of "unsigned
long".  dm-log uses such bitsets but treats them as arrays of uint32_t, only
allocating and zeroing a multiple of 4 bytes (as 'clean_bits' is a uint32_t).

The patch below fixes this problem.

The problem is specific to 64-bit big endian machines such as s390x or ppc-64
and can prevent pvmove terminating.

In the simplest case, if "region_count" were (say) 30, then
bitset_size (below) would be 4 and bitset_uint32_count would be 1.
Thus the memory for this butset, after allocation and zeroing would
be
   0 0 0 0 X X X X
On a bigendian 64bit machine, bit 0 for this bitset is in the 8th
byte! (and every bit that dm-log would use would be in the X area).

   0 0 0 0 X X X X
                 ^
                 here

which hasn't been cleared properly.

As the dm-raid1 code only syncs and counts regions which have a 0 in the
'sync_bits' bitset, and only finishes when it has counted high enough, a large
number of 1's among those 'X's will cause the sync to not complete.

It is worth noting that the code uses the same bitsets for in-memory and
on-disk logs.  As these bitsets are host-endian and host-sized, this means
that they cannot safely be moved between computers with

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper: list_versions fix
Alasdair G Kergon [Tue, 22 Nov 2005 05:32:33 +0000 (21:32 -0800)]
[PATCH] device-mapper: list_versions fix

In some circumstances the LIST_VERSIONS output is truncated because the size
calculation forgets about a 'uint32_t' in each structure - but the inclusion
of the whole of ALIGN_MASK frequently compensates for the omission.

This is a quick workaround to use an upper bound.  (The code ought to be fixed
to supply the actual size.)

Running 'dmsetup targets' may demonstrate the problem: when I run it, the last
line comes out as 'erro' instead of 'error'.  Consequently, 'lvcreate --type
error' doesn't work.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] device-mapper dm-ioctl: missing put in table load error case
Kiyoshi Ueda [Tue, 22 Nov 2005 05:32:32 +0000 (21:32 -0800)]
[PATCH] device-mapper dm-ioctl: missing put in table load error case

An error path in table_load() forgets to release a table that won't now be
referenced.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] kernel Doc/ URL corrections
Randy Dunlap [Tue, 22 Nov 2005 05:32:31 +0000 (21:32 -0800)]
[PATCH] kernel Doc/ URL corrections

Correct lots of URLs in Documentation/ Also a few minor whitespace cleanups
and typo/spello fixes.  Sadly there are still a lot of bad URLs remaining.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] dell_rbu driver depends on x86[64]
Dave Jones [Tue, 22 Nov 2005 05:32:30 +0000 (21:32 -0800)]
[PATCH] dell_rbu driver depends on x86[64]

This driver only appears on IA32 & EM64T boxes.

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix a bug in scsi_get_command
Matthew Dobson [Tue, 22 Nov 2005 05:32:29 +0000 (21:32 -0800)]
[PATCH] Fix a bug in scsi_get_command

scsi_get_command() attempts to write into a structure that may not have
been successfully allocated.  Move this write inside the if statement that
ensures we won't panic the kernel with a NULL pointer dereference.

Signed-off-by: Matthew Dobson <colpatch@us.ibm.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] cpufreq: silence cpufreq for UP
Grant Coady [Tue, 22 Nov 2005 05:32:28 +0000 (21:32 -0800)]
[PATCH] cpufreq: silence cpufreq for UP

drivers/cpufreq/cpufreq.c: In function `cpufreq_remove_dev':
drivers/cpufreq/cpufreq.c:696: warning: unused variable `cpu_sys_dev'

Signed-off-by: Grant Coady <gcoady@gmail.com>
Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] hugetlb: fix race in set_max_huge_pages for multiple updaters of nr_huge_pages
Eric Paris [Tue, 22 Nov 2005 05:32:28 +0000 (21:32 -0800)]
[PATCH] hugetlb: fix race in set_max_huge_pages for multiple updaters of nr_huge_pages

If there are multiple updaters to /proc/sys/vm/nr_hugepages simultaneously
it is possible for the nr_huge_pages variable to become incorrect.  There
is no locking in the set_max_huge_pages function around
alloc_fresh_huge_page which is able to update nr_huge_pages.  Two callers
to alloc_fresh_huge_page could race against each other as could a call to
alloc_fresh_huge_page and a call to update_and_free_page.  This patch just
expands the area covered by the hugetlb_lock to cover the call into
alloc_fresh_huge_page.  I'm not sure how we could say that a sysctl section
is performance critical where more specific locking would be needed.

My reproducer was to run a couple copies of the following script
simultaneously

while [ true ]; do
echo 1000 > /proc/sys/vm/nr_hugepages
echo 500 > /proc/sys/vm/nr_hugepages
echo 750 > /proc/sys/vm/nr_hugepages
echo 100 > /proc/sys/vm/nr_hugepages
echo 0 > /proc/sys/vm/nr_hugepages
done

and then watch /proc/meminfo and eventually you will see things like

HugePages_Total:     100
HugePages_Free:      109

After applying the patch all seemed well.

Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] vgacon: Fix usage of stale height value on vc initialization
Antonino A. Daplas [Tue, 22 Nov 2005 05:32:26 +0000 (21:32 -0800)]
[PATCH] vgacon: Fix usage of stale height value on vc initialization

Reported by: Wayne E. Harlan

"[1.] One line summary of the problem:
When the kernel option "vga=1" is used, additional tty's (alt+control+Fx
with x=2,3,4,5, etc) do not provide the full 50 lines of output.  The first
one does have 50 lines, however.

[2.] Full description of the problem/report:
These addtitional tty's show only 39 lines plus the top pixel of the 40-th
line.  The remaining lines are black and not shown.  Kernel version
2.6.13.4 does not show this problem."

This bug is caused by using a stale font height value on vgacon_init.

Booting with vga=1 gives an 80x50 screen with an 8x8 font.  Somewhere
during the initialization, the font was changed to 8x9 and the first
vc was correctly resized to 80x44.  However, the rest of the vc's were
not allocated yet, and when they were subsequently initialized, they
still used a font height of 8 (instead of 9) causing the mentioned bug.

Fix by saving the new font height to vga_video_font_height.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fbcon: Console Rotation - Fix wrong shift calculation
Antonino A. Daplas [Tue, 22 Nov 2005 05:32:25 +0000 (21:32 -0800)]
[PATCH] fbcon: Console Rotation - Fix wrong shift calculation

The shift value (amount to shift the bitmap so first pixel starts at
origin(0,0)) is incorrect.  This causes corrupted characters or a kernel crash
if fontwidth is not divisible by 8 at 270 degrees, or fontheight not divisible
by 8 at 180 degrees.

Report and part of the fix contributed by Knut Petersen.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix hugetlbfs_statfs() reporting of block limits
David Gibson [Tue, 22 Nov 2005 05:32:24 +0000 (21:32 -0800)]
[PATCH] Fix hugetlbfs_statfs() reporting of block limits

Currently, if a hugetlbfs is mounted without limits (the default), statfs()
will return -1 for max/free/used blocks.  This does not appear to be in
line with normal convention: simple_statfs() and shmem_statfs() both return
0 in similar cases.  Worse, it confuses the translation logic in
put_compat_statfs(), causing it to return -EOVERFLOW on such a mount.

This patch alters hugetlbfs_statfs() to return 0 for max/free/used blocks
on a mount without limits.  Note that we need the test in the patch below,
rather than just using 0 in the sbinfo structure, because the -1 marked in
the free blocks field is used internally to tell the

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix error handling with put_compat_statfs()
David Gibson [Tue, 22 Nov 2005 05:32:23 +0000 (21:32 -0800)]
[PATCH] Fix error handling with put_compat_statfs()

In fs/compat.c, whenever put_compat_statfs() returns an error, the
containing syscall returns -EFAULT.  This is presumably by analogy with the
non-compat case, where any non-zero code from copy_to_user() should be
translated into an EFAULT.  However, put_compat_statfs() is also return
-EOVERFLOW.  The same applies for put_compat_statfs64().

This bug can be observed with a statfs() on a hugetlbfs directory.
hugetlbfs, when mounted without limits reports available, free and total
blocks as -1 (itself a bug, another patch coming).  statfs() will
mysteriously return EFAULT although it's parameters are perfectly valid
addresses.

This patch causes the compat versions of statfs() and statfs64() to
correctly propogate the return values from put_compat_statfs() and
put_compat_statfs64().

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: fix sound Bad page states
Hugh Dickins [Tue, 22 Nov 2005 05:32:22 +0000 (21:32 -0800)]
[PATCH] unpaged: fix sound Bad page states

Earlier I unifdefed PageCompound, so that snd_pcm_mmap_control_nopage and
others can give out a 0-order component of a higher-order page, which won't
be mistakenly freed when zap_pte_range unmaps it.  But many Bad page states
reported a PG_reserved was freed after all: I had missed that we need to
say __GFP_COMP to get compound page behaviour.

Some of these higher-order pages are allocated by snd_malloc_pages, some by
snd_malloc_dev_pages; or if SBUS, by sbus_alloc_consistent - but that has
no gfp arg, so add __GFP_COMP into its sparc32/64 implementations.

I'm still rather puzzled that DRM seems not to need a similar change.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: copy_page_range vma
Hugh Dickins [Tue, 22 Nov 2005 05:32:20 +0000 (21:32 -0800)]
[PATCH] unpaged: copy_page_range vma

For copy_one_pte's print_bad_pte to show the task correctly (instead of
"???"), dup_mmap must pass down parent vma rather than child vma.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: PG_reserved bad_page
Hugh Dickins [Tue, 22 Nov 2005 05:32:20 +0000 (21:32 -0800)]
[PATCH] unpaged: PG_reserved bad_page

It used to be the case that PG_reserved pages were silently never freed, but
in 2.6.15-rc1 they may be freed with a "Bad page state" message.  We should
work through such cases as they appear, fixing the code; but for now it's
safer to issue the message without freeing the page, leaving PG_reserved set.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: ZERO_PAGE in VM_UNPAGED
Hugh Dickins [Tue, 22 Nov 2005 05:32:19 +0000 (21:32 -0800)]
[PATCH] unpaged: ZERO_PAGE in VM_UNPAGED

It's strange enough to be looking out for anonymous pages in VM_UNPAGED areas,
let's not insert the ZERO_PAGE there - though whether it would matter will
depend on what we decide about ZERO_PAGE refcounting.

But whereas do_anonymous_page may (exceptionally) be called on a VM_UNPAGED
area, do_no_page should never be: just BUG_ON.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: anon in VM_UNPAGED
Hugh Dickins [Tue, 22 Nov 2005 05:32:18 +0000 (21:32 -0800)]
[PATCH] unpaged: anon in VM_UNPAGED

copy_one_pte needs to copy the anonymous COWed pages in a VM_UNPAGED area,
zap_pte_range needs to free them, do_wp_page needs to COW them: just like
ordinary pages, not like the unpaged.

But recognizing them is a little subtle: because PageReserved is no longer a
condition for remap_pfn_range, we can now mmap all of /dev/mem (whether the
distro permits, and whether it's advisable on this or that architecture, is
another matter).  So if we can see a PageAnon, it may not be ours to mess with
(or may be ours from elsewhere in the address space).  I suspect there's an
entertaining insoluble self-referential problem here, but the page_is_anon
function does a good practical job, and MAP_PRIVATE PROT_WRITE VM_UNPAGED will
always be an odd choice.

In updating the comment on page_address_in_vma, noticed a potential NULL
dereference, in a path we don't actually take, but fixed it.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: COW on VM_UNPAGED
Hugh Dickins [Tue, 22 Nov 2005 05:32:17 +0000 (21:32 -0800)]
[PATCH] unpaged: COW on VM_UNPAGED

Remove the BUG_ON(vma->vm_flags & VM_UNPAGED) from do_wp_page, and let it do
Copy-On-Write without touching the VM_UNPAGED's page counts - but this is
incomplete, because the anonymous page it inserts will itself need to be
handled, here and in other functions - next patch.

We still don't copy the page if the pfn is invalid, because the
copy_user_highpage interface does not allow it.  But that's not been a problem
in the past: can be added in later if the need arises.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: VM_NONLINEAR VM_RESERVED
Hugh Dickins [Tue, 22 Nov 2005 05:32:16 +0000 (21:32 -0800)]
[PATCH] unpaged: VM_NONLINEAR VM_RESERVED

There's one peculiar use of VM_RESERVED which the previous patch left behind:
because VM_NONLINEAR's try_to_unmap_cluster uses vm_private_data as a swapout
cursor, but should never meet VM_RESERVED vmas, it was a way of extending
VM_NONLINEAR to VM_RESERVED vmas using vm_private_data for some other purpose.
 But that's an empty set - they don't have the populate function required.  So
just throw away those VM_RESERVED tests.

But one more interesting in rmap.c has to go too: try_to_unmap_one will want
to swap out an anonymous page from VM_RESERVED or VM_UNPAGED area.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: VM_UNPAGED
Hugh Dickins [Tue, 22 Nov 2005 05:32:15 +0000 (21:32 -0800)]
[PATCH] unpaged: VM_UNPAGED

Although we tend to associate VM_RESERVED with remap_pfn_range, quite a few
drivers set VM_RESERVED on areas which are then populated by nopage.  The
PageReserved removal in 2.6.15-rc1 changed VM_RESERVED not to free pages in
zap_pte_range, without changing those drivers not to set it: so their pages
just leak away.

Let's not change miscellaneous drivers now: introduce VM_UNPAGED at the core,
to flag the special areas where the ptes may have no struct page, or if they
have then it's not to be touched.  Replace most instances of VM_RESERVED in
core mm by VM_UNPAGED.  Force it on in remap_pfn_range, and the sparc and
sparc64 io_remap_pfn_range.

Revert addition of VM_RESERVED to powerpc vdso, it's not needed there.  Is it
needed anywhere?  It still governs the mm->reserved_vm statistic, and special
vmas not to be merged, and areas not to be core dumped; but could probably be
eliminated later (the drivers are probably specifying it because in 2.4 it
kept swapout off the vma, but in 2.6 we work from the LRU, which these pages
don't get on).

Use the VM_SHM slot for VM_UNPAGED, and define VM_SHM to 0: it serves no
purpose whatsoever, and should be removed from drivers when we clean up.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Acked-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: unifdefed PageCompound
Hugh Dickins [Tue, 22 Nov 2005 05:32:14 +0000 (21:32 -0800)]
[PATCH] unpaged: unifdefed PageCompound

It looks like snd_xxx is not the only nopage to be using PageReserved as a way
of holding a high-order page together: which no longer works, but is masked by
our failure to free from VM_RESERVED areas.  We cannot fix that bug without
first substituting another way to hold the high-order page together, while
farming out the 0-order pages from within it.

That's just what PageCompound is designed for, but it's been kept under
CONFIG_HUGETLB_PAGE.  Remove the #ifdefs: which saves some space (out- of-line
put_page), doesn't slow down what most needs to be fast (already using
hugetlb), and unifies the way we handle high-order pages.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: sound nopage get_page
Hugh Dickins [Tue, 22 Nov 2005 05:32:13 +0000 (21:32 -0800)]
[PATCH] unpaged: sound nopage get_page

Something noticed when studying use of VM_RESERVED in different drivers:
snd_usX2Y_hwdep_pcm_vm_nopage omitted to get_page: fixed.

And how did this work before?  Aargh!  That nopage is returning a page from
within a buffer allocated by snd_malloc_pages, which allocates a high-order
page, then does SetPageReserved on each 0-order page within.

That would have worked in 2.6.14, because when the area was unmapped,
PageReserved inhibited put_page.  2.6.15-rc1 removed that inhibition (while
leaving ineffective PageReserveds around for now), but it hasn't caused
trouble because..  we've not been freeing from VM_RESERVED at all.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: private write VM_RESERVED
Hugh Dickins [Tue, 22 Nov 2005 05:32:12 +0000 (21:32 -0800)]
[PATCH] unpaged: private write VM_RESERVED

The PageReserved removal in 2.6.15-rc1 issued a "deprecated" message when you
tried to mmap or mprotect MAP_PRIVATE PROT_WRITE a VM_RESERVED, and failed
with -EACCES: because do_wp_page lacks the refinement to COW pages in those
areas, nor do we expect to find anonymous pages in them; and it seemed just
bloat to add code for handling such a peculiar case.  But immediately it
caused vbetool and ddcprobe (using lrmi) to fail.

So revert the "deprecated" messages, letting mmap and mprotect succeed.  But
leave do_wp_page's BUG_ON(vma->vm_flags & VM_RESERVED) in place until we've
added the code to do it right: so this particular patch is only good if the
app doesn't really need to write to that private area.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unpaged: get_user_pages VM_RESERVED
Hugh Dickins [Tue, 22 Nov 2005 05:32:11 +0000 (21:32 -0800)]
[PATCH] unpaged: get_user_pages VM_RESERVED

The PageReserved removal in 2.6.15-rc1 prohibited get_user_pages on the areas
flagged VM_RESERVED in place of PageReserved.  That is correct in theory - we
ought not to interfere with struct pages in such a reserved area; but in
practice it broke BTTV for one.

So revert to prohibiting only on VM_IO: if someone gets into trouble with
get_user_pages on VM_RESERVED, it'll just be a "don't do that".

You can argue that videobuf_mmap_mapper shouldn't set VM_RESERVED in the first
place, but now's not the time for breaking drivers without notice.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: eliminate use of libc PAGE_SIZE
Jeff Dike [Tue, 22 Nov 2005 05:32:10 +0000 (21:32 -0800)]
[PATCH] uml: eliminate use of libc PAGE_SIZE

On some systems, libc PAGE_SIZE calls getpagesize, which can't happen from a
stub.  So, I use UM_KERN_PAGE_SIZE, which is less variable in its definition,
instead.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: properly invoke x86_64 system calls
Jeff Dike [Tue, 22 Nov 2005 05:32:09 +0000 (21:32 -0800)]
[PATCH] uml: properly invoke x86_64 system calls

This patch makes stub_segv use the stub_syscall macros.  This was needed
anyway, but the bug that prompted this was the discovery that gcc was storing
stuff in RCX, which is trashed across a system call.  This is exactly the sort
of problem that the new macros fix.

There is a stub_syscall0 for getpid.  stub_segv was changed to be a libc file,
and that caused some include changes.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: eliminate anonymous union and clean up symlink lossage
Jeff Dike [Tue, 22 Nov 2005 05:32:08 +0000 (21:32 -0800)]
[PATCH] uml: eliminate anonymous union and clean up symlink lossage

This gives a name to the anonymous union introduced in skas-hold-own-ldt,
allowing to build on a wider range of gccs.

It also removes ldt.h, which somehow became real, and replaces it with a
symlink, and creates ldt-x86_64.h as a copy of ldt-i386.h for now.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: eliminate use of local in clone stub
Jeff Dike [Tue, 22 Nov 2005 05:32:04 +0000 (21:32 -0800)]
[PATCH] uml: eliminate use of local in clone stub

We have a bug in the i386 stub_syscall6 which pushes ebp before the system
call and pops it afterwards.  Because we use syscall6 to remap the stack, the
old contents of the stack (and the former value of ebp) are no longer
available.  Some versions of gcc make from a real local, accessed through ebp,
despite my efforts to make it obvious that references to from are really
constants.  This patch attempts to make it even more obvious by eliminating
from and using a macro to access the stub's data explicitly with constants.

My original thinking on this was to replace syscall6 with a remap_stack
interface which saved ebp someplace and restored it afterwards.  The problem
is that there are no registers to put it in, except for esp.  That could work,
since we can store a constant in esp after the mmap because we just replaced
the stack.  However, this approach seems a tad cleaner.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] net: Fix compiler-error on dgrs.c when !CONFIG_PCI
Richard Knutsson [Tue, 22 Nov 2005 05:32:03 +0000 (21:32 -0800)]
[PATCH] net: Fix compiler-error on dgrs.c when !CONFIG_PCI

drivers/net/dgrs.c: In function `dgrs_init_module':
drivers/net/dgrs.c:1598: `dgrs_pci_driver' undeclared (first use in this function)

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/scjody...
Linus Torvalds [Tue, 22 Nov 2005 03:04:44 +0000 (19:04 -0800)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/scjody/ieee1394

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Tue, 22 Nov 2005 03:00:43 +0000 (19:00 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-serial

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 22 Nov 2005 03:00:05 +0000 (19:00 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Tue, 22 Nov 2005 01:44:56 +0000 (17:44 -0800)]
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

19 years ago[IA64-SGI] bte_copy nasid_index fix
Russ Anderson [Fri, 11 Nov 2005 22:52:02 +0000 (16:52 -0600)]
[IA64-SGI] bte_copy nasid_index fix

The nasid_index was not being incremented if the
pointer was null, causing an infinite loop.

Signed-off-by: Russ Anderson (rja@sgi.com)
Signed-off-by: Tony Luck <tony.luck@intel.com>
19 years ago[IA64-SGI] support for older versions of PROM
Jack Steiner [Fri, 18 Nov 2005 22:11:27 +0000 (16:11 -0600)]
[IA64-SGI] support for older versions of PROM

Add support for old versions of the SN PROMs. Eventually this
support will be deleted but it is useful right now to continue
supporting older PROMs.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
19 years ago[IA64] fix bug in sn/ia64 for sparse CPU numbering
hawkes@sgi.com [Fri, 18 Nov 2005 19:30:34 +0000 (11:30 -0800)]
[IA64] fix bug in sn/ia64 for sparse CPU numbering

The kernel's use of the for_each_*cpu(i) macros has allowed for sparse CPU
numbering.  When I hacked the kernel to test sparse cpu_present_map[] and
cpu_possible_map[] cpumasks, I discovered one remaining spot, in
sn_hwperf_ioctl() during sn initialization, that needs to be fixed.

Signed-off-by: John Hawkes <hawkes@sgi.com>
Signed-off-by: Dean Roe <roe@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
19 years ago[IA64] Prevent sn2 ptc code from executing on all ia64 subarches
Prarit Bhargava [Mon, 21 Nov 2005 18:00:38 +0000 (13:00 -0500)]
[IA64] Prevent sn2 ptc code from executing on all ia64 subarches

Patch to prevent sn2_ptc_init code from attempting to load on non-sn2 systems
when sn2_smp.c is built-in to generic kernel.

Signed-off-by: Prarit Bhargava <prarit@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
19 years ago[PATCH] as-iosched: remove state assertion in as_add_request()
Jens Axboe [Mon, 21 Nov 2005 18:49:41 +0000 (19:49 +0100)]
[PATCH] as-iosched: remove state assertion in as_add_request()

Kill the arq->state poison statement in as_add_request(), it can trigger
for perfectly valid code that just reuses a request after io completion
instead of freeing it and allocating a new one. We probably should
introduce a blk_init_request() to start from scratch, but for now just
kill it as we will be removing the as specific poisoning soon.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
Linus Torvalds [Mon, 21 Nov 2005 18:56:30 +0000 (10:56 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Mon, 21 Nov 2005 18:46:34 +0000 (10:46 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

19 years ago[SERIAL] imx: Fix missed platform_driver_unregister
Russell King [Mon, 21 Nov 2005 17:05:21 +0000 (17:05 +0000)]
[SERIAL] imx: Fix missed platform_driver_unregister

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] Shut up gcc warning in clps7500 core.c
Russell King [Mon, 21 Nov 2005 17:03:15 +0000 (17:03 +0000)]
[ARM] Shut up gcc warning in clps7500 core.c

core.c:263: warning: initialization makes integer from pointer without a cast

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] Shut up gcc warning in assabet.c
Russell King [Mon, 21 Nov 2005 17:01:13 +0000 (17:01 +0000)]
[ARM] Shut up gcc warning in assabet.c

assabet.c:291: warning: 'scr' may be used uninitialized in this function

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] ebsa110: __arch_ioremap should be 3 args
Russell King [Mon, 21 Nov 2005 15:26:52 +0000 (15:26 +0000)]
[ARM] ebsa110: __arch_ioremap should be 3 args

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] Add asm/memory.h to asm/numnodes.h
Russell King [Mon, 21 Nov 2005 15:26:18 +0000 (15:26 +0000)]
[ARM] Add asm/memory.h to asm/numnodes.h

Since the defintion of NODES_SHIFT may be overridden in asm/arch/memory.h
it's important to include asm/memory.h into asm/numnodes.h to ensure
that the correct value is always defined.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3171/1: To add missing QMGR region size for IXP4XX
Kenneth Tan [Mon, 21 Nov 2005 15:17:07 +0000 (15:17 +0000)]
[ARM] 3171/1: To add missing QMGR region size for IXP4XX

Patch from Kenneth Tan

To add queue manager region size which is missing from ixp4xx-regs.h

Signed-off-by: Kenneth Tan <chong.yin.tan@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 3170/1: Sharp SL-6000x: platform device conversion fixup
Dirk Opfer [Mon, 21 Nov 2005 15:17:06 +0000 (15:17 +0000)]
[ARM] 3170/1: Sharp SL-6000x: platform device conversion fixup

Patch from Dirk Opfer

Fix an error in tosa.c after the platform device conversion.

Signed-off-by: Dirk Opfer <Dirk@Opfer-Online.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years agoMerge ../linus/
Dave Jones [Mon, 21 Nov 2005 14:56:52 +0000 (06:56 -0800)]
Merge ../linus/

19 years ago[AGPGART] Support VIA P4M800CE bridge.
Dave Jones [Mon, 21 Nov 2005 14:53:16 +0000 (06:53 -0800)]
[AGPGART] Support VIA P4M800CE bridge.

Signed-off-by: Dave Jones <davej@redhat.com>
19 years ago[NET]: kernel-doc fixes
Randy Dunlap [Mon, 21 Nov 2005 05:25:15 +0000 (21:25 -0800)]
[NET]: kernel-doc fixes

Fix kernel-doc warnings in network files.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Use unused bit for ipvs_property field in struct sk_buff
Patrick McHardy [Mon, 21 Nov 2005 05:19:21 +0000 (21:19 -0800)]
[NET]: Use unused bit for ipvs_property field in struct sk_buff

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[DCCP]: Add missing no_policy flag to struct net_protocol
Patrick McHardy [Mon, 21 Nov 2005 05:16:13 +0000 (21:16 -0800)]
[DCCP]: Add missing no_policy flag to struct net_protocol

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: Remove ARRAY_SIZE duplicate
Nicolas Kaiser [Mon, 21 Nov 2005 05:11:31 +0000 (21:11 -0800)]
[NETFILTER]: Remove ARRAY_SIZE duplicate

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: fixed dependencies between modules related with ip_conntrack
Yasuyuki Kozakai [Mon, 21 Nov 2005 05:09:55 +0000 (21:09 -0800)]
[NETFILTER]: fixed dependencies between modules related with ip_conntrack

- IP_NF_CONNTRACK_MARK is bool and depends on only IP_NF_CONNTRACK
  which is tristate. If a variable depends on IP_NF_CONNTRACK_MARK and
  doesn't care about IP_NF_CONNTRACK, it can be y. This must be avoided.
- IP_NF_CT_ACCT has same problem.
- IP_NF_TARGET_CLUSTERIP also depends on IP_NF_MANGLE.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[FIB_TRIE]: Don't show local table in /proc/net/route output
Patrick McHardy [Mon, 21 Nov 2005 05:09:00 +0000 (21:09 -0800)]
[FIB_TRIE]: Don't show local table in /proc/net/route output

Don't show local table to behave similar to fib_hash.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/
David S. Miller [Mon, 21 Nov 2005 04:52:16 +0000 (20:52 -0800)]
Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/

19 years ago[PATCH] Fix an OOPS is CinergyT2
Dmitry Torokhov [Sun, 20 Nov 2005 16:13:29 +0000 (11:13 -0500)]
[PATCH] Fix an OOPS is CinergyT2

Fix an OOPS is CinergyT2 driver when registering IR remote

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[IPV6]: Acquire addrconf_hash_lock for read in addrconf_verify(...)
Yan Zheng [Sun, 20 Nov 2005 21:42:20 +0000 (13:42 -0800)]
[IPV6]: Acquire addrconf_hash_lock for read in addrconf_verify(...)

addrconf_verify(...) only traverse address hash table when
addrconf_hash_lock is held for writing, and it may hold
addrconf_hash_lock for a long time. So I think it's better to acquire
addrconf_hash_lock for reading instead of writing

Signed-off-by: Yan Zheng <yanzheng@21cn.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[COMPAT] net: SIOCGIFCONF data corruption
Alexandra Kossovsky [Sun, 20 Nov 2005 21:41:59 +0000 (13:41 -0800)]
[COMPAT] net: SIOCGIFCONF data corruption

From: Alexandra Kossovsky <Alexandra.Kossovsky@oktetlabs.ru>

From http://bugzilla.kernel.org/show_bug.cgi?id=4746

There is user data corruption when using ioctl(SIOCGIFCONF) in 32-bit
application running amd64 kernel. I do not think that this problem is
exploitable, but any data corruption may lead to security problems.
Following code demonstrates the problem

#include <stdint.h>
#include <stdio.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <net/if.h>
#include <sys/ioctl.h>

char buf[256];

main()
{
int s = socket(AF_INET, SOCK_DGRAM, 0);
struct ifconf req;
int i;

req.ifc_buf = buf;
req.ifc_len = 41;

printf("Result %d\n", ioctl(s, SIOCGIFCONF, &req));
printf("Len %d\n", req.ifc_len);
for (i = 41; i < 256; i++)
if (buf[i] != 0)
printf("Byte %d is corrupted\n", i);
}

Steps to reproduce:
Compile the code above into 32-bit elf and run it. You'll get
Result 0
Len 32
Byte 48 is corrupted
Byte 52 is corrupted
Byte 53 is corrupted
Byte 54 is corrupted
Byte 55 is corrupted

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Reject socket filter if division by constant zero is attempted.
Kris Katterjohn [Sun, 20 Nov 2005 21:41:34 +0000 (13:41 -0800)]
[NET]: Reject socket filter if division by constant zero is attempted.

This way we don't have to check it in sk_run_filter().

Signed-off-by: Kris Katterjohn <kjak@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: sch_netem: correctly order packets to be sent simultaneously
Andrea Bittau [Sun, 20 Nov 2005 21:41:05 +0000 (13:41 -0800)]
[PKT_SCHED]: sch_netem: correctly order packets to be sent simultaneously

If two packets were queued to be sent at the same time in the future,
their order would be reversed.  This would occur because the queue is
traversed back to front, and a position is found by checking whether
the new packet needs to be sent before the packet being examined.  If
the new packet is to be sent at the same time of a previous packet, it
would end up before the old packet in the queue.  This patch places
packets in the correct order when they are queued to be sent at a same
time in the future.

Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] Remove compat ioctl semaphore
Andi Kleen [Sun, 20 Nov 2005 17:49:08 +0000 (18:49 +0100)]
[PATCH] Remove compat ioctl semaphore

Originally for 2.6.16, but the semaphore causes problems for some
people so get rid of it now.

It's not needed anymore because the ioctl hash table is never changed
at run time now.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix x86_64/msr.h interface to agree with i386/msr.h
Jacob.Shin@amd.com [Sun, 20 Nov 2005 17:49:07 +0000 (18:49 +0100)]
[PATCH] Fix x86_64/msr.h interface to agree with i386/msr.h

Ever since we remove msr.c from x86_64 branch and started grabbing it from
i386, msr device (read functionality) has been broken for us.

This is due to the differences between asm-i386/msr.h and asm-x86_64/msr.h interfaces.

Here is a patch to our side to fix this.

Thankfully, as of current (2.6.15-rc1-git6) tree, arch/i386/kernel/msr.c is the only file that uses rdmsr_safe macro.

Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Register disabled CPUs
Ashok Raj [Sun, 20 Nov 2005 17:49:06 +0000 (18:49 +0100)]
[PATCH] Register disabled CPUs

Needed to make the earlier use disabled CPUs for CPU hotplug patch
actually work.

Need to register disabled processors as well, so we can count them
towards cpu_possible_map as hot pluggable cpus.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] i386: Use bigsmp for > 8 core Opteron systems
Andi Kleen [Sun, 20 Nov 2005 17:49:05 +0000 (18:49 +0100)]
[PATCH] i386: Use bigsmp for > 8 core Opteron systems

bigsmp is reported to work on large Opteron systems on 32bit too.
Enable it by default there.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Sun, 20 Nov 2005 17:19:38 +0000 (09:19 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6

19 years agoFix missing initialization in ir-kbd-gpio.c
Dmitry Torokhov [Sun, 20 Nov 2005 05:57:02 +0000 (00:57 -0500)]
Fix missing initialization in ir-kbd-gpio.c

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoFix an OOPS when initializing IR remote on saa7134
Dmitry Torokhov [Sun, 20 Nov 2005 05:56:54 +0000 (00:56 -0500)]
Fix an OOPS when initializing IR remote on saa7134

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: make serio and gameport more swsusp friendly
Dmitry Torokhov [Sun, 20 Nov 2005 05:56:43 +0000 (00:56 -0500)]
Input: make serio and gameport more swsusp friendly

kseriod and kgameportd used to process all pending events before
checking for freeze condition. This may cause swsusp to time out
while stopping tasks when resuming. Switch to process events one
by one to check freeze status more often.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: handle failures in input_register_device()
Dmitry Torokhov [Sun, 20 Nov 2005 05:56:31 +0000 (00:56 -0500)]
Input: handle failures in input_register_device()

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: uinput - don't use "interruptible" in FF code
Dmitry Torokhov [Sun, 20 Nov 2005 05:51:43 +0000 (00:51 -0500)]
Input: uinput - don't use "interruptible" in FF code

If thread that submitted FF request gets interrupted somehow it
will release request structure and ioctl handler will work with
freed memory. TO prevent that from happening switch to using
wait_for_completion instead of wait_for_completion_interruptible.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: uinput - add UI_SET_SWBIT ioctl
Dmitry Torokhov [Sun, 20 Nov 2005 05:51:33 +0000 (00:51 -0500)]
Input: uinput - add UI_SET_SWBIT ioctl

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: uinput - convert to dynalloc allocation
Dmitry Torokhov [Sun, 20 Nov 2005 05:51:22 +0000 (00:51 -0500)]
Input: uinput - convert to dynalloc allocation

Also introduce proper locking when creating/deleting device.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: wistron - disable wifi/bluetooth on suspend
Miloslav Trmac [Sun, 20 Nov 2005 05:51:05 +0000 (00:51 -0500)]
Input: wistron - disable wifi/bluetooth on suspend

Try to save battery power by disabling wifi and bluetooth on suspend.

Signed-off-by: Miloslav Trmac <mitr@volny.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: wistron - add PM support
Dmitry Torokhov [Sun, 20 Nov 2005 05:50:58 +0000 (00:50 -0500)]
Input: wistron - add PM support

Register wistron-bios as a platform device, restore WIFI and
Bluetooth state upon resume.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: wistron - convert to dynamic input_dev allocation
Dmitry Torokhov [Sun, 20 Nov 2005 05:50:46 +0000 (00:50 -0500)]
Input: wistron - convert to dynamic input_dev allocation

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: wistron - add support for Acer Aspire 1500 notebooks
Bernhard Rosenkraenzer [Sun, 20 Nov 2005 05:50:37 +0000 (00:50 -0500)]
Input: wistron - add support for Acer Aspire 1500 notebooks

Also fix a potential issue with some notebooks:

The current code assumes the response to bios_wifi_get_default_setting is
either 1 (disabled) or 3 (enabled), or wifi isn't supported.  The BIOS
response appears to be a bit field w/ 0x1 indicating hardware presence, 0x2
indicating actiation status, and the other 6 bits being unknown/reserved --
with the patch, these 6 bits are ignored.

Signed-off-by: Bernhard Rosenkraenzer <bero@arklinux.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: wistron - disable for x86_64
Andrew Morton [Sun, 20 Nov 2005 05:50:21 +0000 (00:50 -0500)]
Input: wistron - disable for x86_64

On x86_64:

{standard input}:233: Error: suffix or operands invalid for `push'
{standard input}:233: Error: suffix or operands invalid for `pop'

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: add Wistron driver
Dmitry Torokhov [Sun, 20 Nov 2005 05:50:06 +0000 (00:50 -0500)]
Input: add Wistron driver

A driver for laptop buttons using an x86 BIOS interface that is
apparently used on quite a few laptops and seems to be originating
from Wistron.

This driver currently "knows" only about Fujitsu-Siemens Amilo Pro V2000
(i.e. it can detect the laptop using DMI and it contains the
keycode->key meaning mapping for this laptop) and Xeron SonicPro X 155G
(probably can't be reliably autodetected, requires a module parameter),
adding other laptops should be easy.

In addition to reporting button presses to the input layer the driver
also allows enabling/disabling the embedded wireless NIC (using the
"Wifi" button); this is done using the same BIOS interface, so it seems
only logical to keep the implementation together.  Any flexibility
possibly gained by allowing users to remap the function of the "Wifi"
button is IMHO not worth it when weighted against the necessity to run
an user-space daemon to convert button presses to wifi state changes.

Signed-off-by: Miloslav Trmac <mitr@volny.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoInput: atkbd - speed up setting leds/repeat state
Dmitry Torokhov [Sun, 20 Nov 2005 05:49:42 +0000 (00:49 -0500)]
Input: atkbd - speed up setting leds/repeat state

Changing led state is pretty slow operation; when there are multiple
requests coming at a high rate they may interfere with normal typing.
Try optimize (skip) changing hardware state when multiple requests
are coming back-to-back.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
19 years agoMerge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Steve French [Sun, 20 Nov 2005 05:05:42 +0000 (21:05 -0800)]
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git

19 years ago[CIFS] Fix setattr of mode only (e.g. in some chmod cases) to Windows
Steve French [Sun, 20 Nov 2005 05:04:52 +0000 (21:04 -0800)]
[CIFS] Fix setattr of mode only (e.g. in some chmod cases) to Windows
so it does not return EACCESS (unless server really returns that).

Signed-off-by: Steve French <sfrench@us.ibm.com>
19 years agoLinux v2.6.15-rc2 v2.6.15-rc2
Linus Torvalds [Sun, 20 Nov 2005 03:25:03 +0000 (19:25 -0800)]
Linux v2.6.15-rc2