Skip to content

Commit

Permalink
Merge branch 'master' of /home/greg/linux/git/torvalds-2.6/
Browse files Browse the repository at this point in the history
  • Loading branch information
Greg Kroah-Hartman committed Aug 6, 2006
2 parents c34c07d + 9f73763 commit dbd43d0
Show file tree
Hide file tree
Showing 36 changed files with 218 additions and 137 deletions.
5 changes: 2 additions & 3 deletions Documentation/sysctl/kernel.txt
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,8 @@ Controls the kernel's behaviour when an oops or BUG is encountered.

0: try to continue operation

1: delay a few seconds (to give klogd time to record the oops output) and
then panic. If the `panic' sysctl is also non-zero then the machine will
be rebooted.
1: panic immediatly. If the `panic' sysctl is also non-zero then the
machine will be rebooted.

==============================================================

Expand Down
8 changes: 8 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2648,6 +2648,14 @@ M: dbrownell@users.sourceforge.net
L: spi-devel-general@lists.sourceforge.net
S: Maintained

STABLE BRANCH:
P: Greg Kroah-Hartman
M: greg@kroah.com
P: Chris Wright
M: chrisw@sous-sol.org
L: stable@kernel.org
S: Maintained

TPM DEVICE DRIVER
P: Kylene Hall
M: kjhall@us.ibm.com
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 18
EXTRAVERSION = -rc3
EXTRAVERSION = -rc4
NAME=Crazed Snow-Weasel

