summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-04-03staging: comedi: amplc_dio200_common: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: aio_iiro_16: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: adv_pci1710: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: adl_pci9118: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: adl_pci9111: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_3xxx: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_3120: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_2032: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_1564: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_1500: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_1032: remove #include "comedi_fc.h"Ian Abbott
As preparation for removal of "comedi_fc.h", replace calls to the `cfc_check_trigger_...` functions from "comedi_fc.h" with the replacement `comedi_check_trigger_...` functions from "../comedidev.h" and remove the inclusion of "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: ni_labpc_isadma: remove #include "comedi_fc.h"Ian Abbott
"ni_labpc_isadma.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: ni_660x: remove #include "comedi_fc.h"Ian Abbott
"ni_660x.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: mite: remove #include "comedi_fc.h"Ian Abbott
"mite.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: cb_pcidda: remove #include "comedi_fc.h"Ian Abbott
"cb_pcidda.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: cb_das16_cs: remove #include "comedi_fc.h"Ian Abbott
"cb_das16_cs.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_3501: remove #include "comedi_fc.h"Ian Abbott
"addi_apci_3501.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: addi_apci_1516: remove #include "comedi_fc.h"Ian Abbott
"addi_apci_1516.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: 8255: remove #include "comedi_fc.h"Ian Abbott
"8255.c" doesn't use anything from "comedi_fc.h". Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fc.h: begin migration to comedidev.hIan Abbott
"comedi_fc.h" contains a few inline functions used by the `do_cmdtest` handler functions for comedi subdevices in several low-level comedi drivers for checking asynchronous command trigger sources and arguments. They all use the prefix `cfc_check_trigger_arg`. Copy them over to "../comedidev.h", but change the `cfc_` prefix to `comedi_`. Change the original functions in "comedi_fc.h" into simple wrappers for their replacements. Once the drivers have been changed to call the replacement functions, "comedi_fc.h" can be removed. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: make comedi_internal.h self-reliantIan Abbott
Add `#include`s and declare incomplete types to "comedi_internal.h" so that .c files still compile when it is the first file included. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: extend spin-lock scope in comedi_event()Ian Abbott
`comedi_event()` is called from low-level drivers to handle comedi asynchronous command event flags. As a safety check, it checks the subdevice's "run" flags to make sure an asynchronous command is running. It can also change the run flags to mark the command as no longer running (possibly also marking it as terminated with an error). Checking the runflags and modifying them involves two uses of the subdevice's spin-lock. It seems better to do it with a single use of the spin-lock. This also avoids possible interactions with `do_become_nonbusy()`. Acquire the subdevice's spin-lock at the start of `comedi_event()` and release it near the end, before a possible call to `kill_fasync()` (but after it's parameter values have been determined). Add and make use of few new inline helper functions: * `__comedi_clear_subdevice_runflags()` -- clears some run flags without using the spin-lock * `__comedi_set_subdevice_runflags()` -- sets some run flags without using the spin-lock * `__comedi_get_subdevice_runflags()` -- a spin-lockless version of `comedi_get_subdevice_runflags() * `__comedi_is_subdevice_running()` -- a spin-lockless version of * `comedi_is_subdevice_running()` Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: send SIGIO according to command directionIan Abbott
`comedi_event()` is called from low-level drivers to handle comedi asynchronous command event flags. Some events cause waiting tasks to be woken up, and a `SIGIO` signal to be sent via `kill_fasync()`. The signal code is `POLL_OUT` if the subdevice supports commands in the "write" direction, or `POLL_IN` for the "read" direction. If the subdevice supports commands in either direction, it sends two `SIGIO` signals, one with each code. Change that latter case to only send one `SIGIO` signal, using the direction of the current command to determine the signal code. If the `CMDF_WRITE` flag is set in the current command, it's in the "write" direction, otherwise it's in the "read" direction. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: always clear eventsIan Abbott
`comedi_event()` is called from low-level drivers to handle asynchronous command event flags that are stored in `s->async->events` for subdevice `s`. It normally clears the event flags as well. As a safety check, it does nothing if no asynchronous command is running, but it leaves `s->async->events` unchanged in this case. For additional safety, change it to always clear the event flags to avoid leaving stale event flags set when another asynchronous command is set up. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: remove unnecessary s->async useIan Abbott
In places where the `s->async` value has been stored in a local variable, use the variable instead of repeating `s->async`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: simplify comedi_is_subdevice_idle()Ian Abbott
Don't use a conditional operator when a simple "not" will do. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: eliminate a use of subdevice spin-lockIan Abbott
`comedi_is_subdevice_in_error()` is only used by `comedi_read()` and `comedi_write()` and is only called (soon) after `comedi_is_subdevice_running()` returns `false` (with extra conditions in the case of `comedi_write()`). `comedi_is_subdevice_running()` and `comedi_get_subdevice_runflags()` both call `comedi_get_subdevice_runflags()` which uses the subdevice's spin-lock. Eliminate one use of the subdevice's spin-lock in `comedi_read()` and `comedi_write()` by calling `comedi_get_subdevice_runflags()` and checking the runflags directly. Add a couple of inline functions to check the runflags: `comedi_is_runflags_running()` and `comedi_is_runflags_in_error()`. These do the same test on runflags as `comedi_is_subdevice_running()` and `comedi_is_subdevice_in_error()` but get passed the runflags value directly. `comedi_is_subdevice_in_error()` is no longer used, so remove it. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: comedi: comedi_fops: rename comedi_set_subdevice_runflags()Ian Abbott
`comedi_set_subdevice_runflags()` changes the comedi subdevice's `runflags` member according to a bit-mask and new bit values. It's name might suggest that it only "sets", not "clears". Rename it to `comedi_update_subdevice_runflags()` to avoid confusion. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Merge lustre patches based on 4.0-rc5 into staging-testingGreg Kroah-Hartman
This is done to handle some lustre patches that were made against the wrong kernel branch, which was my fault, as I gave a lecture where I messed things up for the students, it wasn't their fault. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: o2iblnd.c: Finished cleaning code styleGuillaume Matheron
I fixed lines over 80 characters and unnecessary returns Signed-off-by: Guillaume Matheron <guillaume.matheron@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: o2iblnd_cb.c: Removed the rest of unnecessary spaces before ↵Guillaume Matheron
parenthesis I removed all the 'unneeded space' warnings given by checkpatch.pl Signed-off-by: Guillaume Matheron <guillaume.matheron@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: o2iblnd.c: Started fixing coding styleGuillaume Matheron
I focused on function declarations (placed return type on the same line as function name), and spaces between function name and parenthesis Signed-off-by: Guillaume Matheron <guillaume.matheron@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: Lustre: rw26.c: include according to checkpatch.plGeorges-Axel Jaloyan
Signed-off-by: Georges-Axel Jaloyan <georges-axel.jaloyan@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: dir.c: adding a blank after a declaration.Cyrille Ruggero
Adding a blank in this file after a declaration as reported by checkpatch.pl. Signed-off-by: Cyrille Ruggero <cyrille.ruggero@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: lov_io.c: remove useless unary plusesLuca Wehrstedt
Replace two occurrences of "+1" with simply "1". Signed-off-by: Luca Wehrstedt <luca.wehrstedt@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: o2iblnd_modparam.c: remove unneeded spaceGwendoline Chouasne-Guillon
before the arguments of a function Remove unneeded space before the arguments of a function Signed_off_by: Gwendoline Chouasne-guillon <chouasne@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: o2iblnd_cb.c: Removed a bunch of spaces before parenthesisGuillaume Matheron
Fixed warnings as reported by checkpatch.pl Also fixed padding before function arguments when needed Signed-off-by: Guillaume Matheron <guillaume.matheron@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: config.c: fix a "do not add new typedefs" warning reported ↵Rafaël Bocquet
by checkpatch.pl Signed-off-by: Rafaël Bocquet <rafael.bocquet@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: config.c: fix lines exceeding 80 characters reported by ↵Rafaël Bocquet
checkpatch.pl Signed-off-by: Rafaël Bocquet <rafael.bocquet@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: lib-md.c format line too longMartin Vassor
Format comment such that it is under 80 chars Signed-off-by: Martin Vassor <martin.vassor@epfl.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: lustre: include: remove unused macrosAya Mahfouz
OBD_CHECK_DEV and OBD_CHECK_DEV_ACTIVE have been replaced by static inline functions. They are removed since they are not used anymore. Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: lustre: include: replace OBD_CHECK_DEV_ACTIVE by obd_check_dev_activeAya Mahfouz
Static inline functions are preferred over macros. The inline function obd_check_dev_active is introduced to replace OBD_CHECK_DEV_ACTIVE. All functions that call obd_check_dev_active store the return values and return them if they represent an error code. Some of the changes were carried out manually while others were done using coccinelle. Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: lustre: include: replace OBD_CHECK_DEV by obd_check_devAya Mahfouz
Static inline functions are preferred over macros. Hence, the function obd_check_dev was introduced. obd_check_dev replaces the macro OBD_CHECK_DEV. All functions that call obd_check_dev store the return values and return them if they represent an error code. Some of the changes were carried out manually while others were done using coccinelle. Signed-off-by: Aya Mahfouz <mahfouz.saif.elyazal@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: lnet: selftest: lconctl.c: fixed indentation of the switchThéotime Grohens
Signed-off-by: Théotime Grohens <theotime.grohens@ens.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: lustre: module.c: remove unneeded return statementGreg Kroah-Hartman
Remove an unneeded return statement in this file as reported by checkpatch.pl. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: sm750fb: Remove zero testing pointer typed valueAmitoj Kaur Chawla
Removes variable comparison with 0. Done using following coccinelle script. @ disable is_zero,isnt_zero @ expression *E; expression E1,f; @@ E = f(...) <... ( - E == 0 + !E | - E != 0 + E | - 0 == E + !E | - 0 != E + E ) ...> ?E = E1 @ disable is_zero,isnt_zero @ expression *E; @@ ( E == - 0 + NULL | E != - 0 + NULL | - 0 + NULL == E | - 0 + NULL != E ) Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: sm750fb: Fixed indent of switch-caseAmitoj Kaur Chawla
Fixed indent of switch-case by adding space using tabs. Problem found using checkpatch.pl ERROR: space required after that ';' (ctx:VxV) Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: sm750fb: Fix C99 CommentsAmitoj Kaur Chawla
Used C89 instead of C99 Comment and removed C99 comments performing prints only. Problem found using checkpatch.pl ERROR: do not use C99 // comments Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03Staging: comedi: addi_apci_1564: Delete a tapCharlie Wong Super
Fix the checkpatch.pl WARNING: line over 80 characters Signed-off-by: Charlie Wong Super <1213charlie@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-03staging: lustre: prevent underflows in lnet_parse_reply()Dan Carpenter
I don't know if "hdr->payload_length;" can really be negative, but if so then we shouldn't allow it. Do the comparison as an unsigned. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>