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

Commit f6f7b58e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] airspy: fix bit set/clean mess on s->flags



As warned by smatch:
	drivers/media/usb/airspy/airspy.c:541 airspy_start_streaming() warn: test_bit() takes a bit number
	drivers/media/usb/airspy/airspy.c:569 airspy_start_streaming() warn: test_bit() takes a bit number
	drivers/media/usb/airspy/airspy.c:605 airspy_stop_streaming() warn: test_bit() takes a bit number

set_bit/clear_bit argument is the bit number, and not 1 << bit.

Thankfully, one of the bits was not used (URB_BUF), with would
otherwise cause a driver misfunctioning.

Clean this mess by always using set_bit/clear_bit/test_bit and
removing the unused bit.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent b44d3669
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -104,9 +104,8 @@ struct airspy_frame_buf {
};

struct airspy {
#define POWER_ON           (1 << 1)
#define URB_BUF            (1 << 2)
#define USB_STATE_URB_BUF  (1 << 3)
#define POWER_ON	   1
#define USB_STATE_URB_BUF  2
	unsigned long flags;

	struct device *dev;
@@ -359,7 +358,7 @@ static int airspy_submit_urbs(struct airspy *s)

static int airspy_free_stream_bufs(struct airspy *s)
{
	if (s->flags & USB_STATE_URB_BUF) {
	if (test_bit(USB_STATE_URB_BUF, &s->flags)) {
		while (s->buf_num) {
			s->buf_num--;
			dev_dbg(s->dev, "free buf=%d\n", s->buf_num);
@@ -368,7 +367,7 @@ static int airspy_free_stream_bufs(struct airspy *s)
					  s->dma_addr[s->buf_num]);
		}
	}
	s->flags &= ~USB_STATE_URB_BUF;
	clear_bit(USB_STATE_URB_BUF, &s->flags);

	return 0;
}
@@ -394,7 +393,7 @@ static int airspy_alloc_stream_bufs(struct airspy *s)
		dev_dbg(s->dev, "alloc buf=%d %p (dma %llu)\n", s->buf_num,
				s->buf_list[s->buf_num],
				(long long)s->dma_addr[s->buf_num]);
		s->flags |= USB_STATE_URB_BUF;
		set_bit(USB_STATE_URB_BUF, &s->flags);
	}

	return 0;