# [SOLVED] Disappearing kernel symbols gentoo-sources-3.8.4

## dch24

I just picked up a cheap Logitech C270 webcam but can't get v4l2 to compile. I'm using the in-kernel webcam drivers.

```
hostname linux-3.8.4-gentoo # modprobe uvcvideo

modprobe: ERROR: could not insert 'uvcvideo': Unknown symbol in module, or unknown parameter (see dmesg)

hostname linux-3.8.4-gentoo # dmesg | tail

[  203.717280] cp (5328) used greatest stack depth: 3608 bytes left

[  205.704202] EXT4-fs (sda1): re-mounted. Opts: data=ordered

[  211.759531] ACPI: bus type usb registered

[  211.759552] usbcore: registered new interface driver usbfs

[  211.759559] usbcore: registered new interface driver hub

[  211.759595] usbcore: registered new device driver usb

[  211.760016] Linux video capture interface: v2.00

[  211.760101] videobuf2_core: Unknown symbol dma_buf_get (err 0)

[  211.760105] videobuf2_core: Unknown symbol dma_buf_put (err 0)

[  211.760108] videobuf2_core: Unknown symbol dma_buf_fd (err 0)

hostname linux-3.8.4-gentoo # grep 'dma_buf_\(get\|put\|fd\)' drivers/base/dma-buf.c

 * dma_buf_fd - returns a file descriptor for the given dma_buf

int dma_buf_fd(struct dma_buf *dmabuf, int flags)

EXPORT_SYMBOL_GPL(dma_buf_fd);

 * dma_buf_get - returns the dma_buf structure related to an fd

struct dma_buf *dma_buf_get(int fd)

EXPORT_SYMBOL_GPL(dma_buf_get);

 * dma_buf_put - decreases refcount of the buffer

void dma_buf_put(struct dma_buf *dmabuf)

EXPORT_SYMBOL_GPL(dma_buf_put);

hostname linux-3.8.4-gentoo # grep ' dma_buf' /proc/kallsyms 

hostname linux-3.8.4-gentoo # grep ' dma_buf' System.map

ffffffff8120f93c t dma_buf_mmap_internal

ffffffff8120f97d T dma_buf_vunmap

ffffffff8120f9ac T dma_buf_vmap

ffffffff8120f9dd T dma_buf_kunmap

ffffffff8120fa28 T dma_buf_kmap

ffffffff8120fa5d T dma_buf_kunmap_atomic

ffffffff8120faa8 T dma_buf_kmap_atomic

ffffffff8120fadd T dma_buf_end_cpu_access

ffffffff8120fb30 T dma_buf_begin_cpu_access

ffffffff8120fb64 T dma_buf_mmap

ffffffff8120fc02 T dma_buf_put

ffffffff8120fc2e T dma_buf_unmap_attachment

ffffffff8120fc7f T dma_buf_map_attachment

ffffffff8120fcca T dma_buf_detach

ffffffff8120fd60 T dma_buf_get

ffffffff8120fd9b T dma_buf_fd

ffffffff8120fddd t dma_buf_release

ffffffff8120fe11 T dma_buf_export

ffffffff8120ff10 T dma_buf_attach

ffffffff81444370 r dma_buf_fops
```

This is puzzling: System.map shows the kernel knows about the symbols, but in /proc/kallsyms they have disappeared. The symbols are all EXPORT_SYMBOL_GPL.

I considered the possibility that the kernel tree had something wrong, so I did the following (but nothing changed):

```
rm -rf /usr/src/linux-3.8.4-gentoo

emerge -1 =gentoo-sources-3.8.4

cp saved-config /usr/src/linux-3.8.4/.config
```

Is there something that is unexporting the dma_buf_ symbols?Last edited by dch24 on Sat May 11, 2013 8:21 am; edited 2 times in total

----------

## dch24

I installed 3.8.11 and that fixed the problem.

----------

