mirror of https://gitee.com/openkylin/linux.git
Staging: rt28xx: Make PCI_{MAP,UNMAP}_SINGLE type-safe
To avoid recurrence of bugs such as <http://bugs.debian.org/575726>, change the type of the first parameter to linux_pci_{map,unmap}_single() from void * to struct rt_rtmp_adapter *. Also do not define the macros PCI_{MAP,UNMAP}_SINGLE() when building the rt2870sta driver; they are not used and if they were that would be a bug. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>, Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5d6892b3c6
commit
9fd453c981
|
@ -455,10 +455,11 @@ void hex_dump(char *str, unsigned char *pSrcBufVA, unsigned int SrcBufLen);
|
|||
* Device DMA Access related definitions and data structures.
|
||||
**********************************************************************************/
|
||||
#ifdef RTMP_MAC_PCI
|
||||
dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size,
|
||||
int sd_idx, int direction);
|
||||
void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size,
|
||||
int direction);
|
||||
struct rt_rtmp_adapter;
|
||||
dma_addr_t linux_pci_map_single(struct rt_rtmp_adapter *pAd, void *ptr,
|
||||
size_t size, int sd_idx, int direction);
|
||||
void linux_pci_unmap_single(struct rt_rtmp_adapter *pAd, dma_addr_t dma_addr,
|
||||
size_t size, int direction);
|
||||
|
||||
#define PCI_MAP_SINGLE(_handle, _ptr, _size, _sd_idx, _dir) \
|
||||
linux_pci_map_single(_handle, _ptr, _size, _sd_idx, _dir)
|
||||
|
@ -475,11 +476,6 @@ void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size,
|
|||
#define DEV_ALLOC_SKB(_length) \
|
||||
dev_alloc_skb(_length)
|
||||
#endif /* RTMP_MAC_PCI // */
|
||||
#ifdef RTMP_MAC_USB
|
||||
#define PCI_MAP_SINGLE(_handle, _ptr, _size, _dir) (unsigned long)0
|
||||
|
||||
#define PCI_UNMAP_SINGLE(_handle, _ptr, _size, _dir)
|
||||
#endif /* RTMP_MAC_USB // */
|
||||
|
||||
/*
|
||||
* unsigned long
|
||||
|
|
|
@ -790,10 +790,9 @@ IRQ_HANDLE_TYPE rt2860_interrupt(int irq, void *dev_instance)
|
|||
* invaild or writeback cache
|
||||
* and convert virtual address to physical address
|
||||
*/
|
||||
dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size,
|
||||
int sd_idx, int direction)
|
||||
dma_addr_t linux_pci_map_single(struct rt_rtmp_adapter *pAd, void *ptr,
|
||||
size_t size, int sd_idx, int direction)
|
||||
{
|
||||
struct rt_rtmp_adapter *pAd;
|
||||
struct os_cookie *pObj;
|
||||
|
||||
/*
|
||||
|
@ -812,7 +811,6 @@ dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size,
|
|||
sd_idx = -1
|
||||
*/
|
||||
|
||||
pAd = (struct rt_rtmp_adapter *)handle;
|
||||
pObj = (struct os_cookie *)pAd->OS_Cookie;
|
||||
|
||||
if (sd_idx == 1) {
|
||||
|
@ -826,13 +824,11 @@ dma_addr_t linux_pci_map_single(void *handle, void *ptr, size_t size,
|
|||
|
||||
}
|
||||
|
||||
void linux_pci_unmap_single(void *handle, dma_addr_t dma_addr, size_t size,
|
||||
int direction)
|
||||
void linux_pci_unmap_single(struct rt_rtmp_adapter *pAd, dma_addr_t dma_addr,
|
||||
size_t size, int direction)
|
||||
{
|
||||
struct rt_rtmp_adapter *pAd;
|
||||
struct os_cookie *pObj;
|
||||
|
||||
pAd = (struct rt_rtmp_adapter *)handle;
|
||||
pObj = (struct os_cookie *)pAd->OS_Cookie;
|
||||
|
||||
pci_unmap_single(pObj->pci_dev, dma_addr, size, direction);
|
||||
|
|
Loading…
Reference in New Issue