ChangeSet@1.1131, 2003-04-20 16:00:26-07:00, torvalds@home.transmeta.com Fix IO-APIC vector allocation boundary case - we never want to allocate FIRST_SYSTEM_VECTOR as an external interrupt. It's unlikely, but could happen if we have a _ton_ of interrupt sources. Found by Chuck Ebbert. ChangeSet@1.1130, 2003-04-20 15:20:38-07:00, rddunlap@osdl.org [PATCH] replace URLs in Kconfig This is a patch from Robert P.J. Day that replaces www.linuxdoc.org (which is outdated and unspported according to www.tldp.org) with www.tldp.org in lots of Kconfig files. ChangeSet@1.1124.1.5, 2003-04-20 14:52:14-07:00, torvalds@home.transmeta.com Merge ChangeSet@1.1124.3.38, 2003-04-20 14:50:20-07:00, hch@lst.de [PATCH] remove a tiny bit of kdev_t abuse from the floppy driver ChangeSet@1.1124.3.37, 2003-04-20 14:50:12-07:00, hch@lst.de [PATCH] remove some junk from hd98.c's ioctl implementation Also pointed out by Al. ChangeSet@1.1124.3.36, 2003-04-20 14:50:04-07:00, hch@lst.de [PATCH] remove dasd_get_kdev Al pointed out that it's unused after my last series of devfs patches. ChangeSet@1.1124.3.35, 2003-04-20 14:49:56-07:00, hch@lst.de [PATCH] replace __blk_run_queue with blk_run_queue All callers of __blk_run_queue are of the form spin_lock_irqsave(q->queue_lock, flags); __blk_run_queue(q); spin_unlock_irqrestore(q->queue_lock, flags); Replace it with a blk_run_queue that does the locking itself. ChangeSet@1.1124.3.34, 2003-04-20 14:49:47-07:00, hch@lst.de [PATCH] rename end_request in floppy() and raid1 In preparation of getting rid of the LOCAL_END_REQUEST mess. ChangeSet@1.1124.3.33, 2003-04-20 14:49:38-07:00, hch@lst.de [PATCH] initrd.h split the initrd stuff out of blk.h, it's only needed in the boot code and the ramdisk driver. ChangeSet@1.1124.1.4, 2003-04-20 14:47:49-07:00, torvalds@home.transmeta.com Merge home.transmeta.com:/home/torvalds/v2.5/akpm into home.transmeta.com:/home/torvalds/v2.5/linux ChangeSet@1.1124.1.3, 2003-04-20 14:45:10-07:00, torvalds@penguin.transmeta.com Update ensoniq driver to return whether the interrupt was for it or not. ChangeSet@1.1124.3.32, 2003-04-20 14:43:34-07:00, hch@lst.de [PATCH] devfs: warn on block modes in devfs_register ChangeSet@1.1124.3.31, 2003-04-20 14:43:26-07:00, hch@lst.de [PATCH] devfs: kill devfs_register_partition ChangeSet@1.1124.3.30, 2003-04-20 14:43:19-07:00, hch@lst.de [PATCH] devfs: md ChangeSet@1.1124.3.29, 2003-04-20 14:43:11-07:00, hch@lst.de [PATCH] devfs: device-mapper ChangeSet@1.1124.3.28, 2003-04-20 14:43:04-07:00, hch@lst.de [PATCH] devfs: floppy The following patches switch the few drivers that have to register devfs entries independand of gendisks to devfs_mk_bdev. ChangeSet@1.1124.3.27, 2003-04-20 14:42:56-07:00, hch@lst.de [PATCH] devfs: xpram ChangeSet@1.1124.3.26, 2003-04-20 14:42:48-07:00, hch@lst.de [PATCH] devfs: mtdblock ChangeSet@1.1124.3.25, 2003-04-20 14:42:40-07:00, hch@lst.de [PATCH] devfs: sonycd ChangeSet@1.1124.3.24, 2003-04-20 14:42:31-07:00, hch@lst.de [PATCH] devfs: sjcd ChangeSet@1.1124.3.23, 2003-04-20 14:42:24-07:00, hch@lst.de [PATCH] devfs: optcd ChangeSet@1.1124.3.22, 2003-04-20 14:42:15-07:00, hch@lst.de [PATCH] devfs: gscd ChangeSet@1.1124.3.21, 2003-04-20 14:42:07-07:00, hch@lst.de [PATCH] devfs: aztcd ChangeSet@1.1124.3.20, 2003-04-20 14:42:00-07:00, hch@lst.de [PATCH] devfs: swim3 ChangeSet@1.1124.3.19, 2003-04-20 14:41:52-07:00, hch@lst.de [PATCH] devfs: rd ChangeSet@1.1124.3.18, 2003-04-20 14:41:44-07:00, hch@lst.de [PATCH] devfs: nbd ChangeSet@1.1124.3.17, 2003-04-20 14:41:36-07:00, hch@lst.de [PATCH] devfs: loop This and the next patches switches over drivers to gendisk.devfs_name. ChangeSet@1.1124.3.16, 2003-04-20 14:41:28-07:00, hch@lst.de [PATCH] devfs: gendisk.devfs_name updates Previously gendisk.devfs_name was used only for partitioned devices or CDroms, and for the latter it was slightly broken. Fix it to work genericly for all gendisks. ChangeSet@1.1124.3.15, 2003-04-20 14:41:20-07:00, hch@lst.de [PATCH] devfs: introduce devfs_mk_bdev Replaces devfs_register for block devices. Note that we do NOT pass in an operaion vector here - it was unused in devfs_register already and our block device code fundamentally ties the operations to the gendisk. There will be only very few callers of this one anyway.. ChangeSet@1.1124.3.14, 2003-04-20 14:41:11-07:00, hch@lst.de [PATCH] devfs: superflous devfs_remove in scsi Already handled by the gendisk layer. ChangeSet@1.1124.3.13, 2003-04-20 14:41:04-07:00, hch@lst.de [PATCH] devfs: remove dead devfs code in dasd Dasd is partitioned - all devfs stuff is handled by the gendisk layer. ChangeSet@1.1124.3.12, 2003-04-20 14:40:56-07:00, hch@lst.de [PATCH] devfs: switch over ubd to ->devfs_name Duh, ubd is partitioned. ChangeSet@1.1124.3.11, 2003-04-20 14:40:48-07:00, hch@lst.de [PATCH] devfs: remove devfs_unregister ChangeSet@1.1124.3.10, 2003-04-20 14:40:40-07:00, hch@lst.de [PATCH] devfs: uml ChangeSet@1.1124.3.9, 2003-04-20 14:40:32-07:00, hch@lst.de [PATCH] devfs: swim3 ChangeSet@1.1124.3.8, 2003-04-20 14:40:25-07:00, hch@lst.de [PATCH] devfs: ipmi ChangeSet@1.1124.3.7, 2003-04-20 14:40:17-07:00, hch@lst.de [PATCH] devfs: s390 ChangeSet@1.1124.3.6, 2003-04-20 14:40:08-07:00, hch@lst.de [PATCH] devfs: miscdev ChangeSet@1.1124.3.5, 2003-04-20 14:40:00-07:00, hch@lst.de [PATCH] devfs: videodev ChangeSet@1.1124.3.4, 2003-04-20 14:39:52-07:00, hch@lst.de [PATCH] devfs: sound ChangeSet@1.1124.3.3, 2003-04-20 14:39:44-07:00, hch@lst.de [PATCH] devfs: usb ChangeSet@1.1124.3.2, 2003-04-20 14:39:36-07:00, hch@lst.de [PATCH] devfs: dvb ChangeSet@1.1124.3.1, 2003-04-20 14:39:29-07:00, hch@lst.de [PATCH] devfs: input Make sure input always uses devfs_remove. While at it I've also remove lots of code duplication - every upper input driver contained the code surrounding devfs_unregister in two identical copies. ChangeSet@1.1124.2.39, 2003-04-20 14:34:45-07:00, akpm@digeo.com [PATCH] fbdev build fix - fb_prepare_logo() is calling the undefined find_logo(). I think it wants fb_find_logo(). - fb_prepare_logo is not __init, therefore fb_find_logo() cannot be __init. ChangeSet@1.1124.2.38, 2003-04-20 14:30:01-07:00, akpm@digeo.com [PATCH] Aggregated disk statistics From: Rick Lindsley To access all the system's disk statitics we currently need to access one sysfs file per disk. This clearly will not be acceptable with thousands of disks. The patch aggregates the system-wide statistics in real time and exposes them via /proc/diskstats ChangeSet@1.1124.2.37, 2003-04-20 14:29:55-07:00, akpm@digeo.com [PATCH] Fix nfsctl for larger dev_t From: Andries.Brouwer@cwi.nl The old NFS control interface passes dev_t's in from userspace. This patch keeps it working when the size of dev_t changes. This is a deprecated interface - new nfs-utils uses an ascii representation in exportfs. Acked by Neil. ChangeSet@1.1124.2.36, 2003-04-20 14:29:47-07:00, akpm@digeo.com [PATCH] smbfs: larger dev_t preparation Discard fewer bits of the device number recd with smb. This does not depend on anything else. Andries ChangeSet@1.1124.2.35, 2003-04-20 14:29:39-07:00, akpm@digeo.com [PATCH] prepare device mapper for larger dev_t From: Joe Thornber The only other thing that will need changing in dm to cope with 64bit dev_t concerns the bitset I'm using to keep track of allocated minor numbers. A trivial patch like this would work for now: ChangeSet@1.1124.2.34, 2003-04-20 14:29:32-07:00, akpm@digeo.com [PATCH] don't shrink slab for highmem allocations From: William Lee Irwin III If one's goal is to free highmem pages, shrink_slab() is an ineffective method of recovering them, as slab pages are all ZONE_NORMAL or ZONE_DMA. Hence, this "FIXME: do not do for zone highmem". Presumably this is a question of policy, as highmem allocations may be satisfied by reaping slab pages and handing them back; but the FIXME says what we should do. ChangeSet@1.1124.2.33, 2003-04-20 14:29:25-07:00, akpm@digeo.com [PATCH] Extend map_vm_area()/get_vm_area() From: Christoph Hellwig and David M-T The ia64 port can use vmap(), but needs to be able to specify the protection flags and the resulting vma's vm_flags. The patch adds the two extra args to vmap(), updates the two callers and fixes some comment spellos. ChangeSet@1.1124.2.32, 2003-04-20 14:29:19-07:00, akpm@digeo.com [PATCH] fix CONFIG_NOMMU mismerges From: Christoph Hellwig we already have better stubs in nommu.c, the additional inlines in mm.h only cause compile failures. ChangeSet@1.1124.2.31, 2003-04-20 14:29:12-07:00, akpm@digeo.com [PATCH] Allocate hd_structs dynamically From: Badari Pulavarty Here is the patch to allocate hd_struct dynamically as we find partitions. There are 3 things I didn't like in the patch. 1) The patch allocates 15 pointers instead of 15 hd_structs. (incase of s= csi). I was really hoping to get rid of "15" and make it really dynamic. (In ca= se if we ever want to support more than 15 partitions per disk etc..).=20 I was thought about making it a linked list, but blk_partition_remap() needs to get to hd_struct for a given partition everytime we do IO. So linked list would be bad, we really need direct access to partition in= fo. 2) I had to add "partno" to hd_struct, since part_dev_read() used to calc= ulate partition number from the address before. 3) kmalloc() failure in add_partition() will be silently ignored. It saves 2048 bytes per disk. ChangeSet@1.1124.2.30, 2003-04-20 14:29:05-07:00, akpm@digeo.com [PATCH] shm_get_stat-handle-hugetlb-pages.patch From: William Lee Irwin III shm_get_stat() didn't know about hugetlbpage-backed shm. ChangeSet@1.1124.2.29, 2003-04-20 14:28:59-07:00, akpm@digeo.com [PATCH] DAC960: add call to blk_queue_bounce_limit From: Dave Olien The following patch adds a call to blk_queue_bounce_limit to the DAC960 driver. Otherwise, it uses bounce buffering more than it needs to. ChangeSet@1.1124.2.28, 2003-04-20 14:28:52-07:00, akpm@digeo.com [PATCH] oom-kill: preferentially kill swapoff From: Hugh Dickins The current behaviour is that once swapoff has filled memory, other tasks get OOMkilled one by one until swapoff completes, or more likely hangs. It is better that swapoff be the first choice for OOMkill. The patch changes the oom-killer so that it will kill off any currently-running swapoff instance before killing any other task. (Bit kludgy, couldn't think of a better way) ChangeSet@1.1124.2.27, 2003-04-20 14:28:45-07:00, akpm@digeo.com [PATCH] Permit interruption of swapoff From: Hugh Dickins Sometimes you start a swapoff and, seeing how long it takes, wish you had not: allow signal to interrupt and stop swapoff. ChangeSet@1.1124.2.26, 2003-04-20 14:28:39-07:00, akpm@digeo.com [PATCH] Disallow swapoff if there is insufficient memory From: Hugh Dickins First of three small "stop swapoff" patches based on 2.5.67-mm3: stop swapoff 1/3 vm_enough_memory? Before embarking upon swapoff, check vm_enough_memory. Mainly for consistency in the overcommit_memory 2 (strict accounting) case: fail with -ENOMEM if it wouldn't let the amount removed be committed. Will always succeed in the overcommit_memory 1 case, as it should in root-shoot-foot mode. In the overcommit_memory 0 case, well, I don't care much either way, so opted for the simplest code: no special case. Which means it could now fail at the start; but that's unlikely (case 0 is over-generous) and only when it would have got stuck later on anyway. ChangeSet@1.1124.2.25, 2003-04-20 14:28:32-07:00, akpm@digeo.com [PATCH] use __GFP_REPEAT in pmd_alloc_one() Convert all pmd_alloc_one() implementations to use __GFP_REPEAT ChangeSet@1.1124.2.24, 2003-04-20 14:28:25-07:00, akpm@digeo.com [PATCH] use __GFP_REPEAT in pte_alloc_one() Remove all the open-coded retry loops in various architectures, use __GFP_REPEAT. It could be that at some time in the future we change __GFP_REPEAT to give up after ten seconds or so, so all the checks for failed allocations are retained. ChangeSet@1.1124.2.23, 2003-04-20 14:28:19-07:00, akpm@digeo.com [PATCH] make alloc_buffer_head take gfp_flags - alloc_buffer_head() should take the allocation mode as an arg, and not assume. - Use __GFP_NOFAIL in JBD's call to alloc_buffer_head(). - Remove all the retry code from jbd_kmalloc() - do it via page allocator controls. ChangeSet@1.1124.2.22, 2003-04-20 14:28:12-07:00, akpm@digeo.com [PATCH] implement __GFP_REPEAT, __GFP_NOFAIL, __GFP_NORETRY This is a cleanup patch. There are quite a lot of places in the kernel which will infinitely retry a memory allocation. Generally, they get it wrong. Some do yield(), the semantics of which have changed over time. Some do schedule(), which can lock up if the caller is SCHED_FIFO/RR. Some do schedule_timeout(), etc. And often it is unnecessary, because the page allocator will do the retry internally anyway. But we cannot rely on that - this behaviour may change (-aa and -rmap kernels do not do this, for instance). So it is good to formalise and to centralise this operation. If an allocation specifies __GFP_REPEAT then the page allocator must infinitely retry the allocation. The semantics of __GFP_REPEAT are "try harder". The allocation _may_ fail (the 2.4 -aa and -rmap VM's do not retry infinitely by default). The semantics of __GFP_NOFAIL are "cannot fail". It is a no-op in this VM, but needs to be honoured (or fix up the callers) if the VM ischanged to not retry infinitely by default. The semantics of __GFP_NOREPEAT are "try once, don't loop". This isn't used at present (although perhaps it should be, in swapoff). It is mainly for completeness. ChangeSet@1.1124.2.21, 2003-04-20 14:28:04-07:00, akpm@digeo.com [PATCH] shmdt() speedup From: William Lee Irwin III Micro-optimize sys_shmdt(). There are methods of exploiting knowledge of the vma's being searched to restrict the search space. These are: (1) shm mappings always start their lives at file offset 0, so only vma's above shmaddr need be considered. find_vma() can be used to seek to the proper position in mm->mmap in O(lg(n)) time. (2) The search is for a vma which could be a fragment of a broken-up shm mapping, which would have been created starting at shmaddr with vm_pgoff 0 and then continued no further into userspace than shmaddr + size. So after having found an initial vma, find the size of the shm segment it maps to calculate an upper bound to the virtualspace that needs to be searched. (3) mremap() would have caused the original checks to miss vma's mapping the shm segment if shmaddr were the original address at which the shm segments were attached. This does no better and no worse than the original code in that situation. (4) If the chain of references in vma->vm_file->f_dentry->d_inode->i_size is not guaranteed by refcounting and/or the shm code then this is oopsable; AFAICT an inode is always allocated. ChangeSet@1.1124.2.20, 2003-04-20 14:27:57-07:00, akpm@digeo.com [PATCH] AIO mmap fix From: Badari Pulavarty Here is a small bug fix for AIO. get_user_pages() takes number of pages to map as argument. (not in bytes) ChangeSet@1.1124.2.19, 2003-04-20 14:27:50-07:00, akpm@digeo.com [PATCH] quotactl(): sync all quotas From: Jan Kara I'm resending a patch which implements quotactl(2) call for syncing all devices. Particulary it allows the caller not to specify the device for syncing and in that case quotas on all the devices are written. The patch is rather trivial (mostly moving the code). ChangeSet@1.1124.2.18, 2003-04-20 14:27:44-07:00, akpm@digeo.com [PATCH] ATI Mach64 build fix From: Geert Uytterhoeven Atyfb: Add missing parts of reversal of Mobility changes, allowing ATI Mach64 GX support to compile again. ChangeSet@1.1124.2.17, 2003-04-20 14:27:37-07:00, akpm@digeo.com [PATCH] hugetlb math overflow fix From: William Lee Irwin III And this one fixes an overflow when there is more than 4GB of hugetlb. ChangeSet@1.1124.2.16, 2003-04-20 14:27:30-07:00, akpm@digeo.com [PATCH] follow_hugetlb_page fix From: William Lee Irwin III follow_hugetlb_page() drops out of the loop prematurely and fails to take the appropriate refcounts if its starting address was not hugepage-aligned. It looked a bit unclean too, so I rewrote it. This fixes a bug, and more importantly, makes the thing readable by something other than a compiler (e.g. programmers). ChangeSet@1.1124.2.15, 2003-04-20 14:27:23-07:00, akpm@digeo.com [PATCH] Clean up various buffer-head dependencies From: William Lee Irwin III Remove page_has_buffers() from various functions, document the dependencies on buffer_head.h from other files besides filemap.c, and s/this file/core VM/ in filemap.c ChangeSet@1.1124.2.14, 2003-04-20 14:27:14-07:00, akpm@digeo.com [PATCH] Move __set_page_dirty_buffers to fs/buffer.c From: William Lee Irwin III Move __set_page_dirty_buffers() to fs/buffer.c, as per the FIXME. ChangeSet@1.1124.2.13, 2003-04-20 14:27:09-07:00, akpm@digeo.com [PATCH] Turn on NUMA rebalancing From: "Martin J. Bligh" I'd forgotten that I'd set this to only fire every 20s in the past, because it would rebalance too agressively. That seems to be fixed now, so we should turn it back on. ChangeSet@1.1124.2.12, 2003-04-20 14:27:02-07:00, akpm@digeo.com [PATCH] Make PCI scanning order the same as 2.4 From: Chuck Ebbert <76306.1226@compuserve.com> 2.4 builds its global PCI device list in breadth-first order. 2.5 is doing the scan that way but defers the construction of the global list until later and then does it depth-first. This causes devices to found in different order by drivers. The below fixed that problem for me. Russell King has acked this change. ChangeSet@1.1124.2.11, 2003-04-20 14:26:55-07:00, akpm@digeo.com [PATCH] keyboard.c Fix SAK in raw mode From: Chris Heath Trivial fix to get the SAK key working in raw and medium raw modes. Patch is against kernel 2.5.67. ChangeSet@1.1124.2.10, 2003-04-20 14:26:49-07:00, akpm@digeo.com [PATCH] Minor fix for driver/serial/core.c From: Jean Tourrilhes The following command will do nothing at all on 2.5.X : setserial /dev/ttyS0 uart none ChangeSet@1.1124.2.9, 2003-04-20 14:26:42-07:00, akpm@digeo.com [PATCH] detect_lost_tick locking fixes From: john stultz This patch fixes a race in the timer_interrupt code caused by detect_lost_tick(). Since we're doing lost-tick compensation outside timer->mark_offset, time can pass between time-source reads which can cause gettimeofday inconsistencies. Additionally detect_lost_tick() was broken for the PIT case, since the whole point of detect_lost_tick() is to interpolate between two time sources to find inconsistencies. Additionally this could cause xtime_lock seq_lock reader starvation which has been causing machine hangs for SMP boxes that use the PIT as a time source. This patch fixes the described race by removing detect_lost_tick() and instead implementing the lost tick detection code inside mark_offset(). Some of the divs and mods being added here might concern folks, but by not calling timer->get_offset() in detect_lost_tick() we eliminate much of the same math. I did some simple cycle counting and the new code comes out on average equivalent or faster. ChangeSet@1.1124.2.8, 2003-04-20 14:26:34-07:00, akpm@digeo.com [PATCH] get_offset_pit and do_timer_overflow vs IRQ locking From: john stultz , Alexander Atanasov We want to make sure we update jiffies_p and count_p atomically. So I'm inserting the spin_unlock_irqrestore() after we update count_p, rather then just before. ChangeSet@1.1124.2.7, 2003-04-20 14:26:28-07:00, akpm@digeo.com [PATCH] Fix jiffies_to_time[spec | val] and converse to use From: george anzinger In the current system (2.5.67) time_spec to jiffies, time_val to jiffies and the converse (jiffies to time_val and jiffies to time_spec) all use 1/HZ as the measure of a jiffie. Because of the inability of the PIT to actually generate an accurate 1/HZ interrupt, the wall clock is updated with a more accurate value (999848 nanoseconds per jiffie for HZ = 1000). This causes a 1/HZ interpretation of jiffies based timing to run faster than the wall clock, thus causing sleeps and timers to expire short of the requested time. Try, for example: time sleep 60 This patch changes the conversion routines to use the same value as the wall clock update code to do the conversions. The actual math is almost all done at compile time. The run time conversions require little if any more execution time. This patch must be applied after the patch I posted earlier today which fixed the CLOCK_MONOTONIC resolution issue. ChangeSet@1.1124.2.6, 2003-04-20 14:26:21-07:00, akpm@digeo.com [PATCH] Fix POSIX timers to give CLOCK_MONOTONIC full The POSIX CLOCK_MONOTONIC currently has only 1/HZ resolution. Further, it is tied to jiffies (i.e. is a restatment of jiffies) rather than "xtime" or the gettimeofday() clock. This patch changes CLOCK_MONOTONIC to be a restatment of gettimeofday() plus an offset to remove any clock setting activity from CLOCK_MONOTONIC. An offset is kept that represents the difference between CLOCK_MONOTONIC and gettimeofday(). This offset is updated when ever the gettimeofday() clock is set to back the clock setting change out of CLOCK_MONOTONIC (which by the standard, can not be set). With this change CLOCK_REALTIME (a direct restatement of gettimeofday()), CLOCK_MONOTONIC and gettimeofday() will all tick at the same time and with the same rate. And all will be affected by NTP adjustments (save those which actually set the time). ChangeSet@1.1124.2.5, 2003-04-20 14:26:14-07:00, akpm@digeo.com [PATCH] Fix and clean up DCACHE_REFERENCED usage From: Maneesh Soni This patch changes the way DCACHE_REFERENCED flag is used. It got messed up in dcache_rcu iterations. I hope this will be ok now. The flag was meant to be advisory flag which is used while prune_dcache() so as not to free dentries which have recently entered d_lru list. At first pass in prune_dcache the dentries marked DCACHE_REFERENCED are left with the flag reset. and they are freed in the next pass. So, now we mark the dentry as DCACHE_REFERENCED when it is first entering the d_lru list in dput() and resetthe flag in prune_dcache(). If the flag remains reset in the next call to prune_dcache(), the dentry is then freed. Also I don't think any file system have to use this flag as it is taken care by the dcache layer. The patch removes such code from a few of file systems. Moreover these filesystems were anyway doing worng thing as they were changing the flag out of dcache_lock. Changes: o dput() marks dentry DCACHE_REFERENCED when it is added to the dentry_unused list o no need to set the flag in dget, dget_locked, d_lookup as these guys anyway increments the ref count. o check the ref count in prune_dcache and use DCACHE_REFERENCED flag just for two stage aging. o remove code for setting DACACHE_REFERENCED from reiserfs, fat, xfs and exportfs. ChangeSet@1.1124.2.4, 2003-04-20 14:26:07-07:00, akpm@digeo.com [PATCH] dentry_stat accounting fix From: Maneesh Soni This patch the corrects the dentry_stat.nr_unused calculation. In select_parent() and shrink_dcache_anon() we were not doing any adjustments to the nr_unused count after manipulating the dentry_unused list. Now the nr_unused count is decremented if the dentry is on dentry_unused list and is removed from there. Further in the same routines, we have to adjust the nr_unused count again if the dentry is moved to the end of d_lru list for pruning. ChangeSet@1.1124.2.3, 2003-04-20 14:26:00-07:00, akpm@digeo.com [PATCH] dmfe: don't free skb with local interrupts disabled dev_kfree_skb() can end up calling local_bh_enable() which goes BUG if local interrupts are disabled. Apparently it can deadlock. So move the skb freeing outside the lock in the dmfe driver. It will decrease the lock hold time as well. ChangeSet@1.1124.2.2, 2003-04-20 14:25:54-07:00, akpm@digeo.com [PATCH] Fix nc98 partition parser link error Fix this: fs/partitions/nec98.c:169: undefined reference to `parse_bsd' ChangeSet@1.1124.2.1, 2003-04-20 14:25:47-07:00, akpm@digeo.com [PATCH] 3c574_cs fixes - It was doing spin_lock_irqsave()/spin_unlock() - Can't free the skb inside local_irq_save(): kfree_skb ends up running local_bh_enable(), which enables interrupts. ChangeSet@1.1124.1.2, 2003-04-20 14:14:34-07:00, torvalds@home.transmeta.com Interrupt handlers should return whether the interrupt was for them or not, so that the irq subsystem can properly handle screaming shared interrupts. So change the irq handlers to return a "irqretval_t", which is either IRQ_HANDLED or IRQ_NONE. ChangeSet@1.1124.1.1, 2003-04-20 14:12:21-07:00, torvalds@home.transmeta.com Fix-ups for i830 from Arjan ChangeSet@1.1128, 2003-04-20 00:57:31-07:00, davem@nuts.ninka.net [PKT_SCHED]: Proper module refcounting for packet schedulers. ChangeSet@1.1127, 2003-04-20 00:25:42-07:00, davem@nuts.ninka.net [PKT_SCHED]: Proper module refcounting for packet classifiers. ChangeSet@1.1126, 2003-04-19 20:42:38-07:00, yoshfuji@linux-ipv6.org [IPSEC]: nexthdr in xfrm6_input needs to be int. ChangeSet@1.1124, 2003-04-19 19:39:11-07:00, torvalds@home.transmeta.com Linux 2.5.68 TAG: v2.5.68