[go: nahoru, domu]

History log of /drivers/staging/ozwpan/ozproto.c
Revision Date Author Comments
4bb3f83d47a60109d8bc9d47e547392d9b6c390c 08-Sep-2014 Adrian Nicoara <anicoara@uwaterloo.ca> staging: ozwpan: fix redundant return in void function

Cleanup checkpatch.pl warnings.

Signed-off-by: Adrian Nicoara <anicoara@uwaterloo.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ce6880e17508b31e04628a71d4691ef4a00a8b3f 08-Sep-2014 Adrian Nicoara <anicoara@uwaterloo.ca> staging: ozwpan: fix missing blank line after declaration

Cleanup checkpatch.pl warnings.

Signed-off-by: Adrian Nicoara <anicoara@uwaterloo.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
a87c38090ea95d36925fefc5cb3d475416f3796c 04-Aug-2014 Christoph Jaeger <email@christophjaeger.info> staging: ozwpan: Use list helpers

Make use of the various list helper functions to improve readability.

Signed-off-by: Christoph Jaeger <email@christophjaeger.info>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
50222db4b03ac8f3259c6d39bbd585ed3358f70f 08-Aug-2014 Christoph Jaeger <email@christophjaeger.info> staging: ozwpan: Use slab cache for oz_tx_frame allocation

Use a slab cache rather than rolling our own free list.

Signed-off-by: Christoph Jaeger <email@christophjaeger.info>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2b8b61aaef59751fe85c1b2df51a848a6c50d202 08-Aug-2014 Christoph Jaeger <email@christophjaeger.info> staging: ozwpan: Use slab cache for oz_elt_info allocation

Use a slab cache rather than rolling our own free list.

Signed-off-by: Christoph Jaeger <email@christophjaeger.info>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
a9686e786896297f9f1d74a2cac4ffccc7b3e50e 04-Aug-2014 Christoph Jaeger <email@christophjaeger.info> staging: ozwpan: Simplify app interface

Simplify the somewhat overcomplicated application interface; improves
readability and saves a bunch of lines.

Use designated struct initializers for clarity.

Signed-off-by: Christoph Jaeger <email@christophjaeger.info>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
3f8fd6d85fa9b826282043b9a67604eff8725033 04-Aug-2014 Christoph Jaeger <email@christophjaeger.info> staging: ozwpan: Remove unused OZ_MAX_TIMER_POOL_SIZE

OZ_MAX_TIMER_POOL_SIZE is not used anywhere; remove it.

Signed-off-by: Christoph Jaeger <email@christophjaeger.info>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ae35f26644d1af10bfc96c5dffc5103c84a9b3c4 19-May-2014 Anil Belur <askb23@gmail.com> staging: ozwpan: ozproto.c fix for "WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)"

Fixed the warning message by replacing memcpy() with ether_addr_copy()

Signed-off-by: Anil Belur <askb23@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
01c48ad3ea7f976ab9e02dca642c52f7cf1256b9 16-May-2014 Daeseok Youn <daeseok.youn@gmail.com> staging: ozwpan: remove redundant NULL check for devs

The "devs" is a pointer to g_net_dev in ozmain.c.
g_net_dev has a default value as empty string.
So "devs" cannot be NULL, removes NULL check for "devs".

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
c632824ef26bb27e51518242650bf4195a33ae63 13-Mar-2014 Jérôme Pinot <ngc891@gmail.com> staging/ozwpan: coding style __constant_

This fixes the following issues detected by checkpatch.pl:

WARNING: __constant_cpu_to_le16 should be cpu_to_le16
#1991: FILE: drivers/staging/ozwpan/ozhcd.c:1991:
+ __constant_cpu_to_le16(0x0001);

WARNING: __constant_cpu_to_le32 should be cpu_to_le32
#2185: FILE: drivers/staging/ozwpan/ozhcd.c:2185:
+ put_unaligned(__constant_cpu_to_le32(0), (__le32 *)buf);

WARNING: __constant_htons should be htons
#675: FILE: drivers/staging/ozwpan/ozproto.c:675:
+ binding->ptype.type = __constant_htons(OZ_ETHERTYPE);

