Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

greybus: connection: prevent drivers from specifying core flags

Prevent drivers from specifying core flags (currently only
GB_CONNECTION_FLAG_CONTROL) when creating connections.

Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>

authored by

Johan Hovold and committed by
Greg Kroah-Hartman
1ba30c33 6910fa2d

+6 -4
+4 -4
drivers/staging/greybus/connection.c
··· 260 260 { 261 261 struct gb_interface *intf = bundle->intf; 262 262 263 + if (WARN_ON_ONCE(flags & GB_CONNECTION_FLAG_CORE_MASK)) 264 + flags &= ~GB_CONNECTION_FLAG_CORE_MASK; 265 + 263 266 return _gb_connection_create(intf->hd, -1, intf, bundle, cport_id, 264 267 handler, flags); 265 268 } ··· 272 269 gb_connection_create_offloaded(struct gb_bundle *bundle, u16 cport_id, 273 270 unsigned long flags) 274 271 { 275 - struct gb_interface *intf = bundle->intf; 276 - 277 272 flags |= GB_CONNECTION_FLAG_OFFLOADED; 278 273 279 - return _gb_connection_create(intf->hd, -1, intf, bundle, cport_id, 280 - NULL, flags); 274 + return gb_connection_create_flags(bundle, cport_id, NULL, flags); 281 275 } 282 276 EXPORT_SYMBOL_GPL(gb_connection_create_offloaded); 283 277
+2
drivers/staging/greybus/connection.h
··· 19 19 #define GB_CONNECTION_FLAG_CDSI1 BIT(3) 20 20 #define GB_CONNECTION_FLAG_CONTROL BIT(4) 21 21 22 + #define GB_CONNECTION_FLAG_CORE_MASK GB_CONNECTION_FLAG_CONTROL 23 + 22 24 enum gb_connection_state { 23 25 GB_CONNECTION_STATE_DISABLED = 0, 24 26 GB_CONNECTION_STATE_ENABLED_TX = 1,