Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 190798
b: refs/heads/master
c: cea0d76
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed May 12, 2010
1 parent e27b54a commit fd605c8
Show file tree
Hide file tree
Showing 47 changed files with 330 additions and 259 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: 0559a538899d48e7d730affb9df2abb13a7d9008
refs/heads/master: cea0d767c29669bf89f86e4aee46ef462d2ebae8
3 changes: 1 addition & 2 deletions trunk/Documentation/filesystems/proc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ address perms offset dev inode pathname
08049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
0804a000-0806b000 rw-p 00000000 00:00 0 [heap]
a7cb1000-a7cb2000 ---p 00000000 00:00 0
a7cb2000-a7eb2000 rw-p 00000000 00:00 0 [threadstack:001ff4b4]
a7cb2000-a7eb2000 rw-p 00000000 00:00 0
a7eb2000-a7eb3000 ---p 00000000 00:00 0
a7eb3000-a7ed5000 rw-p 00000000 00:00 0
a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
Expand Down Expand Up @@ -352,7 +352,6 @@ is not associated with a file:
[stack] = the stack of the main process
[vdso] = the "virtual dynamic shared object",
the kernel system call handler
[threadstack:xxxxxxxx] = the stack of the thread, xxxxxxxx is the stack size

or if empty, the mapping is anonymous.

Expand Down
27 changes: 13 additions & 14 deletions trunk/arch/x86/kernel/kprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -534,20 +534,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
struct kprobe_ctlblk *kcb;

addr = (kprobe_opcode_t *)(regs->ip - sizeof(kprobe_opcode_t));
if (*addr != BREAKPOINT_INSTRUCTION) {
/*
* The breakpoint instruction was removed right
* after we hit it. Another cpu has removed
* either a probepoint or a debugger breakpoint
* at this address. In either case, no further
* handling of this interrupt is appropriate.
* Back up over the (now missing) int3 and run
* the original instruction.
*/
regs->ip = (unsigned long)addr;
return 1;
}

/*
* We don't want to be preempted for the entire
* duration of kprobe processing. We conditionally
Expand Down Expand Up @@ -579,6 +565,19 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
setup_singlestep(p, regs, kcb, 0);
return 1;
}
} else if (*addr != BREAKPOINT_INSTRUCTION) {
/*
* The breakpoint instruction was removed right
* after we hit it. Another cpu has removed
* either a probepoint or a debugger breakpoint
* at this address. In either case, no further
* handling of this interrupt is appropriate.
* Back up over the (now missing) int3 and run
* the original instruction.
*/
regs->ip = (unsigned long)addr;
preempt_enable_no_resched();
return 1;
} else if (kprobe_running()) {
p = __get_cpu_var(current_kprobe);
if (p->break_handler && p->break_handler(p, regs)) {
Expand Down
90 changes: 1 addition & 89 deletions trunk/drivers/acpi/sleep.c
Original file line number Diff line number Diff line change
Expand Up @@ -475,101 +475,13 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.ident = "Lenovo ThinkPad X201[s]",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad T410",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad T510",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad W510",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad T410",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad T510",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad W510",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Lenovo ThinkPad X201",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
},
},
{
.callback = init_old_suspend_ordering,
.ident = "Panasonic CF51-2L",
.matches = {
Expand Down
18 changes: 9 additions & 9 deletions trunk/drivers/gpio/it8761e_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ static int it8761e_gpio_get(struct gpio_chip *gc, unsigned gpio_num)
u16 reg;
u8 bit;

bit = gpio_num % 7;
reg = (gpio_num >= 7) ? gpio_ba + 1 : gpio_ba;
bit = gpio_num % 8;
reg = (gpio_num >= 8) ? gpio_ba + 1 : gpio_ba;

return !!(inb(reg) & (1 << bit));
}
Expand All @@ -91,8 +91,8 @@ static int it8761e_gpio_direction_in(struct gpio_chip *gc, unsigned gpio_num)
u8 curr_dirs;
u8 io_reg, bit;

bit = gpio_num % 7;
io_reg = (gpio_num >= 7) ? GPIO2X_IO : GPIO1X_IO;
bit = gpio_num % 8;
io_reg = (gpio_num >= 8) ? GPIO2X_IO : GPIO1X_IO;

spin_lock(&sio_lock);

Expand All @@ -116,8 +116,8 @@ static void it8761e_gpio_set(struct gpio_chip *gc,
u8 curr_vals, bit;
u16 reg;

bit = gpio_num % 7;
reg = (gpio_num >= 7) ? gpio_ba + 1 : gpio_ba;
bit = gpio_num % 8;
reg = (gpio_num >= 8) ? gpio_ba + 1 : gpio_ba;

spin_lock(&sio_lock);

Expand All @@ -135,8 +135,8 @@ static int it8761e_gpio_direction_out(struct gpio_chip *gc,
{
u8 curr_dirs, io_reg, bit;

bit = gpio_num % 7;
io_reg = (gpio_num >= 7) ? GPIO2X_IO : GPIO1X_IO;
bit = gpio_num % 8;
io_reg = (gpio_num >= 8) ? GPIO2X_IO : GPIO1X_IO;

it8761e_gpio_set(gc, gpio_num, val);

Expand Down Expand Up @@ -200,7 +200,7 @@ static int __init it8761e_gpio_init(void)
return -EBUSY;

it8761e_gpio_chip.base = -1;
it8761e_gpio_chip.ngpio = 14;
it8761e_gpio_chip.ngpio = 16;

err = gpiochip_add(&it8761e_gpio_chip);
if (err < 0)
Expand Down
8 changes: 6 additions & 2 deletions trunk/drivers/gpu/drm/i915/i915_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -456,11 +456,15 @@ i915_error_object_create(struct drm_device *dev,

for (page = 0; page < page_count; page++) {
void *s, *d = kmalloc(PAGE_SIZE, GFP_ATOMIC);
unsigned long flags;

if (d == NULL)
goto unwind;
s = kmap_atomic(src_priv->pages[page], KM_USER0);
local_irq_save(flags);
s = kmap_atomic(src_priv->pages[page], KM_IRQ0);
memcpy(d, s, PAGE_SIZE);
kunmap_atomic(s, KM_USER0);
kunmap_atomic(s, KM_IRQ0);
local_irq_restore(flags);
dst->pages[page] = d;
}
dst->page_count = page_count;
Expand Down
19 changes: 10 additions & 9 deletions trunk/drivers/gpu/drm/radeon/radeon_state.c
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@ static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t *
if ((*cmd & RADEON_GMC_SRC_PITCH_OFFSET_CNTL) &&
(*cmd & RADEON_GMC_DST_PITCH_OFFSET_CNTL)) {
u32 *cmd3 = drm_buffer_pointer_to_dword(cmdbuf->buffer, 3);
offset = *cmd << 10;
offset = *cmd3 << 10;
if (radeon_check_and_fixup_offset
(dev_priv, file_priv, &offset)) {
DRM_ERROR("Invalid second packet offset\n");
Expand Down Expand Up @@ -2895,18 +2895,20 @@ static int radeon_cp_cmdbuf(struct drm_device *dev, void *data,
return rv;
rv = drm_buffer_copy_from_user(cmdbuf->buffer, buffer,
cmdbuf->bufsz);
if (rv)
if (rv) {
drm_buffer_free(cmdbuf->buffer);
return rv;
}
}
} else
goto done;

orig_nbox = cmdbuf->nbox;

if (dev_priv->microcode_version == UCODE_R300) {
int temp;
temp = r300_do_cp_cmdbuf(dev, file_priv, cmdbuf);

if (cmdbuf->bufsz != 0)
drm_buffer_free(cmdbuf->buffer);
drm_buffer_free(cmdbuf->buffer);

return temp;
}
Expand Down Expand Up @@ -3012,16 +3014,15 @@ static int radeon_cp_cmdbuf(struct drm_device *dev, void *data,
}
}

if (cmdbuf->bufsz != 0)
drm_buffer_free(cmdbuf->buffer);
drm_buffer_free(cmdbuf->buffer);

done:
DRM_DEBUG("DONE\n");
COMMIT_RING();
return 0;

err:
if (cmdbuf->bufsz != 0)
drm_buffer_free(cmdbuf->buffer);
drm_buffer_free(cmdbuf->buffer);
return -EINVAL;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/hwmon/hp_accel.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,8 +328,8 @@ static int lis3lv02d_remove(struct acpi_device *device, int type)
lis3lv02d_joystick_disable();
lis3lv02d_poweroff(&lis3_dev);

flush_work(&hpled_led.work);
led_classdev_unregister(&hpled_led.led_classdev);
flush_work(&hpled_led.work);

return lis3lv02d_remove_fs(&lis3_dev);
}
Expand Down
18 changes: 10 additions & 8 deletions trunk/drivers/mmc/host/atmel-mci.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ static int atmci_req_show(struct seq_file *s, void *v)
"CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n",
cmd->opcode, cmd->arg, cmd->flags,
cmd->resp[0], cmd->resp[1], cmd->resp[2],
cmd->resp[2], cmd->error);
cmd->resp[3], cmd->error);
if (data)
seq_printf(s, "DATA %u / %u * %u flg %x err %d\n",
data->bytes_xfered, data->blocks,
Expand All @@ -276,7 +276,7 @@ static int atmci_req_show(struct seq_file *s, void *v)
"CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n",
stop->opcode, stop->arg, stop->flags,
stop->resp[0], stop->resp[1], stop->resp[2],
stop->resp[2], stop->error);
stop->resp[3], stop->error);
}

