- 20 Apr, 2003 9 commits
-
-
Andrew Morton authored
From: john stultz <johnstul@us.ibm.com> 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.
-
Andrew Morton authored
From: john stultz <johnstul@us.ibm.com>, Alexander Atanasov <alex@ssi.bg> 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.
-
Andrew Morton authored
From: george anzinger <george@mvista.com> 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.
-
Andrew Morton authored
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).
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> 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.
-
Andrew Morton authored
From: Maneesh Soni <maneesh@in.ibm.com> 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.
-
Andrew Morton authored
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.
-
Andrew Morton authored
Fix this: fs/partitions/nec98.c:169: undefined reference to `parse_bsd'
-
Andrew Morton authored
- 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.
-
- 19 Apr, 2003 6 commits
-
-
Linus Torvalds authored
-
Ben Collins authored
- Cleaned up hostinfo usage in all drivers and created a central API to handle them all. - Fixup some spinlock mis-usage. - Remove devfs_handle mis-usage. - Cleaned up some heavy handed spinlocking to use mutexes instead. - Add function to send PHY config packets and use to to settle IRM/cycle-master/root descrepancies.
-
bk://bk.arm.linux.org.uk/linux-2.5-serialLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Andries E. Brouwer authored
-
Andries E. Brouwer authored
If copy_namespace() returns -EPERM, copy_process() will return a confusing -ENOMEM. Fix it thus.
-
Andries E. Brouwer authored
new_ns = kmalloc(sizeof(struct namespace *), GFP_KERNEL); thing wasn't a very good idea. The rest are whitespace cleanups.
-
- 18 Apr, 2003 17 commits
-
-
Andries E. Brouwer authored
(i) Replace in struct loop_info the dev_t field by __kernel_old_dev_t, where this type is defined in <asm/posix_types.h>, so that problems with a differently sized dev_t in userspace are avoided. (ii) Introduce a new loop_info64, with __u64 device, inode and offset fields.
-
Romain Liévin authored
This replaces checkboxes by radiobuttons whereever necessary (menu choices). It partially fixes the #540 bug report.
-
bk://kernel.bkbits.net/davem/sparc-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Stephen Hemminger authored
Second try at the bridge driver module handling cleanup... 1) Eliminate keeping a seperate bridge_list and use a bit on the priv_flags structure. This is equivalent to how the VLAN code works. Makes code cleaner and correctly handles cases like creating a bridge with the same name as an existing ether device etc. 2) Don't do own module ref counting that is inhernently racy. Instead set owner field and cleanup debris on unload. 3) Do last state cleanup in destructor 4) Change of bridge state (dev_open/stop) should use write_lock 5) Make sure timer is not running when cleared. 6) Use "const char *" where possible
-
Stephen Hemminger authored
-
David S. Miller authored
-
Andries E. Brouwer authored
-
Steven Whitehouse authored
o As requested, macros in dn_fib.h changed to decnet specific names o Two bugs fixed (only in 2.5 decnet stack) relating to bind and connection states. o Numerous style changes: using C99 initialisers and inline rather than __inline__ o Use struct flowi as routing key (for forthcoming flow cache) o Add metrics to routing table o Many routing table bug fixes o New wait code to improve efficiency o We use real device MTUs now rather than saying "hmm... looks like ethernet must be 1500" as we used to (still one or two places to fix, but its mostly correct in this patch) o Tidy up in af_decnet.c:dn_sendmsg() in preparation for zerocopy o Updates to rtnetlink code to return more information o Removed ioctl() for decnet fib. It never did anything and rtnetlink is a far better interface anyway. o Converted /proc/decnet_neigh to seq_file (other /proc files to follow) o DECnet route cache now uses RCU like the ipv4 route cache o Misc bug fixes wherever I found them o SO_BINDTODEVICE works for outgoing connections
-
Stephen Hemminger authored
-
David S. Miller authored
into nuts.ninka.net:/home/davem/src/BK/net-2.5
-
Christoph Hellwig authored
There's just one caller in fs/devfs/base.c left.
-
Christoph Hellwig authored
Always pass around the pathnames for the devfs entries / directories instead of the devfs_handle_ts. Cleanes up the code massivly.
-
Christoph Hellwig authored
Pass in the path directly instead of getting it from a devfs_handle_t.
-
Christoph Hellwig authored
Store the path of it's devfs directory in struct scsi_device. Use it in the devfs_register calls instead of the devfs_handle_t which will go away soon.
-
Christoph Hellwig authored
Store the path of it's devfs directory in ide_drive_t. Use it in the devfs_register calls instead of the devfs_handle_t which will go away soon.
-
Christoph Hellwig authored
Make sure the first argument to devfs_register is zero.
-
Christoph Hellwig authored
As several people found out while I was asleep I sent you a bogus patch version and devfs didn't compile in your tree since then. Fix it.
-
- 17 Apr, 2003 7 commits
-
-
Andrew Morton authored
Supporting PAGE_CACHE_SIZE != PAGE_SIZE is a "won't fix" for 2.6. (Bill Irwin)
-
Linus Torvalds authored
didn't work.
-
Matt Porter authored
This allows the SCSI subsystem to build on systems where CONFIG_GENERIC_ISA_DMA is not set.
-
Jeff Garzik authored
into redhat.com:/garz/repo/misc-2.5
-
Jeff Garzik authored
-
David S. Miller authored
-
bk://bk.arm.linux.org.uk/linux-2.5-pcmciaLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
- 18 Apr, 2003 1 commit
-
-
Russell King authored
Only call pci_remove_behind_bridge() if we have a PCI-based bridge controller.
-