On 17/12/2015 15:55, Mauro Carvalho Chehab wrote:
> Em Thu, 17 Dec 2015 15:30:43 +0100
> Mason <[email protected]> escreveu:
>
>> On 17/12/2015 15:08, Mauro Carvalho Chehab wrote:
>>
>>> Then I guess you're not using vanilla 3.4 Kernel, but some heavily
>>> modified version. You're on your own here.
>>
>> #ifdef NEED_KVFREE
>> #include <linux/mm.h>
>> static inline void kvfree(const void *addr)
>> {
>> if (is_vmalloc_addr(addr))
>> vfree(addr);
>> else
>> kfree(addr);
>> }
>> #endif
>>
>> /tmp/sandbox/media_build/v4l/compat.h: In function 'kvfree':
>> /tmp/sandbox/media_build/v4l/compat.h:1631:3: error: implicit declaration of
>> function 'vfree' [-Werror=implicit-function-declaration]
>> vfree(addr);
>> ^
>>
>> vfree is declared in linux/vmalloc.h
>>
>> The fix is trivial:
>>
>> diff --git a/v4l/compat.h b/v4l/compat.h
>> index c225c07d6caa..7f3f1d5f9d11 100644
>> --- a/v4l/compat.h
>> +++ b/v4l/compat.h
>> @@ -1625,6 +1625,7 @@ static inline void eth_zero_addr(u8 *addr)
>>
>> #ifdef NEED_KVFREE
>> #include <linux/mm.h>
>> +#include <linux/vmalloc.h>
>> static inline void kvfree(const void *addr)
>> {
>> if (is_vmalloc_addr(addr))
>>
>>
>
> Well, it doesn't hurt to add it to the media_build tree, since
> vmalloc.h exists at least since 2.6.11.
>
> Added upstream.
>
> Did the driver compile fine?
I wanted to fix the NEED_WRITEL_RELAXED warning, but I don't know Perl.
v4l/scripts/make_config_compat.pl
check_files_for_func("writel_relaxed", "NEED_WRITEL_RELAXED",
"include/asm-generic/io.h");
incorrectly outputs
#define NEED_WRITEL_RELAXED 1
In file included from <command-line>:0:0:
/tmp/sandbox/media_build/v4l/compat.h:1568:0: warning: "writel_relaxed"
redefined
#define writel_relaxed writel
^
In file included from include/linux/scatterlist.h:10:0,
from /tmp/sandbox/media_build/v4l/compat.h:1255,
from <command-line>:0:
/tmp/sandbox/custom-linux-3.4/arch/arm/include/asm/io.h:235:0: note: this is
the location of the previous definition
#define writel_relaxed(v,c) ((void)__raw_writel((__force u32) \
^
Shouldn't the script examine arch/$ARCH/include/asm/io.h instead of
include/asm-generic/io.h ? (Or perhaps both?)
Does make_config_compat.pl know about ARCH?
The following patch makes "#define NEED_WRITEL_RELAXED 1" go away,
but I'm looking for a general solution.
The next error is:
CC [M] /tmp/sandbox/media_build/v4l/dvb_net.o
/tmp/sandbox/media_build/v4l/dvb_net.c: In function 'dvb_net_add_if':
/tmp/sandbox/media_build/v4l/dvb_net.c:1244:38: error: macro "alloc_netdev"
passed 4 arguments, but takes just 3
NET_NAME_UNKNOWN, dvb_net_setup);
^
/tmp/sandbox/media_build/v4l/dvb_net.c:1243:8: error: 'alloc_netdev' undeclared
(first use in this function)
net = alloc_netdev(sizeof(struct dvb_net_priv), "dvb",
^
/tmp/sandbox/media_build/v4l/dvb_net.c:1243:8: note: each undeclared identifier
is reported only once for each function it appears in
/tmp/sandbox/media_build/v4l/dvb_net.c: At top level:
/tmp/sandbox/media_build/v4l/dvb_net.c:1205:13: warning: 'dvb_net_setup'
defined but not used [-Wunused-function]
static void dvb_net_setup(struct net_device *dev)
Will look into it.
Regards.
diff --git a/v4l/scripts/make_config_compat.pl
b/v4l/scripts/make_config_compat.pl
index 641f55e9c137..30a004525c08 100644
--- a/v4l/scripts/make_config_compat.pl
+++ b/v4l/scripts/make_config_compat.pl
@@ -664,7 +664,7 @@ sub check_other_dependencies()
check_files_for_func("DMA_ATTR_SKIP_CPU_SYNC",
"NEED_DMA_ATTR_SKIP_CPU_SYNC", "include/linux/dma-attrs.h");
check_files_for_func("sign_extend32", "NEED_SIGN_EXTEND32",
"include/linux/bitops.h");
check_files_for_func("netdev_dbg", "NEED_NETDEV_DBG",
"include/linux/netdevice.h");
- check_files_for_func("writel_relaxed", "NEED_WRITEL_RELAXED",
"include/asm-generic/io.h");
+ check_files_for_func("writel_relaxed", "NEED_WRITEL_RELAXED",
"arch/arm/include/asm/io.h");
check_files_for_func("get_user_pages_unlocked",
"NEED_GET_USER_PAGES_UNLOCKED", "include/linux/mm.h");
check_files_for_func("pr_warn_once", "NEED_PR_WARN_ONCE",
"include/linux/printk.h");
check_files_for_func("DIV_ROUND_CLOSEST_ULL",
"NEED_DIV_ROUND_CLOSEST_ULL", "include/linux/kernel.h");
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html