Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 57501
b: refs/heads/master
c: 5b65c09
h: refs/heads/master
i:
  57499: b3deeed
v: v3
  • Loading branch information
Linus Torvalds committed Jun 9, 2007
1 parent 1f1fa1b commit 9936ccb
Show file tree
Hide file tree
Showing 46 changed files with 1,071 additions and 485 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: 6fd75b19483b2f6e6619602a535b4939e46921c1
refs/heads/master: 5b65c09e9966cae543d4727984f098b699aa1653
26 changes: 25 additions & 1 deletion trunk/Documentation/SubmittingPatches
Original file line number Diff line number Diff line change
Expand Up @@ -340,8 +340,32 @@ now, but you can do this to mark internal company procedures or just
point out some special detail about the sign-off.


13) When to use Acked-by:

13) The canonical patch format
The Signed-off-by: tag indicates that the signer was involved in the
development of the patch, or that he/she was in the patch's delivery path.

If a person was not directly involved in the preparation or handling of a
patch but wishes to signify and record their approval of it then they can
arrange to have an Acked-by: line added to the patch's changelog.

Acked-by: is often used by the maintainer of the affected code when that
maintainer neither contributed to nor forwarded the patch.

Acked-by: is not as formal as Signed-off-by:. It is a record that the acker
has at least reviewed the patch and has indicated acceptance. Hence patch
mergers will sometimes manually convert an acker's "yep, looks good to me"
into an Acked-by:.

Acked-by: does not necessarily indicate acknowledgement of the entire patch.
For example, if a patch affects multiple subsystems and has an Acked-by: from
one subsystem maintainer then this usually indicates acknowledgement of just
the part which affects that maintainer's code. Judgement should be used here.
When in doubt people should refer to the original discussion in the mailing
list archives.


14) The canonical patch format

The canonical patch subject line is:

Expand Down
2 changes: 1 addition & 1 deletion trunk/Documentation/atomic_ops.txt
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ defined which accomplish this:
void smp_mb__before_atomic_dec(void);
void smp_mb__after_atomic_dec(void);
void smp_mb__before_atomic_inc(void);
void smp_mb__after_atomic_dec(void);
void smp_mb__after_atomic_inc(void);

For example, smp_mb__before_atomic_dec() can be used like so:

Expand Down
40 changes: 40 additions & 0 deletions trunk/Documentation/driver-model/platform.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,46 @@ System setup also associates those clocks with the device, so that that
calls to clk_get(&pdev->dev, clock_name) return them as needed.


Legacy Drivers: Device Probing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some drivers are not fully converted to the driver model, because they take
on a non-driver role: the driver registers its platform device, rather than
leaving that for system infrastructure. Such drivers can't be hotplugged
or coldplugged, since those mechanisms require device creation to be in a
different system component than the driver.

The only "good" reason for this is to handle older system designs which, like
original IBM PCs, rely on error-prone "probe-the-hardware" models for hardware
configuration. Newer systems have largely abandoned that model, in favor of
bus-level support for dynamic configuration (PCI, USB), or device tables
provided by the boot firmware (e.g. PNPACPI on x86). There are too many
conflicting options about what might be where, and even educated guesses by
an operating system will be wrong often enough to make trouble.

This style of driver is discouraged. If you're updating such a driver,
please try to move the device enumeration to a more appropriate location,
outside the driver. This will usually be cleanup, since such drivers
tend to already have "normal" modes, such as ones using device nodes that
were created by PNP or by platform device setup.

None the less, there are some APIs to support such legacy drivers. Avoid
using these calls except with such hotplug-deficient drivers.

struct platform_device *platform_device_alloc(
char *name, unsigned id);

You can use platform_device_alloc() to dynamically allocate a device, which
you will then initialize with resources and platform_device_register().
A better solution is usually:

struct platform_device *platform_device_register_simple(
char *name, unsigned id,
struct resource *res, unsigned nres);

You can use platform_device_register_simple() as a one-step call to allocate
and register a device.


