Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'char-misc-6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc/IIO driver fixes from Greg KH:
"Here are a number of misc and char and iio driver fixes that have been
sitting in my tree for way too long. They contain:

- iio driver fixes for reported issues

- regression fix for rtsx_usb card reader

- mei and mhi driver fixes

- small virt driver fixes

- ntsync permissions fix

- other tiny driver fixes for reported problems.

All of these have been in linux-next for quite a while with no
reported issues"

* tag 'char-misc-6.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (30 commits)
Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
ntsync: Check wait count based on byte size.
bus: simple-pm-bus: fix forced runtime PM use
char: misc: deallocate static minor in error path
eeprom: digsy_mtc: Make GPIO lookup table match the device
drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
binderfs: fix use-after-free in binder_devices
slimbus: messaging: Free transaction ID in delayed interrupt scenario
vbox: add HAS_IOPORT dependency
cdx: Fix possible UAF error in driver_override_show()
intel_th: pci: Add Panther Lake-P/U support
intel_th: pci: Add Panther Lake-H support
intel_th: pci: Add Arrow Lake support
intel_th: msu: Fix less trivial kernel-doc warnings
intel_th: msu: Fix kernel-doc warnings
MAINTAINERS: change maintainer for FSI
ntsync: Set the permissions to be 0666
bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
mei: vsc: Use "wakeuphostint" when getting the host wakeup GPIO
mei: me: add panther lake P DID
...

