[PATCH 1/1] ixgbevf: replace enum with MACROs
From: zyjzyj2000@gmail.com
Date: 2016-07-20 10:42:03
Sorry. Please ignore the last mail because there are some typos in the patch. In this patch, these typos are corrected. Zhu Yanjun
4 messages, 2 authors, 2016-07-21 · open the first message on its own page
From: zyjzyj2000@gmail.com
Date: 2016-07-20 10:42:03
Sorry. Please ignore the last mail because there are some typos in the patch. In this patch, these typos are corrected. Zhu Yanjun
From: zyjzyj2000@gmail.com
Date: 2016-07-20 10:41:59
From: Zhu Yanjun <zyjzyj2000@gmail.com> With the original enum, when a several bits state is set, it is possible that the wrong test occurs. For example, a state is 0x3, its bits are 11. When testing a state 0x2 whose bits are 10, it is difficult to confirm that state 0x2 is set or not. As such, the MACROs are defined to avoid the above error. Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com> --- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
index 60fc63b..d37b910 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h@@ -436,18 +436,16 @@ struct ixgbevf_adapter { u8 rss_indir_tbl[IXGBEVF_X550_VFRETA_SIZE]; }; -enum ixbgevf_state_t { - __IXGBEVF_TESTING, - __IXGBEVF_RESETTING, - __IXGBEVF_DOWN, - __IXGBEVF_DISABLED, - __IXGBEVF_REMOVING, - __IXGBEVF_SERVICE_SCHED, - __IXGBEVF_SERVICE_INITED, - __IXGBEVF_RESET_REQUESTED, - __IXGBEVF_QUEUE_RESET_REQUESTED, - __IXGBEVF_HW_RESETTING, -}; +#define __IXGBEVF_TESTING 0x0001 +#define __IXGBEVF_RESETTING 0x0002 +#define __IXGBEVF_DOWN 0x0004 +#define __IXGBEVF_DISABLED 0x0008 +#define __IXGBEVF_REMOVING 0x0010 +#define __IXGBEVF_SERVICE_SCHED 0x0020 +#define __IXGBEVF_SERVICE_INITED 0x0040 +#define __IXGBEVF_RESET_REQUESTED 0x0080 +#define __IXGBEVF_QUEUE_RESET_REQUESTED 0x0100 +#define __IXGBEVF_HW_RESETTING 0x0200 enum ixgbevf_boards { board_82599_vf,
--
2.7.4
From: Alexander Duyck <hidden>
Date: 2016-07-20 14:29:19
On Wed, Jul 20, 2016 at 3:41 AM, [off-list ref] wrote:
From: Zhu Yanjun <zyjzyj2000@gmail.com> With the original enum, when a several bits state is set, it is possible that the wrong test occurs. For example, a state is 0x3, its bits are 11. When testing a state 0x2 whose bits are 10, it is difficult to confirm that state 0x2 is set or not. As such, the MACROs are defined to avoid the above error. Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com> --- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h index 60fc63b..d37b910 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h@@ -436,18 +436,16 @@ struct ixgbevf_adapter { u8 rss_indir_tbl[IXGBEVF_X550_VFRETA_SIZE]; }; -enum ixbgevf_state_t { - __IXGBEVF_TESTING, - __IXGBEVF_RESETTING, - __IXGBEVF_DOWN, - __IXGBEVF_DISABLED, - __IXGBEVF_REMOVING, - __IXGBEVF_SERVICE_SCHED, - __IXGBEVF_SERVICE_INITED, - __IXGBEVF_RESET_REQUESTED, - __IXGBEVF_QUEUE_RESET_REQUESTED, - __IXGBEVF_HW_RESETTING, -}; +#define __IXGBEVF_TESTING 0x0001 +#define __IXGBEVF_RESETTING 0x0002 +#define __IXGBEVF_DOWN 0x0004 +#define __IXGBEVF_DISABLED 0x0008 +#define __IXGBEVF_REMOVING 0x0010 +#define __IXGBEVF_SERVICE_SCHED 0x0020 +#define __IXGBEVF_SERVICE_INITED 0x0040 +#define __IXGBEVF_RESET_REQUESTED 0x0080 +#define __IXGBEVF_QUEUE_RESET_REQUESTED 0x0100 +#define __IXGBEVF_HW_RESETTING 0x0200 enum ixgbevf_boards { board_82599_vf,
You cannot replace a bit offset with a mask without also having to update all the spots where the bit offset is used. There isn't much point to replacing the enum with a macro anyway. Using multiple test_bit expressions should be valid for testing multiple bits. - Alex
From: zhuyj <zyjzyj2000@gmail.com>
Date: 2016-07-21 09:53:06
Got it. Thanks a lot. Zhu Yanjun On Wed, Jul 20, 2016 at 10:29 PM, Alexander Duyck <alexander.duyck@gmail.com
wrote:
On Wed, Jul 20, 2016 at 3:41 AM, [off-list ref] wrote:quoted
From: Zhu Yanjun <zyjzyj2000@gmail.com> With the original enum, when a several bits state is set, it is possible that the wrong test occurs. For example, a state is 0x3, its bits are 11. When testing a state 0x2 whose bits are 10, it is difficult to confirm that state 0x2 is set or not. As such, the MACROs are defined to avoid the above error. Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com> --- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.hb/drivers/net/ethernet/intel/ixgbevf/ixgbevf.hquoted
index 60fc63b..d37b910 100644--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h@@ -436,18 +436,16 @@ struct ixgbevf_adapter { u8 rss_indir_tbl[IXGBEVF_X550_VFRETA_SIZE]; }; -enum ixbgevf_state_t { - __IXGBEVF_TESTING, - __IXGBEVF_RESETTING, - __IXGBEVF_DOWN, - __IXGBEVF_DISABLED, - __IXGBEVF_REMOVING, - __IXGBEVF_SERVICE_SCHED, - __IXGBEVF_SERVICE_INITED, - __IXGBEVF_RESET_REQUESTED, - __IXGBEVF_QUEUE_RESET_REQUESTED, - __IXGBEVF_HW_RESETTING, -}; +#define __IXGBEVF_TESTING 0x0001 +#define __IXGBEVF_RESETTING 0x0002 +#define __IXGBEVF_DOWN 0x0004 +#define __IXGBEVF_DISABLED 0x0008 +#define __IXGBEVF_REMOVING 0x0010 +#define __IXGBEVF_SERVICE_SCHED 0x0020 +#define __IXGBEVF_SERVICE_INITED 0x0040 +#define __IXGBEVF_RESET_REQUESTED 0x0080 +#define __IXGBEVF_QUEUE_RESET_REQUESTED 0x0100 +#define __IXGBEVF_HW_RESETTING 0x0200 enum ixgbevf_boards { board_82599_vf,You cannot replace a bit offset with a mask without also having to update all the spots where the bit offset is used. There isn't much point to replacing the enum with a macro anyway. Using multiple test_bit expressions should be valid for testing multiple bits. - Alex