Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40381
b: refs/heads/master
c: fe31eb6
h: refs/heads/master
i:
  40379: c51a183
v: v3
  • Loading branch information
Linus Torvalds committed Oct 27, 2006
1 parent a45b42a commit ea78a51
Show file tree
Hide file tree
Showing 26 changed files with 89 additions and 157 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3560cc5ec3488b20d927f7160a21a0df1d1fda20
refs/heads/master: fe31eb679752369240fc8880858a5ed974554eb2
8 changes: 1 addition & 7 deletions trunk/arch/alpha/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,7 @@ SECTIONS
. = ALIGN(8);
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;

Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/arm/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,7 @@ SECTIONS
*(.early_param.init)
__early_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/avr32/kernel/vmlinux.lds.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,7 @@ SECTIONS
__setup_end = .;
. = ALIGN(4);
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/frv/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,7 @@ SECTIONS

__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/h8300/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,7 @@ SECTIONS
. = ALIGN(0x4) ;
___setup_end = .;
___initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
___initcall_end = .;
___con_initcall_start = .;
*(.con_initcall.init)
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/i386/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/ia64/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,7 @@ SECTIONS
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET)
{
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
__initcall_end = .;
}

Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/m32r/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/m68knommu/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,7 @@ SECTIONS {
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
__initcall_end = .;
__con_initcall_start = .;
*(.con_initcall.init)
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/mips/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,7 @@ SECTIONS

__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;

Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/parisc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -153,13 +153,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/powerpc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,7 @@ SECTIONS

.initcall.init : {
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
__initcall_end = .;
}

Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/ppc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;

Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/s390/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/sh/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/sh64/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : C_PHYS(.initcall.init) {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/sparc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/sparc64/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/v850/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,7 @@
___setup_end = . ; \
___initcall_start = . ; \
*(.initcall.init) \
*(.initcall1.init) \
*(.initcall2.init) \
*(.initcall3.init) \
*(.initcall4.init) \
*(.initcall5.init) \
*(.initcall6.init) \
*(.initcall7.init) \
INITCALLS \
. = ALIGN (4) ; \
___initcall_end = . ; \
___con_initcall_start = .; \
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/x86_64/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,7 @@ SECTIONS
__setup_end = .;
__initcall_start = .;
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;
__con_initcall_start = .;
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/xtensa/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,7 @@ SECTIONS

__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
INITCALLS
}
__initcall_end = .;

Expand Down
30 changes: 30 additions & 0 deletions trunk/drivers/base/dd.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <linux/device.h>
#include <linux/module.h>
#include <linux/kthread.h>
#include <linux/wait.h>

#include "base.h"
#include "power/power.h"
Expand Down Expand Up @@ -70,6 +71,8 @@ struct stupid_thread_structure {
};

static atomic_t probe_count = ATOMIC_INIT(0);
static DECLARE_WAIT_QUEUE_HEAD(probe_waitqueue);

static int really_probe(void *void_data)
{
struct stupid_thread_structure *data = void_data;
Expand Down Expand Up @@ -121,6 +124,7 @@ static int really_probe(void *void_data)
done:
kfree(data);
atomic_dec(&probe_count);
wake_up(&probe_waitqueue);
return ret;
}

Expand Down Expand Up @@ -337,6 +341,32 @@ void driver_detach(struct device_driver * drv)
}
}

#ifdef CONFIG_PCI_MULTITHREAD_PROBE
static int __init wait_for_probes(void)
{
DEFINE_WAIT(wait);

printk(KERN_INFO "%s: waiting for %d threads\n", __FUNCTION__,
atomic_read(&probe_count));
if (!atomic_read(&probe_count))
return 0;
while (atomic_read(&probe_count)) {
prepare_to_wait(&probe_waitqueue, &wait, TASK_UNINTERRUPTIBLE);
if (atomic_read(&probe_count))
schedule();
}
finish_wait(&probe_waitqueue, &wait);
return 0;
}

core_initcall_sync(wait_for_probes);
postcore_initcall_sync(wait_for_probes);
arch_initcall_sync(wait_for_probes);
subsys_initcall_sync(wait_for_probes);
fs_initcall_sync(wait_for_probes);
device_initcall_sync(wait_for_probes);
late_initcall_sync(wait_for_probes);
#endif

EXPORT_SYMBOL_GPL(device_bind_driver);
EXPORT_SYMBOL_GPL(device_release_driver);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/mtd/nand/nand_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -1479,6 +1479,7 @@ static void nand_write_page_syndrome(struct mtd_info *mtd,
* @buf: the data to write
* @page: page number to write
* @cached: cached programming
* @raw: use _raw version of write_page
*/
static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
const uint8_t *buf, int page, int cached, int raw)
Expand Down
Loading

0 comments on commit ea78a51

Please sign in to comment.