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

Commit cae042a7 authored by Nick Piggin's avatar Nick Piggin Committed by Robert Richter
Browse files

oprofile: fix memory ordering



Regular bitops don't work as locks on all architectures.

Also: can use non-atomic unlock as no concurrent stores to the word.

Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
parent fa448d60
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
	if (!capable(CAP_SYS_ADMIN))
		return -EPERM;

	if (test_and_set_bit(0, &buffer_opened))
	if (test_and_set_bit_lock(0, &buffer_opened))
		return -EBUSY;

	/* Register as a user of dcookies
@@ -129,7 +129,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
fail:
	dcookie_unregister(file->private_data);
out:
	clear_bit(0, &buffer_opened);
	__clear_bit_unlock(0, &buffer_opened);
	return err;
}

@@ -141,7 +141,7 @@ static int event_buffer_release(struct inode *inode, struct file *file)
	dcookie_unregister(file->private_data);
	buffer_pos = 0;
	atomic_set(&buffer_ready, 0);
	clear_bit(0, &buffer_opened);
	__clear_bit_unlock(0, &buffer_opened);
	return 0;
}