spin_unlock_bh(&slot->host->lock);
Expand Down Expand Up @@ -569,9 +569,10 @@ static void atmci_dma_cleanup(struct atmel_mci *host)
{
struct mmc_data *data = host->data;

dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
((data->flags & MMC_DATA_WRITE)
? DMA_TO_DEVICE : DMA_FROM_DEVICE));
if (data)
dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
((data->flags & MMC_DATA_WRITE)
? DMA_TO_DEVICE : DMA_FROM_DEVICE));
}

static void atmci_stop_dma(struct atmel_mci *host)
Expand Down Expand Up @@ -1099,8 +1100,8 @@ static void atmci_command_complete(struct atmel_mci *host,
"command error: status=0x%08x\n", status);

if (cmd->data) {
host->data = NULL;
atmci_stop_dma(host);
host->data = NULL;
mci_writel(host, IDR, MCI_NOTBUSY
| MCI_TXRDY | MCI_RXRDY
| ATMCI_DATA_ERROR_FLAGS);
Expand Down Expand Up @@ -1293,6 +1294,7 @@ static void atmci_tasklet_func(unsigned long priv)
} else {
data->bytes_xfered = data->blocks * data->blksz;
data->error = 0;
mci_writel(host, IDR, ATMCI_DATA_ERROR_FLAGS);
}

if (!data->stop) {
Expand Down Expand Up @@ -1751,13 +1753,13 @@ static int __init atmci_probe(struct platform_device *pdev)
ret = -ENODEV;
if (pdata->slot[0].bus_width) {
ret = atmci_init_slot(host, &pdata->slot[0],
MCI_SDCSEL_SLOT_A, 0);
0, MCI_SDCSEL_SLOT_A);
if (!ret)
nr_slots++;
}
if (pdata->slot[1].bus_width) {
ret = atmci_init_slot(host, &pdata->slot[1],
MCI_SDCSEL_SLOT_B, 1);
1, MCI_SDCSEL_SLOT_B);
if (!ret)
nr_slots++;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/gianfar.c
Original file line number Diff line number Diff line change
Expand Up @@ -1649,6 +1649,7 @@ static void free_skb_resources(struct gfar_private *priv)
sizeof(struct rxbd8) * priv->total_rx_ring_size,
priv->tx_queue[0]->tx_bd_base,
priv->tx_queue[0]->tx_bd_dma_base);
skb_queue_purge(&priv->rx_recycle);
}

void gfar_start(struct net_device *dev)
Expand Down Expand Up @@ -2088,7 +2089,6 @@ static int gfar_close(struct net_device *dev)

disable_napi(priv);

skb_queue_purge(&priv->rx_recycle);
cancel_work_sync(&priv->reset_task);
stop_gfar(dev);

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/phy/micrel.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ static int kszphy_config_init(struct phy_device *phydev)

static struct phy_driver ks8001_driver = {
.phy_id = PHY_ID_KS8001,
.name = "Micrel KS8001",
.phy_id_mask = 0x00fffff0,
.features = PHY_BASIC_FEATURES,
.flags = PHY_POLL,
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/net/veth.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,6 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)
return NETDEV_TX_OK;

rx_drop:
kfree_skb(skb);
rcv_stats->rx_dropped++;
return NETDEV_TX_OK;
}
Expand Down
Loading

0 comments on commit fd605c8

Please sign in to comment.