Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 165165
b: refs/heads/master
c: 8aeb0a3
h: refs/heads/master
i:
  165163: 4e1473f
v: v3
  • Loading branch information
Len Brown committed Sep 1, 2009
1 parent a9dfe99 commit 5a5996c
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 14 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: eb0ca849863ecdc593ba7faa95fda5695af891c8
refs/heads/master: 8aeb0a352af7eb26863e53c203eeb852fd4590c3
2 changes: 1 addition & 1 deletion trunk/arch/parisc/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
/* Kill the user process later */
regs->iaoq[0] = 0 | 3;
regs->iaoq[1] = regs->iaoq[0] + 4;
regs->iasq[0] = regs->iasq[0] = regs->sr[7];
regs->iasq[0] = regs->iasq[1] = regs->sr[7];
regs->gr[0] &= ~PSW_B;
return;
}
Expand Down
10 changes: 10 additions & 0 deletions trunk/arch/x86/kernel/apic/probe_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
NULL,
};

static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
{
return hard_smp_processor_id() >> index_msb;
}

/*
* Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
*/
Expand All @@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
}

if (is_vsmp_box()) {
/* need to update phys_pkg_id */
apic->phys_pkg_id = apicid_phys_pkg_id;
}

/*
* Now that apic routing model is selected, configure the
* fault handling for intr remapping.
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/x86/xen/enlighten.c
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ static __init void xen_init_cpuid_mask(void)
(1 << X86_FEATURE_ACPI)); /* disable ACPI */

ax = 1;
cx = 0;
xen_cpuid(&ax, &bx, &cx, &dx);

/* cpuid claims we support xsave; try enabling it to see what happens */
Expand Down Expand Up @@ -1059,6 +1060,7 @@ asmlinkage void __init xen_start_kernel(void)
/* set up basic CPUID stuff */
cpu_detect(&new_cpu_data);
new_cpu_data.hard_math = 1;
new_cpu_data.wp_works_ok = 1;
new_cpu_data.x86_capability[0] = cpuid_edx(1);
#endif