Signed-off-by: Jerome Pinot <ngc891@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
6b029336d93d8f9a94b0256b1f7d9c1768eedba7 04-Mar-2014 Surendra Patil <surendra.tux@gmail.com> drivers:staging:ozwpan Replaced wrapper functions with actual spin lock function

* Replaced all the spin lock/unlock wrappers from oz_polling_lock_bh()
and oz_polllin_unlock_bh() with spin_lock_bh(&g_polling_lock) and
spin_unlock_bh(&g_polling_lock).Completely erased the wrappers defination
and declaration.
* declared g_polling_lock as global variable in header file and added comments to it.
Module builded successfully with sparse without warnings.

Signed-off-by: Surendra Patil <surendra.tux@gmail.com>
Acked-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
e4b41af14d7dc683ecd84a10fed8ea38b94f0f28 24-Jan-2014 Salym Senyonga <salymsash@gmail.com> Staging: ozwpan: Change kmalloc() to kzalloc()

changing to kzalloc lets us get rid of some lines. The other concern
here is that some members of binding->ptype are still uninitialized at
the end of the function.

Signed-off-by: Salym Senyonga <salymsash@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
a44755d88c1ac17549da59f97428f9204ba1bd5e 24-Jan-2014 Salym Senyonga <salymsash@gmail.com> Staging: ozwpan: reduce indent levels in oz_binding_add().

When hit error then we can return immediately. This makes the code
simpler and lets us remove some indenting.

Signed-off-by: Salym Senyonga <salymsash@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
e9e4433e6bbb9378fd6eb1c395de88ef8a512444 24-Jan-2014 Salym Senyonga <salymsash@gmail.com> Staging: ozwpan: Fix null dereference

If net_dev is NULL memcpy() will Oops.

Signed-off-by: Salym Senyonga <salymsash@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
0010b79d56cb1d7717bf146ee59df5a625b0330b 24-Jan-2014 Salym Senyonga <salymsash@gmail.com> Staging: ozwpan: Fix null dereference

If net_dev is NULL memcpy() will Oops.

Signed-off-by: Salym Senyonga <salymsash@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
93dc5e429b4d8ac8d683b61052592812e9353f9f 26-Dec-2013 dingtianhong <dingtianhong@huawei.com> ozwpan: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Rupesh Gujare <rupesh.gujare@atmel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tan Xiaojun <tanxiaojun@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
885a947e5b08953ebd5fce88be89a0399a7ab918 10-Dec-2013 Paul Gortmaker <paul.gortmaker@windriver.com> staging: delete non-required instances of include <linux/init.h>

None of these files are actually using any __init type directives
and hence don't need to include <linux/init.h>. Most are just a
left over from __devinit and __cpuinit removal, or simply due to
code getting copied from one driver to the next.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2dce674891c1d2708715fecaad222362db53f815 11-Nov-2013 Matina Maria Trompouki <mtrompou@gmail.com> Staging: ozwpan: fixed whitespace before semicolon

This patch removes the following warning reported by checkpatch.pl

WARNING: space prohibited before semicolon
drivers/staging/ozwpan/ozproto.c

Signed-off-by: Matina Maria Trompouki <mtrompou@gmail.com>
Reviewed-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
4e7fb829771de2cf8a5ba9576290d76936d3e814 23-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Fix Documentation style.

This patch fixes Kernel Documentation style.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
b75d7d45f25c8361555f368665af6636bfd10102 22-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Increment reference counter.

Increment PD reference counter, on every timer event so that
we do not loose PD object by mistake.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
6e244a8319ab80acdda424795e85687fb6af0be2 13-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Add a blank line between functions & declarations.

This patch adds a blank line between global declarations &
functions for readability.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
18f8191e1f35d65221ad3b7c68c08fe1c09edb1d 13-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Add a blank line between declaraction and code.

This patch adds blank line between declaration &
code for readability.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
b2271b5bdf1fd8b7d5442e2452e9242b88c56e8f 05-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Fix farewell report.

This patch fix following issues reported by Dan:-

1) There is no check limiting the size to 32 and it could be up to
253 bytes.
2) Use defines instead of magic numbers.
3) The oz_farewell struct is supposed to be a variable length struct
but the variable part is put in the middle. It doesn't make any
sense to put the length of the variable size array after then end
of the array because we can never find it again! Put the
variable size array at the end. Make it a zero length array.
u8 len;
u8 report[0];
4) In oz_add_farewell() we do this:

