Messages in this thread Patch in this message | | | Subject | [PATCH 1/2] char: hide sparse expensive pointer subtraction warning in specialix.c | From | Harvey Harrison <> | Date | Fri, 22 Feb 2008 10:51:05 -0800 |
| |
The warnings come from two static inlines so the ugliness in hiding them is well contained. drivers/char/specialix.c:238:19: warning: potentially expensive pointer subtraction drivers/char/specialix.c:245:19: warning: potentially expensive pointer subtraction
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> --- Bernd noticed that I'm an idiot. I was only hiding them to see what else was in the file. This patch is at least functionally correct.
Brown-paper-bagged-by: Harvey Harrison
drivers/char/specialix.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c index c0e08c7..34c7de6 100644 --- a/drivers/char/specialix.c +++ b/drivers/char/specialix.c @@ -228,21 +228,21 @@ static inline int sx_paranoia_check(struct specialix_port const * port, /* Get board number from pointer */ static inline int board_No (struct specialix_board * bp) { - return bp - sx_board; + return ((char *)bp - (char *)sx_board) / sizeof(*bp); } /* Get port number from pointer */ static inline int port_No (struct specialix_port const * port) { - return SX_PORT(port - sx_port); + return SX_PORT(((char *)port - (char *)sx_port) / sizeof(*port)); } /* Get pointer to board from pointer to port */ static inline struct specialix_board * port_Board(struct specialix_port const * port) { - return &sx_board[SX_BOARD(port - sx_port)]; + return &sx_board[SX_BOARD(port_No(port))]; } -- 1.5.4.2.200.g99e75
| |