Age | Commit message (Collapse) | Author |
|
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].
For this particular case, it is important to notice that the cachelines
change from 7 to 6 after the flexible-array conversion:
$ pahole -C 'fifo' drivers/misc/hpilo.o
struct fifo {
u64 nrents; /* 0 8 */
u64 imask; /* 8 8 */
u64 merge; /* 16 8 */
u64 reset; /* 24 8 */
u8 pad_0[96]; /* 32 96 */
/* --- cacheline 2 boundary (128 bytes) --- */
u64 head; /* 128 8 */
u8 pad_1[120]; /* 136 120 */
/* --- cacheline 4 boundary (256 bytes) --- */
u64 tail; /* 256 8 */
u8 pad_2[120]; /* 264 120 */
/* --- cacheline 6 boundary (384 bytes) --- */
u64 fifobar[1]; /* 384 8 */
/* size: 392, cachelines: 7, members: 10 */
/* last cacheline: 8 bytes */
};
$ pahole -C 'fifo' drivers/misc/hpilo.o
struct fifo {
u64 nrents; /* 0 8 */
u64 imask; /* 8 8 */
u64 merge; /* 16 8 */
u64 reset; /* 24 8 */
u8 pad_0[96]; /* 32 96 */
/* --- cacheline 2 boundary (128 bytes) --- */
u64 head; /* 128 8 */
u8 pad_1[120]; /* 136 120 */
/* --- cacheline 4 boundary (256 bytes) --- */
u64 tail; /* 256 8 */
u8 pad_2[120]; /* 264 120 */
/* --- cacheline 6 boundary (384 bytes) --- */
u64 fifobar[]; /* 384 0 */
/* size: 384, cachelines: 6, members: 10 */
};
Lastly, remove unnecessary parentheses in fifo_sz() and fix the following
checkpatch.pl warning for the whole fifo structure:
WARNING: please, no spaces at the start of a line
[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://github.com/KSPP/linux/issues/79
Tested-by: kernel test robot <lkp@intel.com>
Link: https://github.com/GustavoARSilva/linux-hardening/blob/master/cii/kernel-ci/hpilo-20200714.md
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20200714154449.GA26153@embeddedor
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
This patch corrects the SPDX License Identifier style
in header files for Miscellaneous device drivers.
For C header files Documentation/process/license-rules.rst
mandates C-like comments (opposed to C source files where
C++ style should be used)
Changes made by using a script provided by Joe Perches here:
https://lkml.org/lkml/2019/2/7/46.
Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Link: https://lore.kernel.org/r/20190920155931.GA6251@nishad
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
SPDX-License-Identifier is used for the hpilo.
Signed-off-by: Dhaval Shah <dhaval.experiance@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Increase number of supported channels from 8 to 24.
Make the number of channels configurable via module parameter max_ccb.
Signed-off-by: Mark Rusk <mark.rusk@hp.com>
Signed-off-by: Tony Camuso <tony.camuso@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Fix i386 PAE compile warning:
drivers/misc/hpilo.c: In function `ilo_ccb_setup':
drivers/misc/hpilo.c:274: warning: cast to pointer from integer of different size
dma_addr_t is 64 on i386 PAE which causes a size mismatch.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
Add explanation about lock nesting and purpose of each lock in hpilo.
Signed-off-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
Add interrupt handler to hpilo. This is enablement for poll handler,
and it also simplifies the logic for handling an iLO reset, because now
only the interrupt handler needs to look for reset, the file system
interfaces only need to return failure when a reset has happened.
Signed-off-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
Change hpilo open and close logic to spin for 10usec between checking device,
rather than every usec.
Because the loop is coded to take up to 10ms, it seemed prudent to
increase the interval between polling the device, to reduce the load on
the system and allow more other work to happen.
Signed-off-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
The device can take a while to respond to an open/close request, so
increase the time kernel will wait for response (1 ms to 10ms).
Also, properly clean up a channel on a failed open, by calling the channel
close routine. Just freeing the memory isn't sufficient, the device needs
to be informed that the channel is no longer open, and the device memory
cleared of references to freed dma buffer.
Signed-off-by: David Altobelli <david.altobelli@hp.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
A driver for the HP iLO/iLO2 management processor, which allows userspace
programs to query the management processor. Programs can open a channel
to the device (/dev/hpilo/dXccbN), and use this to send/receive queries.
The O_EXCL open flag is used to indicate that a particular channel cannot
be shared between processes. This driver will replace various packages
HP has shipped, including hprsm and hp-ilo.
Signed-off-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|