Unverified Commit b4b5181c authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!8893 [sync] PR-8531: gpiolib: cdev: fix uninitialised kfifo

parents cd8d2a01 f4d9e88d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -819,6 +819,8 @@ static int edge_detector_update(struct line *line,
				unsigned int line_idx,
				u64 eflags, bool polarity_change)
{
	u64 errflags;
	int ret;
	unsigned int debounce_period_us =
		gpio_v2_line_config_debounce_period(lc, line_idx);

@@ -830,6 +832,18 @@ static int edge_detector_update(struct line *line,
	if (debounce_period_us && READ_ONCE(line->sw_debounced)) {
		line->eflags = eflags;
		WRITE_ONCE(line->desc->debounce_period_us, debounce_period_us);
		/*
		 * ensure event fifo is initialised if edge detection
		 * is now enabled.
		 */
		errflags = eflags & GPIO_V2_LINE_EDGE_FLAGS;
		if (errflags && !kfifo_initialized(&line->req->events)) {
			ret = kfifo_alloc(&line->req->events,
					  line->req->event_buffer_size,
					  GFP_KERNEL);
			if (ret)
				return ret;
		}
		return 0;
	}