diff options
author | David Fries <David@Fries.net> | 2014-04-08 23:37:09 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-27 16:56:21 -0400 |
commit | 8a0427d192e6043834414210dd14cc1289daff18 (patch) | |
tree | 1e76812e3744b6946a815fb94f877cc31d11b302 /drivers/w1/w1.h | |
parent | 34470e0bfae223e3f22bd2bd6e0e1dac366c9290 (diff) |
w1: optional bundling of netlink kernel replies
Applications can submit a set of commands in one packet to the kernel,
and in some cases it is required such as reading the temperature
sensor results. This adds an option W1_CN_BUNDLE to the flags of
cn_msg to request the kernel to reply in one packet for efficiency.
The cn_msg flags now check for unknown flag values and return an error
if one is seen. See "Proper handling of unknown flags in system
calls" http://lwn.net/Articles/588444/
This corrects the ack values returned as per the protocol standard,
namely the original ack for status messages and seq + 1 for all others
such as the data returned from a read.
Some of the common variable names have been standardized as follows.
struct cn_msg *cn
struct w1_netlink_msg *msg
struct w1_netlink_cmd *cmd
struct w1_master *dev
When an argument and a function scope variable would collide, add req_
to the argument.
Signed-off-by: David Fries <David@Fries.net>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/w1/w1.h')
-rw-r--r-- | drivers/w1/w1.h | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/w1/w1.h b/drivers/w1/w1.h index 734dab7fc687..56a49ba41d83 100644 --- a/drivers/w1/w1.h +++ b/drivers/w1/w1.h | |||
@@ -203,7 +203,6 @@ enum w1_master_flags { | |||
203 | * @search_id: allows continuing a search | 203 | * @search_id: allows continuing a search |
204 | * @refcnt: reference count | 204 | * @refcnt: reference count |
205 | * @priv: private data storage | 205 | * @priv: private data storage |
206 | * @priv_size: size allocated | ||
207 | * @enable_pullup: allows a strong pullup | 206 | * @enable_pullup: allows a strong pullup |
208 | * @pullup_duration: time for the next strong pullup | 207 | * @pullup_duration: time for the next strong pullup |
209 | * @flags: one of w1_master_flags | 208 | * @flags: one of w1_master_flags |
@@ -214,7 +213,6 @@ enum w1_master_flags { | |||
214 | * @dev: sysfs device | 213 | * @dev: sysfs device |
215 | * @bus_master: io operations available | 214 | * @bus_master: io operations available |
216 | * @seq: sequence number used for netlink broadcasts | 215 | * @seq: sequence number used for netlink broadcasts |
217 | * @portid: destination for the current netlink command | ||
218 | */ | 216 | */ |
219 | struct w1_master | 217 | struct w1_master |
220 | { | 218 | { |
@@ -241,7 +239,6 @@ struct w1_master | |||
241 | atomic_t refcnt; | 239 | atomic_t refcnt; |
242 | 240 | ||
243 | void *priv; | 241 | void *priv; |
244 | int priv_size; | ||
245 | 242 | ||
246 | /** 5V strong pullup enabled flag, 1 enabled, zero disabled. */ | 243 | /** 5V strong pullup enabled flag, 1 enabled, zero disabled. */ |
247 | int enable_pullup; | 244 | int enable_pullup; |
@@ -260,11 +257,6 @@ struct w1_master | |||
260 | struct w1_bus_master *bus_master; | 257 | struct w1_bus_master *bus_master; |
261 | 258 | ||
262 | u32 seq; | 259 | u32 seq; |
263 | /* port id to send netlink responses to. The value is temporarily | ||
264 | * stored here while processing a message, set after locking the | ||
265 | * mutex, zero before unlocking the mutex. | ||
266 | */ | ||
267 | u32 portid; | ||
268 | }; | 260 | }; |
269 | 261 | ||
270 | /** | 262 | /** |