I'm trying to compile 3.11.6 kernel with grsecurity&pax and probably due to constify plugin the compilations fails with this:
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c: In function ‘rtl8192c_set_hal_ops’:
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3599:2: error: assignment of member ‘free_hal_data’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3601:2: error: assignment of member ‘dm_init’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3602:2: error: assignment of member ‘dm_deinit’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3603:2: error: assignment of member ‘read_chip_version’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3605:2: error: assignment of member ‘set_bwmode_handler’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3606:2: error: assignment of member ‘set_channel_handler’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3608:2: error: assignment of member ‘hal_dm_watchdog’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3610:2: error: assignment of member ‘Add_RateATid’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3613:2: error: assignment of member ‘SwAntDivBeforeLinkHandler’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3614:2: error: assignment of member ‘SwAntDivCompareHandler’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3617:2: error: assignment of member ‘read_bbreg’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3618:2: error: assignment of member ‘write_bbreg’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3619:2: error: assignment of member ‘read_rfreg’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3620:2: error: assignment of member ‘write_rfreg’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3623:2: error: assignment of member ‘EfusePowerSwitch’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3624:2: error: assignment of member ‘ReadEFuse’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3625:2: error: assignment of member ‘EFUSEGetEfuseDefinition’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3626:2: error: assignment of member ‘EfuseGetCurrentSize’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3627:2: error: assignment of member ‘Efuse_PgPacketRead’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3628:2: error: assignment of member ‘Efuse_PgPacketWrite’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3629:2: error: assignment of member ‘Efuse_WordEnableDataWrite’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3632:2: error: assignment of member ‘sreset_init_value’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3633:2: error: assignment of member ‘sreset_reset_value’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3634:2: error: assignment of member ‘silentreset’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3635:2: error: assignment of member ‘sreset_xmit_status_check’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3636:2: error: assignment of member ‘sreset_linked_status_check’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3637:2: error: assignment of member ‘sreset_get_wifi_status’ in read-only object
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c:3641:2: error: assignment of member ‘IOL_exec_cmds_sync’ in read-only object
and the resposible code is:
- Code: Select all
void rtl8192c_set_hal_ops (struct hal_ops *pHalFunc)
{
pHalFunc->free_hal_data = &rtl8192c_free_hal_data;
pHalFunc->dm_init = &rtl8192c_init_dm_priv;
pHalFunc->dm_deinit = &rtl8192c_deinit_dm_priv;
pHalFunc->read_chip_version = &rtl8192c_read_chip_version;
pHalFunc->set_bwmode_handler = &PHY_SetBWMode8192C;
pHalFunc->set_channel_handler = &PHY_SwChnl8192C;
pHalFunc->hal_dm_watchdog = &rtl8192c_HalDmWatchDog;
pHalFunc->Add_RateATid = &rtl8192c_Add_RateATid;
#ifdef CONFIG_ANTENNA_DIVERSITY
pHalFunc->SwAntDivBeforeLinkHandler = &SwAntDivBeforeLink8192C;
pHalFunc->SwAntDivCompareHandler = &SwAntDivCompare8192C;
#endif
pHalFunc->read_bbreg = &rtl8192c_PHY_QueryBBReg;
pHalFunc->write_bbreg = &rtl8192c_PHY_SetBBReg;
pHalFunc->read_rfreg = &rtl8192c_PHY_QueryRFReg;
pHalFunc->write_rfreg = &rtl8192c_PHY_SetRFReg;
//Efuse related function
pHalFunc->EfusePowerSwitch = &rtl8192c_EfusePowerSwitch;
pHalFunc->ReadEFuse = &rtl8192c_ReadEFuse;
pHalFunc->EFUSEGetEfuseDefinition = &rtl8192c_EFUSE_GetEfuseDefinition;
pHalFunc->EfuseGetCurrentSize = &rtl8192c_EfuseGetCurrentSize;
pHalFunc->Efuse_PgPacketRead = &rtl8192c_Efuse_PgPacketRead;
pHalFunc->Efuse_PgPacketWrite = &rtl8192c_Efuse_PgPacketWrite;
pHalFunc->Efuse_WordEnableDataWrite = &rtl8192c_Efuse_WordEnableDataWrite;
#ifdef DBG_CONFIG_ERROR_DETECT
pHalFunc->sreset_init_value = &rtl8192c_sreset_init_value;
pHalFunc->sreset_reset_value = &rtl8192c_sreset_reset_value;
pHalFunc->silentreset = &rtl8192c_silentreset_for_specific_platform;
pHalFunc->sreset_xmit_status_check = &rtl8192c_sreset_xmit_status_check;
pHalFunc->sreset_linked_status_check = &rtl8192c_sreset_linked_status_check;
pHalFunc->sreset_get_wifi_status = &rtl8192c_sreset_get_wifi_status;
#endif
#ifdef CONFIG_IOL
pHalFunc->IOL_exec_cmds_sync = &rtl8192c_IOL_exec_cmds_sync;
#endif
}
Anyone have an idea how to apply __no_const on this peace of code?
Thanks in advance,
NaN