f = kmalloc(sizeof(struct oz_farewell) + len - 1, GFP_ATOMIC);

The "- 1" refers to sizeof(f->report) but because it was a magic
number then it was missed when the sizeof(f->report) changed.
5) In [patch 6/6] we set the ->len member. But because it is at the
end of a variable length array with no limit check the remote
attacker can just rewrite it using the memcpy() on the next line.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
b50c460a6c03284f7e1b4cfe9266df0f9169ad24 01-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Set farewell report length.

Fixes a bug where we were not setting length field causing wrong
report size to be copied.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
4d6c9e57027940b6b492abac4c1b67710e38f366 01-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Use kernel strncmp function.

Use kernel's strncmp() function instead of defining same within driver.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
83e4817fc3a2092ac1545999705b799bea855bcb 01-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Mark string as const

Make sure that we mark const string so that it does not get modified.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
8a3cac62efd0c447e017180aa7bf2638603ee21c 01-Aug-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: Use kernel list function for managing interface list.

Managing interface list, is easier if we use kernel list_* API
than managing it on our own.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
8fd070077410b26847ef6f5856850df417e7b83e 30-Jul-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: High resolution timers

Current implementation assumes HZ = 1000 for calculating
all internal timer intervals, which creates problem on
platforms where HZ != 1000.

As well we need resolution of less than 10 mSec for heartbeat
calculation, this creates problem on some platforms where HZ is
configured as HZ = 100, or around, which restricts us to timer interval
of 10 mSec. This is particularly found on embedded devices.

This patch moves on to use high resolution timers to calculate
all timer intervals as it allows us to have very small resolution
of timer interval, removing dependency on HZ.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
05f608f237dcc3c4e5188d054d9918cbfd2916c2 23-Jul-2013 Joe Perches <joe@perches.com> staging: ozwpan: Remove old debug macro.

Remove old oz_trace & oz_trace2 macro & related header files.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
f724b5843431aba591a01b6988a725689cd9ebb3 23-Jul-2013 Joe Perches <joe@perches.com> staging: ozwpan: Replace oz_trace with oz_dbg

Introduce new debug macros: oz_dbg, oz_cdev_dbg, oz_pd_dbg
and then replace old oz_trace & oz_trace2 with new macro.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
255ece7c4d9e63e2a5e784247bc2e7b639cae4dd 12-Jun-2013 Rupesh Gujare <rupesh.gujare@atmel.com> staging: ozwpan: remove event tracing code.

Removes event tracing code as it can be replaced
by in-kernel tracing infrastructure.

Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
6b790d0fae3a6e80af6b0e71cbb39a38b822230a 05-Jun-2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org> Revert "ozwpan: replace alloc_skb with dev_alloc_skb in ozproto.c"

This reverts commit c3147965384f1a5ace685dc34e78f9bb201f357d.

I shouldn't have applied it, my fault.

Cc: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
e79f864d5902a70c1b90f700628cb34756cd8c4a 05-Jun-2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org> Revert "ozwpan: replace kfree_skb with dev_kfree_skb in ozproto.c"

This reverts commit 5109c8a0c17cea53975ebf6dbc5403c431fd809d.

I shouldn't have applied this, my fault...

Cc: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5109c8a0c17cea53975ebf6dbc5403c431fd809d 23-May-2013 Xenia Ragiadakou <burzalodowa@gmail.com> ozwpan: replace kfree_skb with dev_kfree_skb in ozproto.c

This patch replaces the calls to kfree_skb with
calls to dev_kfree_skb.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
c3147965384f1a5ace685dc34e78f9bb201f357d 23-May-2013 Xenia Ragiadakou <burzalodowa@gmail.com> ozwpan: replace alloc_skb with dev_alloc_skb in ozproto.c

This patch replaces the calls to alloc_skb with calls
to dev_alloc_skb.

dev_alloc_skb has GFP_ATOMIC priority so the
replacement does not change the code semantics.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
42b4212baa28ebb07147c1de3990c596e7612e97 24-May-2013 Xenia Ragiadakou <burzalodowa@gmail.com> staging: ozwpan: Revert last changes

This patch reverts the changes made by the following patches:

commit id: edea341b0477ce5d53f7341f8b8cf8c91ad54ecf
[PATCH 1/4] ozwpan: replace alloc_skb with dev_alloc_skb in ozpd.c

commit id: b59983f525396a47cf8b28c13bbd5d5ff57859b8
[PATCH 2/4] ozwpan: replace alloc_skb with dev_alloc_skb in ozproto.c

commit id: 4422a6c14d0d0bfe519ec487693f1787f64b0b90
[PATCH 3/4] ozwpan: replace kfree_skb with dev_kfree_skb in ozpd.c

commit id: e241a8b61671b487e1a04b455dbd32ab965250ef
[PATCH 4/4] ozwpan: replace kfree_skb with dev_kfree_skb in ozproto.c

The reason of this revert is that dev_alloc_skb() is not defined
to be used in the allocation of socket buffers on the transmit path
but on the receive path.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
4422a6c14d0d0bfe519ec487693f1787f64b0b90 21-May-2013 Xenia Ragiadakou <burzalodowa@gmail.com> ozwpan: replace kfree_skb with dev_kfree_skb in ozproto.c

This patch replaces the calls to kfree_skb with
calls to dev_kfree_skb.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
edea341b0477ce5d53f7341f8b8cf8c91ad54ecf 21-May-2013 Xenia Ragiadakou <burzalodowa@gmail.com> ozwpan: replace alloc_skb with dev_alloc_skb in ozproto.c

This patch replaces the calls to alloc_skb with calls
to dev_alloc_skb.

dev_alloc_skb has GFP_ATOMIC priority so the
replacement does not change the code semantics.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
dc7f5b3594fdb846890192fd75793a791d7ba83b 15-Feb-2013 Peter Huewe <peterhuewe@gmx.de> staging/ozwpan: Mark read only parameters and structs as const

This patch marks function parameters that are used read only
as well as readonly structs (and corresponding pointers) as const.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
41ebb8a1c5f1f567b9c30c9b50aace91387537f8 15-Feb-2013 Peter Huewe <peterhuewe@gmx.de> staging/ozwpan: Fix NULL vs zero in ozproto.c (sparse warning)

This patch fixes the warning "Using plain integer as NULL pointer",
generated by sparse, by replacing the offending 0s with NULL.

If the initialization with NULL was unnecessary (due to unconditional
assignment before first use) it was removed.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ba34efba7ab0eed43aca254738c0446af644fb15 20-Nov-2012 Sachin Kamat <sachin.kamat@linaro.org> staging: ozwpan: Remove redundant null check before kfree in ozproto.c

kfree on NULL pointer is a no-op.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Rupesh Gujare <rgujare@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
86d03a0f4f575dda7988800a3da8d6e9f776a819 23-Jul-2012 Rupesh Gujare <rgujare@ozmodevices.com> staging: ozwpan: isoc latency for audio burst

Set audio latency. This fixes issue where audio clips heard during
link outage.

Signed-off-by: Rupesh Gujare <rgujare@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fec9f24b6269dc5fb4b1212a970c089461ec7ff2 20-Jun-2012 Rupesh Gujare <rgujare@ozmodevices.com> staging: ozwpan: kmalloc flag

Pass right flag as memory is assigned in process
context.

Signed-off-by: Rupesh Gujare <rgujare@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
33e6ada17fffc54c24607d5acb279363b30ac401 20-Jun-2012 Rupesh Gujare <rgujare@ozmodevices.com> staging: ozwpan: ISOC transfer in triggered mode

This patch implements ISOC frame transfer while PD is in
triggered mode.

Signed-off-by: Rupesh Gujare <rgujare@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1ec41a31fb695682cab7fc7c1f6ced84d188b6f9 03-Mar-2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org> staging: ozwpan: remove debug allocator

The kernel already has a debug allocator, no need to have one unique to
a single driver. So delete it, replace with kfree, kmalloc, and, in a
few places that need it, kzalloc().

Cc: Chris Kelly <ckelly@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1619cb6f2dd9674491e5772bf37b45e03666dc10 20-Feb-2012 Chris Kelly <ckelly@ozmodevices.com> staging: ozwpan: Added basic L2 protocol support

Added the basic implementation of the L2 protocol support used to
communicate with devices over the network.

Signed-off-by: Chris Kelly <ckelly@ozmodevices.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>