2016-11-09 48 views
0

我发现返回void时抛出错误消息error: void value not ignored as it ought to be。很公平。构建驱动程序产生错误:无效值不被忽略,因为它应该是'

我试图为我的WIFI加密狗编译驱动程序时出现此错误。这是错误的输出:

[email protected]:~/AL100ac $ sudo make ARCH=arm 
make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.4.26+/build M=/home/birger/AL100ac modules 
make[1]: Entering directory '/usr/src/linux-headers-4.4.26+' 
    CC [M] /home/birger/AL100ac/core/rtw_debug.o 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘dump_drv_version’: 
/home/birger/AL100ac/core/rtw_debug.c:65:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:66:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘dump_log_level’: 
/home/birger/AL100ac/core/rtw_debug.c:71:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘mac_reg_dump’: 
/home/birger/AL100ac/core/rtw_debug.c:98:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:103:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:104:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:106:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘bb_reg_dump’: 
/home/birger/AL100ac/core/rtw_debug.c:114:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:118:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:119:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:121:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘rf_reg_dump’: 
/home/birger/AL100ac/core/rtw_debug.c:138:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:141:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:146:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:147:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:149:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_read_reg’: 
/home/birger/AL100ac/core/rtw_debug.c:208:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:215:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:218:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:221:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:224:4: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_fwstate’: 
/home/birger/AL100ac/core/rtw_debug.c:267:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_sec_info’: 
/home/birger/AL100ac/core/rtw_debug.c:278:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:282:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:285:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:287:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:290:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:292:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:295:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:297:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_mlmext_state’: 
/home/birger/AL100ac/core/rtw_debug.c:311:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_roam_flags’: 
/home/birger/AL100ac/core/rtw_debug.c:322:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_roam_param’: 
/home/birger/AL100ac/core/rtw_debug.c:356:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:357:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_qos_option’: 
/home/birger/AL100ac/core/rtw_debug.c:426:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_ht_option’: 
/home/birger/AL100ac/core/rtw_debug.c:438:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_rf_info’: 
/home/birger/AL100ac/core/rtw_debug.c:450:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:453:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_survey_info’: 
/home/birger/AL100ac/core/rtw_debug.c:478:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:499:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_ap_info’: 
/home/birger/AL100ac/core/rtw_debug.c:532:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:533:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:534:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:535:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:536:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:538:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:539:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:540:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:541:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:542:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:545:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:546:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:547:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:555:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:562:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_adapter_state’: 
/home/birger/AL100ac/core/rtw_debug.c:578:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_trx_info’: 
/home/birger/AL100ac/core/rtw_debug.c:594:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:596:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:598:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:604:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:608:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_rate_ctl’: 
/home/birger/AL100ac/core/rtw_debug.c:621:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:622:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:624:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_suspend_resume_info’: 
/home/birger/AL100ac/core/rtw_debug.c:695:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:696:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:697:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:698:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:699:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:700:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:701:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:702:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:703:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:704:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:705:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:706:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:707:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:708:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:709:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:710:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:711:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:712:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:713:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:714:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:715:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:716:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:717:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:718:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:719:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:720:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:721:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:722:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_rx_signal’: 
/home/birger/AL100ac/core/rtw_debug.c:996:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:998:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:999:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1000:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_hw_status’: 
/home/birger/AL100ac/core/rtw_debug.c:1016:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_ht_enable’: 
/home/birger/AL100ac/core/rtw_debug.c:1065:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_bw_mode’: 
/home/birger/AL100ac/core/rtw_debug.c:1103:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_ampdu_enable’: 
/home/birger/AL100ac/core/rtw_debug.c:1143:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_rx_ampdu’: 
/home/birger/AL100ac/core/rtw_debug.c:1184:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_en_fwps’: 
/home/birger/AL100ac/core/rtw_debug.c:1235:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_rx_stbc’: 
/home/birger/AL100ac/core/rtw_debug.c:1290:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_all_sta_info’: 
/home/birger/AL100ac/core/rtw_debug.c:1381:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1398:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1399:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1400:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1401:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1403:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1404:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1405:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1406:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1408:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1409:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1410:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1411:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1412:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1414:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1415:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1416:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1417:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1418:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1419:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1420:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1427:7: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1439:5: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c: In function ‘proc_get_best_channel’: 
/home/birger/AL100ac/core/rtw_debug.c:1512:3: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1517:2: error: void value not ignored as it ought to be 
/home/birger/AL100ac/core/rtw_debug.c:1518:2: error: void value not ignored as it ought to be 
scripts/Makefile.build:258: recipe for target '/home/birger/AL100ac/core/rtw_debug.o' failed 
make[2]: *** [/home/birger/AL100ac/core/rtw_debug.o] Error 1 
Makefile:1400: recipe for target '_module_/home/birger/AL100ac' failed 
make[1]: *** [_module_/home/birger/AL100ac] Error 2 
make[1]: Leaving directory '/usr/src/linux-headers-4.4.26+' 
Makefile:1385: recipe for target 'modules' failed 
make: *** [modules] Error 2 

具体来说,则会引发错误调用名为DBG_871X_SEL_NL功能。

所以我猜宏是什么导致这个问题。我试图寻找驱动程序的源代码,然后将其定义是这样的:

/* dump message to selected 'stream' with driver-defined prefix */ 
#define DBG_871X_SEL_NL(sel, fmt, arg...) \ 
    do {\ 
     if (sel == RTW_DBGDUMP)\ 
      DBG_871X_LEVEL(_drv_always_, fmt, ##arg); \ 
     else {\ 
      if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \ 
     } \ 
    }while(0) 

我不能完成我的周围是什么原因造成这个错误的头,以及如何解决它?

我四处搜寻了一下,发现这一点:https://github.com/hadess/rtl8723bs/issues/30

难道我影响一个类似的错误?

编辑:

我应该提到的是相同的代码工作,我更新内核之前。所以我在内核头文件中假设了一些以前返回值的函数,现在是一个void函数。

+0

那么你觉得什么'void'作为功能“结果”是指?而'DBG_871X_SEL_NL'不是**函数,而是一个宏。 – Olaf

+0

@Off你说的是'空白'吗? –

+1

@SouravGhosh:当然。谢谢。虽然'vodi'实际上听起来更好。嗯,我应该定义一个宏,并只使用该名称... ;-)如果没有其他任何东西,它会惊喜的同事为什么它编译... – Olaf

回答

1

发现内核被更新后,_seqdump函数不再返回一个值。

因此,我用_seqdump(sel, fmt, ##arg)

这里更换if(_seqdump(sel, fmt, ##arg))固定误差是影响了两个宏:

/* dump message to selected 'stream' */ 
#define DBG_871X_SEL(sel, fmt, arg...) \ 
    do {\ 
     if (sel == RTW_DBGDUMP)\ 
      _DBG_871X_LEVEL(_drv_always_, fmt, ##arg); \ 
     else {\ 
      _seqdump(sel, fmt, ##arg) /*rtw_warn_on(1)*/; \ 
     } \ 
    }while(0) 

而且

/* dump message to selected 'stream' with driver-defined prefix */ 
#define DBG_871X_SEL_NL(sel, fmt, arg...) \ 
    do {\ 
     if (sel == RTW_DBGDUMP)\ 
      DBG_871X_LEVEL(_drv_always_, fmt, ##arg); \ 
     else {\ 
      _seqdump(sel, fmt, ##arg) /*rtw_warn_on(1)*/; \ 
     } \ 
    }while(0) 
相关问题