kernel: bump 5.15 to 5.15.83
Removed upstreamed: backport-5.15/883-v6.1-ca8210-Fix-crash-by-zero-initializing-data.patch[1] All patches automatically rebased 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.83&id=246bcd05ba6cc43b34ac0bb4bac3ea94a4efa07c Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
		 John Audia
					John Audia
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							bd911b4538
						
					
				
				
					commit
					b6fa423907
				
			| @@ -1,2 +1,2 @@ | |||||||
| LINUX_VERSION-5.15 = .82 | LINUX_VERSION-5.15 = .83 | ||||||
| LINUX_KERNEL_HASH-5.15.82 = fceef6bb79bac494663ccde34453521fc616cd94272fd30564752b3742381b65 | LINUX_KERNEL_HASH-5.15.83 = 40590843c04c85789105157f69efbd71a4efe87ae2568e40d1b7258c3f747ff3 | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> | |||||||
|  |  | ||||||
| --- a/drivers/media/common/videobuf2/videobuf2-core.c | --- a/drivers/media/common/videobuf2/videobuf2-core.c | ||||||
| +++ b/drivers/media/common/videobuf2/videobuf2-core.c | +++ b/drivers/media/common/videobuf2/videobuf2-core.c | ||||||
| @@ -2144,12 +2144,12 @@ static int __find_plane_by_offset(struct | @@ -2195,12 +2195,12 @@ static int __find_plane_by_offset(struct | ||||||
|  	return -EINVAL; |  	return -EINVAL; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -35,7 +35,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> | |||||||
|  	struct dma_buf *dbuf; |  	struct dma_buf *dbuf; | ||||||
|   |   | ||||||
|  	if (q->memory != VB2_MEMORY_MMAP) { |  	if (q->memory != VB2_MEMORY_MMAP) { | ||||||
| @@ -2201,6 +2201,21 @@ int vb2_core_expbuf(struct vb2_queue *q, | @@ -2252,6 +2252,21 @@ int vb2_core_expbuf(struct vb2_queue *q, | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  #define USB_VENDOR_ID_BELKIN		0x050d |  #define USB_VENDOR_ID_BELKIN		0x050d | ||||||
|  #define USB_DEVICE_ID_FLIP_KVM		0x3201 |  #define USB_DEVICE_ID_FLIP_KVM		0x3201 | ||||||
|   |   | ||||||
| @@ -1310,6 +1313,9 @@ | @@ -1313,6 +1316,9 @@ | ||||||
|  #define USB_VENDOR_ID_XAT	0x2505 |  #define USB_VENDOR_ID_XAT	0x2505 | ||||||
|  #define USB_DEVICE_ID_XAT_CSR	0x0220 |  #define USB_DEVICE_ID_XAT_CSR	0x0220 | ||||||
|   |   | ||||||
| @@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT }, | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL }, | ||||||
| @@ -195,6 +196,7 @@ static const struct hid_device_id hid_qu | @@ -198,6 +199,7 @@ static const struct hid_device_id hid_qu | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT }, | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, |  	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET }, | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> | |||||||
|  /* Device and char device-related information */ |  /* Device and char device-related information */ | ||||||
|  static DEFINE_IDA(gpio_ida); |  static DEFINE_IDA(gpio_ida); | ||||||
|  static dev_t gpio_devt; |  static dev_t gpio_devt; | ||||||
| @@ -2361,8 +2363,8 @@ int gpiod_direction_output(struct gpio_d | @@ -2392,8 +2394,8 @@ int gpiod_direction_output(struct gpio_d | ||||||
|  		value = !!value; |  		value = !!value; | ||||||
|   |   | ||||||
|  	/* GPIOs used for enabled IRQs shall not be set as output */ |  	/* GPIOs used for enabled IRQs shall not be set as output */ | ||||||
| @@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org> | |||||||
|  		gpiod_err(desc, |  		gpiod_err(desc, | ||||||
|  			  "%s: tried to set a GPIO tied to an IRQ as output\n", |  			  "%s: tried to set a GPIO tied to an IRQ as output\n", | ||||||
|  			  __func__); |  			  __func__); | ||||||
| @@ -3180,8 +3182,8 @@ int gpiochip_lock_as_irq(struct gpio_chi | @@ -3211,8 +3213,8 @@ int gpiochip_lock_as_irq(struct gpio_chi | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	/* To be valid for IRQ the line needs to be input or open drain */ |  	/* To be valid for IRQ the line needs to be input or open drain */ | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/MAINTAINERS | --- a/MAINTAINERS | ||||||
| +++ b/MAINTAINERS | +++ b/MAINTAINERS | ||||||
| @@ -17526,6 +17526,14 @@ T:	git git://linuxtv.org/media_tree.git | @@ -17521,6 +17521,14 @@ T:	git git://linuxtv.org/media_tree.git | ||||||
|  F:	Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml |  F:	Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml | ||||||
|  F:	drivers/media/i2c/imx412.c |  F:	drivers/media/i2c/imx412.c | ||||||
|   |   | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com> | |||||||
| +... | +... | ||||||
| --- a/MAINTAINERS | --- a/MAINTAINERS | ||||||
| +++ b/MAINTAINERS | +++ b/MAINTAINERS | ||||||
| @@ -17540,6 +17540,7 @@ M:	Raspberry Pi Kernel Maintenance <kern | @@ -17535,6 +17535,7 @@ M:	Raspberry Pi Kernel Maintenance <kern | ||||||
|  L:	linux-media@vger.kernel.org |  L:	linux-media@vger.kernel.org | ||||||
|  S:	Maintained |  S:	Maintained | ||||||
|  T:	git git://linuxtv.org/media_tree.git |  T:	git git://linuxtv.org/media_tree.git | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ Signed-off-by: Lee Jackson <info@arducam.com> | |||||||
| +... | +... | ||||||
| --- a/MAINTAINERS | --- a/MAINTAINERS | ||||||
| +++ b/MAINTAINERS | +++ b/MAINTAINERS | ||||||
| @@ -17544,6 +17544,14 @@ F:	Documentation/devicetree/bindings/med | @@ -17539,6 +17539,14 @@ F:	Documentation/devicetree/bindings/med | ||||||
|  F:	Documentation/devicetree/bindings/media/i2c/imx477.yaml |  F:	Documentation/devicetree/bindings/media/i2c/imx477.yaml | ||||||
|  F:	drivers/media/i2c/imx477.c |  F:	drivers/media/i2c/imx477.c | ||||||
|   |   | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	rate = clk_get_rate(clk); |  	rate = clk_get_rate(clk); | ||||||
| --- a/include/linux/clk.h | --- a/include/linux/clk.h | ||||||
| +++ b/include/linux/clk.h | +++ b/include/linux/clk.h | ||||||
| @@ -987,6 +987,17 @@ static inline void clk_bulk_disable_unpr | @@ -1096,6 +1096,17 @@ static inline void clk_bulk_disable_unpr | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /** |  /** | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  	KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified), |  	KUNIT_CASE(clk_test_orphan_transparent_multiple_parent_mux_set_parent_set_range_modified), | ||||||
| --- a/include/linux/clk.h | --- a/include/linux/clk.h | ||||||
| +++ b/include/linux/clk.h | +++ b/include/linux/clk.h | ||||||
| @@ -744,8 +744,9 @@ int clk_set_parent(struct clk *clk, stru | @@ -829,8 +829,9 @@ int clk_set_parent(struct clk *clk, stru | ||||||
|   * clk_get_parent - get the parent clock source for this clock |   * clk_get_parent - get the parent clock source for this clock | ||||||
|   * @clk: clock source |   * @clk: clock source | ||||||
|   * |   * | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|   * |   * | ||||||
| --- a/include/linux/clk.h | --- a/include/linux/clk.h | ||||||
| +++ b/include/linux/clk.h | +++ b/include/linux/clk.h | ||||||
| @@ -714,6 +714,17 @@ bool clk_has_parent(struct clk *clk, str | @@ -799,6 +799,17 @@ bool clk_has_parent(struct clk *clk, str | ||||||
|  int clk_set_rate_range(struct clk *clk, unsigned long min, unsigned long max); |  int clk_set_rate_range(struct clk *clk, unsigned long min, unsigned long max); | ||||||
|   |   | ||||||
|  /** |  /** | ||||||
| @@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|   * clk_set_min_rate - set a minimum clock rate for a clock source |   * clk_set_min_rate - set a minimum clock rate for a clock source | ||||||
|   * @clk: clock source |   * @clk: clock source | ||||||
|   * @rate: desired minimum clock rate in Hz, inclusive |   * @rate: desired minimum clock rate in Hz, inclusive | ||||||
| @@ -909,6 +920,16 @@ static inline int clk_set_rate_range(str | @@ -1018,6 +1029,16 @@ static inline int clk_set_rate_range(str | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -90,7 +90,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  static inline int clk_set_min_rate(struct clk *clk, unsigned long rate) |  static inline int clk_set_min_rate(struct clk *clk, unsigned long rate) | ||||||
|  { |  { | ||||||
|  	return 0; |  	return 0; | ||||||
| @@ -999,6 +1020,44 @@ static inline int clk_drop_range(struct | @@ -1108,6 +1129,44 @@ static inline int clk_drop_range(struct | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /** |  /** | ||||||
|   | |||||||
| @@ -116,7 +116,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  } |  } | ||||||
| --- a/drivers/gpio/gpiolib.c | --- a/drivers/gpio/gpiolib.c | ||||||
| +++ b/drivers/gpio/gpiolib.c | +++ b/drivers/gpio/gpiolib.c | ||||||
| @@ -1768,7 +1768,8 @@ int gpiochip_add_pingroup_range(struct g | @@ -1799,7 +1799,8 @@ int gpiochip_add_pingroup_range(struct g | ||||||
|   |   | ||||||
|  	list_add_tail(&pin_range->node, &gdev->pin_ranges); |  	list_add_tail(&pin_range->node, &gdev->pin_ranges); | ||||||
|   |   | ||||||
| @@ -126,7 +126,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> | |||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range); |  EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range); | ||||||
|   |   | ||||||
| @@ -1825,7 +1826,7 @@ int gpiochip_add_pin_range(struct gpio_c | @@ -1856,7 +1857,7 @@ int gpiochip_add_pin_range(struct gpio_c | ||||||
|   |   | ||||||
|  	list_add_tail(&pin_range->node, &gdev->pin_ranges); |  	list_add_tail(&pin_range->node, &gdev->pin_ranges); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -92,7 +92,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7 | |||||||
|  	} |  	} | ||||||
| --- a/include/linux/cgroup.h | --- a/include/linux/cgroup.h | ||||||
| +++ b/include/linux/cgroup.h | +++ b/include/linux/cgroup.h | ||||||
| @@ -432,6 +432,18 @@ static inline void cgroup_put(struct cgr | @@ -433,6 +433,18 @@ static inline void cgroup_put(struct cgr | ||||||
|  	css_put(&cgrp->self); |  	css_put(&cgrp->self); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -111,7 +111,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7 | |||||||
|  /** |  /** | ||||||
|   * task_css_set_check - obtain a task's css_set with extra access conditions |   * task_css_set_check - obtain a task's css_set with extra access conditions | ||||||
|   * @task: the task to obtain css_set for |   * @task: the task to obtain css_set for | ||||||
| @@ -446,7 +458,6 @@ static inline void cgroup_put(struct cgr | @@ -447,7 +459,6 @@ static inline void cgroup_put(struct cgr | ||||||
|   * as locks used during the cgroup_subsys::attach() methods. |   * as locks used during the cgroup_subsys::attach() methods. | ||||||
|   */ |   */ | ||||||
|  #ifdef CONFIG_PROVE_RCU |  #ifdef CONFIG_PROVE_RCU | ||||||
| @@ -119,7 +119,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7 | |||||||
|  extern spinlock_t css_set_lock; |  extern spinlock_t css_set_lock; | ||||||
|  #define task_css_set_check(task, __c)					\ |  #define task_css_set_check(task, __c)					\ | ||||||
|  	rcu_dereference_check((task)->cgroups,				\ |  	rcu_dereference_check((task)->cgroups,				\ | ||||||
| @@ -707,6 +718,8 @@ struct cgroup; | @@ -708,6 +719,8 @@ struct cgroup; | ||||||
|  static inline u64 cgroup_id(const struct cgroup *cgrp) { return 1; } |  static inline u64 cgroup_id(const struct cgroup *cgrp) { return 1; } | ||||||
|  static inline void css_get(struct cgroup_subsys_state *css) {} |  static inline void css_get(struct cgroup_subsys_state *css) {} | ||||||
|  static inline void css_put(struct cgroup_subsys_state *css) {} |  static inline void css_put(struct cgroup_subsys_state *css) {} | ||||||
| @@ -593,7 +593,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7 | |||||||
|  	VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING, |  	VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING, | ||||||
| --- a/mm/memcontrol.c | --- a/mm/memcontrol.c | ||||||
| +++ b/mm/memcontrol.c | +++ b/mm/memcontrol.c | ||||||
| @@ -5226,6 +5226,7 @@ static struct mem_cgroup *mem_cgroup_all | @@ -5237,6 +5237,7 @@ static struct mem_cgroup *mem_cgroup_all | ||||||
|  	memcg->deferred_split_queue.split_queue_len = 0; |  	memcg->deferred_split_queue.split_queue_len = 0; | ||||||
|  #endif |  #endif | ||||||
|  	idr_replace(&mem_cgroup_idr, memcg, memcg->id.id); |  	idr_replace(&mem_cgroup_idr, memcg, memcg->id.id); | ||||||
|   | |||||||
| @@ -339,7 +339,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8 | |||||||
|  			/* will mmdrop() in finish_task_switch(). */ |  			/* will mmdrop() in finish_task_switch(). */ | ||||||
| --- a/mm/memcontrol.c | --- a/mm/memcontrol.c | ||||||
| +++ b/mm/memcontrol.c | +++ b/mm/memcontrol.c | ||||||
| @@ -5163,6 +5163,7 @@ static void __mem_cgroup_free(struct mem | @@ -5174,6 +5174,7 @@ static void __mem_cgroup_free(struct mem | ||||||
|   |   | ||||||
|  static void mem_cgroup_free(struct mem_cgroup *memcg) |  static void mem_cgroup_free(struct mem_cgroup *memcg) | ||||||
|  { |  { | ||||||
| @@ -347,7 +347,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8 | |||||||
|  	memcg_wb_domain_exit(memcg); |  	memcg_wb_domain_exit(memcg); | ||||||
|  	__mem_cgroup_free(memcg); |  	__mem_cgroup_free(memcg); | ||||||
|  } |  } | ||||||
| @@ -6195,6 +6196,29 @@ static void mem_cgroup_move_task(void) | @@ -6206,6 +6207,29 @@ static void mem_cgroup_move_task(void) | ||||||
|  } |  } | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| @@ -377,7 +377,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8 | |||||||
|  static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value) |  static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value) | ||||||
|  { |  { | ||||||
|  	if (value == PAGE_COUNTER_MAX) |  	if (value == PAGE_COUNTER_MAX) | ||||||
| @@ -6538,6 +6562,7 @@ struct cgroup_subsys memory_cgrp_subsys | @@ -6549,6 +6573,7 @@ struct cgroup_subsys memory_cgrp_subsys | ||||||
|  	.css_reset = mem_cgroup_css_reset, |  	.css_reset = mem_cgroup_css_reset, | ||||||
|  	.css_rstat_flush = mem_cgroup_css_rstat_flush, |  	.css_rstat_flush = mem_cgroup_css_rstat_flush, | ||||||
|  	.can_attach = mem_cgroup_can_attach, |  	.can_attach = mem_cgroup_can_attach, | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org> | |||||||
|  |  | ||||||
| --- a/drivers/bluetooth/btusb.c | --- a/drivers/bluetooth/btusb.c | ||||||
| +++ b/drivers/bluetooth/btusb.c | +++ b/drivers/bluetooth/btusb.c | ||||||
| @@ -2263,6 +2263,23 @@ struct btmtk_section_map { | @@ -2268,6 +2268,23 @@ struct btmtk_section_map { | ||||||
|  	}; |  	}; | ||||||
|  } __packed; |  } __packed; | ||||||
|   |   | ||||||
| @@ -41,7 +41,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org> | |||||||
|  static void btusb_mtk_wmt_recv(struct urb *urb) |  static void btusb_mtk_wmt_recv(struct urb *urb) | ||||||
|  { |  { | ||||||
|  	struct hci_dev *hdev = urb->context; |  	struct hci_dev *hdev = urb->context; | ||||||
| @@ -3914,6 +3931,7 @@ static int btusb_probe(struct usb_interf | @@ -3919,6 +3936,7 @@ static int btusb_probe(struct usb_interf | ||||||
|  		hdev->shutdown = btusb_mtk_shutdown; |  		hdev->shutdown = btusb_mtk_shutdown; | ||||||
|  		hdev->manufacturer = 70; |  		hdev->manufacturer = 70; | ||||||
|  		hdev->cmd_timeout = btusb_mtk_cmd_timeout; |  		hdev->cmd_timeout = btusb_mtk_cmd_timeout; | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org> | |||||||
|  |  | ||||||
| --- a/drivers/bluetooth/btusb.c | --- a/drivers/bluetooth/btusb.c | ||||||
| +++ b/drivers/bluetooth/btusb.c | +++ b/drivers/bluetooth/btusb.c | ||||||
| @@ -2268,7 +2268,7 @@ static int btusb_set_bdaddr_mtk(struct h | @@ -2273,7 +2273,7 @@ static int btusb_set_bdaddr_mtk(struct h | ||||||
|  	struct sk_buff *skb; |  	struct sk_buff *skb; | ||||||
|  	long ret; |  	long ret; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,30 +0,0 @@ | |||||||
| From 1e24c54da257ab93cff5826be8a793b014a5dc9c Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Hauke Mehrtens <hauke@hauke-m.de> |  | ||||||
| Date: Mon, 21 Nov 2022 01:22:01 +0100 |  | ||||||
| Subject: ca8210: Fix crash by zero initializing data |  | ||||||
|  |  | ||||||
| The struct cas_control embeds multiple generic SPI structures and we |  | ||||||
| have to make sure these structures are initialized to default values. |  | ||||||
| This driver does not set all attributes. When using kmalloc before some |  | ||||||
| attributes were not initialized and contained random data which caused |  | ||||||
| random crashes at bootup. |  | ||||||
|  |  | ||||||
| Fixes: ded845a781a5 ("ieee802154: Add CA8210 IEEE 802.15.4 device driver") |  | ||||||
| Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> |  | ||||||
| Link: https://lore.kernel.org/r/20221121002201.1339636-1-hauke@hauke-m.de |  | ||||||
| Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org> |  | ||||||
| --- |  | ||||||
|  drivers/net/ieee802154/ca8210.c | 2 +- |  | ||||||
|  1 file changed, 1 insertion(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/ieee802154/ca8210.c |  | ||||||
| +++ b/drivers/net/ieee802154/ca8210.c |  | ||||||
| @@ -927,7 +927,7 @@ static int ca8210_spi_transfer( |  | ||||||
|   |  | ||||||
|  	dev_dbg(&spi->dev, "%s called\n", __func__); |  | ||||||
|   |  | ||||||
| -	cas_ctl = kmalloc(sizeof(*cas_ctl), GFP_ATOMIC); |  | ||||||
| +	cas_ctl = kzalloc(sizeof(*cas_ctl), GFP_ATOMIC); |  | ||||||
|  	if (!cas_ctl) |  | ||||||
|  		return -ENOMEM; |  | ||||||
|   |  | ||||||
| @@ -854,7 +854,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> | |||||||
| +}; | +}; | ||||||
| --- a/MAINTAINERS | --- a/MAINTAINERS | ||||||
| +++ b/MAINTAINERS | +++ b/MAINTAINERS | ||||||
| @@ -7529,6 +7529,14 @@ F:	drivers/ptp/ptp_qoriq.c | @@ -7526,6 +7526,14 @@ F:	drivers/ptp/ptp_qoriq.c | ||||||
|  F:	drivers/ptp/ptp_qoriq_debugfs.c |  F:	drivers/ptp/ptp_qoriq_debugfs.c | ||||||
|  F:	include/linux/fsl/ptp_qoriq.h |  F:	include/linux/fsl/ptp_qoriq.h | ||||||
|   |   | ||||||
|   | |||||||
| @@ -816,7 +816,7 @@ Signed-off-by: Sam Shih <sam.shih@mediatek.com> | |||||||
|  err_put_master: |  err_put_master: | ||||||
|  	spi_master_put(master); |  	spi_master_put(master); | ||||||
|   |   | ||||||
| @@ -917,8 +1296,10 @@ static int mtk_spi_remove(struct platfor | @@ -920,8 +1299,10 @@ static int mtk_spi_remove(struct platfor | ||||||
|   |   | ||||||
|  	mtk_spi_reset(mdata); |  	mtk_spi_reset(mdata); | ||||||
|   |   | ||||||
| @@ -826,9 +826,9 @@ Signed-off-by: Sam Shih <sam.shih@mediatek.com> | |||||||
| +		clk_unprepare(mdata->spi_hclk); | +		clk_unprepare(mdata->spi_hclk); | ||||||
| +	} | +	} | ||||||
|   |   | ||||||
|  	return 0; |  	pm_runtime_put_noidle(&pdev->dev); | ||||||
|  } |  	pm_runtime_disable(&pdev->dev); | ||||||
| @@ -934,8 +1315,10 @@ static int mtk_spi_suspend(struct device | @@ -940,8 +1321,10 @@ static int mtk_spi_suspend(struct device | ||||||
|  	if (ret) |  	if (ret) | ||||||
|  		return ret; |  		return ret; | ||||||
|   |   | ||||||
| @@ -840,7 +840,7 @@ Signed-off-by: Sam Shih <sam.shih@mediatek.com> | |||||||
|   |   | ||||||
|  	return ret; |  	return ret; | ||||||
|  } |  } | ||||||
| @@ -952,11 +1335,20 @@ static int mtk_spi_resume(struct device | @@ -958,11 +1341,20 @@ static int mtk_spi_resume(struct device | ||||||
|  			dev_err(dev, "failed to enable spi_clk (%d)\n", ret); |  			dev_err(dev, "failed to enable spi_clk (%d)\n", ret); | ||||||
|  			return ret; |  			return ret; | ||||||
|  		} |  		} | ||||||
| @@ -862,7 +862,7 @@ Signed-off-by: Sam Shih <sam.shih@mediatek.com> | |||||||
|   |   | ||||||
|  	return ret; |  	return ret; | ||||||
|  } |  } | ||||||
| @@ -968,10 +1360,13 @@ static int mtk_spi_runtime_suspend(struc | @@ -974,10 +1366,13 @@ static int mtk_spi_runtime_suspend(struc | ||||||
|  	struct spi_master *master = dev_get_drvdata(dev); |  	struct spi_master *master = dev_get_drvdata(dev); | ||||||
|  	struct mtk_spi *mdata = spi_master_get_devdata(master); |  	struct mtk_spi *mdata = spi_master_get_devdata(master); | ||||||
|   |   | ||||||
| @@ -878,7 +878,7 @@ Signed-off-by: Sam Shih <sam.shih@mediatek.com> | |||||||
|   |   | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
| @@ -982,13 +1377,31 @@ static int mtk_spi_runtime_resume(struct | @@ -988,13 +1383,31 @@ static int mtk_spi_runtime_resume(struct | ||||||
|  	struct mtk_spi *mdata = spi_master_get_devdata(master); |  	struct mtk_spi *mdata = spi_master_get_devdata(master); | ||||||
|  	int ret; |  	int ret; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Cc: Robert Marko <robert.marko@sartura.hr> | |||||||
|  |  | ||||||
| --- a/MAINTAINERS | --- a/MAINTAINERS | ||||||
| +++ b/MAINTAINERS | +++ b/MAINTAINERS | ||||||
| @@ -9066,6 +9066,22 @@ F:	include/net/nl802154.h | @@ -9063,6 +9063,22 @@ F:	include/net/nl802154.h | ||||||
|  F:	net/ieee802154/ |  F:	net/ieee802154/ | ||||||
|  F:	net/mac802154/ |  F:	net/mac802154/ | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user