+139 -85
+1
Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
··· 146 146 maxItems: 2 147 147 148 148 pwm-names: 149 + minItems: 1 149 150 items: 150 151 - const: convst1 151 152 - const: convst2
+2 -5
MAINTAINERS
··· 9443 9443 F: include/uapi/linux/fscrypt.h 9444 9444 9445 9445 FSI SUBSYSTEM 9446 - M: Jeremy Kerr <jk@ozlabs.org> 9447 - M: Joel Stanley <joel@jms.id.au> 9448 - R: Alistar Popple <alistair@popple.id.au> 9449 - R: Eddie James <eajames@linux.ibm.com> 9446 + M: Eddie James <eajames@linux.ibm.com> 9447 + R: Ninad Palsule <ninad@linux.ibm.com> 9450 9448 L: linux-fsi@lists.ozlabs.org 9451 9449 S: Supported 9452 9450 Q: http://patchwork.ozlabs.org/project/linux-fsi/list/ 9453 - T: git git://git.kernel.org/pub/scm/linux/kernel/git/joel/fsi.git 9454 9451 F: drivers/fsi/ 9455 9452 F: include/linux/fsi*.h 9456 9453 F: include/trace/events/fsi*.h
+1
drivers/android/binderfs.c
··· 274 274 mutex_unlock(&binderfs_minors_mutex); 275 275 276 276 if (refcount_dec_and_test(&device->ref)) { 277 + hlist_del_init(&device->hlist); 277 278 kfree(device->context.name); 278 279 kfree(device); 279 280 }
+3 -2
drivers/bus/mhi/host/pci_generic.c
··· 1095 1095 err_unprepare: 1096 1096 mhi_unprepare_after_power_down(mhi_cntrl); 1097 1097 err_try_reset: 1098 - if (pci_reset_function(pdev)) 1099 - dev_err(&pdev->dev, "Recovery failed\n"); 1098 + err = pci_try_reset_function(pdev); 1099 + if (err) 1100 + dev_err(&pdev->dev, "Recovery failed: %d\n", err); 1100 1101 } 1101 1102 1102 1103 static void health_check(struct timer_list *t)
+21 -1
drivers/bus/simple-pm-bus.c
··· 109 109 return 0; 110 110 } 111 111 112 + static int simple_pm_bus_suspend(struct device *dev) 113 + { 114 + struct simple_pm_bus *bus = dev_get_drvdata(dev); 115 + 116 + if (!bus) 117 + return 0; 118 + 119 + return pm_runtime_force_suspend(dev); 120 + } 121 + 122 + static int simple_pm_bus_resume(struct device *dev) 123 + { 124 + struct simple_pm_bus *bus = dev_get_drvdata(dev); 125 + 126 + if (!bus) 127 + return 0; 128 + 129 + return pm_runtime_force_resume(dev); 130 + } 131 + 112 132 static const struct dev_pm_ops simple_pm_bus_pm_ops = { 113 133 RUNTIME_PM_OPS(simple_pm_bus_runtime_suspend, simple_pm_bus_runtime_resume, NULL) 114 - NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) 134 + NOIRQ_SYSTEM_SLEEP_PM_OPS(simple_pm_bus_suspend, simple_pm_bus_resume) 115 135 }; 116 136 117 137 #define ONLY_BUS ((void *) 1) /* Match if the device is only a bus. */
+5 -1
drivers/cdx/cdx.c
··· 473 473 struct device_attribute *attr, char *buf) 474 474 { 475 475 struct cdx_device *cdx_dev = to_cdx_device(dev); 476 + ssize_t len; 476 477 477 - return sysfs_emit(buf, "%s\n", cdx_dev->driver_override); 478 + device_lock(dev); 479 + len = sysfs_emit(buf, "%s\n", cdx_dev->driver_override); 480 + device_unlock(dev); 481 + return len; 478 482 } 479 483 static DEVICE_ATTR_RW(driver_override); 480 484
+1 -1
drivers/char/misc.c
··· 264 264 device_create_with_groups(&misc_class, misc->parent, dev, 265 265 misc, misc->groups, "%s", misc->name); 266 266 if (IS_ERR(misc->this_device)) { 267 + misc_minor_free(misc->minor); 267 268 if (is_dynamic) { 268 - misc_minor_free(misc->minor); 269 269 misc->minor = MISC_DYNAMIC_MINOR; 270 270 } 271 271 err = PTR_ERR(misc->this_device);
+11 -2
drivers/hwtracing/intel_th/msu.c
··· 105 105 106 106 /** 107 107 * struct msc - MSC device representation 108 - * @reg_base: register window base address 108 + * @reg_base: register window base address for the entire MSU 109 + * @msu_base: register window base address for this MSC 109 110 * @thdev: intel_th_device pointer 110 111 * @mbuf: MSU buffer, if assigned 111 - * @mbuf_priv MSU buffer's private data, if @mbuf 112 + * @mbuf_priv: MSU buffer's private data, if @mbuf 113 + * @work: a work to stop the trace when the buffer is full 112 114 * @win_list: list of windows in multiblock mode 113 115 * @single_sgt: single mode buffer 114 116 * @cur_win: current window 117 + * @switch_on_unlock: window to switch to when it becomes available 115 118 * @nr_pages: total number of pages allocated for this buffer 116 119 * @single_sz: amount of data in single mode 117 120 * @single_wrap: single mode wrap occurred 118 121 * @base: buffer's base pointer 119 122 * @base_addr: buffer's base address 123 + * @orig_addr: MSC0 buffer's base address 124 + * @orig_sz: MSC0 buffer's size 120 125 * @user_count: number of users of the buffer 121 126 * @mmap_count: number of mappings 122 127 * @buf_mutex: mutex to serialize access to buffer-related bits 128 + * @iter_list: list of open file descriptor iterators 129 + * @stop_on_full: stop the trace if the current window is full 123 130 * @enabled: MSC is enabled 124 131 * @wrap: wrapping is enabled 132 + * @do_irq: IRQ resource is available, handle interrupts 133 + * @multi_is_broken: multiblock mode enabled (not disabled by PCI drvdata) 125 134 * @mode: MSC operating mode 126 135 * @burst_len: write burst length 127 136 * @index: number of this MSC in the MSU
+15
drivers/hwtracing/intel_th/pci.c
··· 335 335 .driver_data = (kernel_ulong_t)&intel_th_2x, 336 336 }, 337 337 { 338 + /* Arrow Lake */ 339 + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7724), 340 + .driver_data = (kernel_ulong_t)&intel_th_2x, 341 + }, 342 + { 343 + /* Panther Lake-H */ 344 + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe324), 345 + .driver_data = (kernel_ulong_t)&intel_th_2x, 346 + }, 347 + { 348 + /* Panther Lake-P/U */ 349 + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe424), 350 + .driver_data = (kernel_ulong_t)&intel_th_2x, 351 + }, 352 + { 338 353 /* Alder Lake CPU */ 339 354 PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), 340 355 .driver_data = (kernel_ulong_t)&intel_th_2x,
+1 -1
drivers/iio/adc/ad7192.c
··· 1084 1084 1085 1085 conf &= ~AD7192_CONF_CHAN_MASK; 1086 1086 for_each_set_bit(i, scan_mask, 8) 1087 - conf |= FIELD_PREP(AD7192_CONF_CHAN_MASK, i); 1087 + conf |= FIELD_PREP(AD7192_CONF_CHAN_MASK, BIT(i)); 1088 1088 1089 1089 ret = ad_sd_write_reg(&st->sd, AD7192_REG_CONF, 3, conf); 1090 1090 if (ret < 0)
+1 -1
drivers/iio/adc/ad7606.c
··· 1047 1047 1048 1048 cs = &st->chan_scales[ch]; 1049 1049 *vals = (int *)cs->scale_avail; 1050 - *length = cs->num_scales; 1050 + *length = cs->num_scales * 2; 1051 1051 *type = IIO_VAL_INT_PLUS_MICRO; 1052 1052 1053 1053 return IIO_AVAIL_LIST;
+40 -28
drivers/iio/adc/at91-sama5d2_adc.c
··· 329 329 #define AT91_HWFIFO_MAX_SIZE_STR "128" 330 330 #define AT91_HWFIFO_MAX_SIZE 128 331 331 332 - #define AT91_SAMA5D2_CHAN_SINGLE(index, num, addr) \ 332 + #define AT91_SAMA_CHAN_SINGLE(index, num, addr, rbits) \ 333 333 { \ 334 334 .type = IIO_VOLTAGE, \ 335 335 .channel = num, \ ··· 337 337 .scan_index = index, \ 338 338 .scan_type = { \ 339 339 .sign = 'u', \ 340 - .realbits = 14, \ 340 + .realbits = rbits, \ 341 341 .storagebits = 16, \ 342 342 }, \ 343 343 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ ··· 350 350 .indexed = 1, \ 351 351 } 352 352 353 - #define AT91_SAMA5D2_CHAN_DIFF(index, num, num2, addr) \ 353 + #define AT91_SAMA5D2_CHAN_SINGLE(index, num, addr) \ 354 + AT91_SAMA_CHAN_SINGLE(index, num, addr, 14) 355 + 356 + #define AT91_SAMA7G5_CHAN_SINGLE(index, num, addr) \ 357 + AT91_SAMA_CHAN_SINGLE(index, num, addr, 16) 358 + 359 + #define AT91_SAMA_CHAN_DIFF(index, num, num2, addr, rbits) \ 354 360 { \ 355 361 .type = IIO_VOLTAGE, \ 356 362 .differential = 1, \ ··· 366 360 .scan_index = index, \ 367 361 .scan_type = { \ 368 362 .sign = 's', \ 369 - .realbits = 14, \ 363 + .realbits = rbits, \ 370 364 .storagebits = 16, \ 371 365 }, \ 372 366 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ ··· 378 372 .datasheet_name = "CH"#num"-CH"#num2, \ 379 373 .indexed = 1, \ 380 374 } 375 + 376 + #define AT91_SAMA5D2_CHAN_DIFF(index, num, num2, addr) \ 377 + AT91_SAMA_CHAN_DIFF(index, num, num2, addr, 14) 378 + 379 + #define AT91_SAMA7G5_CHAN_DIFF(index, num, num2, addr) \ 380 + AT91_SAMA_CHAN_DIFF(index, num, num2, addr, 16) 381 381 382 382 #define AT91_SAMA5D2_CHAN_TOUCH(num, name, mod) \ 383 383 { \ ··· 678 666 }; 679 667 680 668 static const struct iio_chan_spec at91_sama7g5_adc_channels[] = { 681 - AT91_SAMA5D2_CHAN_SINGLE(0, 0, 0x60), 682 - AT91_SAMA5D2_CHAN_SINGLE(1, 1, 0x64), 683 - AT91_SAMA5D2_CHAN_SINGLE(2, 2, 0x68), 684 - AT91_SAMA5D2_CHAN_SINGLE(3, 3, 0x6c), 685 - AT91_SAMA5D2_CHAN_SINGLE(4, 4, 0x70), 686 - AT91_SAMA5D2_CHAN_SINGLE(5, 5, 0x74), 687 - AT91_SAMA5D2_CHAN_SINGLE(6, 6, 0x78), 688 - AT91_SAMA5D2_CHAN_SINGLE(7, 7, 0x7c), 689 - AT91_SAMA5D2_CHAN_SINGLE(8, 8, 0x80), 690 - AT91_SAMA5D2_CHAN_SINGLE(9, 9, 0x84), 691 - AT91_SAMA5D2_CHAN_SINGLE(10, 10, 0x88), 692 - AT91_SAMA5D2_CHAN_SINGLE(11, 11, 0x8c), 693 - AT91_SAMA5D2_CHAN_SINGLE(12, 12, 0x90), 694 - AT91_SAMA5D2_CHAN_SINGLE(13, 13, 0x94), 695 - AT91_SAMA5D2_CHAN_SINGLE(14, 14, 0x98), 696 - AT91_SAMA5D2_CHAN_SINGLE(15, 15, 0x9c), 697 - AT91_SAMA5D2_CHAN_DIFF(16, 0, 1, 0x60), 698 - AT91_SAMA5D2_CHAN_DIFF(17, 2, 3, 0x68), 699 - AT91_SAMA5D2_CHAN_DIFF(18, 4, 5, 0x70), 700 - AT91_SAMA5D2_CHAN_DIFF(19, 6, 7, 0x78), 701 - AT91_SAMA5D2_CHAN_DIFF(20, 8, 9, 0x80), 702 - AT91_SAMA5D2_CHAN_DIFF(21, 10, 11, 0x88), 703 - AT91_SAMA5D2_CHAN_DIFF(22, 12, 13, 0x90), 704 - AT91_SAMA5D2_CHAN_DIFF(23, 14, 15, 0x98), 669 + AT91_SAMA7G5_CHAN_SINGLE(0, 0, 0x60), 670 + AT91_SAMA7G5_CHAN_SINGLE(1, 1, 0x64), 671 + AT91_SAMA7G5_CHAN_SINGLE(2, 2, 0x68), 672 + AT91_SAMA7G5_CHAN_SINGLE(3, 3, 0x6c), 673 + AT91_SAMA7G5_CHAN_SINGLE(4, 4, 0x70), 674 + AT91_SAMA7G5_CHAN_SINGLE(5, 5, 0x74), 675 + AT91_SAMA7G5_CHAN_SINGLE(6, 6, 0x78), 676 + AT91_SAMA7G5_CHAN_SINGLE(7, 7, 0x7c), 677 + AT91_SAMA7G5_CHAN_SINGLE(8, 8, 0x80), 678 + AT91_SAMA7G5_CHAN_SINGLE(9, 9, 0x84), 679 + AT91_SAMA7G5_CHAN_SINGLE(10, 10, 0x88), 680 + AT91_SAMA7G5_CHAN_SINGLE(11, 11, 0x8c), 681 + AT91_SAMA7G5_CHAN_SINGLE(12, 12, 0x90), 682 + AT91_SAMA7G5_CHAN_SINGLE(13, 13, 0x94), 683 + AT91_SAMA7G5_CHAN_SINGLE(14, 14, 0x98), 684 + AT91_SAMA7G5_CHAN_SINGLE(15, 15, 0x9c), 685 + AT91_SAMA7G5_CHAN_DIFF(16, 0, 1, 0x60), 686 + AT91_SAMA7G5_CHAN_DIFF(17, 2, 3, 0x68), 687 + AT91_SAMA7G5_CHAN_DIFF(18, 4, 5, 0x70), 688 + AT91_SAMA7G5_CHAN_DIFF(19, 6, 7, 0x78), 689 + AT91_SAMA7G5_CHAN_DIFF(20, 8, 9, 0x80), 690 + AT91_SAMA7G5_CHAN_DIFF(21, 10, 11, 0x88), 691 + AT91_SAMA7G5_CHAN_DIFF(22, 12, 13, 0x90), 692 + AT91_SAMA7G5_CHAN_DIFF(23, 14, 15, 0x98), 705 693 IIO_CHAN_SOFT_TIMESTAMP(24), 706 694 AT91_SAMA5D2_CHAN_TEMP(AT91_SAMA7G5_ADC_TEMP_CHANNEL, "temp", 0xdc), 707 695 };
+1 -1
drivers/iio/adc/pac1921.c
··· 1198 1198 1199 1199 label = devm_kstrdup(dev, status->package.elements[0].string.pointer, 1200 1200 GFP_KERNEL); 1201 + ACPI_FREE(status); 1201 1202 if (!label) 1202 1203 return -ENOMEM; 1203 1204 1204 1205 indio_dev->label = label; 1205 - ACPI_FREE(status); 1206 1206 1207 1207 return 0; 1208 1208 }
+6
drivers/iio/dac/ad3552r.c
··· 410 410 return ret; 411 411 } 412 412 413 + /* Clear reset error flag, see ad3552r manual, rev B table 38. */ 414 + ret = ad3552r_write_reg(dac, AD3552R_REG_ADDR_ERR_STATUS, 415 + AD3552R_MASK_RESET_STATUS); 416 + if (ret) 417 + return ret; 418 + 413 419 return ad3552r_update_reg_field(dac, 414 420 AD3552R_REG_ADDR_INTERFACE_CONFIG_A, 415 421 AD3552R_MASK_ADDR_ASCENSION,
+4 -10
drivers/iio/filter/admv8818.c
··· 574 574 struct spi_device *spi = st->spi; 575 575 unsigned int chip_id; 576 576 577 - ret = regmap_update_bits(st->regmap, ADMV8818_REG_SPI_CONFIG_A, 578 - ADMV8818_SOFTRESET_N_MSK | 579 - ADMV8818_SOFTRESET_MSK, 580 - FIELD_PREP(ADMV8818_SOFTRESET_N_MSK, 1) | 581 - FIELD_PREP(ADMV8818_SOFTRESET_MSK, 1)); 577 + ret = regmap_write(st->regmap, ADMV8818_REG_SPI_CONFIG_A, 578 + ADMV8818_SOFTRESET_N_MSK | ADMV8818_SOFTRESET_MSK); 582 579 if (ret) { 583 580 dev_err(&spi->dev, "ADMV8818 Soft Reset failed.\n"); 584 581 return ret; 585 582 } 586 583 587 - ret = regmap_update_bits(st->regmap, ADMV8818_REG_SPI_CONFIG_A, 588 - ADMV8818_SDOACTIVE_N_MSK | 589 - ADMV8818_SDOACTIVE_MSK, 590 - FIELD_PREP(ADMV8818_SDOACTIVE_N_MSK, 1) | 591 - FIELD_PREP(ADMV8818_SDOACTIVE_MSK, 1)); 584 + ret = regmap_write(st->regmap, ADMV8818_REG_SPI_CONFIG_A, 585 + ADMV8818_SDOACTIVE_N_MSK | ADMV8818_SDOACTIVE_MSK); 592 586 if (ret) { 593 587 dev_err(&spi->dev, "ADMV8818 SDO Enable failed.\n"); 594 588 return ret;
+2 -2
drivers/iio/light/apds9306.c
··· 108 108 { 109 109 .part_id = 0xB1, 110 110 .max_scale_int = 16, 111 - .max_scale_nano = 3264320, 111 + .max_scale_nano = 326432000, 112 112 }, { 113 113 .part_id = 0xB3, 114 114 .max_scale_int = 14, 115 - .max_scale_nano = 9712000, 115 + .max_scale_nano = 97120000, 116 116 }, 117 117 }; 118 118
+4 -3
drivers/iio/light/hid-sensor-prox.c
··· 49 49 #define PROX_CHANNEL(_is_proximity, _channel) \ 50 50 {\ 51 51 .type = _is_proximity ? IIO_PROXIMITY : IIO_ATTENTION,\ 52 - .info_mask_separate = _is_proximity ? BIT(IIO_CHAN_INFO_RAW) :\ 53 - BIT(IIO_CHAN_INFO_PROCESSED),\ 54 - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |\ 52 + .info_mask_separate = \ 53 + (_is_proximity ? BIT(IIO_CHAN_INFO_RAW) :\ 54 + BIT(IIO_CHAN_INFO_PROCESSED)) |\ 55 + BIT(IIO_CHAN_INFO_OFFSET) |\ 55 56 BIT(IIO_CHAN_INFO_SCALE) |\ 56 57 BIT(IIO_CHAN_INFO_SAMP_FREQ) |\ 57 58 BIT(IIO_CHAN_INFO_HYSTERESIS),\
+2 -1
drivers/iio/proximity/hx9023s.c
··· 1036 1036 return -ENOMEM; 1037 1037 1038 1038 memcpy(bin->data, fw->data, fw->size); 1039 - release_firmware(fw); 1040 1039 1041 1040 bin->fw_size = fw->size; 1042 1041 bin->fw_ver = bin->data[FW_VER_OFFSET]; 1043 1042 bin->reg_count = get_unaligned_le16(bin->data + FW_REG_CNT_OFFSET); 1043 + 1044 + release_firmware(fw); 1044 1045 1045 1046 return hx9023s_bin_load(data, bin); 1046 1047 }
-15
drivers/misc/cardreader/rtsx_usb.c
··· 286 286 int rtsx_usb_get_card_status(struct rtsx_ucr *ucr, u16 *status) 287 287 { 288 288 int ret; 289 - u8 interrupt_val = 0; 290 289 u16 *buf; 291 290 292 291 if (!status) ··· 307 308 } else { 308 309 ret = rtsx_usb_get_status_with_bulk(ucr, status); 309 310 } 310 - 311 - rtsx_usb_read_register(ucr, CARD_INT_PEND, &interrupt_val); 312 - /* Cross check presence with interrupts */ 313 - if (*status & XD_CD) 314 - if (!(interrupt_val & XD_INT)) 315 - *status &= ~XD_CD; 316 - 317 - if (*status & SD_CD) 318 - if (!(interrupt_val & SD_INT)) 319 - *status &= ~SD_CD; 320 - 321 - if (*status & MS_CD) 322 - if (!(interrupt_val & MS_INT)) 323 - *status &= ~MS_CD; 324 311 325 312 /* usb_control_msg may return positive when success */ 326 313 if (ret < 0)
+1 -1
drivers/misc/eeprom/digsy_mtc_eeprom.c
··· 50 50 }; 51 51 52 52 static struct gpiod_lookup_table eeprom_spi_gpiod_table = { 53 - .dev_id = "spi_gpio", 53 + .dev_id = "spi_gpio.1", 54 54 .table = { 55 55 GPIO_LOOKUP("gpio@b00", GPIO_EEPROM_CLK, 56 56 "sck", GPIO_ACTIVE_HIGH),
+2
drivers/misc/mei/hw-me-regs.h
··· 117 117 118 118 #define MEI_DEV_ID_LNL_M 0xA870 /* Lunar Lake Point M */ 119 119 120 + #define MEI_DEV_ID_PTL_P 0xE470 /* Panther Lake P */ 121 + 120 122 /* 121 123 * MEI HW Section 122 124 */
+2
drivers/misc/mei/pci-me.c
··· 124 124 125 125 {MEI_PCI_DEVICE(MEI_DEV_ID_LNL_M, MEI_ME_PCH15_CFG)}, 126 126 127 + {MEI_PCI_DEVICE(MEI_DEV_ID_PTL_P, MEI_ME_PCH15_CFG)}, 128 + 127 129 /* required last entry */ 128 130 {0, } 129 131 };
+1 -1
drivers/misc/mei/vsc-tp.c
··· 502 502 if (ret) 503 503 return ret; 504 504 505 - tp->wakeuphost = devm_gpiod_get(dev, "wakeuphost", GPIOD_IN); 505 + tp->wakeuphost = devm_gpiod_get(dev, "wakeuphostint", GPIOD_IN); 506 506 if (IS_ERR(tp->wakeuphost)) 507 507 return PTR_ERR(tp->wakeuphost); 508 508
+4 -3
drivers/misc/ntsync.c
··· 873 873 { 874 874 int fds[NTSYNC_MAX_WAIT_COUNT + 1]; 875 875 const __u32 count = args->count; 876 + size_t size = array_size(count, sizeof(fds[0])); 876 877 struct ntsync_q *q; 877 878 __u32 total_count; 878 879 __u32 i, j; ··· 881 880 if (args->pad || (args->flags & ~NTSYNC_WAIT_REALTIME)) 882 881 return -EINVAL; 883 882 884 - if (args->count > NTSYNC_MAX_WAIT_COUNT) 883 + if (size >= sizeof(fds)) 885 884 return -EINVAL; 886 885 887 886 total_count = count; 888 887 if (args->alert) 889 888 total_count++; 890 889 891 - if (copy_from_user(fds, u64_to_user_ptr(args->objs), 892 - array_size(count, sizeof(*fds)))) 890 + if (copy_from_user(fds, u64_to_user_ptr(args->objs), size)) 893 891 return -EFAULT; 894 892 if (args->alert) 895 893 fds[count] = args->alert; ··· 1208 1208 .minor = MISC_DYNAMIC_MINOR, 1209 1209 .name = NTSYNC_NAME, 1210 1210 .fops = &ntsync_fops, 1211 + .mode = 0666, 1211 1212 }; 1212 1213 1213 1214 module_misc_device(ntsync_misc);
+3 -2
drivers/slimbus/messaging.c
··· 148 148 } 149 149 150 150 ret = ctrl->xfer_msg(ctrl, txn); 151 - 152 - if (!ret && need_tid && !txn->msg->comp) { 151 + if (ret == -ETIMEDOUT) { 152 + slim_free_txn_tid(ctrl, txn); 153 + } else if (!ret && need_tid && !txn->msg->comp) { 153 154 unsigned long ms = txn->rl + HZ; 154 155 155 156 time_left = wait_for_completion_timeout(txn->comp,
+3 -3
drivers/virt/acrn/hsm.c
··· 49 49 switch (cmd & PMCMD_TYPE_MASK) { 50 50 case ACRN_PMCMD_GET_PX_CNT: 51 51 case ACRN_PMCMD_GET_CX_CNT: 52 - pm_info = kmalloc(sizeof(u64), GFP_KERNEL); 52 + pm_info = kzalloc(sizeof(u64), GFP_KERNEL); 53 53 if (!pm_info) 54 54 return -ENOMEM; 55 55 ··· 64 64 kfree(pm_info); 65 65 break; 66 66 case ACRN_PMCMD_GET_PX_DATA: 67 - px_data = kmalloc(sizeof(*px_data), GFP_KERNEL); 67 + px_data = kzalloc(sizeof(*px_data), GFP_KERNEL); 68 68 if (!px_data) 69 69 return -ENOMEM; 70 70 ··· 79 79 kfree(px_data); 80 80 break; 81 81 case ACRN_PMCMD_GET_CX_DATA: 82 - cx_data = kmalloc(sizeof(*cx_data), GFP_KERNEL); 82 + cx_data = kzalloc(sizeof(*cx_data), GFP_KERNEL); 83 83 if (!cx_data) 84 84 return -ENOMEM; 85 85
+2 -1
drivers/virt/vboxguest/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 config VBOXGUEST 3 3 tristate "Virtual Box Guest integration support" 4 - depends on (ARM64 || X86) && PCI && INPUT 4 + depends on (ARM64 || X86 || COMPILE_TEST) && PCI && INPUT 5 + depends on HAS_IOPORT 5 6 help 6 7 This is a driver for the Virtual Box Guest PCI device used in 7 8 Virtual Box virtual machines. Enabling this driver will add