ChangeSet@1.1348.1.11, 2003-06-19 13:35:01-07:00, davidm@napali.hpl.hp.com [PATCH] init_thread_union really needed by modules? init_thread_union doesn't need to be exported to modules. We haven't exported the symbol on ia64 for ages, and we should be able to make the init_thread_union local to arch/ARCH/kernel/init_task.c and that in turn would let us remove its declaration from include/linux/sched.h altogether (i.e., no more ugly #ifdefs). ChangeSet@1.1348.1.10, 2003-06-19 13:34:45-07:00, davidm@napali.hpl.hp.com [PATCH] Add 2 HP PCI ids Trivial addition needed for the hp Itanium machines. ChangeSet@1.1357, 2003-06-19 14:25:36-07:00, davem@nuts.ninka.net [NET]: Size hh_cache->hh_data more appropriately. ChangeSet@1.1356, 2003-06-19 12:42:20-07:00, bdschuym@pandora.be [NET]: Let arptables see bridged arp traffic. ChangeSet@1.1355, 2003-06-19 12:41:06-07:00, shemminger@osdl.org [NET]: Use unlikely and BUG_ON in SKB assertions. ChangeSet@1.1354, 2003-06-19 12:39:51-07:00, shemminger@osdl.org [NET]: Missing owner field on pppoe /proc ChangeSet@1.1348.1.6, 2003-06-19 10:20:13-07:00, rth@kanga.twiddle.net [ALPHA] Implement execve entirely in assembly. Force KSP to the top of the kernel stack space before entering userland. ChangeSet@1.1348.3.6, 2003-06-19 10:23:36-07:00, greg@kroah.com DRIVER: add drivers/base/Kconfig to all arch main Kconfig files. ChangeSet@1.1353, 2003-06-19 12:38:19-07:00, shemminger@osdl.org [NET]: Add prefetch to skb_queue_walk. ChangeSet@1.1348.1.5, 2003-06-19 10:17:36-07:00, rth@kanga.twiddle.net [ALPHA] Fix memmove/memset GP interaction. ChangeSet@1.1348.3.5, 2003-06-19 10:07:02-07:00, greg@kroah.com DRIVER: make generic driver menu option, and move firmware selection there. ChangeSet@1.1348.3.4, 2003-06-19 09:45:51-07:00, ranty@debian.org [PATCH] DRIVER: request_firmware() vmalloc patch Kay Sievers tried with his ~500kB firmware image and kmalloc was not capable of getting that much memory. He suggested using vmalloc which sound reasonable. ChangeSet@1.1352, 2003-06-19 12:37:10-07:00, devik@cdi.cz [NET]: Fix jiffies races in net/sched/sch_htb.c ChangeSet@1.1348.1.4, 2003-06-19 08:59:31-07:00, Jay.Estabrook@compaq.com [PATCH] any_online_cpu for arch/alpha/kernel/smp.h ChangeSet@1.1348.3.3, 2003-06-19 09:45:11-07:00, ranty@debian.org [PATCH] DRIVER: request_firmware() hotplug interface documentation ChangeSet@1.1351, 2003-06-19 12:29:14-07:00, herbert@gondor.apana.org.au [NET]: Remove duplicate linux/interrupt.h include in net/core/flow.c ChangeSet@1.1348.1.3, 2003-06-19 08:58:08-07:00, ahaas@airmail.net [PATCH] C99 initializers for asm-alpha/include/xor.h This patch converts the file to C99 initializers. The patch is against the current BK. The patch is untested as I don't have access to an Alpha machine. Art Haas ChangeSet@1.1348.1.2, 2003-06-19 08:57:29-07:00, ink@jurassic.park.msu.ru [PATCH] alpha oprofile fix The oprofile_arch_exit() in discarded .exit.text section is being called from oprofile_init() in retained .init.text section. This causes final link failure with oprofile compiled in. Ivan. ChangeSet@1.1348.3.2, 2003-06-19 09:44:14-07:00, greg@kroah.com DRIVER: firmware class build cleanups Made variables static that were global, and cleaned up some sparse warnings. ChangeSet@1.1350, 2003-06-19 12:27:10-07:00, davem@nuts.ninka.net [NET]: Check for flow cache allocation failure. ChangeSet@1.1348.3.1, 2003-06-19 09:34:11-07:00, ranty@debian.org [PATCH] DRIVER: request_firmware() hotplug interface ChangeSet@1.1348.1.1, 2003-06-19 08:54:54-07:00, ink@jurassic.park.msu.ru [PATCH] alpha srmcons fix Add missing tty_set_operations(). Ivan. ChangeSet@1.1349, 2003-06-19 12:16:51-07:00, herbert@gondor.apana.org.au [NET]: Fix per-cpu flow cache initialization. ChangeSet@1.1348, 2003-06-18 22:46:57-07:00, davidm@napali.hpl.hp.com [PATCH] re-enable the building of 8250_hcdp and 8250_acpi This adds a separate SERIAL_8250_ACPI config option and makes the 8250_acpi.c code dependent on ACPI_BUS (since acpi_bus_register_driver() is a prerequisite). ChangeSet@1.1344, 2003-06-18 18:08:28-07:00, chas@cmf.nrl.navy.mil [ATM]: Fix possible unlock of a non-locked lock in HE driver. ChangeSet@1.1343, 2003-06-18 18:06:31-07:00, whydoubt@yahoo.com [NET]: Export netdev_boot_setup_check. ChangeSet@1.1332.6.67, 2003-06-18 22:38:55+00:00, ambx1@neo.rr.com [PNP] Important Resource Parsing Fixes In some cases, we're reading the wrong bits for large tags. This patch corrects the issue by setting the affected bits forward by an offset of 2 (skipping over the size portion of the tag). ChangeSet@1.1342, 2003-06-18 18:01:12-07:00, dlstevens@us.ibm.com [IPV4/IPV6]: Fix IGMP device refcount leaks, with help from yoshfuji@linux-ipv6.org. ChangeSet@1.1332.6.66, 2003-06-18 22:37:29+00:00, ambx1@neo.rr.com [PNP] Remove some leftover resource config options in isapnp Must have missed it earlier, but the pci module parameter is not needed. ChangeSet@1.1341, 2003-06-18 17:58:20-07:00, davem@nuts.ninka.net [NET]: Mark skb_linearize() as deprecated. ChangeSet@1.1332.6.65, 2003-06-18 22:36:19+00:00, ambx1@neo.rr.com [PNP] Trivial Typo fix regarding DMAs The irq index is used instead of the dma index when parsing dmas. ChangeSet@1.1340, 2003-06-18 16:37:06-07:00, shemminger@osdl.org [NET]: Kill unused function in Red Creek VPN driver. ChangeSet@1.1332.9.5, 2003-06-18 23:57:08-05:00, kai@tp1.ruhr-uni-bochum.de ISDN: Protect ipc_head list Make sure that the ipc_head list cannot change under us by protecting it with a spin lock. ChangeSet@1.1332.6.64, 2003-06-18 22:34:14+00:00, ambx1@neo.rr.com [PNP] re-add the previously removed "get" command in interface.c. This patch adds the "get" command because at this point it is needed for debugging. ChangeSet@1.1339, 2003-06-18 16:36:16-07:00, shemminger@osdl.org [NET]: Move Red Creek VPN drier to alloc_etherdev(). ChangeSet@1.1332.9.4, 2003-06-18 23:48:17-05:00, kai@tp1.ruhr-uni-bochum.de ISDN: Use standard list for PPP compressors replace the somewhat weird open-coded doubly-linked list with a list. ChangeSet@1.1332.6.63, 2003-06-18 22:31:55+00:00, ambx1@neo.rr.com [PNP] PnPBIOS resource setting fix If a device is disabled when initially read, its blank resource data will not be cleared and the pnp layer will assume incorrectly that the device has already been configured. This patch resolves the issue by initializing the resource table if the device is found to be disabled. ChangeSet@1.1338, 2003-06-18 16:34:13-07:00, shemminger@osdl.org [NET]: Use alloc_netdev in bonding driver. ChangeSet@1.1332.9.3, 2003-06-18 23:40:27-05:00, kai@tp1.ruhr-uni-bochum.de ISDN: Make PPP compressors unload-safe. Remove MOD_{INC,DEC}_USE_COUNT and introduce .owner instead. ChangeSet@1.1332.6.62, 2003-06-18 22:28:13+00:00, ambx1@neo.rr.com [PNP] Module Compilation Fix Fixes a trivial typo in an export symbol macro. ChangeSet@1.1332.9.2, 2003-06-18 23:31:27-05:00, kai@tp1.ruhr-uni-bochum.de ISDN: Make isdn_tty.c compile again The tty changes introduced some typos. These are now fixed, this doesn't really address probably still existing races, though. ChangeSet@1.1337, 2003-06-18 16:17:24-07:00, davem@nuts.ninka.net [SPARC]: ESP scsi driver already has a release method, do not add a second one :-) ChangeSet@1.1332.6.61, 2003-06-18 22:26:10+00:00, ambx1@neo.rr.com [PNP] /drivers/pnp/resource.c check_region warning fix This patch resolves the compiler warning caused by the depreciated check_region function. It may not be the best solution but check_region really is what is needed here because we never actually have to call "request_region". If prefered, I could alternatively request and release but doing so would be less efficient. ChangeSet@1.1332.6.60, 2003-06-18 22:23:14+00:00, ambx1@neo.rr.com [PNP] Resource Management Cleanups and Updates This patch does the following... 1.) changes struct pnp_resources to pnp_option for clarity 2.) greatly cleans up resource option registration 3.) removes some of the current conflict prevention code in order to increase flexibility, (users will have more control) 4.) various manager cleanups, resulting code is more efficient 5.) fixes the locking bugs many have reported (now uses a mutex) 6.) removes the conflict displaying interface - it is better to handle such things in user space 7.) also many misc. cleanups ChangeSet@1.1332.6.58, 2003-06-18 10:51:29-07:00, greg@kroah.com merge ChangeSet@1.1332.6.57, 2003-06-18 08:33:17-07:00, akpm@digeo.com [PATCH] ext3: disable O_DIRECT in journalled-data mode We cannot sensibly support O_DIRECT reads or writes when all writes are journalled. This is because the VFS explicitly avoids syncing the file metadata during O_DIRECT reads and writes. ext3 with journalled data will leave pending changes in memory and they will overwrite the results of O_DIRECT writes, and O_DIRECT reads will not return the latest data. Setting the a_op to null will cause opens and fcntl(F_SETFL) to return -EINVAL if O_DIRECT is requested. ChangeSet@1.1332.6.56, 2003-06-18 08:33:10-07:00, akpm@digeo.com [PATCH] JBD: hold onto j_state_lock after Minro tweak: once log_wait_for_space() has created sufficient space in the journal to start the new handle, hang onto the spinlock as start_this_handle() loops around to reevaluate the journal's state. It prevents anyone else from zooming in and stealing the space we just made. ChangeSet@1.1332.6.55, 2003-06-18 08:33:04-07:00, akpm@digeo.com [PATCH] JBD: fix locking around log_start_commit() There are various places in which JBD is starting a commit against a transaction without sufficient locking in place to ensure that that transaction is still alive. Change it so that log_start_commit() takes a transaction ID instead. Make the caller take a copy of that ID inside the appropriate locks. ChangeSet@1.1332.6.54, 2003-06-18 08:32:57-07:00, akpm@digeo.com [PATCH] JBD: log_do_checkpoint() locking fixes log_do_checkpoint is playing around with a transaction pointer without enough locking to ensure that it is valid. Fix that up by revalidating the transaction after acquiring the right locks. ChangeSet@1.1332.6.53, 2003-06-18 08:32:47-07:00, akpm@digeo.com [PATCH] ext3: explicitly free truncated pages With data=ordered it is often the case that a quick write-and-truncate will leave large numbers of pages on the page LRU with no ->mapping, and attached buffers. Because ext3 was not ready to let the pages go at the time of truncation. These pages are trivially reclaimable, but their seeming absence makes the VM overcommit accounting confused (they don't count as "free", nor as pagecache). And they make the /proc/meminfo stats look odd. So what we do here is to try to strip the buffers from these pages as the buffers exit the journal commit. ChangeSet@1.1332.6.52, 2003-06-18 08:32:40-07:00, akpm@digeo.com [PATCH] JBD: remove j_commit_timer_active This was a flag which said "the transaction's time is active". timer_pending() could have told us that, but in fact there is no need to query it at all. ChangeSet@1.1332.6.51, 2003-06-18 08:32:33-07:00, akpm@digeo.com [PATCH] ext3: fix data=journal for small blocksize Fix various problems which cropped up due to MAP_SHARED traffic on data=journal with blocksize < PAGE_CACHE_SIZE. All relate to handling the "pending truncate" buffers outside i_size. ChangeSet@1.1332.6.50, 2003-06-18 08:32:27-07:00, akpm@digeo.com [PATCH] JBD: fix race between journal_commit_transaction and start_this_handle() can decide to add this handle to a transaction, but kjournald then moves the handle into commit phase. Extend the coverage of j_state_lock so that start_this_transaction()'s examination of journal->j_state is atomic wrt journal_commit_transaction(). ChangeSet@1.1332.6.49, 2003-06-18 08:32:20-07:00, akpm@digeo.com [PATCH] JBD: journal_dirty_metadata diagnostics Try to trap some more state when an assertion which cannot happen happens. ChangeSet@1.1332.6.48, 2003-06-18 08:32:11-07:00, akpm@digeo.com [PATCH] JBD: journal_dirty_metadata() speedup Before taking the highly-taken j_list_lock, take a peek to seem if this buffer is already journalled and in the appropriate state. ChangeSet@1.1332.6.47, 2003-06-18 08:32:05-07:00, akpm@digeo.com [PATCH] ext3: remove mount-time diagnostic messages ext3 no longer keeps the filesystem-wide free blocks counter and free inodes counter up to date all the time in the superblock. Because that requires fs-wide locking. These counters are only needed at runtime for the Orlov allocator heuristics, and we are now using a fuzzy per-cpu coutner for that. These counters are rather unnecessary: the same info is present in the file allocation maps and inode tables, the group descriptor blocks and the bitmaps. e2fsck will be changed to downgrade the seriousness of this inconsistency. The filesystem _will_ write these numbers out in the superblock on a clean unmount, based on the sum of the free block and inode counts in the group descriptors. ChangeSet@1.1332.6.46, 2003-06-18 08:31:58-07:00, akpm@digeo.com [PATCH] ext3: Fix leak in ext3_acl_chmod() From: Andreas Gruenbacher This function can leak a posix_acl on an error path. ChangeSet@1.1332.6.45, 2003-06-18 08:31:51-07:00, akpm@digeo.com [PATCH] ext3: fix error-path handle leak The ioctl handler can leave a transaction open on an error path. That will wedge up the filesystem. ChangeSet@1.1332.6.44, 2003-06-18 08:31:46-07:00, akpm@digeo.com [PATCH] ext3: add a dump_stack() add a dump_stack() to a can't-happen path which happened during development. ChangeSet@1.1332.6.43, 2003-06-18 08:31:36-07:00, akpm@digeo.com [PATCH] JBD: journal_try_to_free_buffers race fix There is a race between transaction commit's attempt to free journal_heads and journal_try_to_free_buffers' attempt. Fix that by taking a ref against the journal_head in journal_try_to_free_buffers(). ChangeSet@1.1332.6.42, 2003-06-18 08:31:29-07:00, akpm@digeo.com [PATCH] ext3: fix data=journal mode ext3's fully data-journalled mode has been broken for a year. This patch fixes it up. The prepare_write/commit_write/writepage implementations have been split up. Instead of having each function handle all three journalling mode we now have three separate sets of address_space_operations. The problematic part of data=journal is MAP_SHARED writepage traffic: pages which don't have buffers. In 2.4 these were cheatingly treated as data-ordered buffers and that caused several nasty problems. Here we do it properly: writepage traffic is fully journalled. This means that the various workarounds for the 2.4 scheme can be removed, when I remember where they all are. The PG_checked flag has been borrowed: it it set in the atomic set_page_dirty a_op to tell the subsequent writepage() that this page needs to have buffers attached, dirtied and journalled. This rather defines PG_checked as "fs-private info in page->flags" and it should be renamed sometime. ChangeSet@1.1332.6.41, 2003-06-18 08:31:22-07:00, akpm@digeo.com [PATCH] JBD: do_get_write_access() speedup Avoid holding the journal's j_list_lock while copying the buffer_head's data. We hold jbd_lock_bh_state() during the copy, which is all that is needed. ChangeSet@1.1332.6.40, 2003-06-18 08:31:15-07:00, akpm@digeo.com [PATCH] JBD: fix log_start_commit race In start_this_handle() the caller does not have a handle ref pinning the transaction open, and so the call to log_start_commit() is racy because some other CPU could take the transaction into commit state independently. Fix that by holding j_state_lock (which pins j_running_transaction) across the log_start_commit() call. ChangeSet@1.1332.6.39, 2003-06-18 08:31:08-07:00, akpm@digeo.com [PATCH] JBD: additional transaction shutdown locking Plug a conceivable race with the freeing up of trasnactions, and add some more debug checks. ChangeSet@1.1332.6.38, 2003-06-18 08:30:59-07:00, akpm@digeo.com [PATCH] JBD: add some locking assertions Drop in a few assertions to ensure that the locking rules are being adhered to. ChangeSet@1.1332.6.37, 2003-06-18 08:30:52-07:00, akpm@digeo.com [PATCH] JBD: buffer freeing non-race comment Add a comment describing why a race isn't there. ChangeSet@1.1332.6.36, 2003-06-18 08:30:45-07:00, akpm@digeo.com [PATCH] ext3: ext3_writepage race fix After ext3_writepage() has called block_write_full_page() it will walk the page's buffer ring dropping the buffer_head refcounts. It does this wrong - on the final loop it will dereference the buffer_head which it just dropped the refcount on. Poisoned oopses have been seen against bh->b_this_page. Change it to take a local copy of b_this_page prior to dropping the bh's refcount. ChangeSet@1.1332.6.35, 2003-06-18 08:30:38-07:00, akpm@digeo.com [PATCH] JBD: journal_unmap_buffer race fix We need to check that buffer is still journalled _after_ taking the right locks. ChangeSet@1.1332.6.34, 2003-06-18 08:30:31-07:00, akpm@digeo.com [PATCH] JBD: journal_release_buffer: handle credits fix There's a bug: a caller tries to journal a buffer and then decides he didn't want to after all. He calls journal_release_buffer(). But journal_release_buffer() is only allowed to give the caller a buffer credit back if it was the caller who added the buffer in the first place. journal_release_buffer() currently looks at the buffer state to work that out, but gets it wrong: if the buffer has been moved onto a different list by some other part of ext3 the credit is bogusly not returned to the caller and the fs can later go BUG due to handle credit exhaustion. The fix: Change journal_get_undo_access() to return the number of buffers which the caller actually added to the journal. (one or zero). When the caller later calls journal_release_buffer(), he passes in that count, to tell journal_release_buffer() how many credits the caller should get back. For API consistency this change should also be made to journal_get_create_access() and journal_get_write_access(). But there is no requirement for that in ext3 at this time. The remaining bug: This logic effectively gives another transaction handle a free buffer credit. These could conceivably accumulate and cause a journal overflow. This is a separate problem and needs changes to the t_outstanding_credits accounting and the logic in start_this_handle. ChangeSet@1.1332.6.33, 2003-06-18 08:30:22-07:00, akpm@digeo.com [PATCH] JBD: remove lock_journal() This filesystem-wide sleeping lock is no longer needed. Remove it. ChangeSet@1.1332.6.32, 2003-06-18 08:30:15-07:00, akpm@digeo.com [PATCH] JBD: remove lock_kernel() lock_kernel() is no longer needed in JBD. Remove all the lock_kernel() calls from fs/jbd/. Here is where I get to say "ex-parrot". ChangeSet@1.1332.6.31, 2003-06-18 08:30:08-07:00, akpm@digeo.com [PATCH] JBD: remove remaining sleep_on()s Remove the remaining sleep_on() calls from JBD. ChangeSet@1.1332.6.30, 2003-06-18 08:30:01-07:00, akpm@digeo.com [PATCH] JBD: implement dual revoke tables. From: Alex Tomas We're about to remove lock_journal(), and it is lock_journal which separates the running and committing transaction's revokes on the single revoke table. So implement two revoke tables and rotate them at commit time. ChangeSet@1.1332.6.29, 2003-06-18 08:29:50-07:00, akpm@digeo.com [PATCH] JBD: implement j_commit_request locking Impement the designed locking around journal->j_commit_request. ChangeSet@1.1332.6.28, 2003-06-18 08:29:43-07:00, akpm@digeo.com [PATCH] JBD: implement journal->j_commit_sequence locking Implement the designed locking around journal->j_commit_sequence. ChangeSet@1.1332.6.27, 2003-06-18 08:29:36-07:00, akpm@digeo.com [PATCH] JBD: implement journal->j_free locking Implement the designed locking around journal->j_free. Things get a lot better here, too. ChangeSet@1.1332.6.26, 2003-06-18 08:29:30-07:00, akpm@digeo.com [PATCH] JBD: implement journal->j_tail locking Implement the designed locking around journal->j_tail. ChangeSet@1.1332.6.25, 2003-06-18 08:29:23-07:00, akpm@digeo.com [PATCH] JBD: implement journal->j_head locking Implement the designed locking around journal->j_head. ChangeSet@1.1332.6.24, 2003-06-18 08:29:14-07:00, akpm@digeo.com [PATCH] JBD: implement j_checkpoint_transactions locking Implement the designed locking around j_checkpoint_transactions. It was all pretty much there actually. ChangeSet@1.1332.6.23, 2003-06-18 08:29:07-07:00, akpm@digeo.com [PATCH] JBD: implement j_committing_transaction locking Go through all sites which use j_committing_transaction and ensure that the deisgned locking is correctly implemented there. ChangeSet@1.1332.6.22, 2003-06-18 08:29:01-07:00, akpm@digeo.com [PATCH] JBD: implement j_running_transaction locking Implement the designed locking around journal->j_running_transaction. A lot more of the new locking scheme falls into place. ChangeSet@1.1332.6.21, 2003-06-18 08:28:54-07:00, akpm@digeo.com [PATCH] JBD: implement j_barrier_count locking We now start to move onto the fields of the topmost JBD data structure: the journal. The patch implements the designed locking around the j_barrier_count member. And as a part of that, a lot of the new locking scheme is implemented. Several lock_kernel()s and sleep_on()s go away. ChangeSet@1.1332.6.20, 2003-06-18 08:28:48-07:00, akpm@digeo.com [PATCH] JBD: implement t_jcb locking Provide the designed locking around the transaction's t_jcb callback list. It turns out that this is wholly redundant at present. ChangeSet@1.1332.6.19, 2003-06-18 08:28:37-07:00, akpm@digeo.com [PATCH] JBD: implement t_outstanding_credits locking Implement the designed locking for t_outstanding_credits ChangeSet@1.1332.6.18, 2003-06-18 08:28:30-07:00, akpm@digeo.com [PATCH] JBD: t_updates locking Provide the designating locking for transaction_t.t_updates. ChangeSet@1.1332.6.17, 2003-06-18 08:28:23-07:00, akpm@digeo.com [PATCH] JBD: t_nr_buffers locking Now we move more into the locking of the transaction_t fields. t_nr_buffers locking is just an audit-and-commentary job. ChangeSet@1.1332.6.16, 2003-06-18 08:28:16-07:00, akpm@digeo.com [PATCH] JBD: remove journal_datalist_lock This was a system-wide spinlock. Simple transformation: make it a filesystem-wide spinlock, in the JBD journal. That's a bit lame, and later it might be nice to make it per-transaction_t. But there are interesting ranking and ordering problems with that, especially around __journal_refile_buffer(). ChangeSet@1.1332.6.15, 2003-06-18 08:28:06-07:00, akpm@digeo.com [PATCH] JBD: b_tnext locking Implement the designated b_tnext locking. This also covers b_tprev locking. ChangeSet@1.1332.6.14, 2003-06-18 08:27:59-07:00, akpm@digeo.com [PATCH] JBD: Implement b_next_transaction locking rules Go through all b_next_transaction instances, implement locking rules. (Nothing to do here - b_transaction locking covered it) ChangeSet@1.1332.6.13, 2003-06-18 08:27:52-07:00, akpm@digeo.com [PATCH] JBD: implement b_transaction locking rules Go through all use of b_transaction and implement the rules. Fairly straightforward. ChangeSet@1.1332.6.12, 2003-06-18 08:27:45-07:00, akpm@digeo.com [PATCH] JBD: implement b_committed_data locking Implement the designed locking schema around the journal_head.b_committed_data field. ChangeSet@1.1332.6.11, 2003-06-18 08:27:38-07:00, akpm@digeo.com [PATCH] JBD: Finish protection of journal_head.b_frozen_data We now start to move across the JBD data structure's fields, from "innermost" and outwards. Start with journal_head.b_frozen_data, because the locking for this field was partially implemented in jbd-010-b_committed_data-race-fix.patch. It is protected by jbd_lock_bh_state(). We keep the lock_journal() and spin_lock(&journal_datalist_lock) calls in place. Later, spin_lock(&journal_datalist_lock) is replaced by spin_lock(&journal->j_list_lock). Of course, this completion of the locking around b_frozen_data also puts a lot of the locking for other fields in place. ChangeSet@1.1332.6.10, 2003-06-18 08:27:27-07:00, akpm@digeo.com [PATCH] JBD: rename journal_unlock_journal_head to journal_unlock_journal_head() is misnamed: what it does is to drop a ref on the journal_head and free it if that ref fell to zero. It doesn't actually unlock anything. Rename it to journal_put_journal_head(). ChangeSet@1.1332.2.31, 2003-06-19 00:34:34+01:00, rmk@flint.arm.linux.org.uk [ARM] Fix SECURITY_INIT in linker script. SECURITY_INIT doesn't work when it is placed inside an output section. Use our own version instead. ChangeSet@1.1332.6.9, 2003-06-18 08:27:20-07:00, akpm@digeo.com [PATCH] JBD: fine-grain journal_add_journal_head locking buffer_heads and journal_heads are joined at the hip. We need a lock to protect the joint and its refcounts. JBD is currently using a global spinlock for that. Change it to use one bit in bh->b_state. ChangeSet@1.1332.2.30, 2003-06-19 00:28:53+01:00, rmk@flint.arm.linux.org.uk [ARM] Allow ECC and cache write allocations on ARMv5 and higher CPUs. All current CPUs of ARMv5 or later can have ECC memory and can support write allocations. ChangeSet@1.1332.6.8, 2003-06-18 08:27:13-07:00, akpm@digeo.com [PATCH] JBD: remove jh_splice_lock This was a strange spinlock which was designed to prevent another CPU from ripping a buffer's journal_head away while this CPU was inspecting its state. Really, we don't need it - we can inspect that state directly from bh->b_state. So kill it off, along with a few things which used it which are themselves not actually used any more. ChangeSet@1.1332.2.29, 2003-06-19 00:24:09+01:00, rmk@flint.arm.linux.org.uk [ARM] Fix flush_cache_page address parameter. Noticed by Jun Sun. ChangeSet@1.1332.6.7, 2003-06-18 08:27:06-07:00, akpm@digeo.com [PATCH] JBD: plan JBD locking schema This is the start of the JBD locking rework. The aims of all this are to remove all lock_kernel() calls from JBD, to remove all lock_journal() calls (the context switch rate is astonishing when the lock_kernel()s are removed) and to remove all sleep_on() instances. The strategy which is taken is: a) Define the lcoking schema (this patch) b) Work through every JBD data structure and implement its locking fully, according to the above schema. We work from "innermost" data structures and outwards. It isn't guaranteed that the filesystem will work very well at all stages of this patch series. In this patch: Add commentary and various locks to jbd.h describing the locking scheme which is about to be implemented. Initialise the new locks. Coding-style goodness in jbd.h ChangeSet@1.1332.2.28, 2003-06-19 00:18:58+01:00, rmk@flint.arm.linux.org.uk [ARM] Fix sa1100 irq.c build errors. Fix a couple of minor build errors caused by the recent system device changes. ChangeSet@1.1332.6.6, 2003-06-18 08:26:56-07:00, akpm@digeo.com [PATCH] JBD: fix race over access to b_committed_data From: Alex Tomas We have a race wherein the block allocator can decide that journal_head.b_committed_data is present and then will use it. But kjournald can concurrently free it and set the pointer to NULL. It goes oops. We introduce per-buffer_head "spinlocking" based on a bit in b_state. To do this we abstract out pte_chain_lock() and reuse the implementation. The bit-based spinlocking is pretty inefficient CPU-wise (hence the warning in there) and we may move this to a hashed spinlock later. ChangeSet@1.1332.2.27, 2003-06-19 00:14:04+01:00, rmk@flint.arm.linux.org.uk [ARM] Tighten virt_addr_valid(), add comments for __pa and friends. Ensure virt_addr_valid(x) works correctly for pointers. Add comments indicating that drivers should not use virt_to_phys and/or __pa to obtain an address for DMA. ChangeSet@1.1332.6.5, 2003-06-18 08:26:49-07:00, akpm@digeo.com [PATCH] ext3: scalable counters and locks From: Alex Tomas This is a port from ext2 of the fuzzy counters (for Orlov allocator heuristics) and the hashed spinlocking (for the inode and bloock allocators). ChangeSet@1.1332.2.26, 2003-06-18 23:45:53+01:00, rmk@flint.arm.linux.org.uk [ARM] Convert ambakmi.c to AMBA device driver. This cset makes use of our AMBA device model, thereby allowing the "KMI" PrimeCell driver to become ARM platform independent. ChangeSet@1.1332.6.4, 2003-06-18 08:26:42-07:00, akpm@digeo.com [PATCH] ext3: concurrent block/inode allocation From: Alex Tomas This patch weans ext3 off lock_super()-based protection for the inode and block allocators. It's basically the same as the ext2 changes. 1) each group has own spinlock, which is used for group counter modifications 2) sb->s_free_blocks_count isn't used any more. ext2_statfs() and find_group_orlov() loop over groups to count free blocks 3) sb->s_free_blocks_count is recalculated at mount/umount/sync_super time in order to check consistency and to avoid fsck warnings 4) reserved blocks are distributed over last groups 5) ext3_new_block() tries to use non-reserved blocks and if it fails then tries to use reserved blocks 6) ext3_new_block() and ext3_free_blocks do not modify sb->s_free_blocks, therefore they do not call mark_buffer_dirty() for superblock's buffer_head. this should reduce I/O a bit Also fix orlov allocator boundary case: In the interests of SMP scalability the ext2 free blocks and free inodes counters are "approximate". But there is a piece of code in the Orlov allocator which fails due to boundary conditions on really small filesystems. Fix that up via a final allocation pass which simply uses first-fit for allocatiopn of a directory inode. ChangeSet@1.1332.2.25, 2003-06-18 23:24:31+01:00, rmk@flint.arm.linux.org.uk [ARM] Add AMBA bus type for ARM PrimeCells on Integrator. ChangeSet@1.1332.6.3, 2003-06-18 08:26:35-07:00, akpm@digeo.com [PATCH] JBD: journal_get_write_access() speedup Move some lock_kernel() calls from the caller to the callee, reducing holdtimes. ChangeSet@1.1332.2.24, 2003-06-18 23:01:26+01:00, rmk@flint.arm.linux.org.uk [ARM] Separate ICS525 VCO calculation code. The ICS525 clock chip is used in several different parts of the Integrator platform. Rather than duplicate the code, separate it out so everyone can use it. ChangeSet@1.1332.6.2, 2003-06-18 08:26:29-07:00, akpm@digeo.com [PATCH] ext3: move lock_kernel() down into the JBD layer. This is the start of the ext3 scalability rework. It basically comes in two halves: - ext3 BKL/lock_super removal and scalable inode/block allocators - JBD locking rework. The ext3 scalability work was completed a couple of months ago. The JBD rework has been stable for a couple of weeks now. My gut feeling is that there should be one, maybe two bugs left in it, but no problems have been discovered... Performance-wise, throughput is increased by up to 2x on dual CPU. 10x on 16-way has been measured. Given that current ext3 is able to chew two whole CPUs spinning on locks on a 4-way, that wasn't especially suprising. These patches were prepared by Alex Tomas and myself. First patch: ext3 lock_kernel() removal. The only reason why ext3 takes lock_kernel() is because it is requires by the JBD API. The patch removes the lock_kernels() from ext3 and pushes them down into JBD itself. ChangeSet@1.1332.6.1, 2003-06-18 07:45:57-07:00, torvalds@home.transmeta.com Merge http://lia64.bkbits.net/to-linus-2.5 into home.transmeta.com:/home/torvalds/v2.5/linux ChangeSet@1.1332.2.22, 2003-06-17 21:57:40-07:00, miles@lsi.nec.co.jp [PATCH] Add __raw_ read/write ops to v850 io.h ChangeSet@1.1332.2.21, 2003-06-17 21:57:33-07:00, miles@lsi.nec.co.jp [PATCH] Add linker script support for v850 "rte_nb85e_cb" platform ChangeSet@1.1332.2.20, 2003-06-17 21:57:27-07:00, miles@lsi.nec.co.jp [PATCH] Add .con_initcall.init section on v850 ChangeSet@1.1332.2.19, 2003-06-17 21:57:19-07:00, miles@lsi.nec.co.jp [PATCH] v850 whitespace tweaks ChangeSet@1.1332.2.18, 2003-06-17 21:56:12-07:00, anton@samba.org [PATCH] Fix compat_sys_getrusage. Again I must not ignore compiler warnings. I must not ignore compiler warnings. I must not ignore compiler warnings. ChangeSet@1.1332.2.17, 2003-06-17 21:53:26-07:00, levon@movementarian.org [PATCH] OProfile: thread switching performance fix Avoid the linear list walk of get_exec_dcookie() when we've switched to a task using the same mm. ChangeSet@1.1332.2.16, 2003-06-17 21:53:19-07:00, levon@movementarian.org [PATCH] OProfile: IO-APIC based NMI delivery Use the IO-APIC NMI delivery when the local APIC performance counter delivery is not available. By Zwane Mwaikambo. ChangeSet@1.1332.2.15, 2003-06-17 21:53:12-07:00, levon@movementarian.org [PATCH] OProfile: small NMI shutdown fix Reduce the possibility of dazed-and-confuseds. ChangeSet@1.1332.2.14, 2003-06-17 21:51:50-07:00, paulkf@microgate.com [PATCH] syncppp fixes - Fix 'badness in local_bh_enable' warning This involved moving dev_queue_xmit() calls outside of sections with spinlock held. - Fix 'fix old protocol handler' warning This includes accounting for shared skbs, setting protocol .data field to non-null, and adding per device synchronization to receive handler. This has been tested in PPP and Cisco modes with and with out the keepalives enabled on a SMP machine. ChangeSet@1.1332.2.13, 2003-06-17 20:45:15-07:00, willy@debian.org [PATCH] Consolidate Kconfigs for binfmts This patch creates fs/Kconfig.binfmt and converts all architectures to use it. I took the opportunity to spruce up the a.out help text for the new millennium. ChangeSet@1.1332.2.12, 2003-06-17 20:39:35-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Set nfsd user every time a filehandle is verified. request might traverse several export points which may have different uid squashing. ChangeSet@1.1332.2.11, 2003-06-17 20:39:29-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Do NFSv4 server state initialisation when nfsd starts instead of when module loaded. From: "William A.(Andy) Adamson" ChangeSet@1.1332.2.10, 2003-06-17 20:39:20-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: RENEW and lease management for NFSv4 server From: "William A.(Andy) Adamson" Put all clients in a LRU list and use a "work_queue" to expire old clients periodically. ChangeSet@1.1332.2.9, 2003-06-17 20:39:13-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Make sure unused bits of NFSv4 xfr buffered are zero.. ChangeSet@1.1332.2.8, 2003-06-17 20:39:07-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Allow nfsv4 readdir to return filehandle when a mountpoint is found is a directory From: "William A.(Andy) Adamson" When readdir is enumerating a directory and finds a mountpoint, it needs to do a bit of extra work to find the filehandle to be returned in the readdir reply. It is even possible that finding the filehandle requires an up-call, so the request might be dropped to be re-tried later. ChangeSet@1.1332.2.7, 2003-06-17 20:39:00-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Make sure an early close on a nfs/tcp connection is handled properly. From: Hirokazu Takahashi In svc_tcp_listen_data_ready we should be waiting for TCP_LISTEN, not TCP_ESTABLISHED. The later only worked by accident. Also, if a socket is closed as soon as we accept it, we must shut it down straight away as we will never get a 'close' event. ChangeSet@1.1332.2.6, 2003-06-17 20:38:50-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Assorted fixed for NFS export cache The most significant fix is cleaning up properly when nfs service is stopped. Also fix some refcounting problems and other little bits. ChangeSet@1.1332.2.5, 2003-06-17 20:38:44-07:00, neilb@cse.unsw.edu.au [PATCH] kNFSd: Fix bug in svc_pushback_unused_pages that occurs on zero byte NFS read svc_pushback_unused_pages must be ready of the possibility that no pages were allocated or will need to be pushed back. ChangeSet@1.1332.2.4, 2003-06-17 20:34:49-07:00, torvalds@home.transmeta.com Fix moxa compile (at least for UP) and remove a few warnings. From Adrian Bunk. ChangeSet@1.1332.3.3, 2003-06-18 10:31:58-07:00, david-b@pacbell.net [PATCH] USB: usbnet talks to boot loader (blob) Boot ROMs have talked TFTP forever. Some do it over USB now. ChangeSet@1.1332.1.4, 2003-06-18 23:15:25-03:00, acme@conectiva.com.br o llc: don't use inverted logic I don't understand what was on the mind of Procom programmers, why do all this inverted logic? Its plain confusing, revert it. Thanks to DaveM for asking if the logic was inverted, I should have killed this weird stuff a long time ago :-\ ChangeSet@1.1335, 2003-06-17 14:38:42-07:00, yoshfuji@linux-ipv6.org [IPV6]: Use in6_dev_hold/__in6_dev_put in net/ipv6/mcast.c ChangeSet@1.1332.3.2, 2003-06-18 10:27:49-07:00, oliver@neukum.org [PATCH] USB: convert kaweth to usb_buffer_alloc - switch to usb_buffer_alloc ChangeSet@1.1332.1.3, 2003-06-18 22:59:48-03:00, jgrimm2@us.ibm.com o hlist change on sctp not quite right. ChangeSet@1.1332.4.2, 2003-06-17 20:08:21-07:00, Ballabio_Dario@emc.com [PATCH] eata and u14-34f update Here enclosed an update for the new IRQ and module_param APIs. eata.h and u14-34f.h are no longer used and will be deleted. ChangeSet@1.1334, 2003-06-17 14:28:40-07:00, bunk@fs.tum.de [NET]: Fix namespace pollution in two wireless drivers. ChangeSet@1.1332.1.2, 2003-06-18 18:01:44-03:00, acme@conectiva.com.br o net: make sk_{add,del}_node functions take care of sock refcounting With this we make it easier to write correct network families as less details need to be taken into account, as well in the current state we make the non-refcounting protocols (the ones still keeping deliver_to_old_ones in the tree) suck less. 8) Left a WARN_ON in sk_del_node_init for a while, so that we can catch cases where we're using __sock_put on a struct sock that has refcnt == 1, which is not the case for all the ones I tested. ChangeSet@1.1333, 2003-06-17 13:50:19-07:00, toml@us.ibm.com [IPV6]: Fix xfrm bundle address setup and comparisons. ChangeSet@1.1332, 2003-06-17 11:18:09-07:00, yoshfuji@linux-ipv6.org [IPV6]: Fix warnings in ip6ip6 tunnel driver. ChangeSet@1.1331, 2003-06-17 11:00:23-07:00, davem@nuts.ninka.net [ATM]: Revert vcc global list changes, broke the build. ChangeSet@1.1328.1.4, 2003-06-17 10:34:37-07:00, chas@cmf.nrl.navy.mil [ATM]: Keep vcc's on global list instead of per device. ChangeSet@1.1327.1.4, 2003-06-17 15:46:57-07:00, davem@nuts.ninka.net [SPARC]: Fix wall_to_monotonic initialization. ChangeSet@1.1328.1.3, 2003-06-17 10:32:56-07:00, chas@cmd.nrl.navy.mil [ATM]: Remove recvmsg and rename atm_async_release_vcc. ChangeSet@1.1327.3.6, 2003-06-17 17:54:49-05:00, bunk@fs.tum.de [PATCH] aha1740.c doesn't compile. ChangeSet@1.1327.6.4, 2003-06-17 16:04:31-07:00, mochel@osdl.org [driver model] Make sure type is set correctly for system devices. ChangeSet@1.1327.3.5, 2003-06-17 15:28:10-05:00, jejb@raven.il.steeleye.com SCSI: tidy up io vs mem mapping in 53c700 driver The parisc ports may use both the lasi700 and sim710 versions of this driver Unfortunately, one must be memory mapped, and one must be IO mapped, so add code to the driver for this case ChangeSet@1.1327.1.3, 2003-06-17 14:56:11-07:00, davem@nuts.ninka.net [SPARC64]: Fix wal_to_monotonic initialization. ChangeSet@1.1328.1.2, 2003-06-17 10:12:23-07:00, chas@cmf.nrl.navy.mil [ATM]: Split atm_ioctl into vcc_ioctl and atm_dev_ioctl. ChangeSet@1.1327.6.3, 2003-06-17 16:02:11-07:00, mochel@osdl.org [driver model] Export sysdev_{create,remove}_file(). From Andreas Happe. ChangeSet@1.1327.4.4, 2003-06-18 00:37:36-07:00, davidm@tiger.hpl.hp.com ia64: Initial sync with 2.5.72. ChangeSet@1.1327.6.2, 2003-06-17 15:59:08-07:00, mochel@osdl.org [kobject] Remove Stupid Documentation License ChangeSet@1.1318.6.13, 2003-06-17 15:12:58-07:00, greg@kroah.com [PATCH] USB: fix up sparse warnings in drivers/usb/misc/* ChangeSet@1.1327.2.4, 2003-06-17 09:49:47-07:00, dlstevens@us.ibm.com [IPV4/IPV6]: Make sure SKB has enough space while building IGMP/MLD packets. ChangeSet@1.1327.5.3, 2003-06-17 22:25:47-05:00, kai@tp1.ruhr-uni-bochum.de Merge tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5 into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.isdn ChangeSet@1.1318.6.12, 2003-06-17 14:52:45-07:00, greg@kroah.com [PATCH] USB: fix up sparse warnings in drivers/usb/class/* ChangeSet@1.1327.3.4, 2003-06-17 10:51:30-05:00, jejb@raven.il.steeleye.com Fix SCSI ID setting for HP Cirrus-II card ChangeSet@1.1318.6.11, 2003-06-17 14:38:38-07:00, hanno@gmx.de [PATCH] USB: Patch for Vivicam 355 ChangeSet@1.1327.5.2, 2003-06-17 07:52:35-07:00, fcusack@fcusack.com [PATCH] nfs_unlink() fix and trivial nfs_fhget cleanup Don't remove sillyrenamed files: those will be removed (by nfs_async_unlink) when they are no longer used any more. Remove double initialization of "i_mode" in __nfs_fhget(). ChangeSet@1.1327.4.3, 2003-06-17 23:50:25-07:00, davidm@tiger.hpl.hp.com ia64: Sync with 2.5.71. ChangeSet@1.1327.5.1, 2003-06-17 07:52:27-07:00, thornber@sistina.com [PATCH] dm: dm-ioctl.c: Unregister with devfs before renaming the device DM originally stored a devfs handle in the hash-cell, and performed the unregister based on that handle. These devfs handles have since been removed, and devices are registered and unregistered simply based on their names. So the device now needs to be unregistered before we lose the name. See the following BK change for more details: http://linux.bkbits.net:8080/linux-2.5/diffs/drivers/md/dm-ioctl.c@1.6?nav=index.html|src/|src/drivers|src/drivers/md|hist/drivers/md/dm-ioctl.c [Kevin Corry] ChangeSet@1.1327.3.3, 2003-06-17 10:42:14-05:00, heiko.carstens@de.ibm.com [PATCH] sd.c: set data direction to SCSI_DATA_NONE for START_STOP while trying to access a disk drive via an FCP bridge we got an FCP_RSP IU with the RSP_CODE field set to "FCP_CMND Fields Invalid". This happened after sending a START_STOP command to the device. Reason for this was that the FCP_CMND IU incorrectly had the RDDATA field set to one, because of a bug in sd_spinup_disk(). There the data direction for START_STOP is set to SCSI_DATA_READ instead of SCSI_DATA_NONE. Please apply the patch below. Thanks, Heiko ChangeSet@1.1327.4.2, 2003-06-17 23:44:28-07:00, davidm@tiger.hpl.hp.com Merge tiger.hpl.hp.com:/data1/bk/vanilla/linux-2.5 into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5 ChangeSet@1.1318.6.10, 2003-06-17 10:56:56-07:00, david-b@pacbell.net [PATCH] USB: net2280, halt ep != 0 Fix from Al.Borchers@guidant.com, should fix a chapter 9 test conformance issue. ChangeSet@1.1327.2.2, 2003-06-16 16:14:16-07:00, shemminger@osdl.org [NET]: Fix module owner for bonding driver. ChangeSet@1.1327.3.2, 2003-06-17 10:35:47-05:00, mikenc@us.ibm.com [PATCH] fixes compile error in inia100.c The attached patch fixes the compile errors in inia100.c described in Bugzilla bug #345 at http://bugme.osdl.org/show_bug.cgi?id=345. It was built against 2.5.71. I do not have the hardware, so I have only verified that it compiles correctly. ChangeSet@1.1318.6.9, 2003-06-17 10:56:44-07:00, david-b@pacbell.net [PATCH] USB: ehci-hcd micro-patch This is a handful of one-liners, significantly: - don't disable "park" feature (faster). - cut'n'paste should have morphed "||" to "&&" - initialize qh as "live" (as now expected) The "&&" was the most troublesome bug. It could make all kinds of things misbehave, not just those vt6202 issues some folks report. The interesting bit about the "park" feature (NForce2 has it, maybe a few others) is that it made one disk run 18% faster (according to hdparm). ChangeSet@1.1329, 2003-06-17 14:12:06-03:00, acme@conectiva.com.br o ipx: fix var shadowing paramente with CONFIG_IPX_INTERN is enabled Which is 0.1% of the times, I'll have to research usage and eventually kill this uglymoron that is responsible for 9 out of 10 "ipx is not working with mars_nwe, why?" answer "Disable the damn CONFIG_IPX_INTERN and be happy!" Thanks to Geert for reporting thisn in lkml. ChangeSet@1.1327.4.1, 2003-06-16 21:04:38-07:00, torvalds@home.transmeta.com Linux 2.5.72 TAG: v2.5.72