[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: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3f196eb519
commit
b206a65d67
1 changed files with 11 additions and 4 deletions
|
@ -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,
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue