Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbe9ee00 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'x86/urgent' into x86/cleanups

parents 0bd7b798 10db4ef7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -167,9 +167,12 @@ config GENERIC_PENDING_IRQ
config X86_SMP
	bool
	depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
	select USE_GENERIC_SMP_HELPERS
	default y

config USE_GENERIC_SMP_HELPERS
	def_bool y
	depends on SMP

config X86_32_SMP
	def_bool y
	depends on X86_32 && SMP
+0 −0

File moved.

+21 −4
Original line number Diff line number Diff line
@@ -236,17 +236,33 @@ static inline struct ds_context *ds_alloc_context(struct task_struct *task)
	struct ds_context *context = *p_context;

	if (!context) {
		spin_unlock(&ds_lock);

		context = kzalloc(sizeof(*context), GFP_KERNEL);

		if (!context)
		if (!context) {
			spin_lock(&ds_lock);
			return NULL;
		}

		context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL);
		if (!context->ds) {
			kfree(context);
			spin_lock(&ds_lock);
			return NULL;
		}

		spin_lock(&ds_lock);
		/*
		 * Check for race - another CPU could have allocated
		 * it meanwhile:
		 */
		if (*p_context) {
			kfree(context->ds);
			kfree(context);
			return *p_context;
		}

		*p_context = context;

		context->this = p_context;
@@ -384,14 +400,15 @@ static int ds_request(struct task_struct *task, void *base, size_t size,

	spin_lock(&ds_lock);

	if (!check_tracer(task))
		return -EPERM;

	error = -ENOMEM;
	context = ds_alloc_context(task);
	if (!context)
		goto out_unlock;

	error = -EPERM;
	if (!check_tracer(task))
		goto out_unlock;

	error = -EALREADY;
	if (context->owner[qual] == current)
		goto out_unlock;
+1 −8
Original line number Diff line number Diff line
@@ -250,31 +250,24 @@ int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
{
	struct acpi_table_header *header = NULL;
	int i = 0;
	acpi_size tbl_size;

	while (ACPI_SUCCESS(acpi_get_table_with_size("OEM1", i++, &header, &tbl_size))) {
	while (ACPI_SUCCESS(acpi_get_table("OEM1", i++, &header))) {
		if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) {
			struct oem_table *t = (struct oem_table *)header;

			oem_addrX = t->OEMTableAddr;
			oem_size = t->OEMTableSize;
			early_acpi_os_unmap_memory(header, tbl_size);

			*oem_addr = (unsigned long)__acpi_map_table(oem_addrX,
								    oem_size);
			return 0;
		}
		early_acpi_os_unmap_memory(header, tbl_size);
	}
	return -1;
}

void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
{
	if (!oem_addr)
		return;

	__acpi_unmap_table((char *)oem_addr, oem_size);
}
#endif

+4 −0
Original line number Diff line number Diff line
@@ -46,7 +46,9 @@ static __cpuinit void check_tsc_warp(void)
	cycles_t start, now, prev, end;
	int i;

	rdtsc_barrier();
	start = get_cycles();
	rdtsc_barrier();
	/*
	 * The measurement runs for 20 msecs:
	 */
@@ -61,7 +63,9 @@ static __cpuinit void check_tsc_warp(void)
		 */
		__raw_spin_lock(&sync_lock);
		prev = last_tsc;
		rdtsc_barrier();
		now = get_cycles();
		rdtsc_barrier();
		last_tsc = now;
		__raw_spin_unlock(&sync_lock);

Loading