summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2003-12-12 10:30:28 +0000
committerMichael Hunold <devnull@localhost>2003-12-12 10:30:28 +0000
commit4c93e47939e3c0215c2d36e28756194983119f8d (patch)
treef68883ab52c3f689d33eabdd4dd52ca6eedb51c6
parent0e85ecbca7de2a1e9a1ee1a4842dff7d66cf4381 (diff)
downloadmediapointer-dvb-s2-4c93e47939e3c0215c2d36e28756194983119f8d.tar.gz
mediapointer-dvb-s2-4c93e47939e3c0215c2d36e28756194983119f8d.tar.bz2
- use vmalloc_32() instead of vmalloc() in saa7146_vmalloc_build_pgtable().
this makes sure that the pagetable is in lowmem kernel memory, so we can DMA to it. this fixes the bug where budget-core.o oopsed on machines with highmem enabled.
-rw-r--r--linux/drivers/media/common/saa7146_core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/linux/drivers/media/common/saa7146_core.c b/linux/drivers/media/common/saa7146_core.c
index 206a942af..e581aafe2 100644
--- a/linux/drivers/media/common/saa7146_core.c
+++ b/linux/drivers/media/common/saa7146_core.c
@@ -101,7 +101,9 @@ int saa7146_wait_for_debi_done(struct saa7146_dev *dev)
* general helper functions
****************************************************************************/
-/* this is videobuf_vmalloc_to_sg() from video-buf.c */
+/* this is videobuf_vmalloc_to_sg() from video-buf.c
+ make sure virt has been allocated with vmalloc_32(), otherwise the BUG()
+ may be triggered on highmem machines */
static struct scatterlist* vmalloc_to_sg(unsigned char *virt, int nr_pages)
{
struct scatterlist *sglist;
@@ -137,7 +139,7 @@ char *saa7146_vmalloc_build_pgtable(struct pci_dev *pci, long length, struct saa
{
struct scatterlist *slist = NULL;
int pages = (length+PAGE_SIZE-1)/PAGE_SIZE;
- char *mem = vmalloc(length);
+ char *mem = vmalloc_32(length);
int slen = 0;
if (NULL == mem) {