Skip to content

Commit

Permalink
powerpc/pseries: Use ARRAY_SIZE to iterate over firmware_features_tab…
Browse files Browse the repository at this point in the history
…le array

When iterating over the entries in firmware_features_table we only need
to go over the actual number of entries in the array instead of declaring
it to be bigger and checking to make sure there is a valid entry in every
slot.

This patch removes the FIRMWARE_MAX_FEATURES #define and replaces the
array looping with the use of ARRAY_SIZE().

Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Nathan Fontenot authored and Benjamin Herrenschmidt committed Apr 26, 2013
1 parent 530b5e1 commit 43c0ea6
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 6 deletions.
1 change: 0 additions & 1 deletion arch/powerpc/include/asm/firmware.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#include <asm/feature-fixups.h>

/* firmware feature bitmask values */
#define FIRMWARE_MAX_FEATURES 63

#define FW_FEATURE_PFT ASM_CONST(0x0000000000000001)
#define FW_FEATURE_TCE ASM_CONST(0x0000000000000002)
Expand Down
8 changes: 3 additions & 5 deletions arch/powerpc/platforms/pseries/firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ typedef struct {
* string must match.
*/
static __initdata firmware_feature_t
firmware_features_table[FIRMWARE_MAX_FEATURES] = {
firmware_features_table[] = {
{FW_FEATURE_PFT, "hcall-pft"},
{FW_FEATURE_TCE, "hcall-tce"},
{FW_FEATURE_SPRG0, "hcall-sprg0"},
Expand Down Expand Up @@ -77,12 +77,10 @@ void __init fw_feature_init(const char *hypertas, unsigned long len)
pr_debug(" -> fw_feature_init()\n");

for (s = hypertas; s < hypertas + len; s += strlen(s) + 1) {
for (i = 0; i < FIRMWARE_MAX_FEATURES; i++) {
for (i = 0; i < ARRAY_SIZE(firmware_features_table); i++) {
const char *name = firmware_features_table[i].name;
size_t size;
/* check value against table of strings */
if (!name)
continue;

/*
* If there is a '*' at the end of name, only check
* upto there
Expand Down

0 comments on commit 43c0ea6

Please sign in to comment.