Device Naming and Driver Binding
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The platform_device.dev.bus_id is the canonical name for the devices.
Expand Down
1 change: 1 addition & 0 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ Who: Dominik Brodowski <linux@brodo.de>
What: remove EXPORT_SYMBOL(kernel_thread)
When: August 2006
Files: arch/*/kernel/*_ksyms.c
Funcs: kernel_thread
Why: kernel_thread is a low-level implementation detail. Drivers should
use the <linux/kthread.h> API instead which shields them from
implementation details and provides a higherlevel interface that
Expand Down
10 changes: 5 additions & 5 deletions trunk/Documentation/filesystems/tmpfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,10 @@ largest node numbers in the range. For example, mpol=bind:0-3,5,7,9-15

Note that trying to mount a tmpfs with an mpol option will fail if the
running kernel does not support NUMA; and will fail if its nodelist
specifies a node >= MAX_NUMNODES. If your system relies on that tmpfs
being mounted, but from time to time runs a kernel built without NUMA
capability (perhaps a safe recovery kernel), or configured to support
fewer nodes, then it is advisable to omit the mpol option from automatic
specifies a node which is not online. If your system relies on that
tmpfs being mounted, but from time to time runs a kernel built without
NUMA capability (perhaps a safe recovery kernel), or with fewer nodes
online, then it is advisable to omit the mpol option from automatic
mount options. It can be added later, when the tmpfs is already mounted
on MountPoint, by 'mount -o remount,mpol=Policy:NodeList MountPoint'.

Expand All @@ -121,4 +121,4 @@ RAM/SWAP in 10240 inodes and it is only accessible by root.
Author:
Christoph Rohland <cr@sap.com>, 1.12.01
Updated:
Hugh Dickins <hugh@veritas.com>, 19 February 2006
Hugh Dickins <hugh@veritas.com>, 4 June 2007
2 changes: 1 addition & 1 deletion trunk/Documentation/firmware_class/README
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

request_firmware() hotplug interface:
------------------------------------
Copyright (C) 2003 Manuel Estrada Sainz <ranty@debian.org>
Copyright (C) 2003 Manuel Estrada Sainz

Why:
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* firmware_sample_driver.c -
*
* Copyright (c) 2003 Manuel Estrada Sainz <ranty@debian.org>
* Copyright (c) 2003 Manuel Estrada Sainz
*
* Sample code on how to use request_firmware() from drivers.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* firmware_sample_firmware_class.c -
*
* Copyright (c) 2003 Manuel Estrada Sainz <ranty@debian.org>
* Copyright (c) 2003 Manuel Estrada Sainz
*
* NOTE: This is just a probe of concept, if you think that your driver would
* be well served by this mechanism please contact me first.
Expand All @@ -19,7 +19,7 @@
#include <linux/firmware.h>


MODULE_AUTHOR("Manuel Estrada Sainz <ranty@debian.org>");
MODULE_AUTHOR("Manuel Estrada Sainz");
MODULE_DESCRIPTION("Hackish sample for using firmware class directly");
MODULE_LICENSE("GPL");

Expand Down
19 changes: 5 additions & 14 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -782,11 +782,6 @@ M: rathamahata@php4.ru
L: linux-kernel@vger.kernel.org
S: Maintained

BERKSHIRE PRODUCTS PC WATCHDOG DRIVER
P: Kenji Hollis
W: http://ftp.bitgate.com/pcwd/
S: Maintained

BFS FILE SYSTEM
P: Tigran A. Aivazian
M: tigran@aivazian.fsnet.co.uk
Expand Down Expand Up @@ -3025,7 +3020,7 @@ S: Maintained
REISERFS FILE SYSTEM
P: Hans Reiser
M: reiserfs-dev@namesys.com
L: reiserfs-list@namesys.com
L: reiserfs-devel@vger.kernel.org
W: http://www.namesys.com
S: Supported

Expand Down Expand Up @@ -3904,10 +3899,6 @@ S: Maintained

UCLINUX FOR NEC V850
P: Miles Bader
M: uclinux-v850@lsi.nec.co.jp
W: http://www.ic.nec.co.jp/micro/uclinux/eng/
W: http://www.ee.nec.de/uclinux/
S: Supported

UCLINUX FOR RENESAS H8/300
P: Yoshinori Sato
Expand All @@ -3916,10 +3907,10 @@ W: http://uclinux-h8.sourceforge.jp/
S: Supported

UFS FILESYSTEM
P: Evgeniy Dushistov
M: dushistov@mail.ru
L: linux-kernel@vger.kernel.org
S: Maintained
P: Evgeniy Dushistov
M: dushistov@mail.ru
L: linux-kernel@vger.kernel.org
S: Maintained

USB DIAMOND RIO500 DRIVER
P: Cesar Miquel
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/i386/math-emu/fpu_entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,7 @@ int save_i387_soft(void *s387, struct _fpstate __user * buf)
return -1;
if ( offset )
if (__copy_to_user(d+other, (u_char *)&S387->st_space, offset))
return -1
return -1;
RE_ENTRANT_CHECK_ON;

return 1;
Expand Down
10 changes: 6 additions & 4 deletions trunk/arch/m68knommu/platform/5307/timers.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,13 @@ void coldfire_tick(void)

/***************************************************************************/

static int ticks_per_intr;

void coldfire_timer_init(irq_handler_t handler)
{
__raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR));
__raw_writetrr(((MCF_BUSCLK / 16) / HZ), TA(MCFTIMER_TRR));
ticks_per_intr = (MCF_BUSCLK / 16) / HZ;
__raw_writetrr(ticks_per_intr - 1, TA(MCFTIMER_TRR));
__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));

Expand All @@ -81,11 +84,10 @@ void coldfire_timer_init(irq_handler_t handler)

