lkml.org 
[lkml]   [2008]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 1/2] char: hide sparse expensive pointer subtraction warning in specialix.c
From
Date
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



\
 
 \ /
  Last update: 2008-02-22 19:53    [W:0.034 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site