From 6d1364dea5f2df2858a88bb7dc7cf9aac0f7ef8d Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 24 Aug 2010 22:46:55 +0200 Subject: [PATCH] remove check_le16.c When I wrote this, I didn't know anything about sparse. The whole point of sparse is to find these types of bugs and it does it far better than I could. Signed-off-by: Dan Carpenter --- check_le16.c | 65 ----- check_list.h | 1 - smatch_data/kernel.no_le16 | 605 --------------------------------------------- 3 files changed, 671 deletions(-) delete mode 100644 check_le16.c delete mode 100644 smatch_data/kernel.no_le16 diff --git a/check_le16.c b/check_le16.c deleted file mode 100644 index be6b0a2d..00000000 --- a/check_le16.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * smatch/check_le16.c - * - * Copyright (C) 2010 Dan Carpenter. - * - * Licensed under the Open Software License version 1.1 - * - */ - -#include "smatch.h" - -static int my_id; - -static void match_no_le16_param(const char *fn, struct expression *expr, void *param) -{ - struct expression *arg; - char *macro_name; - char *name; - - arg = get_argument_from_call_expr(expr->args, (int)param); - if (!arg) - return; - macro_name = get_macro_name(&arg->pos); - if (!macro_name || strcmp(macro_name, "cpu_to_le16")) - return; - - arg = strip_expr(arg); - name = get_variable_from_expr_complex(arg, NULL); - sm_msg("warn: don't need to call cpu_to_le16() for '%s'", name); - free_string(name); -} - -static void register_funcs_from_file(void) -{ - struct token *token; - const char *func; - int arg; - - token = get_tokens_file("kernel.no_le16"); - if (!token) - return; - if (token_type(token) != TOKEN_STREAMBEGIN) - return; - token = token->next; - while (token_type(token) != TOKEN_STREAMEND) { - if (token_type(token) != TOKEN_IDENT) - return; - func = show_ident(token->ident); - token = token->next; - if (token_type(token) != TOKEN_NUMBER) - return; - arg = atoi(token->number); - add_function_hook(func, &match_no_le16_param, INT_PTR(arg)); - token = token->next; - } - clear_token_alloc(); -} - -void check_le16(int id) -{ - if (option_project != PROJ_KERNEL) - return; - my_id = id; - register_funcs_from_file(); -} diff --git a/check_list.h b/check_list.h index 8d12780c..c939916a 100644 --- a/check_list.h +++ b/check_list.h @@ -36,7 +36,6 @@ CK(check_dev_queue_xmit) CK(check_stack) CK(check_no_return) CK(check_mod_timer) -CK(check_le16) CK(check_return) CK(check_resource_size) CK(check_release_resource) diff --git a/smatch_data/kernel.no_le16 b/smatch_data/kernel.no_le16 deleted file mode 100644 index d2b09c47..00000000 --- a/smatch_data/kernel.no_le16 +++ /dev/null @@ -1,605 +0,0 @@ -// list of parameters where you don't need to call cpu_to_le16. -// generated by `gen_no_le16.sh` -acm_ctrl_msg 2 -acm_ctrl_msg 4 -aiptek_get_report 4 -aiptek_set_report 4 -ark3116_read_reg 1 -ark3116_write_reg 1 -ark3116_write_reg 2 -asix_mdio_read 1 -asix_mdio_read 2 -asix_mdio_write 1 -asix_mdio_write 2 -asix_read_cmd 2 -asix_read_cmd 3 -asix_read_cmd 4 -asix_sw_reset 1 -asix_write_cmd 2 -asix_write_cmd 3 -asix_write_cmd 4 -asix_write_gpio 1 -asix_write_medium_mode 1 -asix_write_rx_ctl 1 -at76_load_int_fw_block 1 -at76_load_int_fw_block 3 -au0828_readreg 1 -au0828_writereg 1 -au0828_writereg 2 -audiophile_skip_setting_quirk 1 -az6027_usb_in_op 2 -az6027_usb_in_op 3 -az6027_usb_in_op 5 -az6027_usb_out_op 2 -az6027_usb_out_op 3 -az6027_usb_out_op 5 -BoxDisable_SW_FlowCtrl 1 -BoxGetRegister 1 -BoxGetRegister 2 -BoxSetATC 1 -BoxSetHW_FlowCtrl 1 -BoxSetRegister 1 -BoxSetSW_FlowCtrl 1 -catc_ctrl_msg 3 -catc_ctrl_msg 4 -catc_ctrl_msg 6 -ce6230_power_ctrl 1 -ch341_control_in 2 -ch341_control_in 3 -ch341_control_in 5 -ch341_control_out 2 -ch341_control_out 3 -check_port_resume_type 2 -clear_hub_feature 1 -clear_port_feature 1 -clear_port_feature 2 -cp210x_get_config 3 -cp210x_set_config 3 -cpia2_usb_transfer_cmd 3 -cpia2_usb_transfer_cmd 4 -cx231xx_mode_register 1 -cx231xx_read_ctrl_reg 2 -cx231xx_read_ctrl_reg 4 -cx231xx_set_alt_setting 2 -cx231xx_write_ctrl_reg 2 -cx231xx_write_ctrl_reg 4 -dabusb_writemem 1 -dabusb_writemem 3 -dib0700_ctrl_rd 4 -dib0700_ctrl_wr 2 -dm_read 1 -dm_read 2 -dm_read_reg 1 -dm_write 1 -dm_write 2 -dm_write_reg 1 -dm_write_reg 2 -ds9490r_read_block 2 -ds9490r_write_block 2 -ds9490r_write_byte 1 -ds_read_block 2 -ds_send_control 1 -ds_send_control 2 -ds_send_control_cmd 1 -ds_send_control_cmd 2 -ds_send_control_mode 1 -ds_send_control_mode 2 -ds_write_block 2 -ds_write_byte 1 -dtv5100_i2c_msg 5 -dw210x_op_rw 2 -dw210x_op_rw 3 -dw210x_op_rw 5 -em28xx_read_reg 1 -em28xx_read_reg_req 2 -em28xx_read_reg_req_len 2 -em28xx_read_reg_req_len 4 -em28xx_write_reg 1 -em28xx_write_reg_bits 1 -em28xx_write_regs 1 -em28xx_write_regs 3 -em28xx_write_regs_req 2 -em28xx_write_regs_req 4 -emi26_writememory 1 -emi26_writememory 3 -emi62_writememory 1 -emi62_writememory 3 -enter_gpio_mode 0 -et61x251_read_reg 1 -et61x251_write_reg 2 -ezusb_writememory 1 -ezusb_writememory 3 -firmwareUpload 2 -flexcop_usb_i2c_req 6 -flexcop_usb_i2c_request 5 -flexcop_usb_v8_memory_req 3 -flexcop_usb_v8_memory_req 5 -get_ctl_value 2 -get_ctl_value_v1 2 -get_ctl_value_v2 2 -get_cur_ctl_value 1 -get_hub_descriptor 2 -get_nb_iso_ctx 1 -get_port_status 1 -get_registers 1 -get_registers 2 -gl860_RTx 3 -gl860_RTx 4 -gl860_RTx 5 -gl861_i2c_msg 5 -go7007_usb_ezusb_write_interrupt 1 -go7007_usb_ezusb_write_interrupt 2 -go7007_usb_vendor_request 2 -go7007_usb_vendor_request 3 -go7007_usb_vendor_request 5 -gp8psk_fe_enable_high_lnb_voltage 1 -gp8psk_set_tuner_mode 1 -gp8psk_streaming_ctrl 1 -gp8psk_usb_in_op 2 -gp8psk_usb_in_op 3 -gp8psk_usb_in_op 5 -gp8psk_usb_out_op 2 -gp8psk_usb_out_op 3 -gp8psk_usb_out_op 5 -hdpvr_config_call 1 -hid_get_class_descriptor 1 -hid_get_class_descriptor 4 -hid_set_idle 1 -hub_port_connect_change 1 -hub_port_debounce 1 -hub_port_disable 1 -hub_port_init 2 -hub_port_logical_disconnect 1 -hub_port_reset 1 -hub_port_status 1 -hub_port_wait_reset 1 -hub_set_address 1 -__hwahc_op_bwa_set 1 -__hwahc_set_cluster_id 1 -hwarc_cmd 2 -i1480_usb_cmd 2 -i1480_usb_write 1 -i2c_r 1 -i2c_read 1 -i2c_r_slave 1 -i2c_r_slave 2 -i2c_set_slave_internal 1 -i2c_w 1 -i2c_w 2 -i2c_w_mask 1 -i2c_write 1 -i2c_write 2 -i2c_write 3 -i2c_w_slave 1 -i2c_w_slave 2 -ibmcam_model2_Packet1 1 -ibmcam_model2_Packet1 2 -ibmcam_model3_Packet1 1 -ibmcam_model3_Packet1 2 -ibmcam_model4_BrightnessPacket 1 -ibmcam_Packet_Format1 1 -ibmcam_Packet_Format1 2 -ibmcam_PacketFormat2 1 -ibmcam_PacketFormat2 2 -ibmcam_send_x_00_05_02_01 1 -ibmcam_send_x_00_05_02_08_01 1 -ibmcam_send_x_00_05_02 1 -ibmcam_send_x_00_05 1 -ibmcam_send_x_00 1 -ibmcam_send_x_01_00_05 1 -ibmcam_veio 2 -ibmcam_veio 3 -init_ov_sensor 1 -iowarrior_write 2 -ipw_tiocmset 2 -irda_usb_find_class_desc 1 -keyspan_pda_set_modem_info 1 -kone_get_profile 2 -kone_set_profile 2 -kone_sysfs_write_profilex 5 -konicawc_ctrl_msg 3 -konicawc_ctrl_msg 4 -konicawc_ctrl_msg 6 -line6_read_data 1 -line6_read_data 3 -line6_write_data 1 -line6_write_data 3 -lynx_devctl 2 -mcs7830_get_reg 1 -mcs7830_get_reg 2 -mcs7830_set_reg 1 -mcs7830_set_reg 2 -mcs_get_reg 1 -mcs_set_reg 1 -mcs_set_reg 2 -mos7840_get_reg_sync 1 -mos7840_get_uart_reg 1 -mos7840_set_reg_sync 1 -mos7840_set_uart_reg 1 -mv88e6060_phy_read 2 -mv88e6060_phy_write 2 -mv88e6060_phy_write 3 -nc_vendor_read 2 -nc_vendor_write 2 -nc_vendor_write 3 -ohci1394_stop_context 1 -ohci_devctl 2 -ohci_hw_csr_reg 2 -ohci_hw_csr_reg 3 -opera1_usb_i2c_msgxfer 3 -opera1_xilinx_rw 2 -opera1_xilinx_rw 4 -ov511_i2c_r 1 -ov511_i2c_read_internal 1 -ov511_i2c_w 1 -ov511_i2c_w 2 -ov511_i2c_write_internal 1 -ov511_i2c_write_internal 2 -ov518_i2c_r 1 -ov518_i2c_read_internal 1 -ov518_i2c_w 1 -ov518_i2c_w 2 -ov518_i2c_write_internal 1 -ov518_i2c_write_internal 2 -ov518_reg_w32 1 -ov518_reg_w32 3 -ov51x_i2c_write_mask_internal 1 -ov51x_set_slave_ids 1 -ov534_reg_read 1 -ov534_reg_write 1 -ovfx2_i2c_r 1 -ovfx2_i2c_w 1 -ovfx2_i2c_w 2 -pac207_read_reg 1 -pac207_write_reg 1 -pac207_write_reg 2 -pac207_write_regs 1 -pac207_write_regs 3 -pd_ide_command 1 -pd_ide_command 3 -pd_send_command 1 -pd_send_command 2 -pd_send_command 4 -pd_send_command 5 -pd_send_command 6 -phy_QueryUsbBBReg 1 -phy_SetUsbBBReg 1 -PIPEnsControlOutAsyn 2 -PIPEnsControlOutAsyn 3 -PIPEnsControlOutAsyn 4 -pl2303_vendor_read 0 -pl2303_vendor_read 1 -pl2303_vendor_write 0 -pl2303_vendor_write 1 -PlatformIORead1Byte 1 -PlatformIORead2Byte 1 -PlatformIORead4Byte 1 -PlatformIOWrite1Byte 1 -PlatformIOWrite2Byte 1 -PlatformIOWrite4Byte 1 -pt_info_set 1 -purge_port 1 -qcm_stv_getw 1 -qcm_stv_setb 1 -qcm_stv_setw 1 -qt2_box_flush 1 -qt2_box_flush 2 -qt2_box_get_register 1 -qt2_box_get_register 2 -qt2_boxsethw_flowctl 1 -qt2_boxsetQMCR 1 -qt2_box_set_register 1 -qt2_boxsetsw_flowctl 1 -qt2_boxsetuart 2 -qt2_boxstoprx 1 -qt2_boxstoprx 2 -qt2_boxunsetsw_flowctl 1 -qt2_closeboxchannel 1 -qt2_conf_uart 2 -qt2_openboxchannel 1 -qt_close_channel 1 -qt_open_channel 1 -qt_setuart 2 -read_download_mem 3 -read_nic_byte 1 -read_nic_dword 1 -read_nic_word 1 -read_packet 3 -ReadPacket 3 -read_packet 4 -read_port 4 -read_reg_fp 1 -read_sensor_register 1 -recv_control_msg 2 -recv_control_msg 3 -recv_control_msg 4 -recv_control_msg 5 -reg_clear 1 -reg_r 1 -reg_r_1 1 -reg_r_12 2 -reg_r_12 3 -reg_r 2 -reg_r 3 -reg_r8 1 -reg_read 1 -reg_read 2 -reg_r_i 1 -reg_r_wait 2 -reg_set 1 -reg_w 1 -reg_w1 1 -reg_w_1 2 -reg_w_1 3 -reg_w 2 -reg_w2 1 -reg_w 3 -reg_w_buf 1 -reg_w_buf 2 -reg_w_buf 3 -reg_w_i 1 -reg_w_i 2 -reg_w_mask 1 -reg_write 1 -reg_write 2 -reg_write 3 -reg_w_riv 2 -reg_w_riv 3 -reg_w_val 1 -reg_w_val 2 -rj54n1_set_rect 1 -rj54n1_set_rect 2 -rj54n1_set_rect 3 -rndis_command 2 -rom_read 1 -rom_read 2 -rom_write 1 -rom_write 2 -__rpipe_get_descr 2 -__rpipe_reset 1 -__rpipe_set_descr 2 -rt2x00usb_vendor_req_buff_lock 3 -rt2x00usb_vendor_req_buff_lock 5 -rt2x00usb_vendor_request 3 -rt2x00usb_vendor_request 4 -rt2x00usb_vendor_request 6 -rt2x00usb_vendor_request_buff 3 -rt2x00usb_vendor_request_buff 5 -rtl8192_QueryBBReg 1 -rtl8192_setBBreg 1 -rtl8225_write 1 -rtl8225_write_8051 1 -RTUSBMultiRead 1 -RTUSBMultiRead 3 -RTUSBMultiWrite_OneByte 1 -RTUSBReadEEPROM 1 -RTUSBReadEEPROM16 1 -RTUSBReadEEPROM 3 -RTUSBReadMACRegister 1 -RTUSBSingleWrite 1 -RTUSBSingleWrite 2 -RTUSB_VendorRequest 4 -RTUSB_VendorRequest 5 -RTUSB_VendorRequest 7 -RTUSBWriteEEPROM 1 -RTUSBWriteEEPROM 3 -RTUSBWriteMACRegister 1 -s2255_vendor_req 2 -s2255_vendor_req 3 -s2255_vendor_req 5 -sccb_read 1 -sccb_write 1 -sccb_write 2 -se401_get_feature 1 -se401_set_feature 1 -se401_set_feature 2 -se401_sndctrl 3 -se401_sndctrl 5 -send_cmd 2 -send_cmd 3 -send_cmd 5 -send_control_msg 1 -__send_control_msg 2 -_send_control_msg 2 -send_control_msg 2 -__send_control_msg 3 -_send_control_msg 3 -send_control_msg 3 -__send_control_msg 5 -_send_control_msg 5 -send_control_msg 5 -set_alternate 1 -set_altsetting 1 -set_camera_power 1 -set_control_lines 1 -set_cpld 1 -set_cur_ctl_value 1 -set_mcr 1 -set_port_feature 1 -set_port_feature 2 -set_registers 1 -set_registers 2 -set_scr 1 -set_value 2 -si470x_get_report 2 -si470x_set_report 2 -sierra_net_send_cmd 2 -sierra_set_ms_mode 1 -sierra_set_power_state 1 -sierra_vsc_set_nmea 1 -smsc75xx_read_reg 1 -smsc75xx_write_reg 1 -smsc95xx_read_reg 1 -smsc95xx_write_reg 1 -sn9c102_read_reg 1 -sn9c102_write_reg 2 -snd_ak4113_reg_write 1 -snd_ak4114_reg_write 1 -snd_ak4117_reg_write 1 -snd_usb_apply_interface_quirk 1 -snd_usb_create_stream 2 -snd_usb_ctl_msg 4 -snd_usb_ctl_msg 5 -snd_usb_ctl_msg 7 -snd_usb_mixer_set_ctl_value 2 -snd_usb_parse_audio_endpoints 1 -spca500_setmode 1 -spca500_setmode 2 -spca504A_acknowledged_command 2 -spca504A_acknowledged_command 3 -spca504_acknowledged_command 2 -spca504_acknowledged_command 3 -spca506_Setsize 2 -spca506_Setsize 3 -spca506_WriteI2c 1 -spca506_WriteI2c 2 -spca50x_setup_qtable 1 -spcp8x5_set_workMode 1 -spcp8x5_set_workMode 2 -sq905c_command 1 -sq905c_command 2 -sq905_command 1 -sq905c_read 1 -sq905c_read 2 -sq905c_read 3 -sq905_read_data 2 -sram_test_pass 1 -sram_test_word 1 -sram_test_word 2 -sram_write 1 -sram_write 2 -start_2wr_probe 1 -stk_camera_read_reg 1 -stk_camera_write_reg 1 -stk_camera_write_reg 2 -stk_sensor_inb 1 -stk_sensor_outb 1 -stk_sensor_outb 2 -stv06xx_read_bridge 1 -stv06xx_write_bridge 1 -stv_set_config 2 -stv_set_config 3 -stv_sndctrl 3 -stv_sndctrl 4 -stv_sndctrl 5 -test_halt 1 -ti_command_in_sync 2 -ti_command_in_sync 3 -ti_command_in_sync 5 -ti_command_out_sync 2 -ti_command_out_sync 3 -ti_command_out_sync 5 -ti_do_config 2 -ti_vread_sync 2 -ti_vread_sync 3 -ti_vread_sync 5 -ti_vsend_sync 2 -ti_vsend_sync 3 -ti_vsend_sync 5 -tm6000_get_reg16 2 -tm6000_get_reg16 3 -tm6000_get_reg 2 -tm6000_get_reg 3 -tm6000_get_reg32 2 -tm6000_get_reg32 3 -tm6000_i2c_recv_regs16 1 -tm6000_i2c_recv_regs16 2 -tm6000_i2c_recv_regs16 4 -tm6000_i2c_recv_regs 4 -tm6000_i2c_send_regs 4 -tm6000_read_write_usb 3 -tm6000_read_write_usb 4 -tm6000_read_write_usb 6 -tm6000_set_reg 2 -tm6000_set_reg 3 -tm6000_tuner_callback 3 -toneport_send_cmd 1 -toneport_send_cmd 2 -uea_request 1 -uea_request 2 -uea_request 3 -uea_send_modem_cmd 1 -uea_send_modem_cmd 2 -ultracam_alternateSetting 1 -ultracam_veio 2 -ultracam_veio 3 -upload_code 3 -us122l_ctl_msg 4 -us122l_ctl_msg 5 -us122l_ctl_msg 7 -usb_control_msg 4 -usb_control_msg 5 -usb_control_msg 7 -usb_cypress_writemem 1 -usb_cypress_writemem 3 -usbduxfastsub_upload 2 -usbduxfastsub_upload 3 -usbduxsub_upload 2 -usbduxsub_upload 3 -usb_get_descriptor 4 -usb_get_device_descriptor 1 -usb_get_report 4 -usb_get_report 5 -usb_get_status 2 -usb_get_string 1 -usb_get_string 4 -usblp_ctrl_msg 5 -usblp_ctrl_msg 7 -usblp_ioctl 2 -usb_read 2 -usb_read 3 -usb_read 5 -usb_set_configuration 1 -usb_set_interface 1 -usb_set_interface 2 -usb_set_report 4 -usb_string_sub 1 -usbvision_read_reg 1 -usbvision_write_reg 1 -usb_write 2 -usb_write 3 -usb_write 5 -__uvc_query_ctrl 6 -uvc_query_ctrl 6 -vendor_command 2 -vendor_command 3 -vendor_command 5 -verify_halted 1 -verify_not_halted 1 -vp702x_usb_in_op 2 -vp702x_usb_in_op 3 -vp702x_usb_in_op 5 -vp702x_usb_inout_op 2 -vp702x_usb_inout_op 4 -vp702x_usb_out_op 2 -vp702x_usb_out_op 3 -vp702x_usb_out_op 5 -w9968cf_read_reg 1 -w9968cf_write_reg 1 -w9968cf_write_reg 2 -w9968cf_write_sb 1 -Wb35Reg_ReadSync 1 -Wb35Reg_WriteSync 1 -write_i2c_mem 3 -write_nic_byte 1 -write_nic_dword 1 -write_nic_word 1 -write_packet 3 -WritePacket 3 -write_packet 4 -write_port 5 -write_reg 1 -write_reg 2 -write_reg_fp 1 -write_reg_fp 2 -xusbatm_capture_intf 3 -zc0301_i2c_read 1 -zc0301_i2c_write 1 -zc0301_read_reg 1 -zc0301_write_reg 1 -zc0301_write_reg 2 -zd_usb_read_fw 1 -zd_usb_read_fw 3 -zfwUsbSubmitControl 2 -zfwUsbSubmitControl 3 -zfwUsbSubmitControl 5 -- 2.11.4.GIT