# *DOCUMENTATION*
Expand Down
10 changes: 7 additions & 3 deletions arch/sh/kernel/cpu/sh4/sq.c
Original file line number Diff line number Diff line change
Expand Up @@ -421,18 +421,22 @@ static struct miscdevice sq_dev = {

static int __init sq_api_init(void)
{
int ret;
printk(KERN_NOTICE "sq: Registering store queue API.\n");

#ifdef CONFIG_PROC_FS
create_proc_read_entry("sq_mapping", 0, 0, sq_mapping_read_proc, 0);
#endif

return misc_register(&sq_dev);
ret = misc_register(&sq_dev);
if (ret)
remove_proc_entry("sq_mapping", NULL);

return ret;
}

static void __exit sq_api_exit(void)
{
misc_deregister(&sq_dev);
remove_proc_entry("sq_mapping", NULL);
}

module_init(sq_api_init);
Expand Down
2 changes: 1 addition & 1 deletion arch/x86_64/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ int __cpuinit init_smp_flush(void)
{
int i;
for_each_cpu_mask(i, cpu_possible_map) {
spin_lock_init(&per_cpu(flush_state.tlbstate_lock, i));
spin_lock_init(&per_cpu(flush_state, i).tlbstate_lock);
}
return 0;
}
Expand Down
13 changes: 5 additions & 8 deletions drivers/acpi/acpi_memhotplug.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,15 @@ acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
struct acpi_memory_info *info, *n;


if (!list_empty(&mem_device->res_list))
return 0;

status = acpi_walk_resources(mem_device->device->handle, METHOD_NAME__CRS,
acpi_memory_get_resource, mem_device);
if (ACPI_FAILURE(status)) {
list_for_each_entry_safe(info, n, &mem_device->res_list, list)
kfree(info);
INIT_LIST_HEAD(&mem_device->res_list);
return -EINVAL;
}

Expand Down Expand Up @@ -230,17 +234,10 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
* (i.e. memory-hot-remove function)
*/
list_for_each_entry(info, &mem_device->res_list, list) {
u64 start_pfn, end_pfn;

start_pfn = info->start_addr >> PAGE_SHIFT;
end_pfn = (info->start_addr + info->length - 1) >> PAGE_SHIFT;

if (pfn_valid(start_pfn) || pfn_valid(end_pfn)) {
/* already enabled. try next area */
if (info->enabled) { /* just sanity check...*/
num_enabled++;
continue;
}

result = add_memory(node, info->start_addr, info->length);
if (result)
continue;
Expand Down
8 changes: 3 additions & 5 deletions drivers/char/hvsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,8 @@ static void hvsi_recv_control(struct hvsi_struct *hp, uint8_t *packet,
/* CD went away; no more connection */
pr_debug("hvsi%i: CD dropped\n", hp->index);
hp->mctrl &= TIOCM_CD;
if (!(hp->tty->flags & CLOCAL))
/* If userland hasn't done an open(2) yet, hp->tty is NULL. */
if (hp->tty && !(hp->tty->flags & CLOCAL))
*to_hangup = hp->tty;
}
break;
Expand Down Expand Up @@ -986,10 +987,7 @@ static void hvsi_write_worker(void *arg)
start_j = 0;
#endif /* DEBUG */
wake_up_all(&hp->emptyq);
if (test_bit(TTY_DO_WRITE_WAKEUP, &hp->tty->flags)
&& hp->tty->ldisc.write_wakeup)
hp->tty->ldisc.write_wakeup(hp->tty);
wake_up_interruptible(&hp->tty->write_wait);
tty_wakeup(hp->tty);
}

out:
Expand Down
51 changes: 24 additions & 27 deletions drivers/char/hw_random/omap-rng.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/random.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/hw_random.h>

#include <asm/io.h>
#include <asm/hardware/clock.h>

#define RNG_OUT_REG 0x00 /* Output register */
#define RNG_STAT_REG 0x04 /* Status register
Expand All @@ -52,7 +52,7 @@

static void __iomem *rng_base;
static struct clk *rng_ick;
static struct device *rng_dev;
static struct platform_device *rng_dev;

static u32 omap_rng_read_reg(int reg)
{
Expand Down Expand Up @@ -83,9 +83,8 @@ static struct hwrng omap_rng_ops = {
.data_read = omap_rng_data_read,
};

static int __init omap_rng_probe(struct device *dev)
static int __init omap_rng_probe(struct platform_device *pdev)
{
struct platform_device *pdev = to_platform_device(dev);
struct resource *res, *mem;
int ret;

Expand All @@ -95,16 +94,14 @@ static int __init omap_rng_probe(struct device *dev)
*/
BUG_ON(rng_dev);

if (cpu_is_omap24xx()) {
if (cpu_is_omap24xx()) {
rng_ick = clk_get(NULL, "rng_ick");
if (IS_ERR(rng_ick)) {
dev_err(dev, "Could not get rng_ick\n");
dev_err(&pdev->dev, "Could not get rng_ick\n");
ret = PTR_ERR(rng_ick);
return ret;
}
else {
clk_use(rng_ick);
}
} else
clk_enable(rng_ick);
}

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
Expand All @@ -117,7 +114,7 @@ static int __init omap_rng_probe(struct device *dev)
if (mem == NULL)
return -EBUSY;

dev_set_drvdata(dev, mem);
dev_set_drvdata(&pdev->dev, mem);
rng_base = (u32 __iomem *)io_p2v(res->start);

ret = hwrng_register(&omap_rng_ops);
Expand All @@ -127,25 +124,25 @@ static int __init omap_rng_probe(struct device *dev)
return ret;
}

dev_info(dev, "OMAP Random Number Generator ver. %02x\n",
dev_info(&pdev->dev, "OMAP Random Number Generator ver. %02x\n",
omap_rng_read_reg(RNG_REV_REG));
omap_rng_write_reg(RNG_MASK_REG, 0x1);

rng_dev = dev;
rng_dev = pdev;

return 0;
}

static int __exit omap_rng_remove(struct device *dev)
static int __exit omap_rng_remove(struct platform_device *pdev)
{
struct resource *mem = dev_get_drvdata(dev);
struct resource *mem = dev_get_drvdata(&pdev->dev);

hwrng_unregister(&omap_rng_ops);

omap_rng_write_reg(RNG_MASK_REG, 0x0);

if (cpu_is_omap24xx()) {
clk_unuse(rng_ick);
clk_disable(rng_ick);
clk_put(rng_ick);
}

Expand All @@ -157,18 +154,16 @@ static int __exit omap_rng_remove(struct device *dev)

#ifdef CONFIG_PM

static int omap_rng_suspend(struct device *dev, pm_message_t message, u32 level)
static int omap_rng_suspend(struct platform_device *pdev, pm_message_t message)
{
omap_rng_write_reg(RNG_MASK_REG, 0x0);

return 0;
}

static int omap_rng_resume(struct device *dev, pm_message_t message, u32 level)
static int omap_rng_resume(struct platform_device *pdev)
{
omap_rng_write_reg(RNG_MASK_REG, 0x1);

return 1;
return 0;
}

#else
Expand All @@ -179,9 +174,11 @@ static int omap_rng_resume(struct device *dev, pm_message_t message, u32 level)
#endif


static struct device_driver omap_rng_driver = {
.name = "omap_rng",
.bus = &platform_bus_type,
static struct platform_driver omap_rng_driver = {
.driver = {
.name = "omap_rng",
.owner = THIS_MODULE,
},
.probe = omap_rng_probe,
.remove = __exit_p(omap_rng_remove),
.suspend = omap_rng_suspend,
Expand All @@ -193,12 +190,12 @@ static int __init omap_rng_init(void)
if (!cpu_is_omap16xx() && !cpu_is_omap24xx())
return -ENODEV;

return driver_register(&omap_rng_driver);
return platform_driver_register(&omap_rng_driver);
}

static void __exit omap_rng_exit(void)
{
driver_unregister(&omap_rng_driver);
platform_driver_unregister(&omap_rng_driver);
}

module_init(omap_rng_init);
Expand Down
1 change: 1 addition & 0 deletions drivers/edac/edac_mc.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <linux/rcupdate.h>
#include <linux/completion.h>
#include <linux/kobject.h>
#include <linux/platform_device.h>

#define EDAC_MC_LABEL_LEN 31
#define MC_PROC_NAME_MAX_LEN 7
Expand Down
7 changes: 5 additions & 2 deletions drivers/i2c/busses/scx200_acb.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ static void scx200_acb_poll(struct scx200_acb_iface *iface)
unsigned long timeout;

timeout = jiffies + POLL_TIMEOUT;
while (time_before(jiffies, timeout)) {
while (1) {
status = inb(ACBST);

/* Reset the status register to avoid the hang */
Expand All @@ -242,7 +242,10 @@ static void scx200_acb_poll(struct scx200_acb_iface *iface)
scx200_acb_machine(iface, status);
return;
}
yield();
if (time_after(jiffies, timeout))
break;
cpu_relax();
cond_resched();
}

dev_err(&iface->adapter.dev, "timeout in state %s\n",
Expand Down
3 changes: 3 additions & 0 deletions drivers/ieee1394/sbp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -2515,6 +2515,9 @@ static int sbp2scsi_slave_configure(struct scsi_device *sdev)
sdev->skip_ms_page_8 = 1;
if (scsi_id->workarounds & SBP2_WORKAROUND_FIX_CAPACITY)
sdev->fix_capacity = 1;
if (scsi_id->ne->guid_vendor_id == 0x0010b9 && /* Maxtor's OUI */
(sdev->type == TYPE_DISK || sdev->type == TYPE_RBC))
sdev->allow_restart = 1;
return 0;
}

Expand Down
1 change: 0 additions & 1 deletion drivers/isdn/hardware/eicon/divasync.h
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,6 @@ typedef struct
#define NO_ORDER_CHECK_MASK 0x00000010
#define LOW_CHANNEL_MASK 0x00000020
#define NO_HSCX30_MASK 0x00000040
#define MODE_MASK 0x00000080
#define SET_BOARD 0x00001000
#define SET_CRC4 0x00030000
#define SET_L1_TRISTATE 0x00040000
Expand Down
6 changes: 3 additions & 3 deletions drivers/md/linear.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
goto out;
}

min_spacing = mddev->array_size;
min_spacing = conf->array_size;
sector_div(min_spacing, PAGE_SIZE/sizeof(struct dev_info *));

/* min_spacing is the minimum spacing that will fit the hash
Expand All @@ -171,7 +171,7 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
* that is larger than min_spacing as use the size of that as
* the actual spacing
*/
conf->hash_spacing = mddev->array_size;
conf->hash_spacing = conf->array_size;
for (i=0; i < cnt-1 ; i++) {
sector_t sz = 0;
int j;
Expand Down Expand Up @@ -228,7 +228,7 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
curr_offset = 0;
i = 0;
for (curr_offset = 0;
curr_offset < mddev->array_size;
curr_offset < conf->array_size;
curr_offset += conf->hash_spacing) {

while (i < mddev->raid_disks-1 &&
Expand Down
8 changes: 8 additions & 0 deletions drivers/pnp/pnpacpi/rsparser.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,9 @@ pnpacpi_parse_allocated_address_space(struct pnp_resource_table *res_table,
return;
}

if (p->producer_consumer == ACPI_PRODUCER)
return;

if (p->resource_type == ACPI_MEMORY_RANGE)
pnpacpi_parse_allocated_memresource(res_table,
p->minimum, p->address_length);
Expand Down Expand Up @@ -252,9 +255,14 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
break;

case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
if (res->data.ext_address64.producer_consumer == ACPI_PRODUCER)
return AE_OK;
break;

case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
if (res->data.extended_irq.producer_consumer == ACPI_PRODUCER)
return AE_OK;

for (i = 0; i < res->data.extended_irq.interrupt_count; i++) {
pnpacpi_parse_allocated_irqresource(res_table,
res->data.extended_irq.interrupts[i],
Expand Down
Loading

0 comments on commit dbd43d0

Please sign in to comment.