From: Geert Uytterhoeven > If NO_DMA=y: > > drivers/built-in.o: In function `s3c_hsotg_map_dma': > s3c-hsotg.c:(.text+0x375b2c): undefined reference to `usb_gadget_map_request' > drivers/built-in.o: In function `s3c_hsotg_unmap_dma': > s3c-hsotg.c:(.text+0x376a32): undefined reference to `usb_gadget_unmap_request' > make[3]: *** [vmlinux] Error 1 > > Note that all callers of s3c_hsotg_map_dma()/s3c_hsotg_unmap_dma() are > protected by a call into the using_dma() checking function: > > static inline bool using_dma(struct s3c_hsotg *hsotg) > { > return false; /* support is not complete */ > } > > but not all versions of gcc manage to optimize the check away, causing a > link error. A have seen gcc optimise away a call, but leave the undefined symbol in the symbol table. That might be what is happening here. I don't know a generic solution, I used 'objcopy -N__udivdi3' to remove the explicit unwanted reference from my driver. David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html