Expand Down
12 changes: 12 additions & 0 deletions trunk/drivers/acpi/acpica/exstorob.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ acpi_ex_store_buffer_to_buffer(union acpi_operand_object *source_desc,

ACPI_FUNCTION_TRACE_PTR(ex_store_buffer_to_buffer, source_desc);

/* If Source and Target are the same, just return */

if (source_desc == target_desc) {
return_ACPI_STATUS(AE_OK);
}

/* We know that source_desc is a buffer by now */

buffer = ACPI_CAST_PTR(u8, source_desc->buffer.pointer);
Expand Down Expand Up @@ -161,6 +167,12 @@ acpi_ex_store_string_to_string(union acpi_operand_object *source_desc,

ACPI_FUNCTION_TRACE_PTR(ex_store_string_to_string, source_desc);

/* If Source and Target are the same, just return */

if (source_desc == target_desc) {
return_ACPI_STATUS(AE_OK);
}

/* We know that source_desc is a string by now */

buffer = ACPI_CAST_PTR(u8, source_desc->string.pointer);
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/acpi/pci_slot.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ ACPI_MODULE_NAME("pci_slot");
MY_NAME , ## arg); \
} while (0)

#define SLOT_NAME_SIZE 20 /* Inspired by #define in acpiphp.h */
#define SLOT_NAME_SIZE 21 /* Inspired by #define in acpiphp.h */

struct acpi_pci_slot {
acpi_handle root_handle; /* handle of the root bridge */
Expand Down Expand Up @@ -149,7 +149,7 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
return AE_OK;
}

snprintf(name, sizeof(name), "%u", (u32)sun);
snprintf(name, sizeof(name), "%llu", sun);
pci_slot = pci_create_slot(pci_bus, device, name, NULL);
if (IS_ERR(pci_slot)) {
err("pci_create_slot returned %ld\n", PTR_ERR(pci_slot));
Expand Down
7 changes: 5 additions & 2 deletions trunk/drivers/acpi/video.c
Original file line number Diff line number Diff line change
Expand Up @@ -2004,8 +2004,11 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
status = acpi_remove_notify_handler(device->dev->handle,
ACPI_DEVICE_NOTIFY,
acpi_video_device_notify);
sysfs_remove_link(&device->backlight->dev.kobj, "device");
backlight_device_unregister(device->backlight);
if (device->backlight) {
sysfs_remove_link(&device->backlight->dev.kobj, "device");
backlight_device_unregister(device->backlight);
device->backlight = NULL;
}
if (device->cdev) {
sysfs_remove_link(&device->dev->dev.kobj,
"thermal_cooling");
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/platform/x86/toshiba_acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ static void bt_rfkill_poll(struct rfkill *rfkill, void *data)
if (hci_result != HCI_SUCCESS) {
/* Can't do anything useful */
mutex_unlock(&dev->mutex);
return;
}

new_rfk_state = value;
Expand Down
20 changes: 14 additions & 6 deletions trunk/fs/notify/inotify/inotify_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,8 @@ static struct fsnotify_event *get_one_event(struct fsnotify_group *group,

event = fsnotify_peek_notify_event(group);

event_size += roundup(event->name_len, event_size);
if (event->name_len)
event_size += roundup(event->name_len + 1, event_size);

if (event_size > count)
return ERR_PTR(-EINVAL);
Expand All @@ -180,7 +181,7 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
struct fsnotify_event_private_data *fsn_priv;
struct inotify_event_private_data *priv;
size_t event_size = sizeof(struct inotify_event);
size_t name_len;
size_t name_len = 0;

/* we get the inotify watch descriptor from the event private data */
spin_lock(&event->lock);
Expand All @@ -196,10 +197,12 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
inotify_free_event_priv(fsn_priv);
}

/* round up event->name_len so it is a multiple of event_size
/*
* round up event->name_len so it is a multiple of event_size
* plus an extra byte for the terminating '\0'.
*/
name_len = roundup(event->name_len + 1, event_size);
if (event->name_len)
name_len = roundup(event->name_len + 1, event_size);
inotify_event.len = name_len;

inotify_event.mask = inotify_mask_to_arg(event->mask);
Expand Down Expand Up @@ -325,8 +328,9 @@ static long inotify_ioctl(struct file *file, unsigned int cmd,
list_for_each_entry(holder, &group->notification_list, event_list) {
event = holder->event;
send_len += sizeof(struct inotify_event);
send_len += roundup(event->name_len,
sizeof(struct inotify_event));
if (event->name_len)
send_len += roundup(event->name_len + 1,
sizeof(struct inotify_event));
}
mutex_unlock(&group->notification_mutex);
ret = put_user(send_len, (int __user *) p);
Expand Down Expand Up @@ -587,6 +591,10 @@ static int inotify_new_watch(struct fsnotify_group *group,
/* match the ref from fsnotify_init_markentry() */
fsnotify_put_mark(&tmp_ientry->fsn_entry);

/* if this mark added a new event update the group mask */
if (mask & ~group->mask)
fsnotify_recalc_group_mask(group);

out_err:
if (ret < 0)
kmem_cache_free(inotify_inode_mark_cachep, tmp_ientry);
Expand Down
7 changes: 5 additions & 2 deletions trunk/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -1274,6 +1274,10 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect,
struct module_notes_attrs *notes_attrs;
struct bin_attribute *nattr;

/* failed to create section attributes, so can't create notes */
if (!mod->sect_attrs)
return;

/* Count notes sections and allocate structures. */
notes = 0;
for (i = 0; i < nsect; i++)
Expand Down Expand Up @@ -2355,8 +2359,7 @@ static noinline struct module *load_module(void __user *umod,
if (err < 0)
goto unlink;
add_sect_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
if (mod->sect_attrs)
add_notes_attrs(mod, hdr->e_shnum, secstrings, sechdrs);
add_notes_attrs(mod, hdr->e_shnum, secstrings, sechdrs);

/* Get rid of temporary copy */
vfree(hdr);
Expand Down
1 change: 1 addition & 0 deletions trunk/net/sunrpc/clnt.c
Original file line number Diff line number Diff line change
Expand Up @@ -937,6 +937,7 @@ static inline void
rpc_task_force_reencode(struct rpc_task *task)
{
task->tk_rqstp->rq_snd_buf.len = 0;
task->tk_rqstp->rq_bytes_sent = 0;
}

static inline void
Expand Down

0 comments on commit 5a5996c

Please sign in to comment.