Hi Koba, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on bluetooth/master] [also build test WARNING on v5.14-rc6] [cannot apply to bluetooth-next/master next-20210819] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Koba-Ko/Bluetooth-btusb-add-a-reject-table-to-disable-msft/20210819-220108 base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master config: mips-randconfig-s032-20210818 (attached as .config) compiler: mips64-linux-gcc (GCC) 11.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-348-gf0e6938b-dirty # https://github.com/0day-ci/linux/commit/bbff58c00c9efb048da28df9dbc3c79c0c40763b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Koba-Ko/Bluetooth-btusb-add-a-reject-table-to-disable-msft/20210819-220108 git checkout bbff58c00c9efb048da28df9dbc3c79c0c40763b # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) command-line: note: in included file: builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined builtin:0:0: sparse: this was the original definition drivers/bluetooth/btusb.c:1852:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1856:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1860:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1864:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1868:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1874:18: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:1912:21: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:2421:25: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:2430:25: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:2431:25: sparse: sparse: cast to restricted __le16 drivers/bluetooth/btusb.c:2432:25: sparse: sparse: cast to restricted __le16 >> drivers/bluetooth/btusb.c:2917:23: sparse: sparse: incorrect type in assignment (different modifiers) @@ expected struct usb_device_id *match @@ got struct usb_device_id const * @@ drivers/bluetooth/btusb.c:2917:23: sparse: expected struct usb_device_id *match drivers/bluetooth/btusb.c:2917:23: sparse: got struct usb_device_id const * drivers/bluetooth/btusb.c:4131:28: sparse: sparse: cast to restricted __le32 drivers/bluetooth/btusb.c:4162:18: sparse: sparse: restricted __le16 degrades to integer vim +2917 drivers/bluetooth/btusb.c 2829 2830 static int btusb_setup_intel_new(struct hci_dev *hdev) 2831 { 2832 struct btusb_data *data = hci_get_drvdata(hdev); 2833 struct intel_version ver; 2834 struct intel_boot_params params; 2835 u32 boot_param; 2836 char ddcname[64]; 2837 int err; 2838 struct intel_debug_features features; 2839 struct usb_device_id *match; 2840 2841 BT_DBG("%s", hdev->name); 2842 2843 /* Set the default boot parameter to 0x0 and it is updated to 2844 * SKU specific boot parameter after reading Intel_Write_Boot_Params 2845 * command while downloading the firmware. 2846 */ 2847 boot_param = 0x00000000; 2848 2849 /* Read the Intel version information to determine if the device 2850 * is in bootloader mode or if it already has operational firmware 2851 * loaded. 2852 */ 2853 err = btintel_read_version(hdev, &ver); 2854 if (err) { 2855 bt_dev_err(hdev, "Intel Read version failed (%d)", err); 2856 btintel_reset_to_bootloader(hdev); 2857 return err; 2858 } 2859 2860 err = btintel_version_info(hdev, &ver); 2861 if (err) 2862 return err; 2863 2864 err = btusb_intel_download_firmware(hdev, &ver, ¶ms, &boot_param); 2865 if (err) 2866 return err; 2867 2868 /* controller is already having an operational firmware */ 2869 if (ver.fw_variant == 0x23) 2870 goto finish; 2871 2872 err = btusb_intel_boot(hdev, boot_param); 2873 if (err) 2874 return err; 2875 2876 clear_bit(BTUSB_BOOTLOADER, &data->flags); 2877 2878 err = btusb_setup_intel_new_get_fw_name(&ver, ¶ms, ddcname, 2879 sizeof(ddcname), "ddc"); 2880 2881 if (err < 0) { 2882 bt_dev_err(hdev, "Unsupported Intel firmware naming"); 2883 } else { 2884 /* Once the device is running in operational mode, it needs to 2885 * apply the device configuration (DDC) parameters. 2886 * 2887 * The device can work without DDC parameters, so even if it 2888 * fails to load the file, no need to fail the setup. 2889 */ 2890 btintel_load_ddc_config(hdev, ddcname); 2891 } 2892 2893 /* Read the Intel supported features and if new exception formats 2894 * supported, need to load the additional DDC config to enable. 2895 */ 2896 btintel_read_debug_features(hdev, &features); 2897 2898 /* Set DDC mask for available debug features */ 2899 btintel_set_debug_features(hdev, &features); 2900 2901 /* Read the Intel version information after loading the FW */ 2902 err = btintel_read_version(hdev, &ver); 2903 if (err) 2904 return err; 2905 2906 btintel_version_info(hdev, &ver); 2907 2908 finish: 2909 /* All Intel controllers that support the Microsoft vendor 2910 * extension are using 0xFC1E for VsMsftOpCode. 2911 */ 2912 switch (ver.hw_variant) { 2913 case 0x11: /* JfP */ 2914 case 0x12: /* ThP */ 2915 case 0x13: /* HrP */ 2916 case 0x14: /* CcP */ > 2917 match = usb_match_id(data->intf, msft_rej_table); 2918 if (!match) 2919 hci_set_msft_opcode(hdev, 0xFC1E); 2920 break; 2921 } 2922 2923 /* Set the event mask for Intel specific vendor events. This enables 2924 * a few extra events that are useful during general operation. It 2925 * does not enable any debugging related events. 2926 * 2927 * The device will function correctly without these events enabled 2928 * and thus no need to fail the setup. 2929 */ 2930 btintel_set_event_mask(hdev, false); 2931 2932 return 0; 2933 } 2934 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip