- 02 Feb, 2003 3 commits
-
-
Andrew Morton authored
Since Jan removed the lock_kernel()s in inode_add_bytes() and inode_sub_bytes(), these functions have been racy. One problematic workload has been discovered in which concurrent writepage and truncate on SMP quickly causes i_blocks to go negative. writepage() does not take i_sem, and it seems that for ext2, there are no other locks in force when inode_add_bytes() is called. Putting the BKL back in there is not acceptable. To fix this race I have added a new spinlock "i_lock" to the inode. That lock is presently used to protect i_bytes and i_blocks. We could use it to protect i_size as well. The splitting of the used disk space into i_blocks and i_bytes is silly - we should nuke all that and just have a bare loff_t i_usedbytes. Later.
-
Andrew Morton authored
When an appending O_DIRECT write hits ENOSPC we're returning a short write which is _too_ short. The file ends up with an undersized i_size and fsck complains. So update the return value with the partial result before bailing out.
-
Andrew Morton authored
In 2.5.52 I broke sys_sync() for ext2 in subtle ways. sys_sync() will set mapping->dirtied_when non-zero against a clean inode. Later, in (say) __iget(), that inode gets moved over to inode_unused or inode_in_use. But because it has non-zero ->dirtied_when, __mark_inode_dirty() thinks that the inode must still be on sb->s_dirty. But it isn't. It's on inode_in_use. It (and its pages) never get written out and the data gets thrown away on unmount. The patch ceases to use ->dirtied_when as an indicator of inode dirtiness. Not sure why I even did that :(
-
- 16 Jan, 2003 37 commits
-
-
Linus Torvalds authored
-
-
Russell King authored
__virt_to_bus/__bus_to_virt depended on INTEGRATOR_HDR0_SDRAM_BASE Unfortunately, this is defined in arch-integrator/platform.h, and we really don't want to include it in memory.h. We instead use BUS_OFFSET, which will eventually depend on the CPU number in the system.
-
Russell King authored
Only default BLK_DEV_IDEDMA on BLK_DEV_IDEDMA_ICS if ARCH_ACORN is set, not if ARM is set. There are PCI ARM systems out there!
-
Russell King authored
Ensure that we clean up properly after initialisation error, releasing all claimed resources in an orderly manner and returning the correct error code.
-
Russell King authored
-
Russell King authored
-
Russell King authored
-
Russell King authored
-
Russell King authored
Add cfbfillrect / cfbcopyarea / cfbimgblt objects for SA1100fb. Remove redundant "pm" member.
-
Jeff Wiedemeier authored
Found a buglet in the marvel code -- doesn't change the number of IRQS just the logic to get there.. This applies on top of the other marvel code. /jeff
-
Richard Henderson authored
into kanga.twiddle.net:/home/rth/linux/axp-2.5
-
Richard Henderson authored
-
Richard Henderson authored
to header files where they belong.
-
Richard Henderson authored
of AGP and SRMCONS patches.
-
Richard Henderson authored
From Jeff.Wiedemeier@hp.com.
-
Richard Henderson authored
(Titan / Marvel), Kconfig and headers. From Jeff Wiedemeier.
-
Martin J. Bligh authored
Patch from Erich Focht This adds a hook to rebalance globally across nodes every NODE_BALANCE_RATE iterations of the rebalancer. This allows us to easily tune on an architecture specific basis how often we wish to rebalance - machines with higher NUMA ratios (more expensive off-node access) will want to do this less often. It's currently set to 100 for NUMA-Q and 10 for other machines. If the imbalance between nodes is > 125%, we'll rebalance them. The hook for this is added to the NUMA definition of cpus_to_balance, so again, no impact on non-NUMA machines.
-
Martin J. Bligh authored
Patch from Michael Hohnbaum This adds a hook, sched_balance_exec(), to the exec code, to make it place the exec'ed task on the least loaded queue. We have less state to move at exec time than fork time, so this is the cheapest point to cross-node migrate. Experience in Dynix/PTX and testing on Linux has confirmed that this is the cheapest time to move tasks between nodes. It also macro-wraps changes to nr_running, to allow us to keep track of per-node nr_running as well. Again, no impact on non-NUMA machines.
-
Martin J. Bligh authored
Patch from Martin J. Bligh This adds a small hook to the find_busiest_queue routine to allow us to specify a mask of which CPUs to search over. In the NUMA case, it will only balance inside the node (much cheaper to search, and stops tasks from bouncing across nodes, which is very costly). The cpus_to_balance routine is conditionally defined to ensure no impact to non-NUMA machines. This is a tiny NUMA scheduler, but it needs the assistance of the second and third patches in order to spread tasks across nodes.
-
Christoph Hellwig authored
Another left-over from ancient module code, it was supposed to return non-zero if the module has a use count, but currently it always evaluates to 0. There are a few users of different types: (1) ioctl that perform a while(MOD_IN_USE) MOD_DEC_USE_COUNT loop. Just rip them out, we now have forced module unloading. (2) printk's that moan if the use-count in not zero in the exitfunc. Just rip them out, this can't happen. (3) if(MOD_IN_USE) MOD_DEC_USE_COUNT constructs in ->close of a few serial drivers. Just remove the conditional, we did a MOD_INC_USE_COUNT in ->open. (4) This one is interesting: drivers/sbus/char/display7seg.c uses the module use count to track openers. Replace this with an atomic_t. In addition remove tons of stale comments in network driver that aren't understandable for anyone who doesn't know ancient Linux module semantics.
-
Andi Kleen authored
x86-64 updates for 2.5.58. Changes only x86-64 specific files. - Rewrote module allocation. Lots of bugs fixed. Module loading should work now again. - Kconfig help fixes from Randy Dunlap - Makefile cleanups from Pavel Machek and Sam Ravnborg - Assembly cleanups from Pavel - defconfig update - Better strlen_user/strnlen_user - Merge with i386: new ptrace commands, 32bit vsyscall signal trampolines new deactivate_mm, add asm/bug.h - Make sure initramfs is freed after booting (thanks to Kai for the hint) - User per cpu data for profile counters (Ravikiran Thirumalai) - 32bit compat_* updates from Stephen Rothwell - Fix race in context switch. The exception handler for bogus segment loads in __switch_to needs to keep interrupts disabled, otherwise an interrupt can deadlock on scheduler locks. Also make sure they don't printk or set oops_in_progress during printk because printk does a wake_up too. - Disable 64bit GS base changes for processes. I cannot get it to work reliably. - Clear IOPL on kernel entry
-
Ivan Kokshaysky authored
From Jeff.Wiedemeier@hp.com: Add platform-specific callin for SMP.
-
Ivan Kokshaysky authored
From Jeff.Wiedemeier@hp.com: - Only create smp_affinity /proc nodes if a set_affinity handler is provided. - Limit the number of irq nodes that will be created in /proc to avoid overfilling the /proc inode space.
-
Richard Henderson authored
a titan specific kernel.
-
http://linux-voyager.bkbits.net/eisa-sysfs-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Marc Zyngier authored
Without it, unloading a module leads to some unpleasant oops...
-
Marc Zyngier authored
-
Marc Zyngier authored
Please note that the naming DB is now completely optional. If there is no eisa.ids in the drivers/eisa/ directory, build will behave as if CONFIG_EISA_NAMES is disabled. So this patch can be left out if there is any objection.
-
Marc Zyngier authored
Base patch adding sysfs support for the EISA bus
-
Ivan Kokshaysky authored
From Jeff.Wiedemeier@hp.com: Update titan system support include AlphaServer DS25, AGP, enhanced machine check handling.
-
Ivan Kokshaysky authored
From Jeff.Wiedemeier@hp.com: Add arch/alpha/mm/remap.c (__alpha_remap_area_pages).
-
Ivan Kokshaysky authored
Until now, we were configuring all PCI resources from scratch. This patch allows to use unchanged PCI setup on platforms where the firmware does it reasonably well (titan and marvel). [The patch to setup-bus.c that removes "FIXME" from here (ie makes pci_assign_unassigned_resources to match its name) exists at least for two months, but I've yet to convince Linus that it does the right thing...] Ivan.
-
Christoph Hellwig authored
This is a left-over from the old modules code, Rusty stubbed it out to always return 0. Three scsi pcmcia driver check it for beeing non-NULL, trying to work around their unload races. I've added #warnings there and stubbed out the GET_USE_COUNT so we can remove it from the core.
-
Christoph Hellwig authored
The Linux code for SGI partitions uses an int instead of an unsigned int in the ondisk structure in two places, which breaks > TB partitions. While porting the code over from an internal 2.4-based tree I've also switched it to use the explicit uXX/sXX types everywhere and moved the struct defintions above sgi_partition().
-
James H. Cloos Jr. authored
Move ALSA before OSS
-
James H. Cloos Jr. authored
The input system in 2.5 is able to see the volume keys on inspiron notebooks w/o help from i8k.c. This patch therefore removes the new code from i8kutils-1.17 for feeding those keypresses to the keyboard driver. This leaves only MODULE_PARM(restricted, "i") as the useful addition to what was in 2.5.58's i8k.c. This module parm restricts control of the system fans to processes with CAP_SYS_ADMIN set.
-