1 |
commit: 4d9310ac93165ad4395034d1b9c59d2ef4760807 |
2 |
Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Jul 11 14:48:07 2021 +0000 |
4 |
Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Jul 11 14:48:07 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=4d9310ac |
7 |
|
8 |
Linux patch 4.4.275 |
9 |
|
10 |
Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> |
11 |
|
12 |
0000_README | 4 ++ |
13 |
1274_linux-4.4.275.patch | 112 +++++++++++++++++++++++++++++++++++++++++++++++ |
14 |
2 files changed, 116 insertions(+) |
15 |
|
16 |
diff --git a/0000_README b/0000_README |
17 |
index b63a9bc..4d64b0b 100644 |
18 |
--- a/0000_README |
19 |
+++ b/0000_README |
20 |
@@ -1139,6 +1139,10 @@ Patch: 1273_linux-4.4.274.patch |
21 |
From: http://www.kernel.org |
22 |
Desc: Linux 4.4.274 |
23 |
|
24 |
+Patch: 1274_linux-4.4.275.patch |
25 |
+From: http://www.kernel.org |
26 |
+Desc: Linux 4.4.275 |
27 |
+ |
28 |
Patch: 1500_XATTR_USER_PREFIX.patch |
29 |
From: https://bugs.gentoo.org/show_bug.cgi?id=470644 |
30 |
Desc: Support for namespace user.pax.* on tmpfs. |
31 |
|
32 |
diff --git a/1274_linux-4.4.275.patch b/1274_linux-4.4.275.patch |
33 |
new file mode 100644 |
34 |
index 0000000..fae4a49 |
35 |
--- /dev/null |
36 |
+++ b/1274_linux-4.4.275.patch |
37 |
@@ -0,0 +1,112 @@ |
38 |
+diff --git a/Makefile b/Makefile |
39 |
+index 3d1fc6eb95eca..dbf282146b663 100644 |
40 |
+--- a/Makefile |
41 |
++++ b/Makefile |
42 |
+@@ -1,6 +1,6 @@ |
43 |
+ VERSION = 4 |
44 |
+ PATCHLEVEL = 4 |
45 |
+-SUBLEVEL = 274 |
46 |
++SUBLEVEL = 275 |
47 |
+ EXTRAVERSION = |
48 |
+ NAME = Blurry Fish Butt |
49 |
+ |
50 |
+diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c |
51 |
+index 3eb018fa1a1f5..c3362ddd6c4cb 100644 |
52 |
+--- a/arch/arm/probes/kprobes/core.c |
53 |
++++ b/arch/arm/probes/kprobes/core.c |
54 |
+@@ -270,6 +270,7 @@ void __kprobes kprobe_handler(struct pt_regs *regs) |
55 |
+ switch (kcb->kprobe_status) { |
56 |
+ case KPROBE_HIT_ACTIVE: |
57 |
+ case KPROBE_HIT_SSDONE: |
58 |
++ case KPROBE_HIT_SS: |
59 |
+ /* A pre- or post-handler probe got us here. */ |
60 |
+ kprobes_inc_nmissed_count(p); |
61 |
+ save_previous_kprobe(kcb); |
62 |
+@@ -278,6 +279,11 @@ void __kprobes kprobe_handler(struct pt_regs *regs) |
63 |
+ singlestep(p, regs, kcb); |
64 |
+ restore_previous_kprobe(kcb); |
65 |
+ break; |
66 |
++ case KPROBE_REENTER: |
67 |
++ /* A nested probe was hit in FIQ, it is a BUG */ |
68 |
++ pr_warn("Unrecoverable kprobe detected at %p.\n", |
69 |
++ p->addr); |
70 |
++ /* fall through */ |
71 |
+ default: |
72 |
+ /* impossible cases */ |
73 |
+ BUG(); |
74 |
+diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c |
75 |
+index 78f520d05de92..58c310930bf28 100644 |
76 |
+--- a/drivers/gpu/drm/nouveau/nouveau_bo.c |
77 |
++++ b/drivers/gpu/drm/nouveau/nouveau_bo.c |
78 |
+@@ -458,7 +458,7 @@ nouveau_bo_sync_for_device(struct nouveau_bo *nvbo) |
79 |
+ struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm; |
80 |
+ int i; |
81 |
+ |
82 |
+- if (!ttm_dma) |
83 |
++ if (!ttm_dma || !ttm_dma->dma_address) |
84 |
+ return; |
85 |
+ |
86 |
+ /* Don't waste time looping if the object is coherent */ |
87 |
+@@ -478,7 +478,7 @@ nouveau_bo_sync_for_cpu(struct nouveau_bo *nvbo) |
88 |
+ struct ttm_dma_tt *ttm_dma = (struct ttm_dma_tt *)nvbo->bo.ttm; |
89 |
+ int i; |
90 |
+ |
91 |
+- if (!ttm_dma) |
92 |
++ if (!ttm_dma || !ttm_dma->dma_address) |
93 |
+ return; |
94 |
+ |
95 |
+ /* Don't waste time looping if the object is coherent */ |
96 |
+diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c |
97 |
+index 7dd4d9ded2491..6e31cedf0b6c7 100644 |
98 |
+--- a/drivers/scsi/sr.c |
99 |
++++ b/drivers/scsi/sr.c |
100 |
+@@ -216,6 +216,8 @@ static unsigned int sr_get_events(struct scsi_device *sdev) |
101 |
+ return DISK_EVENT_EJECT_REQUEST; |
102 |
+ else if (med->media_event_code == 2) |
103 |
+ return DISK_EVENT_MEDIA_CHANGE; |
104 |
++ else if (med->media_event_code == 3) |
105 |
++ return DISK_EVENT_EJECT_REQUEST; |
106 |
+ return 0; |
107 |
+ } |
108 |
+ |
109 |
+diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c |
110 |
+index 56bf952de411d..f271189233904 100644 |
111 |
+--- a/drivers/xen/events/events_base.c |
112 |
++++ b/drivers/xen/events/events_base.c |
113 |
+@@ -533,6 +533,9 @@ static void xen_irq_lateeoi_locked(struct irq_info *info, bool spurious) |
114 |
+ } |
115 |
+ |
116 |
+ info->eoi_time = 0; |
117 |
++ |
118 |
++ /* is_active hasn't been reset yet, do it now. */ |
119 |
++ smp_store_release(&info->is_active, 0); |
120 |
+ do_unmask(info, EVT_MASK_REASON_EOI_PENDING); |
121 |
+ } |
122 |
+ |
123 |
+@@ -1777,10 +1780,22 @@ static void lateeoi_ack_dynirq(struct irq_data *data) |
124 |
+ struct irq_info *info = info_for_irq(data->irq); |
125 |
+ evtchn_port_t evtchn = info ? info->evtchn : 0; |
126 |
+ |
127 |
+- if (VALID_EVTCHN(evtchn)) { |
128 |
+- do_mask(info, EVT_MASK_REASON_EOI_PENDING); |
129 |
+- ack_dynirq(data); |
130 |
+- } |
131 |
++ if (!VALID_EVTCHN(evtchn)) |
132 |
++ return; |
133 |
++ |
134 |
++ do_mask(info, EVT_MASK_REASON_EOI_PENDING); |
135 |
++ |
136 |
++ if (unlikely(irqd_is_setaffinity_pending(data)) && |
137 |
++ likely(!irqd_irq_disabled(data))) { |
138 |
++ do_mask(info, EVT_MASK_REASON_TEMPORARY); |
139 |
++ |
140 |
++ clear_evtchn(evtchn); |
141 |
++ |
142 |
++ irq_move_masked_irq(data); |
143 |
++ |
144 |
++ do_unmask(info, EVT_MASK_REASON_TEMPORARY); |
145 |
++ } else |
146 |
++ clear_evtchn(evtchn); |
147 |
+ } |
148 |
+ |
149 |
+ static void lateeoi_mask_ack_dynirq(struct irq_data *data) |