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: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Showing the changes to include/media/lirc_dev.h (1 of 2 files). Show all
Unified · Split
| @@ -29,14 +29,13 @@ struct lirc_buffer { · 28 unmodified lines | ||
| 29 | 29 | /* Using chunks instead of bytes pretends to simplify boundary checking |
| 30 | 30 | * And should allow for some performance fine tunning later */ |
| 31 | 31 | struct kfifo fifo; |
| 32 | − u8 fifo_initialized; | |
| 33 | 32 | }; |
| 34 | 33 | |
| 35 | 34 | static inline void lirc_buffer_clear(struct lirc_buffer *buf) |
| 36 | 35 | { |
| 37 | 36 | unsigned long flags; |
| 38 | 37 | |
| 39 | − if (buf->fifo_initialized) { | |
| 38 | + if (kfifo_initialized(&buf->fifo)) { | |
| 40 | 39 | spin_lock_irqsave(&buf->fifo_lock, flags); |
| 41 | 40 | kfifo_reset(&buf->fifo); |
| 42 | 41 | spin_unlock_irqrestore(&buf->fifo_lock, flags); |
| @@ -56,17 +55,14 @@ static inline int lirc_buffer_init(struct lirc_buffer *buf, · 13 unmodified lines | ||
| 56 | 55 | buf->chunk_size = chunk_size; |
| 57 | 56 | buf->size = size; |
| 58 | 57 | ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL); |
| 59 | − if (ret == 0) | |
| 60 | − buf->fifo_initialized = 1; | |
| 61 | 58 | |
| 62 | 59 | return ret; |
| 63 | 60 | } |
| 64 | 61 | |
| 65 | 62 | static inline void lirc_buffer_free(struct lirc_buffer *buf) |
| 66 | 63 | { |
| 67 | − if (buf->fifo_initialized) { | |
| 64 | + if (kfifo_initialized(&buf->fifo)) { | |
| 68 | 65 | kfifo_free(&buf->fifo); |
| 69 | − buf->fifo_initialized = 0; | |
| 70 | 66 | } else |
| 71 | 67 | WARN(1, "calling %s on an uninitialized lirc_buffer\n", |
| 72 | 68 | __func__); |