Sparse complains that these signed bitfields look "dubious". The problem is that instead of being either 0 or 1 like people would expect, signed one bit variables like this are either 0 or -1. It doesn't cause a problem in this case but it's ugly so lets fix them. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- I just did this against linux next but it applies fine on top of Mathieu's recent patches. diff --git a/drivers/staging/lttng/lib/ringbuffer/backend_types.h b/drivers/staging/lttng/lib/ringbuffer/backend_types.h index 1d301de..019929a 100644 --- a/drivers/staging/lttng/lib/ringbuffer/backend_types.h +++ b/drivers/staging/lttng/lib/ringbuffer/backend_types.h @@ -65,7 +65,7 @@ struct channel_backend { * for writer. */ unsigned int buf_size_order; /* Order of buffer size */ - int extra_reader_sb:1; /* Bool: has extra reader subbuffer */ + unsigned int extra_reader_sb:1; /* Bool: has extra reader subbuffer */ struct lib_ring_buffer *buf; /* Channel per-cpu buffers */ unsigned long num_subbuf; /* Number of sub-buffers for writer */ diff --git a/drivers/staging/lttng/lib/ringbuffer/frontend_types.h b/drivers/staging/lttng/lib/ringbuffer/frontend_types.h index 5c7437f..9086c58 100644 --- a/drivers/staging/lttng/lib/ringbuffer/frontend_types.h +++ b/drivers/staging/lttng/lib/ringbuffer/frontend_types.h @@ -60,8 +60,8 @@ struct channel { struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */ struct notifier_block tick_nohz_notifier; /* CPU nohz notifier */ struct notifier_block hp_iter_notifier; /* hotplug iterator notifier */ - int cpu_hp_enable:1; /* Enable CPU hotplug notif. */ - int hp_iter_enable:1; /* Enable hp iter notif. */ + unsigned int cpu_hp_enable:1; /* Enable CPU hotplug notif. */ + unsigned int hp_iter_enable:1; /* Enable hp iter notif. */ wait_queue_head_t read_wait; /* reader wait queue */ wait_queue_head_t hp_wait; /* CPU hotplug wait queue */ int finalized; /* Has channel been finalized */ @@ -94,8 +94,8 @@ struct lib_ring_buffer_iter { ITER_NEXT_RECORD, ITER_PUT_SUBBUF, } state; - int allocated:1; - int read_open:1; /* Opened for reading ? */ + unsigned int allocated:1; + unsigned int read_open:1; /* Opened for reading ? */ }; /* ring buffer state */ @@ -138,9 +138,9 @@ struct lib_ring_buffer { unsigned long get_subbuf_consumed; /* Read-side consumed */ unsigned long prod_snapshot; /* Producer count snapshot */ unsigned long cons_snapshot; /* Consumer count snapshot */ - int get_subbuf:1; /* Sub-buffer being held by reader */ - int switch_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ - int read_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ + unsigned int get_subbuf:1; /* Sub-buffer being held by reader */ + unsigned int switch_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ + unsigned int read_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ }; static inline diff --git a/drivers/staging/lttng/ltt-events.h b/drivers/staging/lttng/ltt-events.h index 36b281a..3fc355d 100644 --- a/drivers/staging/lttng/ltt-events.h +++ b/drivers/staging/lttng/ltt-events.h @@ -191,7 +191,7 @@ struct ltt_event { } ftrace; } u; struct list_head list; /* Event list */ - int metadata_dumped:1; + unsigned int metadata_dumped:1; }; struct ltt_channel_ops { @@ -251,7 +251,7 @@ struct ltt_channel { struct ltt_event *sc_compat_unknown; struct ltt_event *sc_exit; /* for syscall exit */ int header_type; /* 0: unset, 1: compact, 2: large */ - int metadata_dumped:1; + unsigned int metadata_dumped:1; }; struct ltt_session { @@ -264,7 +264,7 @@ struct ltt_session { struct list_head list; /* Session list */ unsigned int free_chan_id; /* Next chan ID to allocate */ uuid_le uuid; /* Trace session unique ID */ - int metadata_dumped:1; + unsigned int metadata_dumped:1; }; struct ltt_session *ltt_session_create(void); _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel