Commit b206a65d authored by Jeff Garzik's avatar Jeff Garzik Committed by David S. Miller

[ATM]: Fix warning.

The compiler warning

drivers/atm/firestream.c: In function ‘top_off_fp’:
drivers/atm/firestream.c:1505: warning: cast to pointer from integer of different size

does indicate a bug, albeit a minor one.  Fixed, by using a 32-bit
temporary prior to the call to bus_to_virt().

The larger bug is still present:  the entire driver assumes that machine
pointers are 32-bit, as it stores pointers in 32-bit hardware registers.
This is obvious to anyone who knows the driver well, but for the casual
readers it is helpfully noted with FIXME.
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3f196eb5
...@@ -1475,6 +1475,7 @@ static void top_off_fp (struct fs_dev *dev, struct freepool *fp, ...@@ -1475,6 +1475,7 @@ static void top_off_fp (struct fs_dev *dev, struct freepool *fp,
struct FS_BPENTRY *qe, *ne; struct FS_BPENTRY *qe, *ne;
struct sk_buff *skb; struct sk_buff *skb;
int n = 0; int n = 0;
u32 qe_tmp;
fs_dprintk (FS_DEBUG_QUEUE, "Topping off queue at %x (%d-%d/%d)\n", fs_dprintk (FS_DEBUG_QUEUE, "Topping off queue at %x (%d-%d/%d)\n",
fp->offset, read_fs (dev, FP_CNT (fp->offset)), fp->n, fp->offset, read_fs (dev, FP_CNT (fp->offset)), fp->n,
...@@ -1502,10 +1503,16 @@ static void top_off_fp (struct fs_dev *dev, struct freepool *fp, ...@@ -1502,10 +1503,16 @@ static void top_off_fp (struct fs_dev *dev, struct freepool *fp,
ne->skb = skb; ne->skb = skb;
ne->fp = fp; ne->fp = fp;
qe = (struct FS_BPENTRY *) (read_fs (dev, FP_EA(fp->offset))); /*
fs_dprintk (FS_DEBUG_QUEUE, "link at %p\n", qe); * FIXME: following code encodes and decodes
if (qe) { * machine pointers (could be 64-bit) into a
qe = bus_to_virt ((long) qe); * 32-bit register.
*/
qe_tmp = read_fs (dev, FP_EA(fp->offset));
fs_dprintk (FS_DEBUG_QUEUE, "link at %x\n", qe_tmp);
if (qe_tmp) {
qe = bus_to_virt ((long) qe_tmp);
qe->next = virt_to_bus(ne); qe->next = virt_to_bus(ne);
qe->flags &= ~FP_FLAGS_EPI; qe->flags &= ~FP_FLAGS_EPI;
} else } else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment