Summary of changes from v2.5.36 to v2.5.37
============================================
<jejb@mulgrave.(none)>
Split x86 into a generic component and a visws component
<jejb@mulgrave.(none)>
Arch Abstraction small correction
Add missing \n to config.in
<jejb@mulgrave.(none)>
X86 arch split
Add hook for MCA NMI
<jejb@mulgrave.(none)>
Add arch split to setup.h
<jejb@mulgrave.(none)>
add ARCH_SETUP hook
<jejb@mulgrave.(none)>
More x86 arch splits
- Make hyperthreading a separate config parameter
- split out the reboot through bios parameters
<jejb@mulgrave.(none)>
More Separation
- add do_timer_overflow() function for coping with tick overflow
- make find_smp_config() gated by its own define
- bug fixes and corrections
<jejb@mulgrave.(none)>
[arch-split]
Final resolve of entry.S problems caused by change set 1.446.
Introduces new machine specific entry_arch.h file for defining
the SMP interrupts.
<jejb@mulgrave.(none)>
[arch-split]
move irq_vectors.h to machine specific directory (and add one
for visws)
<jejb@mulgrave.(none)>
[arch-split]
more clean ups of where irq_vectors.h resides (place it in machine
specific directory)
also tidy up hyperthreading define
<jejb@mulgrave.(none)>
move smp_thermal_interrupt from i8259.c to hook in smpboot.c
<jejb@mulgrave.(none)>
Remove visws from kernel/pci/Makefile
<jejb@mulgrave.(none)>
[ARCH SPLIT]
Add back missing hook lost in hand merger
<jejb@mulgrave.(none)>
[ARCH SPLIT]
Get rid of kludges in setup_arch.h and separate them into
setup_arch_pre.h and setup_arch_post.h
<jejb@mulgrave.(none)>
Simple fix: move load_cr3 to new reboot.c file
<jejb@mulgrave.(none)>
Kill compile warning and correct bitkeeper mismerge
<jejb@mulgrave.(none)>
[ARCH-SPLIT]
add back thermal interrupt correctly
<jejb@mulgrave.(none)>
Add back specific CONFIG_X86_HT gate for Xeon/P4 hyperthreading
<jejb@mulgrave.(none)>
[x86 arch split]
Add better documentation to the hooks.
<jejb@mulgrave.(none)>
[arch/i386 subarch split] rename directories, move mpparse back to kernel
<jejb@mulgrave.(none)>
Remove last CONFIG_VISWS remnants from arch/i386/kernel
<jejb@mulgrave.(none)>
Add comment change back to visws
<ralf@dea.linux-mips.net>
Redo locking of ax25_list with spinlocks.
<ralf@dea.linux-mips.net>
Properly handle sleep race without cli.
<ralf@dea.linux-mips.net>
Brain is short, so ...
<ralf@dea.linux-mips.net>
Properly protect ax25_uid_list with a spinlock.
<ralf@dea.linux-mips.net>
Protect ax25_route_list by a spinlock.
<ralf@dea.linux-mips.net>
Replace cli / sti with spinlock for protection of protocol_list.
<ralf@dea.linux-mips.net>
Protect ax25_dev_list with it's own spinlock replacing the previous
cli / sti mess.
<ralf@dea.linux-mips.net>
Protect linkfail_list with a spinlock instead of the previous cli / sti mess.
<ralf@dea.linux-mips.net>
Initialize spinlock.
<ralf@dea.linux-mips.net>
Protect the ax25 fragmentation code with it's own spinlock.
<ralf@dea.linux-mips.net>
Protect listen_list also with a spinlock instead of cli / sti.
<jejb@mulgrave.(none)>
[arch split] merge cli->local_irq_disable change
<ralf@dea.linux-mips.net>
Eleminate SOCKOPS_WRAPPED by using the BKL directly.
<ralf@dea.linux-mips.net>
Convert ax25_route_list by a rw_lock, no longer an interrup-save
spinlock.
Reformat switch statements.
<ralf@dea.linux-mips.net>
Split ax25_rt_ioctl() into several functions.
<ralf@dea.linux-mips.net>
Eleminate race caused by static variable in ax25_rt_find_route.
<ralf@dea.linux-mips.net>
Use ISO style labeled initializers.
<ralf@dea.linux-mips.net>
Don't use deliver_to_old_ones anymore.
<ralf@dea.linux-mips.net>
Reformat.
<ralf@dea.linux-mips.net>
Delete dead code.
<ralf@dea.linux-mips.net>
Implement reference counting and delayed destruction of routes.
Fix arguments to write_lock & co. of which many were passed the lock, not a pointer to one.
<ralf@dea.linux-mips.net>
Implement reference counting for routes.
<ralf@dea.linux-mips.net>
Redo race avoidance with cli with wait_event-like construction.
<ralf@dea.linux-mips.net>
Replace cli & co for synchronization with spinlocks.
<ralf@dea.linux-mips.net>
Kill remaining sti().
<ralf@dea.linux-mips.net>
Move ax25_put_route to <net/ax25.h>.
<ralf@dea.linux-mips.net>
Add missing lock_kernel() to ax25_connect.
Implement proper locking in ax25_accept() and nr_accept().
Add back line of code lost in last manual merge.
<ralf@dea.linux-mips.net>
Implement locking of internal data for NET/ROM and ROSE.
Do socket locking for AX.25
Delete trailing whitespace.
Exchange prehistoric changelogs in headers with GPL + copyright header.
Reformat some of the NET/ROM and ROSE code to 80 columns.
<ralf@dea.linux-mips.net>
More reformatting of switch statements.
<ralf@dea.linux-mips.net>
Implement socket locking for AX.25, NET/ROM and ROSE timers.
<ralf@dea.linux-mips.net>
Replace interrupt-safe spinlocks with their bh-safe equivalents.
<ralf@dea.linux-mips.net>
Update todo list.
<ralf@dea.linux-mips.net>
Kill trailing whitespace.
<ralf@dea.linux-mips.net>
Add XID and TEST frame definitions.
<jejb@mulgrave.(none)>
Merge by hand
<mochel@osdl.org>
Update driver model documentation.
<mochel@osdl.org>
Add class_data field to struct device, for the class drivers to use.
<mochel@osdl.org>
Add add() callback to struct bus_type.
This is so other entities in the kernel can inform the bus about devices
that it either doesn't know about yet (like when using the firmware to
enumerate the system) or that it wouldn't otherwise find (for the same
reason, or because they're weird legacy devices that won't be probed for).
<mochel@osdl.org>
Add struct bus_type platform_bus and document its intentions.
The platform bus is a pseudo-bus meant to group legacy devices. Not only
does it give legacy devices a common parent and bus type, it provides the
necessary infrastructure to allow for firmware-based enumeration of the
system's devices (using the platform's add() callback).
<mochel@osdl.org>
clean up driverfs removal of directories
- Make sure we have a valid inode when deleting a dentry
- use list_for_each_safe instead of manually walking ->d_subdirs
- don't do dget() in driverfs_mknod, since we already have a reference to it via driverfs_create_*
- so, remove extra dput() in driverfs_remove_dir and driverfs_remove_file
- Don't do get_mount() in driverfs_create_file, since it was done for the directory
- so remove extrra put_mount() from driverfs_remove_*
- Call d_invalidate() to unhash the files and directories instead of d_delete
- Remove our own d_unhash(), since d_invalidate() does the equivalent
- inline driverfs_rmdir in driverfs_remove_dir since its the only user and it prevents us from
taking the dir's semaphore twice.
<thockin@freakshow.cobalt.com>
Change drivers/net/natsemi.c to use netif_msg_*()
Clean up some output messages in natsemi enet driver
<thockin@freakshow.cobalt.com>
get rid of a couple extraneous natsemi enet error messages
<thockin@freakshow.cobalt.com>
Natsemi ethernet driver fixes:
* smaller ring
* no more CONFIG_CABLE_MAGIC
* new short-cable bug detection (from NSC)
* comment previously undocumented stuff
* protect PGSEL with the lock
<thockin@freakshow.cobalt.com>
Natsemi ethernet fixes:
* cleanup options
* formatting
* fix RX FIFO Overrun
* WoL interrupt fix
<thockin@freakshow.cobalt.com>
Natsemi enet: catch wraparound in ETHTOOL_GEEPROM
<thockin@freakshow.cobalt.com>
natsemi enet double decl compile fix
<ralf@dea.linux-mips.net>
Taking over maintenance for AX.25, ROSE and NET/ROM for 2.5.
<agrover@groveronline.com>
ACPI: Blacklist improvements
1) Split blacklist code out into a separate file.
2) Move checking the blacklist to very early. Previously, we would use ACPI
tables, and then halfway through init, check the blacklist -- too late.
Now, it's early enough to completely fall-back to non-ACPI.
3) Some FACP -> FADT cleanups, too.
<agrover@groveronline.com>
ACPI: New blacklist entries (Andi Kleen)
<agrover@groveronline.com>
ACPI:
- Use early table mapping code from acpitable.c (Andi Kleen)
- Make a warning a little more verbose
<agrover@groveronline.com>
ACPI: Include proper header for acpi_enter_sleep_state() in suspend.c
<mochel@osdl.org>
driver model: Don't reset dev->driver until after we call dev->driver->remove.
This fixes an Oops in the USB code that was using ->driver, both for checking what driver to
use and calling into it.
From Greg KH.
<mochel@osdl.org>
PCI: make sure the devices are named before they're registered.
<mochel@osdl.org>
driver model: use list_for_each_safe in device_shutdown(), since devices can be
removed from the global list in the process.
Also, call put_device() on the last device.
Origintally from Andrew Morton.
<mochel@osdl.org>
ACPI: move PREFIX to a common header
<mochel@osdl.org>
ACPI: Move sleep code from system.c to sleep.c
struct acpi_system was removed, because it was an unncessary abstraction (a single array suffices).
All functions have been updated to reference the array.
Unnecessary headers were removed, including ones implicitly included.
procfs files controlling sleep support were moved.
sysrq handler and registration were removed.
acpi_sleep_init() made an implicit subsys_initcall.
<mochel@osdl.org>
ACPI: Remove unnecessary objects and code from drivers/acpi/system.c
First, we remove acpi_system_driver, since it's not really a driver, and making it its own
object is just silly. This allows us to not have to register it, and we can hence remove
the add and remove callbacks.
For initialization, acpi_system_add_fs() has been inlined in acpi_system_init(). The proc file
creation was cleaned up to use create_proc_read_entry() where possible. Any failures now
result in a goto Error, which prints the error message previously replicated after each
failure. We also remove all the files that were created if that happens. acpi_system_init()
was made a subsys_initcall and declared static.
The acpi_system_exit() code and friends was removed, since it's never, ever called.
<mochel@osdl.org>
ACPI: break procfs handlers for acpi events and debug levels out of drivers/acpi/system.c and into their own files.
<mochel@osdl.org>
ACPI: make CONFIG_ACPI_SLEEP _not_ dependent on CONFIG_SOFTWARE_SUSPEND
and add help text.
<mochel@osdl.org>
ACPI: Remove dead code from drivers/acpi/bus.c
CONFIG_LDM is useless; you're stuck with it now :)
Also, the struct device_driver callbacks have never been used. The objects that are being
called 'devices' aren't really devices anyway; they're merely firmware representations of them...
Remove the unused (wrapped in #ifdef 0) functions acpi_platform_add() and acpi_platform_remove().
Remove the unused (commented out) functions acpi_add_device_fs() and acpi_remove_device_fs().
<mochel@osdl.org>
ACPI: Remove acpi_exit() and friends, since it's never called.
Also, make sure acpi_init() is declared static and not prototyped anywhere.
<agrover@groveronline.com>
ACPI: Fix Config.in to allow CONFIG_ACPI_SLEEP to be set properly
<agrover@groveronline.com>
ACPI: Print the DSDT stats on boot, just like the other ACPI tables.
<mochel@osdl.org>
ACPI: set acpi_disabled = 1 if acpi_bus_init() fails, and check this in the
init functions for the other components.
<mochel@osdl.org>
ACPI: Move all namespace scanning functions from drivers/acpi/bus.c to drivers/acpi/scan.c
Also, trigger bus scanning in acpi_scan_init(), which is made into an initcall.
<mochel@osdl.org>
ACPI: remove the rest of the explicit init function calls and move them
into the various files and make them initcalls.
<mochel@osdl.org>
ACPI: Remove call to acpi_ec_ecdt_probe() in acpi_bus_init() and make it a part
of acpi_ec_init().
<mochel@osdl.org>
ACPI: Treat acpi_root_dir as acpi_root_dir when initializing (not acpi_device_dir(acpi_root))
(and fix OOPS on boot because acpi_root is NULL).
<mochel@osdl.org>
ACPI: Move per-componet defines into component files. Only share in headers what is needed by
multiple users.
<mochel@osdl.org>
ACPI: Add call to acpi_ec_ecdt_probe() from acpi_bus_init() again and fix the comment to
explicitly say that it must be called before acpi_initialize_objects().
<mochel@osdl.org>
ACPI: Don't use driver model for struct acpi_device; use driverfs directly.
Instead of initializing and registering a struct device for each acpi_device, just
initialize and create a driverfs directory for each one. ACPI devices aren't devices,
and shouldn't be treated as such. They are firmware objects that describe devices.
They should still have representation in driverfs (and symlinks to the devices they
describe), but none of the other driver model overhead.
In order to do this, we also add some ACPI bindings for driverfs. It gets its own top-
level directory now (though it will soon be under a more generic 'platform' directory).
<mochel@osdl.org>
ACPI: move sleep file defines to drivers/acpi/sleep.c (where they're used)
<mochel@osdl.org>
ACPI: greatly simplify acpi device and acpi driver binding.
First, introduce a global acpi device list, and insert devices into it when they're discovered. Now,
instead of having to recurse through our own device tree, we simply walk the list of devices. Access
is protected using a new spinlock. This completely obviates the need for the complicated acpi_bus_walk().
acpi_bus_attach() and acpi_bus_unattach() become acpi_driver_attach() and acpi_driver_detach() to better
identify what they're doing. They do the walking of the device list themselves.
acpi_bus_find_driver() is converted to list_for_each_safe() and use the same new spinlock.
struct acpi_driver::references is changed from an int to an atomic_t. No lock is needed anymore for
incrementing/decrementing the refcount.
<anton@samba.org>
ppc64: remove old debug, crashme found it pretty fast
<acme@conectiva.com.br>
[LLC] change semantics of recvmsg and sendmsg
Now recvmsg will not discard the packet after reading less than
skb->len, keeping the rest of the skb data in receive_queue.
sendmsg will not barf if a packet bigger than the mtu is sent,
it'll politely only copy what is possible and tell this to
userland.
With this my openssh with PF_LLC works flawlessly 8) Time to
securely connect to a machine that has no ip address :-) This is
just to test how robust is PF_LLC, but sekurity guys may like it
for things like stealth IDS or bridge boxes with no IP addresses.
<anton@samba.org>
ppc64: ppc_md cleanup
<anton@samba.org>
ppc64: pci updates
<paulus@samba.org>
PPC32: Rip out the BK Id tags from arch/ppc and include/asm-ppc.
The tags were slightly useful when the kernel maintainers weren't
using BK, but these days they are more trouble than they are worth.
They tend to cause patch rejects, and often end up getting turned
into the fixed form (rather than the %x% tag form).
<anton@samba.org>
ppc64: the the strikes again
<anton@samba.org>
ppc64: we use rtas for all config accesses, so remove the unecessary ioremaps
<anton@samba.org>
ppc64: Allocate hugepages and exit_group syscalls
<anton@samba.org>
ppc64: sanity check PC and SP before preloading them
<anton@samba.org>
ppc64: DISCONTIGMEM updates
<anton@samba.org>
ppc64: enable exit_group syscall
<paulus@samba.org>
PPC32: Don't count up the "zombie" MMU hashtable entries.
We used to get MMU hashtable entries which weren't associated
with any current process. Since the low-level PPC MM code no
longer does this, there is no use counting these entries, since
there are never any of them.
<davem@nuts.ninka.net>
[TIGON3]: Fiber WOL support, chip clock bug fix.
- Support wake-on-lan with Fiber connections properly,
when possible.
- On device probe and device open, get out of 44MHZ core
clock rate if necessary.
<davem@nuts.ninka.net>
arch/sparc64/kernel/sparc64_ksyms.c: Remove kbd_pt_regs export, kernel/ksyms.c does it.
<davem@nuts.ninka.net>
[SPARC]: Move over to for_each_process.
<zaitcev@redhat.com>
[SPARC]: Fix noncache leaks.
<davem@nuts.ninka.net>
[TIGON3]: Comment out tg3_enable_ints PCI write flush for now.
<bart.de.schuymer@pandora.be>
[BRIDGE]: Add Ethernet bridge tables support.
<taka@valinux.co.jp>
arch/i386/lib/checksum.S:csum_partial Handle oddly addressed buffers correctly.
<mochel@osdl.org>
ACPI: lots of minor cleanups in drivers/acpi/scan.c
These should clean up the code a bit by doing:
- removing unncessary checks.
- removing the commented-out code
- remove some function tracing from the small, benign functions
- streamline the code in acpi_bus_match
- invert a few instances of if (!true) err else do_something; to if (true) do_something else err;
- break acpi_bus_add into 5 more distinct helper functions
<davem@nuts.ninka.net>
[SPARC]: First cut of hugetlb on sparc64, 4MB currently.
<davem@nuts.ninka.net>
arch/sparc64/defconfig: Update.
<anton@samba.org>
ppc64: Actually restore FP regs in rt_sigreturn
<trini@kernel.crashing.org>
PPC32: Boot wrapper updates.
The major changes here are:
(1) Combine the pmac and chrp directories into a single
`openfirmware' directory, since both use Open Firmware and the code
was very similar.
(2) Move the Open Firmware interfaces out to a `of1275' directory
and put them in separate files so we only include the ones we need.
This work is due to Leigh Brown.
(3) On PReP and embedded, get the memory size from the memory
controller. Don't try to ask Open Firmware even on PRePs which
have it.
<anton@samba.org>
ppc64: fix handling of sigaltstack
<mochel@osdl.org>
ACPI: don't match every device to every driver.
acpi_bus_match() wasn't returning an error if the device's hid didn't match
and it didn't have a _CID.
Also, don't let gcc complain about unused variables when debugging isn't
enabled.
<davem@nuts.ninka.net>
[TIGON3]: Fix link polarity setting on all non-5700 chips.
<davem@nuts.ninka.net>
[TIGON3]: Optimize NAPI irq masking a bit.
<agrover@groveronline.com>
ACPI: Add missing include to sleep.c
<davem@nuts.ninka.net>
[TIGON3]: Define NIC_SRAM_MBUF_POOL_SIZE64 properly.
<anton@samba.org>
ppc64: Use generic asm/offset.h creation rules
<anton@samba.org>
ppc64: fix some compiler warnings
<anton@samba.org>
ppc64: print cpus in hex since we ask for them in hex
<davem@nuts.ninka.net>
fs/filemap.c: Add back mistakedly removed flush_dcache_page.
<zaitcev@redhat.com>
[SPARC32]: Fix console, sunsu, and IO macros.
<anton@samba.org>
ppc64: clean up some 2.4 - 2.5 differences
<akpm@digeo.com>
[PATCH] move madvise implementation into madvise.c
Patch from Christoph Hellwig moves the madvise implementation out of
filemap.c and into its own .c file. No other changes are made.
<akpm@digeo.com>
[PATCH] consolidate the VMA splitting code
Patch from Christoph Hellwig. 250 lines of code go away.
The three syscalls madvice/mlock/mprotect all change attributes of
memory regions. These attributes are stored in vm_area_structs (VMAs).
The current code for those syscalls does this by having four
subroutines each, for changing a whole VMA, one for just setting new
flags if a full VMA is affected, one that creates a new VMA in the
right part of the old one and sets the flags there, one for the left
part, and one that splits of both the left and the right part and sets
the new flags in the middle.
This patch makes those routines create new VMAs on the left and on te
right hand first and then always setting the flags in the old VMA.
Together with using a library function (split_vma) to to the split this
simplies the code and makes it more readable. As a side affect it
fixes some VM accounting bugs observed by Hugh Dickins.
<akpm@digeo.com>
[PATCH] mmap cleanup and lock ranking fixes
Patch by Christoph Hellwig.
This patch is cleanup of mmap.c with the side-effect of making the lock
order of mapping->i_shared_lock and mm->page_table_lock consistant.
__remove_shared_vm_struct is merged into its only caller,
remove_shared_vm_struct, which now also does the job of
{lock,unlock}_vma_mappings itself, to avoid duplicate checks.
Similarly, vma_link is updated to take and release i_shared_lock
itself, fixing the lock order. split_vma is updated to use
insert_vm_struct instead of using __insert_vm_struct and taking
page_table_lock and i_shared_lock itself (wrongly). __insert_vm_struct
is removed as it is unused now.
<akpm@digeo.com>
[PATCH] export unmap_underlying__metadata()
From Anton Altaparmakov
The below bk patch against your current bk repository adds an export
for fs/buffer.c::unmap_underlying_metadata() to modules.
It is required to make ntfs compile as a module in the current kernel.
Note that NTFS doesn't currently dirty bufferheads of the underlying
blockdevice and as such could probably live without calling
unmap_underlying_metadata() but as soon as we enable writing to
compressed files it will do so and considering some of the
infrastructure code is already present I would rather not rip it out
now.
<akpm@digeo.com>
[PATCH] move the buffer_head IO functions into buffer.c
Patch from Christoph Hellwig.
Move the buffer_head-based IO functions out of ll_rw_blk.c and into
fs/buffer.c. So the buffer IO functions are all in buffer.c, and
ll_rw_blk.c knows nothing about buffer_heads.
This patch has been acked by Jens.
<akpm@digeo.com>
[PATCH] Add /proc/meminfo:Slab
Display the total slab memory in /proc/meminfo. Handy while we play
with the slab pruning code.
This info is also available via /proc/slabinfo, but I think this
convenience is worth the extra few lines.
<ahaas@neosoft.com>
[PATCH] designated initializer patches fs_freevxfs
Here's a C99 designated initializer patch for fs/freevxfs. The
patch is against 2.5.35.
<bhards@bigpond.net.au>
[PATCH] Re: header cleanup - drivers_char_eurotechwdt.c
<linux/smp_lock.h> has the normal idempotent construction.
The attached file removes the second #include.
<james@cobaltmountain.com>
[PATCH] Typos in drivers_s390_net_iucv.c
<lucasvr@terra.com.br>
[PATCH] 2.5.31_drivers_i2c_i2c-philips-par.c
This is a trivial patch already applied in the -ac tree for the 2.4.19 kernel.
Patch for i2c-philips-par.c free() the memory in the case of problems loading
the adapter.
<rusty@rustcorp.com.au>
[PATCH] Re: per_cpu data question
I suck. Lvalues continue to haunt me. This works for me.
BTW, I prefer to have bug reports cc'd to linux-kernel, so the
results are archived. Plus, public humiliation is good for the
soul.
<rusty@rustcorp.com.au>
[PATCH] Designated initializers for drivers_bluetooth
The old form of designated initializers are obsolete: we need to
replace them with the ISO C forms before 2.6. Gcc has always supported
both forms anyway.
<ahaas@neosoft.com>
[PATCH] designated initializer patches for fs_
Here's a resend of C99 patches for the files in fs.
<bunk@fs.tum.de>
[PATCH] fix cyclades.c compile error
cyclades.c doesn't compile cleanly: the problem is that older -dj
patches contained patches to both cyclades.c and cyclades.h but only the
former one went into your tree. This syncs up the header file too.
<urban@teststation.com>
[PATCH] smbfs - C99 stuff
Art Haas did these.
<anton@samba.org>
ppc64: remove some old syscalls from the 64bit syscall table
<anton@samba.org>
ppc64: implement dump_stack
<anton@samba.org>
ppc64: CLEARTID/SETTID fixes
<jejb@mulgrave.(none)>
add back acpi targets lost in arch-split merge
<axboe@suse.de>
[PATCH] impose sane queue restrictions
Impose sane limits on queue restrictions. that means:
- q->max_sectors must be able to at least span a page
- q->max_phys_segments and q->max_hw_segments must be at least 1
- q->max_segment_size must be at least page sized
- q->seg_boundary_mask must be at least PAGE_CACHE_SIZE-1
<axboe@suse.de>
[PATCH] bio_add_page()
This is bio_add_page(), 100% identical to the version I sent out for
comments earlier this week. With the previous queue restriction patch,
this guarentees that we can always add a page worth of data to the bio.
bio_add_page() returns 0 on success, and 1 on failure. Either the page
is added completely, or the attempt is aborted.
bio_add_page() uses the normal queue restrictions to determine whether
we an add the page or not. if a queue has further restrictions, it can
define a q->merge_bvec_fn() to further impose limits.
Patch also includes changes to ll_rw_kio(), if for nothing else to
demonstrate how to use this piece of instrastructure.
<axboe@suse.de>
[PATCH] make mpage use bio_add_page()
This makes mpage use bio_add_page(). It has the added advantage that
users don't need to have deep knowledge about what the different bio
fields mean, nor does it have to abuse some of them while building the
bio.
<axboe@suse.de>
[PATCH] partial bio completion notification
Make bio->bi_end_io() take bytes_done and actual error as argument. This
enables partial completion of bio's, which is important for latency
reasons (bio can be huge, for slow media we want page-by-page
completions).
I think I got most of the bi_end_io() functions out there, but I might
have missed a few. For the record, if you don't care about partial
completions and just want to be notified when the entire bio completes,
add a
if (bio->bi_size)
return 1;
to the top of your bi_end_io(). It should return 0 on completion.
bio_endio() will decrement bio->bi_size appropriately, it's recommended
for people to go through that. Otherwise they will have to control
BIO_UPTODATE and bi_size decrement themselves, there's really no reason
to do that. I've deliberately avoided doing any functional changes to
any of the end_io functions, as I think that would only make the patch
more complex. It's simple right now, but this being i/o paths I prefer
(as usual) to be careful and take small steps. The mpage_end_io_read()
do-vecs-at-the-time change can come right after this, for instance.
<axboe@suse.de>
[PATCH] jfs and xfs update
missed updating xfs and jfs to new bi_end_io handling
<axboe@suse.de>
[PATCH] scsi doesn't need locking around end_that_request_first()
Seems James introduced this one, it's not needed though. Will take a
look at eh thread now...
<axboe@suse.de>
[PATCH] xfs, use bio_add_page()
XFS now needs to use bio_add_page() as not to build bio's of the wrong
size. Also makes the bio build nicer.
<torvalds@home.transmeta.com>
Missing EOL noticed by Chuck Lever
<torvalds@home.transmeta.com>
Make pid_max grow dynamically as needed.
<drow@false.org>
[PATCH] Fix for ptrace breakage
This patch consolidates zap_thread into reparent_thread, and fixes
__will_become_orphaned_pgrp to check p->real_parent instead of
p->parent.
<cel@citi.umich.edu>
[PATCH] (1/2) clean up RPC over TCP transport socket connect
This provides clean up and bug fixes for the RPC layer's TCP socket
connection management logic. Trond, Alexey, and DaveM have seen this
patch. i've been running it for several weeks here and feel it is ready
for wider testing. these two patches are prerequisites for further
clean-ups and fixes for RPC over TCP.
bugs fixed:
+ TCP connection establishment now times out after 60 seconds instead of
hanging for ten minutes. 60 seconds is more in line with how long a
server takes to reboot.
+ on a soft-mounted file system, TCP reconnections now time out and fail
the RPC request, like most other NFS clients, instead of hanging the
NFS client until the server comes back.
+ on hard-mounted file systems, the RPC layer now delays 15 seconds
before retrying after a failed connection attempt instead of retrying
as soon as it can.
+ TCP connection error recovery is now more verbose so users can see why
their NFS sessions are hung. this can be tuned with future patches if
it is unreasonably noisy.
+ the TCP connect logic is cleaned up so adding checks for new errnos
is easier.
+ the same code now handles both initial connection and reconnection.
the original initial connection code did not have comprehensive error
handling.
+ some obscure design elements are now documented in comments.
+ kfree was used by mistake in xprt_destroy.
<cel@citi.umich.edu>
[PATCH] (2/2) clean up RPC over TCP transport socket connect
This renames *reconn* to *conn* since the same code now handles both
initial TCP connect, and TCP reconnection, and corrects some comments.
against 2.5.36, requires earlier patch (1/1).
<cel@citi.umich.edu>
[PATCH] stricter type checking for rpc auth flavors
This implements stricter type checking for rpc auth flavors. it is a
prerequisite for RPC GSSAPI and its authentication pseudoflavors.
please apply it.
<cel@citi.umich.edu>
[PATCH] rename svc_get/putlong as svc_get/putu32
This renames the svc_getlong and svc_putlong macros as svc_getu32 and
svc_putu32. this is simple clean up and is obviously correct. it was
part of the patch that implements stricter type checking for rpc auth
flavors.
<axboe@suse.de>
[PATCH] bio_endio() cleanups
Make BIO_UPTODATE a sticky good flag, only clearing it on error.
I pondered leaving the BIO_UPTODATE clearing up to the bi_end_io()
functions, but decided against that and left it in bio_endio() as
before.
I also added a bit of debug in bio_endio() to detect callers specifying
more than bi_size i/o complete. And to top it all of, bio_endio()
documentation. This is mainly to clear my back when people bitch about
using bio_endio(), I can say RTFM without worry :-)
<axboe@suse.de>
[PATCH] umem and DAC960 bio_endio()
update DAC960 and umem to new bio_endio() completions
<hch@lst.de>
[PATCH] remove scsi_queue.c
it has just one function nowdays, and that one would be much better
static in scsi.c
<jgarzik@mandrakesoft.com>
synchronize_irq fixups for old-OSS audio driver cs4281
<jgarzik@mandrakesoft.com>
Add netif_carrier_xxx support to 3c59x net driver
(based on patch from Nelson Tan Gin Hwa, via Andrew Morton)
<axboe@suse.de>
[PATCH] Update md to new i/o completions
<jgarzik@mandrakesoft.com>
Merge up to version 1.04 of sundance net driver:
* New Rx polling scheme to prevent congestion
* Tx timeout recovery
* Enhanced ethtool support
* Fix problems with multiport sundance boards
(contributed by Edward Peng @ D-Link)
<davem@nuts.ninka.net>
arch/sparc64/Makefile: Undef sparc too when building vmlinux.lds.s
<zaitcev@redhat.com>
[SPARC]: RTC build fixes and allow as a module.
<jgarzik@mandrakesoft.com>
Add support for Cirrus Logic GD7548 chip to clgenfb fbdev driver
(contributed by gabucino@mplayerhq.hu)
<manfred@colorfullife.com>
[RANDOM]: Fix bugs in ipv{4,6} ID/SEQ generation, mostly SMP issues. Reviewed by Ted Tso
<zaitcev@redhat.com>
[SPARC]: Export syms necessary for rtc as module.
<zaitcev@redhat.com>
drivers/net/tun.c: Fix warning and missing overflow check.
<jt@hpl.hp.com>
irda update 1/6:
o [CRITICA] Remove correct IAS Attribute/Object even if name is dup'ed
o [CORRECT] Make irqueue 64 bit compliant (__u32 -> long)
o [FEATURE] Don't use random handle for IrLMP handle, use self
Remove dependancy on random generator in stack init
<jt@hpl.hp.com>
irda update 2/6:
o [CORRECT] Make sure LAP address is sane, which mean not NULL,
not BROADCAST and not already in use by another link.
<davem@nuts.ninka.net>
drivers/char/rtc.c: For sparc, include linux/pci.h instead of asm/pci.h
<jt@hpl.hp.com>
irda update 3/6:
o [FEATURE] New hashbin locking scheme for irqueue
o [FEATURE] Get rid of old broken hashbin locking schemes
o [FEATURE] Lock hasbins while enumerating it in various places
o [CORRECT] Remove all remaining "save_flags(flags);cli();"
o [CORRECT] Fix two "return with spinlock" found by Stanford checker
<kaos@ocs.com.au>
[PATCH] Remove Keith Owens from MAINTAINERS
<jt@hpl.hp.com>
irda update 4/6:
o [FEATURE] Do the hashbin locking fixes for IrCOMM and IrLAN
o [CORRECT] Remove all "save_flags(flags);cli();" in IrCOMM/IrLAN
o [CORRECT] Fix other locking issues in IrCOMM
<jt@hpl.hp.com>
irda update 5/6:
o [CORRECT] Remove all "save_flags(flags);cli();" in IrDA driver
o [FEATURE] Rework broken locking in irport
o [FEATURE] Finish locking cleanup in nsc-ircc
o [FEATURE] Improve locking in smc-ircc & w83977af_ir
<jt@hpl.hp.com>
irda update 6/6:
o [CORRECT] Remove all "save_flags(flags);cli();" in IrDA ali driver
<davem@nuts.ninka.net>
kernel/signal.c: Handle SIGEMT.
<davem@nuts.ninka.net>
[SPARC]: Source net/ax25/Config.in
<davem@nuts.ninka.net>
[AX25]: Make ax25_rt_destroy return void.
<jgarzik@mandrakesoft.com>
Fix __FUNCTION__ breakage in several irda drivers
<davem@nuts.ninka.net>
[AX25]: Remove unused label from ax25_get_socket, add XXX comment.
<davem@nuts.ninka.net>
[NETROM]: Fix setting of nr in nr_transmit_buffer.
<davem@nuts.ninka.net>
[ROSE]: Kill 64-bit warning in rose_connect.
<anton@samba.org>
ppc64: only calculate local when we need it, from paulus
<jgarzik@mandrakesoft.com>
Add two NETIF_MSG_xxx constants to linux/netdevice.h,
that are used in natsemi net driver
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Remove O_TARGETS which creeped back in
O_TARGET should basically be dead for non arch-specific code in 2.5
(it's still functional, though), so kill the cases where it creeped back
in.
<agrover@groveronline.com>
ACPI: Interpreter update to 20020918
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Remove O_TARGET in arch/i386/*
Of course it's possible to use the standard "built-in.o" in arch/* as well,
so do it for i386 - other archs still using O_TARGET are not affected by
this change.
<acme@conectiva.com.br>
[LLC] timer cleanup: use mod_timer
. Use a smaller default for LLC_ACK_TIME.
. Added much more info about core sock internal state in /proc/net/802.2
<agrover@groveronline.com>
ACPI: Ensure that the SCI has the proper polarity and trigger, even
on systems that do not have an interrupt override entry in the MADT.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Remove O_TARGET from {kernel,mm,fs,...}/Makefile
It's gone almost everywhere else already, and will eventually make for
a nicer top-level Makefile.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Use new $(libs-y) in arch/i386/Makefile
It's shorter and more along the lines of the other "new-style"
statements.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Always make an L_TARGET "lib.a"
As we have a standard O_TARGET ("built-in.o"), use a standard L_TARGET
as well ("lib.a"), which is what was used in the majority cases already,
anyway.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Lost update to top-level Makefile
Sometimes bk still gets me... The previous changes won't work without
the updated top-level Makefile ;)
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Fix typo for hisax/st5481 driver
Fix a typo which was introduced when updating st5481 for the
USB API changes.
<jt@hpl.hp.com>
This is Wireless Extension v15. Mostly enhanced iwpriv support
for the HostAP driver, with few cleanups and new unused
definitions. The most contention change is that this version now
requires user space to provide the buffer size when making a GET (to
check buffer overrun), which will break very old version of Wireless
Tools (v22 and earlier).
<jt@hpl.hp.com>
A few cleanups for the old ISA wavelen wireless driver:
- Set dev->trans_start to avoid filling the logs
- Handle better spurious/bogus interrupt
- Avoid deadlocks in mmc_out()/mmc_in()
<jt@hpl.hp.com>
Cleanups for the wavelan pcmcia wireless driver:
- Set dev->trans_start to avoid filling the logs
(and generating useless abort commands)
- Avoid deadlocks in mmc_out()/mmc_in()
<jt@hpl.hp.com>
This add spinlock protection to the Netwave wireless driver and gets
rid of save_flags();cli();. I was pleasantly surprised that the driver
was working fine on my SMP system with those obvious fixes. Tested on
2.5.32 SMP.
<davem@nuts.ninka.net>
[TIGON3]: TSO fixes, but still disabled because the performance is dreadful.
<jgarzik@mandrakesoft.com>
merge most of hppa support for tulip net driver
<rmk@arm.linux.org.uk>
This patch fixes a bug in handling the timeout in pcnet_cs.c, where
it uses the following test to determine whether the timeout has
expired:
if (jiffies - dma_start > PCNET_RDC_TIMEOUT) {
Unfortunately, PCNET_RDC_TIMEOUT is defined to be "0x02", so the
length of the timeout is only two jiffy ticks, rather than being
the expected 20ms. This patch fixes this.
Also, the above (and one other place) should be converted to
time_after().
<hch@lst.de>
Add basic ethtool support to axnet_cs, wavelan_cs net drivers
(originally by Arjan, merged and re-merged by hch)
<rl@hellgate.ch>
Remove ancient ETHER_STATS statistics from various net drivers, that haven't been
compile-enabled nor compileable in ages.
<jgarzik@mandrakesoft.com>
Fixes for little-used paths and obscure races, in 8139cp net driver
(contributed by matthias@waechter.wiz.at)
<kafai0928@yahoo.com>
Use SET_MODULE_OWNER in eepro100 net driver instead of
MOD_{INC,DEC}_USE_COUNT, eliminating a small race
<agrover@groveronline.com>
Use ACPI fix map region instead of IOAPIC region, since it is undefined
in non-SMP.
<jgarzik@mandrakesoft.com>
Update list of airo wireless commands, and two RIDs, from
linux-wlan-ng sources and online sources
<khc@pm.waw.pl>
A bunch of HDLC (WAN driver) bug fixes, plus much improves
device and protocol attach/detach support.
Overall, this is in preparation for update of HDLC API
<alan@lxorguk.ukuu.org.uk>
Merge 2.4.x updates to hppa-specific net driver lasi_82596
<alan@lxorguk.ukuu.org.uk>
hp100 net driver update (probably from HP originally):
* add EISA 10/100 card id
* properly align rx skbs
<trini@kernel.crashing.org>
PPC-specific 3c509 net driver update:
s/insl_unswapped/insl_ns/ inside #ifdef __powerpc__
<silicon@falcon.sch.bme.hu>
comx-hw-munich WAN driver "performance fix": remove hideous udelay.
Also, some cleanups.
<axboe@suse.de>
[PATCH] nbd bio_endio()
Switch nbd bio_endio() over to new semantics
<akpm@zip.com.au>
Fix "multiple definition of 'smc_init'" error in smc-ircc irda driver,
by making 'smc_init' static.
<acme@conectiva.com.br>
[LLC] Don't call sock_alloc_send_skb with the socket lock held...
<axboe@suse.de>
[PATCH] cleanup + fix bounce end_io handling
Andrew found out that bounce end_io handling did not work for him, so I
fixed the bug (not consistent checking of bi_size). I cleaned it up and
moved the bi_size checking out of bounce_end_io() (the main worker) and
into the individual bi_end_io() handlers instead. Please apply to make
highmem bouncing work again.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Remove leftover debugging line
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Fix build number generation
For some inexplicable reason, I broke the dependency on a new build number
some time ago - it worked fine before, and now it does again.
(Whenever vmlinux is relinked, the build number is incremented, and now it
ends in the version string again, as it should)
Noted by Anton Blanchard.
<axboe@suse.de>
[PATCH] fix ide highmem bounce enable
ide_toggle_bounce() was called prior to init'ing the block queue,
which then reset the bounce_pfn back to BLK_BOUNCE_HIGH. Make
ide_toggle_bounce() an ide-lib helper, and call it when setting up
the queue as well.
<jgarzik@mandrakesoft.com>
sundance net driver fixes, and a few cleanups too:
- Remove unused/constant members from struct pci_id_info
(which then allows removal of 'drv_flags' from private struct)
- If no phy is found, fail to load that board
- Always start phy id scan at id 1 to avoid problems (Donald Becker)
- Autodetect where mii_preable_required is needed,
default to not needed. (Donald Becker)
<jgarzik@mandrakesoft.com>
clean up previous sundance net driver fixes:
- Remove mii_preamble_required module parameter (Donald Becker)
- Add per-interface mii_preamble_required (setting is autodetected)
(Donald Becker)
- Remove unnecessary cast from void pointer
- Re-align comments in private struct
<acme@conectiva.com.br>
[LLC] check if we have space in the socket to receive the packet
Now we have llc_conn_space and use it to see if we can accept the
packet in the core llc state machine. Transfers of 80 megabytes now
are safe 8)
<jgarzik@mandrakesoft.com>
sundance modernization:
* support bitmapped printk message levels
* don't hand-code ethtool media support, use standard API/lib
<torvalds@home.transmeta.com>
If slab debugging is enabled, don't batch slabs on the per-cpu
lists by default. The batching avoids some debug tests.
<jgarzik@mandrakesoft.com>
Update eepro100 hardware resume to latest Becker eepro100.c
<jgarzik@mandrakesoft.com>
more fixes for sundance net driver:
* default to PIO (fixes bugs in some chips), but add CONFIG_xxx option
for MMIO
* proper support for variable MTU sizes
* add missing unregister_netdev in an error path
(with a kudos to Jason Lunz for merging most of this)
<mingo@elte.hu>
[PATCH] generic-pidhash-2.5.36-J2, BK-curr
This is the latest version of the generic pidhash patch. The biggest
change is the removal of separately allocated pid structures: they are
now part of the task structure and the first task that uses a PID will
provide the pid structure. Task refcounting is used to avoid the
freeing of the task structure before every member of a process group or
session has exited.
This approach has a number of advantages besides the performance gains.
Besides simplifying the whole hashing code significantly, attach_pid()
is now fundamentally atomic and can be called during create_process()
without worrying about task-list side-effects. It does not have to
re-search the pidhash to find out about raced PID-adding either, and
attach_pid() cannot fail due to OOM. detach_pid() can do a simple
put_task_struct() instead of the kmem_cache_free().
The only minimal downside is the potential pending task structures after
session leaders or group leaders have exited - but the number of orphan
sessions and process groups is usually very low - and even if it's
higher, this can be regarded as a slow execution of the final
deallocation of the session leader, not some additional burden.
<mingo@elte.hu>
[PATCH] session handling using pid lists..
These are the debated tty_io.c changes to use the session group lists to
maintain controlling tty information.
<davem@nuts.ninka.net>
fs/nfs/nfs{2,3}xdr.c: Use correct printf format for size_t.
<davem@nuts.ninka.net>
drivers/ide/ide-taskfile.c: u64 != long long
<davem@nuts.ninka.net>
drivers/ide/ide.c: u64 != long long
<davem@nuts.ninka.net>
drivers/ide/ide-proc.c: u64 != long long
<davem@nuts.ninka.net>
drivers/net/ppp_generic.c:ppp_receive_frame Delete unused label err.
<davem@nuts.ninka.net>
fs/xfs/linux/xfs_aops.c:linvfs_get_block_core Use min_t.
<davem@nuts.ninka.net>
drivers/pci/pool.c:show_pools Use correct size_t printf format.
<davem@nuts.ninka.net>
drivers/usb/serial/visor.c: Kill 64-bit cast ptr to int warnings.
<davem@nuts.ninka.net>
kernel/pid.c:next_free_map Pass 3rd arg to cmpxchg as pointer.
<jgarzik@mandrakesoft.com>
Improve sundance net driver RX buf size calculation
(suggested by Donald Becker)
<davem@nuts.ninka.net>
drivers/ieee1394/dv1394.c: Protect devfs stuff properly.
<davem@nuts.ninka.net>
drivers/ieee1394/dv1394.c: Fix typo in previous change.
<davem@redhat.com>
Fix compiler warnings in e100 net driver
<jes@wildopensource.com>
acenic net driver update:
* PCI write posting fixes, remove pa-specific code
* support 2.5.x kernels (synchronize_irq, cli/sti cleanups)
<davem@nuts.ninka.net>
drivers/ieee1394/dv1394.c: Protect more devfs stuff.
<jgarzik@mandrakesoft.com>
Hey... where did those e100 warnings come from?
(kill more e100 compiler warnings)
<scottm@somanetworks.com>
[PATCH] Small pcihpfs dnotify fix
I've been working on a userspace daemon to go with my CompactPCI driver,
and yesterday I discovered an oversight in pci_hp_change_slot_info - it
doesn't call dnotify_parent, so dnotify based clients basically don't
work against pcihpfs. The following patch (against 2.5 BK) reworks
things to just update the mtime (since we're modifying the file after
all), and then call dnotify_parent.
<torvalds@home.transmeta.com>
Remove bogus timer optimization - even if the timer isn't pending,
it might be actively running on another CPU, so we still need to
do the synchronous wait.
<greg@kroah.com>
export __inode_dir_notify so that dnotify can be called from filesystems in modules.
<greg@kroah.com>
PCI Hotplug: added max bus speed and current bus speed files to the pci hotplug core.
Patch based on work done by Irene Zubarev <zubarev@us.ibm.com>
<greg@kroah.com>
PCI Hotplug: added speed status to the Compaq driver.
<greg@kroah.com>
PCI Hotplug: added speed status to the IBM driver.
<greg@kroah.com>
PCI Hotplug Core: Add allocation sanity checks. Patch from Silvio Cesare
<greg@kroah.com>
PCI Hotplug: created /proc/bus/pci/slots for pcihpfs to be mounted on.
proc_bus_pci_dir had to be exported for this to work properly.
<jgarzik@mandrakesoft.com>
Update eepro100 net driver's mdio_{read,write} functions
to take 'struct net_device *' not 'long' as their first
argument. This makes eepro100 compatible with the standard
MII ethtool API, preparing it for that support.
No functional changes should occur with this patch, if anything
changes at all it is a bug. (and testing shows no changes...)
<jgarzik@mandrakesoft.com>
update eepro100 net driver to use standard MII phy API/lib,
when implementing ethtool media ioctls.
No behavior should change with this patch (except the ethtool media
ioctls now work, of course)
Also, re-format comments to the right of the private struct to line up.
<davem@nuts.ninka.net>
include/asm-sparc64/system.h: Remove CHECK_LOCKS debugging.
<davem@nuts.ninka.net>
[SPARC64]: Trap kernel bogus program counter at fault time.
<davem@nuts.ninka.net>
arch/sparc64/defconfig: Update.
<paulus@au1.ibm.com>
PPC32: Update config.in and Makefile in arch/ppc
<paulus@au1.ibm.com>
PPC32: Simplify the code in arch/ppc/kernel/ppc_htab.c a bit
(no change in function).
<paulus@au1.ibm.com>
PPC32: remove the last couple of BK tag lines
<torvalds@home.transmeta.com>
Fix up some merge issues for the Makefle changes in the arch-splitup
<davem@redhat.com>
[PATCH] block device oopses on shutdown in 2.5.x
The partition code registers a generic device for disks
which have a dev->driver non-NULL but whose dev->driver->remove
points into outer space. So when reboot happens --> OOPS
in drivers/base/power.c:device_shutdown()
Ok, amusingly in my case dev->driver == &scsi_done(), hehe :-)
Two cases of uninitialized memory spotted, here is the patch.
<akpm@digeo.com>
[PATCH] clean up argument passing in writeback paths
The writeback code paths which walk the superblocks and inodes are
getting an increasing arguments passed to them.
The patch wraps those args into the new `struct writeback_control',
and uses that instead. There is no functional change.
The new writeback_control structure is passed down through the
writeback paths in the place where the old `nr_to_write' pointer used
to be.
writeback_control will be used to pass new information up and down the
writeback paths. Such as whether the writeback should be non-blocking,
and whether queue congestion was encountered.
<akpm@digeo.com>
[PATCH] free_area_init cleanup
Patch from Martin Bligh. It should only affect machines using
discontigmem.
"This patch cleans up free_area_init stuff, and undefines mem_map and
max_mapnr for discontigmem, where they were horrible kludges anyway
... We just use the lmem_maps instead, which makes much more sense.
It also kills pgdat->node_start_mapnr, which is tarred with the same
brush.
It breaks free_area_init_core into a couple of sections, pulls the
allocation of the lmem_map back into the next higher function, and
passes more things via the pgdat. But that's not very interesting,
the objective was to kill mem_map for discontigmem, which seems to
attract bugs like flypaper. This brings any misuses to obvious
compile-time errors rather than wierd oopses, which I can't help but
feel is a good thing.
It does break other discontigmem architectures, but in a very obvious
way (they won't compile) and it's easy to fix. I think that's a small
price to pay ... ;-) At some point soon I will follow up with a patch
to remove free_area_init_node for the contig mem case, or at the very
least rename it to something more sensible, like __free_area_init.
Christoph has grander plans to kill mem_map more extensively in
addition to the attatched, but I've heard nobody disagree that it
should die for the discontigmem case at least.
Oh, and I renamed mem_map in drivers/pcmcia/sa1100 to pc_mem_map
because my tiny little brain (and cscope) find it confusing like that.
Tested on 16-way NUMA-Q with discontigmem + NUMA support and on a
standard PC (well, boots and appears functional). On top of
2.5.33-mm4"
<akpm@digeo.com>
[PATCH] _alloc_pages cleanup
Patch from Martin Bligh. It should only affect machines using
discontigmem.
"This patch is was originally from Andrea's tree (from SGI??), and has
been tweaked since by both Christoph (who cleaned up all the code),
and myself (who just hit it until it worked).
It removes _alloc_pages, and adds all nodes to the zonelists
directly, which also changes the fallback zone order to something more
sensible ... instead of: "foreach (node) { foreach (zone) }" we now
do something more like "foreach (zone_type) { foreach (node) }"
Christoph has a more recent version that's fancier and does a couple
more cleanups, but it seems to have a bug in it that I can't track
down easily, so I propose we do the simple thing for now, and take the
rest of the cleanups when it works ... it seems to build nicely on
top of this seperately to me.
Tested on 16-way NUMA-Q with discontigmem + NUMA support."
<akpm@digeo.com>
[PATCH] remove statm_pgd_range
Bill Irwin's patch to avoid having to walk pagetables while generating
/proc/stat output.
It can significantly overstate the size of various mappings because it
assumes that all VMAs are fully populated.
But spending 100% of one of my four CPUs running top(1) is a bug.
Bill says this fixes a bug, too. The `SIZE' parameter is supposed to
display the amount of memory which the process would consume if it
faulted everything in. But "before it only showed instantiated
3rd-level pagetables, so if something within a 4MB aligned range hadn't
been faulted in it would slip past the old one".
<akpm@digeo.com>
[PATCH] remove /proc/sys/vm/dirty_sync_thresh
This was designed to be a really sterm throttling threshold: if dirty
memory reaches this level then perform writeback and actually wait on
it.
It doesn't work. Because memory dirtiers are required to perform
writeback if the amount of dirty AND writeback memory exceeds
dirty_async_ratio.
So kill it, and rely just on the request queues being appropriately
scaled to the machine size (they are).
This is basically what 2.4 does.
<akpm@digeo.com>
[PATCH] swapout fix
Silly bug which was halving swapout bandwidth: we've taken a copy of
page->mapping into a local convenience variable, but forgot to update
that local after adding the page to swapcache.
<akpm@digeo.com>
[PATCH] writev speedup
A patch from Hirokazu Takahashi to speed up the new sped-up writev
code.
Instead of running ->prepare_write/->commit_write for each individual
segment, we walk the segments between prepage and commit. So
potentially much larger amounts of data are passed to commit_write(),
and prepare_write() is called much less often.
Added bonus: the segment walk happens inside the kmap_atomic(), so we
run kmap_atomic() once per page, not once per segment.
We've demonstrated a speedup of over 3x. This is writing 1024-segment
iovecs where the individual segments have an average length of 24
bytes, which is a favourable case for this patch.
<akpm@digeo.com>
[PATCH] readv/writev bounds checking fixes
- writev currently returns -EFAULT if _any_ of the segments has an
invalid address. We should only return -EFAULT if the first segment
has a bad address.
If some of the first segments have valid addresses we need to write
them and return a partial result.
- The current code only checks if the sum-of-lengths is negative. If
individual segments have a negative length but the result is positive
we miss that.
So rework the code to detect this, and to be immune to odd wrapping
situations.
As a bonus, we save one pass across the iovec.
- ditto for readv.
The check for "does any segment have a negative length" has already
been performed in do_readv_writev(), but it's basically free here, and
we need to do it for generic_file_read/write anyway.
This all means that the iov_length() function is unsafe because of
wrap/overflow isues. It should only be used after the
generic_file_read/write or do_readv_writev() checking has been
performed. Its callers have been reviewed and they are OK.
The code now passes LTP testing and has been QA'd by Janet's team.
<akpm@digeo.com>
[PATCH] fix suppression of page allocation failure warnings
Somebody somewhere is stomping on PF_NOWARN, and page allocation
failure warnings are coming out of the wrong places.
So change the handling of current->flags to be:
int pf_flags = current->flags;
current->flags |= PF_NOWARN;
...
current->flags = pf_flags;
which is a generally more robust approach.
<akpm@digeo.com>
[PATCH] fix mmap(MAP_LOCKED)
From Hubertus Franke.
The MAP_LOCKED flag to mmap() currently does nothing. Hubertus' patch
fixes it so that the relevant mapping is locked into memory, if the
called has CAP_IPC_LOCK.
<akpm@digeo.com>
[PATCH] remove smp_lock.h inclusions from mm/*
From Christoph Hellwig.
There are no lock_kernel() calls in mm/
<akpm@digeo.com>
[PATCH] hugetlbpages cleanup
From Christoph Hellwig, acked by Rohit.
- fix config.in description: we know we're on i386 and we also know
that a feature can only be enabled if the hw supports it, the code
alone is not enough
- the sysctl is VM-releated, so move it from /proc/sys/kernel tp
/proc/sys/vm
- adopt to standard sysctl names
<akpm@digeo.com>
[PATCH] blk_init() cleanups
From Christoph Hellwig, acked by Jens.
- remove some unneeded runtime initializers.
- remove the explicit call to hd_init() - it already goes through
module_init(), so we're currently running hd_init() twice.
<akpm@digeo.com>
[PATCH] misc fixes
- Spell Jeremy's name correctly.
- Fix compile warning in raw.c
- Do a waitqueue_active() test before waking klogd in printk.
Not only is is negligibly faster, but the wake_up() in there causes
deadlocks when you try to print debug info out from inside scheduler
code.
This patch gives a delightfully obscure way of avoiding the
deadlock: kill off klogd.
- Fix a couple of compile warnings in the mtrr code.
<akpm@digeo.com>
[PATCH] reduced locking in release_pages()
From Marcus Alanen <maalanen@ra.abo.fi>
Don't retake the zone lock after spilling a batch of pages into the
buddy.
Instead, just clear local variable `zone' to indicate that no lock is
held.
This is actually a common case - whenever release_pages() is called
with exactly 16 pages (truncate, page reclaim..) Marcus' patch will
save a lock and an unlock.
Also, remove some lock-avoidance heuristics in
pagevec_deactivate_inactive(): the caller has already made these
checks, and the chance of the check here actually doing anything useful
is negligible.
<akpm@digeo.com>
[PATCH] permit hugetlb pages to be allocated from highmem
Patch from Rohit Seth: allow hugetlb pages to be allocated from the
highmem zone.
<anton@samba.org>
ppc64: Add MAP_LOCKED
<anton@samba.org>
ppc64: wrap pidhash reference for the moment
<anton@samba.org>
ppc64: fix sys32_select race with max_fdset
<anton@samba.org>
ppc64: DISCONTIGMEM updates
<anton@samba.org>
ppc64: kill node_startnr, implement node_end_pfn
<mingo@elte.hu>
[PATCH] pidhash-fix-2.5.36-A0
the attached patch (against BK-curr) fixes a bug in the new PID allocator,
which bug can cause incorrect hashing of the PID structure which causes
infinite loops in find_pid(). [and potentially other problems.]
<axboe@suse.de>
[PATCH] IDE maintainer updates
<torvalds@home.transmeta.com>
Linux 2.5.37
(
Log in to post comments)