unsigned long coldfire_timer_offset(void)
{
unsigned long trr, tcn, offset;
unsigned long tcn, offset;

tcn = __raw_readw(TA(MCFTIMER_TCN));
trr = __raw_readtrr(TA(MCFTIMER_TRR));
offset = (tcn * (1000000 / HZ)) / trr;
offset = ((tcn + 1) * (1000000 / HZ)) / ticks_per_intr;

/* Check if we just wrapped the counters and maybe missed a tick */
if ((offset < (1000000 / HZ / 2)) && mcf_timerirqpending(1))
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/ppc/syslib/qspan_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -365,13 +365,13 @@ int qspan_pcibios_find_class(unsigned int class_code, unsigned short index,
}

void __init
m8xx_pcibios_fixup(void))
m8xx_pcibios_fixup(void)
{
/* Lots to do here, all board and configuration specific. */
}

void __init
m8xx_setup_pci_ptrs(void))
m8xx_setup_pci_ptrs(void)
{
set_config_access_method(qspan);

Expand Down
8 changes: 4 additions & 4 deletions trunk/arch/sh64/kernel/pci_sh5.c
Original file line number Diff line number Diff line change
Expand Up @@ -521,10 +521,10 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
bus->resource[0]->start = PCIBIOS_MIN_IO;
bus->resource[1]->start = PCIBIOS_MIN_MEM;
#else
bus->resource[0]->end = 0
bus->resource[1]->end = 0
bus->resource[0]->start =0
bus->resource[1]->start = 0;
bus->resource[0]->end = 0;
bus->resource[1]->end = 0;
bus->resource[0]->start =0;
bus->resource[1]->start = 0;
#endif
/* Turn off downstream PF memory address range by default */
bus->resource[2]->start = 1024*1024;
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/um/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ config HIGHMEM
config KERNEL_STACK_ORDER
int "Kernel stack size order"
default 1 if 64BIT
range 1 10 if 64BIT
default 0 if !64BIT
help
This option determines the size of UML kernel stacks. They will
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/um/drivers/line.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
* Licensed under the GPL
*/

#include "linux/kernel.h"
#include "linux/sched.h"
#include "linux/slab.h"
#include "linux/list.h"
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/um/drivers/stderr_console.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/console.h>

Expand Down
1 change: 1 addition & 0 deletions trunk/arch/um/drivers/ubd_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#define MAJOR_NR UBD_MAJOR
#define UBD_SHIFT 4

#include "linux/kernel.h"
#include "linux/module.h"
#include "linux/blkdev.h"
#include "linux/hdreg.h"
Expand Down
39 changes: 17 additions & 22 deletions trunk/arch/um/kernel/exitcode.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/*
/*
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
* Licensed under the GPL
*/

#include "linux/kernel.h"
#include "linux/init.h"
#include "linux/ctype.h"
#include "linux/proc_fs.h"
Expand All @@ -24,11 +25,14 @@ static int read_proc_exitcode(char *page, char **start, off_t off,
val = uml_exitcode;
len = sprintf(page, "%d\n", val);
len -= off;
if(len <= off+count) *eof = 1;
if(len <= off+count)
*eof = 1;
*start = page + off;
if(len > count) len = count;
if(len < 0) len = 0;
return(len);
if(len > count)
len = count;
if(len < 0)
len = 0;
return len;
}

static int write_proc_exitcode(struct file *file, const char __user *buffer,
Expand All @@ -38,12 +42,14 @@ static int write_proc_exitcode(struct file *file, const char __user *buffer,
int tmp;

if(copy_from_user(buf, buffer, count))
return(-EFAULT);
return -EFAULT;

tmp = simple_strtol(buf, &end, 0);
if((*end != '\0') && !isspace(*end))
return(-EINVAL);
return -EINVAL;

uml_exitcode = tmp;
return(count);
return count;
}

static int make_proc_exitcode(void)
Expand All @@ -54,24 +60,13 @@ static int make_proc_exitcode(void)
if(ent == NULL){
printk(KERN_WARNING "make_proc_exitcode : Failed to register "
"/proc/exitcode\n");
return(0);
return 0;
}

ent->read_proc = read_proc_exitcode;
ent->write_proc = write_proc_exitcode;
return(0);

return 0;
}

__initcall(make_proc_exitcode);

/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/
3 changes: 2 additions & 1 deletion trunk/arch/x86_64/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -465,13 +465,14 @@ static unsigned int die_nest_count;

unsigned __kprobes long oops_begin(void)
{
int cpu = smp_processor_id();
int cpu;
unsigned long flags;

oops_enter();

/* racy, but better than risking deadlock. */
local_irq_save(flags);
cpu = smp_processor_id();
if (!spin_trylock(&die_lock)) {
if (cpu == die_owner)
/* nested oops. should stop eventually */;
Expand Down
Loading

0 comments on commit 9936ccb

Please sign in to comment.