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

Commit 77d381af authored by Martin Kaiser's avatar Martin Kaiser Committed by Mauro Carvalho Chehab
Browse files

[media] lirc: use kfifo_initialized() on lirc_buffer's fifo



We can use kfifo_initialized() to check if the fifo in lirc_buffer is
initialized or not. There's no need to have a dedicated fifo status
variable in lirc_buffer.

[m.chehab@samsung.com: add the same change to lirc_zilog, to avoid
 breaking compilation of staging drivers]
Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 37314528
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ static void release_ir_device(struct kref *ref)
		lirc_unregister_driver(ir->l.minor);
		ir->l.minor = MAX_IRCTL_DEVICES;
	}
	if (ir->rbuf.fifo_initialized)
	if (kfifo_initialized(&ir->rbuf.fifo))
		lirc_buffer_free(&ir->rbuf);
	list_del(&ir->list);
	kfree(ir);
+2 −6
Original line number Diff line number Diff line
@@ -29,14 +29,13 @@ struct lirc_buffer {
	/* Using chunks instead of bytes pretends to simplify boundary checking
	 * And should allow for some performance fine tunning later */
	struct kfifo fifo;
	u8 fifo_initialized;
};

static inline void lirc_buffer_clear(struct lirc_buffer *buf)
{
	unsigned long flags;

	if (buf->fifo_initialized) {
	if (kfifo_initialized(&buf->fifo)) {
		spin_lock_irqsave(&buf->fifo_lock, flags);
		kfifo_reset(&buf->fifo);
		spin_unlock_irqrestore(&buf->fifo_lock, flags);
@@ -56,17 +55,14 @@ static inline int lirc_buffer_init(struct lirc_buffer *buf,
	buf->chunk_size = chunk_size;
	buf->size = size;
	ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
	if (ret == 0)
		buf->fifo_initialized = 1;

	return ret;
}

static inline void lirc_buffer_free(struct lirc_buffer *buf)
{
	if (buf->fifo_initialized) {
	if (kfifo_initialized(&buf->fifo)) {
		kfifo_free(&buf->fifo);
		buf->fifo_initialized = 0;
	} else
		WARN(1, "calling %s on an uninitialized lirc_buffer\n",
		     __func__);