- 19 Mar, 2004 35 commits
-
-
Linus Torvalds authored
-
bk://kernel.bkbits.net/gregkh/linux/pci-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/net-2.6
-
bk://gkernel.bkbits.net/libata-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://gkernel.bkbits.net/net-drivers-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
James Bottomley authored
This rolls up Marc Zyngier's EISA correction (first two) and adds a missed netdev_priv() conversion that was causing an oops on module removal.
-
David S. Miller authored
Noticed by Jan Glauber, confirmed by Stephen Hemminger.
-
bk://kernel.bkbits.net/jgarzik/carmel-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/pci-2.6
-
bk://kernel.bkbits.net/davem/sparc-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Matthew Wilcox authored
Call pci_claim_resources() so we can see what PCI resources are being used.
-
Matthew Wilcox authored
On ia64, the parent resources are not necessarily PCI resources and so won't get found by pci_find_parent_resource. Use the shiny new insert_resource() function instead, which I think we would have used here had it been available at the time.
-
Matthew Wilcox authored
If we start again, we can return an error even if we were successful. Reset the result to 0 before beginning again. Why don't we use a tailcall here?
-
David S. Miller authored
-
David S. Miller authored
-
David S. Miller authored
-
David S. Miller authored
-
Russell King authored
This prevents the "optimize && ?" message appearing when the kernel configuration tool is run. The message could be eliminated from the tool, but I'd rather fix the needlessly over-complicated expression:
-
http://linux-sound.bkbits.net/linux-soundLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://gkernel.bkbits.net/net-drivers-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Rusty Russell authored
We no longer have a CPU_OFFLINE notifier: we freeze the machine and kill the CPU atomically. Remove it.
-
Rusty Russell authored
Various files keep per-cpu caches which need to be freed/moved when a CPU goes down. All under CONFIG_HOTPLUG_CPU ifdefs. scsi.c: drain dead cpu's scsi_done_q onto this cpu. buffer.c: brelse the bh_lrus queue for dead cpu. timer.c: migrate timers from dead cpu, being careful of lock order vs __mod_timer. radix_tree.c: free dead cpu's radix_tree_preloads page_alloc.c: empty dead cpu's nr_pagecache_local into nr_pagecache, and free pages on cpu's local cache. slab.c: stop reap_timer for dead cpu, adjust each cache's free limit, and free each slab cache's per-cpu block. swap.c: drain dead cpu's lru_add_pvecs into ours, and empty its committed_space counter into global counter. dev.c: drain device queues from dead cpu into this one. flow.c: drain dead cpu's flow cache.
-
Rusty Russell authored
Keep track of kswapds: it's OK that they get moved off a node when the last CPU goes down, but when a CPU comes back, we should try to move the kswapd back onto its node.
-
Rusty Russell authored
Workqueues need to bring up/destroy the per-cpu thread on cpu up/down. 1) Add a global list of workqueues, and keep the name in the structure (to name the newly created thread). 2) Remove BUG_ON in run_workqueue, since thread is dragged off CPU when it goes down. 3) Lock out cpu up/down in flush_workqueue, create_workqueue and destroy_workqueue. 4) Add notifier to add/destroy workqueue threads, and take over work.
-
Rusty Russell authored
Change ksoftirqd not to assume it's on the CPU: when a cpu goes down, it will be rudely dragged off. Since do_softirq() uses smp_processor_id(), it's easiest to disable preemption, check that the cpu is still up, then call do_softirq(). If the cpu is actually offline, wait for the notifier, which kills us. Take over tasklets from dead cpu in the notifier. Clean up redundant double assignment in CPU_UP callback.
-
Rusty Russell authored
Add hook for RCU to handle jobs on dead cpu. Requires new tasklet_kill_immediate for RCU to clean up its tasklet (which might have been about to run, so tasklet_kill won't work).
-
Rusty Russell authored
Change the migration thread to directly use its cpu arg, rather than smp_processor_id(): if a cpu goes up then down rapidly, it can be on the wrong cpu just before it is stopped. Add code to stop the migration thread on CPU_DEAD and CPU_UP_CANCELED. Remove the (bogus) priority of the notifier.
-
Rusty Russell authored
We need the migration thread to be RT as soon as the CPU comes online: for example, stop_machine() (another RT task) expects to yield to it. Extract the core of setscheduler() and do that when the migration thread is created. rq lock is a precaution against the (theoretical) possibility of someone else doing setscheduer on this thread at the same time.
-
Rusty Russell authored
Currently the migration thread re-enables irqs, then calls move_task_away which disables IRQs again and actually does the move. This means there is a race where the migration thread gets preempted, and the target CPU can go down. Hold irqs disabled in migration thread across move_task_away(), which now doesn't need to save flags (the other caller is the hotplug CPU code, where irqs are also disabled).
-
Rusty Russell authored
Grab cpu lock around sched_migrate_task() and sys_sched_setaffinity(). This is a noop without CONFIG_HOTPLUG_CPU. The sched_migrate_task may have a performance penalty on NUMA if lots of exec rebalancing is happening, however this only applies to CONFIG_NUMA and CONFIG_HOTPLUG_CPU, which noone does at the moment anyway. Also, the scheduler in -mm solves the race another way, so this will vanish then.
-
Rusty Russell authored
Don't move tasks onto offline cpus in load_balance and wake_task (the latter is caused by a completion run from stop_machine). Note that cpu_is_offline() is a noop when CONFIG_HOTPLUG_CPU=n.
-
Rusty Russell authored
Add "online" sysfs attribute to cpus to bring them up and down. Again, only under CONFIG_HOTPLUG_CPU.
-
Rusty Russell authored
Implement cpu_down(): uses stop_machine to freeze the machine, then uses (arch-specific) __cpu_disable() and migrate_all_tasks(). Whole thing under CONFIG_HOTPLUG_CPU, so doesn't break archs which don't define that.
-
- 18 Mar, 2004 5 commits
-
-
Andrew Morton authored
From: Nikita Danilov <Nikita@Namesys.COM> remove_suid() ignores return value of notify_change()->i_op->setattr(). This mean, that even if file system fails to clear suid bit, generic_file_aio_write_nolock() proceeds with write, which is unsafe. Actually, even ext2's ->setattr() can fail, when trying to update ACL, for example. Attached patch modifies remove_suid() to return result of ->setattr(), and updates in-tree callers.
-
Andrew Morton authored
From: Stelian Pop <stelian@popies.net> This patchlet is just a resync with my tree, it only increments the meye driver version number and makes some small comment changes as suggested by Randy Dunlap.
-
Andrew Morton authored
From: Andy Whitcroft <andyw@uk.ibm.com> Whilst looking at the memory overcommit logic I noticed that the pointer to the documentation from the *_vm_enough_memory calls is incorrect. Also that in one instance the routine does not have the expected pointers.
-
Andrew Morton authored
From: Stelian Pop <stelian@popies.net> This patch removes the usage of __devinit in the srs methods of the sonypi driver, because those functions are also called from sonypi_pm_callback(). Patch originally from Randy Dunlap.
-
Andrew Morton authored
From: Grant Grundler <grundler@parisc-linux.org> This patch adds a comment to "Documentation/SubmittingDrivers" about the importance of adding a Copyright notice in submitted code. The parisc-linux port has neglected this in the past and I've been slowly trying to correct that (along with proper GPL header). While I make it sound like GPL is the "only" acceptable license, I'll leave it up to lawyers to determine what other appropriate license could be used for a new driver.
-