Gentoo Archives: gentoo-commits

From: "Mike Pagano (mpagano)" <mpagano@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] linux-patches r2657 - genpatches-2.6/trunk/3.13
Date: Wed, 29 Jan 2014 14:10:32
Message-Id: 20140129141029.659422004C@flycatcher.gentoo.org
1 Author: mpagano
2 Date: 2014-01-29 14:10:29 +0000 (Wed, 29 Jan 2014)
3 New Revision: 2657
4
5 Added:
6 genpatches-2.6/trunk/3.13/1000_linux-3.13.1.patch
7 Modified:
8 genpatches-2.6/trunk/3.13/0000_README
9 Log:
10 Linux patch 3.13.1
11
12 Modified: genpatches-2.6/trunk/3.13/0000_README
13 ===================================================================
14 --- genpatches-2.6/trunk/3.13/0000_README 2014-01-27 12:59:00 UTC (rev 2656)
15 +++ genpatches-2.6/trunk/3.13/0000_README 2014-01-29 14:10:29 UTC (rev 2657)
16 @@ -42,6 +42,10 @@
17
18 Individual Patch Descriptions:
19 --------------------------------------------------------------------------
20 +Patch: 1000_linux-3.13.1.patch
21 +From: http://www.kernel.org
22 +Desc: Linux 3.13.1
23 +
24 Patch: 1500_XATTR_USER_PREFIX.patch
25 From: https://bugs.gentoo.org/show_bug.cgi?id=470644
26 Desc: Support for namespace user.pax.* on tmpfs.
27
28 Added: genpatches-2.6/trunk/3.13/1000_linux-3.13.1.patch
29 ===================================================================
30 --- genpatches-2.6/trunk/3.13/1000_linux-3.13.1.patch (rev 0)
31 +++ genpatches-2.6/trunk/3.13/1000_linux-3.13.1.patch 2014-01-29 14:10:29 UTC (rev 2657)
32 @@ -0,0 +1,253 @@
33 +diff --git a/Makefile b/Makefile
34 +index b8b7f74696b4..de4cda986be2 100644
35 +--- a/Makefile
36 ++++ b/Makefile
37 +@@ -1,6 +1,6 @@
38 + VERSION = 3
39 + PATCHLEVEL = 13
40 +-SUBLEVEL = 0
41 ++SUBLEVEL = 1
42 + EXTRAVERSION =
43 + NAME = One Giant Leap for Frogkind
44 +
45 +diff --git a/drivers/extcon/extcon-gpio.c b/drivers/extcon/extcon-gpio.c
46 +index 7e0dff58e494..4736a9c57efa 100644
47 +--- a/drivers/extcon/extcon-gpio.c
48 ++++ b/drivers/extcon/extcon-gpio.c
49 +@@ -105,6 +105,12 @@ static int gpio_extcon_probe(struct platform_device *pdev)
50 + extcon_data->state_off = pdata->state_off;
51 + if (pdata->state_on && pdata->state_off)
52 + extcon_data->edev.print_state = extcon_gpio_print_state;
53 ++
54 ++ ret = devm_gpio_request_one(&pdev->dev, extcon_data->gpio, GPIOF_DIR_IN,
55 ++ pdev->name);
56 ++ if (ret < 0)
57 ++ return ret;
58 ++
59 + if (pdata->debounce) {
60 + ret = gpio_set_debounce(extcon_data->gpio,
61 + pdata->debounce * 1000);
62 +@@ -117,11 +123,6 @@ static int gpio_extcon_probe(struct platform_device *pdev)
63 + if (ret < 0)
64 + return ret;
65 +
66 +- ret = devm_gpio_request_one(&pdev->dev, extcon_data->gpio, GPIOF_DIR_IN,
67 +- pdev->name);
68 +- if (ret < 0)
69 +- goto err;
70 +-
71 + INIT_DELAYED_WORK(&extcon_data->work, gpio_extcon_work);
72 +
73 + extcon_data->irq = gpio_to_irq(extcon_data->gpio);
74 +diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
75 +index cbb15716a5db..03f82ab87d9e 100644
76 +--- a/drivers/md/raid5.c
77 ++++ b/drivers/md/raid5.c
78 +@@ -675,8 +675,10 @@ get_active_stripe(struct r5conf *conf, sector_t sector,
79 + || !conf->inactive_blocked),
80 + *(conf->hash_locks + hash));
81 + conf->inactive_blocked = 0;
82 +- } else
83 ++ } else {
84 + init_stripe(sh, sector, previous);
85 ++ atomic_inc(&sh->count);
86 ++ }
87 + } else {
88 + spin_lock(&conf->device_lock);
89 + if (atomic_read(&sh->count)) {
90 +@@ -695,13 +697,11 @@ get_active_stripe(struct r5conf *conf, sector_t sector,
91 + sh->group = NULL;
92 + }
93 + }
94 ++ atomic_inc(&sh->count);
95 + spin_unlock(&conf->device_lock);
96 + }
97 + } while (sh == NULL);
98 +
99 +- if (sh)
100 +- atomic_inc(&sh->count);
101 +-
102 + spin_unlock_irq(conf->hash_locks + hash);
103 + return sh;
104 + }
105 +@@ -2111,6 +2111,7 @@ static void raid5_end_write_request(struct bio *bi, int error)
106 + set_bit(R5_MadeGoodRepl, &sh->dev[i].flags);
107 + } else {
108 + if (!uptodate) {
109 ++ set_bit(STRIPE_DEGRADED, &sh->state);
110 + set_bit(WriteErrorSeen, &rdev->flags);
111 + set_bit(R5_WriteError, &sh->dev[i].flags);
112 + if (!test_and_set_bit(WantReplacement, &rdev->flags))
113 +diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
114 +index f3d59e2a1152..341decfb81d1 100644
115 +--- a/drivers/staging/comedi/comedi_fops.c
116 ++++ b/drivers/staging/comedi/comedi_fops.c
117 +@@ -1425,6 +1425,7 @@ static int do_cmd_ioctl(struct comedi_device *dev,
118 + async->cmd.chanlist_len * sizeof(int));
119 + if (IS_ERR(async->cmd.chanlist)) {
120 + ret = PTR_ERR(async->cmd.chanlist);
121 ++ async->cmd.chanlist = NULL;
122 + DPRINTK("memdup_user failed with code %d\n", ret);
123 + goto cleanup;
124 + }
125 +@@ -1547,6 +1548,7 @@ static int do_cmdtest_ioctl(struct comedi_device *dev,
126 + cmd.chanlist_len * sizeof(int));
127 + if (IS_ERR(chanlist)) {
128 + ret = PTR_ERR(chanlist);
129 ++ chanlist = NULL;
130 + DPRINTK("memdup_user exited with code %d", ret);
131 + goto cleanup;
132 + }
133 +diff --git a/drivers/staging/comedi/drivers/addi_apci_1032.c b/drivers/staging/comedi/drivers/addi_apci_1032.c
134 +index 34ab0679e992..b95a8b3395ae 100644
135 +--- a/drivers/staging/comedi/drivers/addi_apci_1032.c
136 ++++ b/drivers/staging/comedi/drivers/addi_apci_1032.c
137 +@@ -325,8 +325,8 @@ static int apci1032_auto_attach(struct comedi_device *dev,
138 + s = &dev->subdevices[1];
139 + if (dev->irq) {
140 + dev->read_subdev = s;
141 +- s->type = COMEDI_SUBD_DI | SDF_CMD_READ;
142 +- s->subdev_flags = SDF_READABLE;
143 ++ s->type = COMEDI_SUBD_DI;
144 ++ s->subdev_flags = SDF_READABLE | SDF_CMD_READ;
145 + s->n_chan = 1;
146 + s->maxdata = 1;
147 + s->range_table = &range_digital;
148 +diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c
149 +index eab8da2c3d66..a270a86a45ba 100644
150 +--- a/drivers/staging/comedi/drivers/adl_pci9111.c
151 ++++ b/drivers/staging/comedi/drivers/adl_pci9111.c
152 +@@ -859,7 +859,7 @@ static int pci9111_auto_attach(struct comedi_device *dev,
153 + pci9111_reset(dev);
154 +
155 + if (pcidev->irq > 0) {
156 +- ret = request_irq(dev->irq, pci9111_interrupt,
157 ++ ret = request_irq(pcidev->irq, pci9111_interrupt,
158 + IRQF_SHARED, dev->board_name, dev);
159 + if (ret)
160 + return ret;
161 +diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
162 +index 7203864992a5..a0dfb86f9880 100644
163 +--- a/drivers/tty/serial/amba-pl011.c
164 ++++ b/drivers/tty/serial/amba-pl011.c
165 +@@ -1537,6 +1537,8 @@ static int pl011_startup(struct uart_port *port)
166 + /*
167 + * Provoke TX FIFO interrupt into asserting.
168 + */
169 ++ spin_lock_irq(&uap->port.lock);
170 ++
171 + cr = UART01x_CR_UARTEN | UART011_CR_TXE | UART011_CR_LBE;
172 + writew(cr, uap->port.membase + UART011_CR);
173 + writew(0, uap->port.membase + UART011_FBRD);
174 +@@ -1561,6 +1563,8 @@ static int pl011_startup(struct uart_port *port)
175 + cr |= UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE;
176 + writew(cr, uap->port.membase + UART011_CR);
177 +
178 ++ spin_unlock_irq(&uap->port.lock);
179 ++
180 + /*
181 + * initialise the old status of the modem signals
182 + */
183 +@@ -1629,11 +1633,13 @@ static void pl011_shutdown(struct uart_port *port)
184 + * it during startup().
185 + */
186 + uap->autorts = false;
187 ++ spin_lock_irq(&uap->port.lock);
188 + cr = readw(uap->port.membase + UART011_CR);
189 + uap->old_cr = cr;
190 + cr &= UART011_CR_RTS | UART011_CR_DTR;
191 + cr |= UART01x_CR_UARTEN | UART011_CR_TXE;
192 + writew(cr, uap->port.membase + UART011_CR);
193 ++ spin_unlock_irq(&uap->port.lock);
194 +
195 + /*
196 + * disable break condition and fifos
197 +diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
198 +index 7119504159f1..87bc2290a400 100644
199 +--- a/fs/gfs2/inode.c
200 ++++ b/fs/gfs2/inode.c
201 +@@ -1607,10 +1607,22 @@ static int setattr_chown(struct inode *inode, struct iattr *attr)
202 + if (!(attr->ia_valid & ATTR_GID) || gid_eq(ogid, ngid))
203 + ogid = ngid = NO_GID_QUOTA_CHANGE;
204 +
205 +- error = gfs2_quota_lock(ip, nuid, ngid);
206 ++ error = get_write_access(inode);
207 + if (error)
208 + return error;
209 +
210 ++ error = gfs2_rs_alloc(ip);
211 ++ if (error)
212 ++ goto out;
213 ++
214 ++ error = gfs2_rindex_update(sdp);
215 ++ if (error)
216 ++ goto out;
217 ++
218 ++ error = gfs2_quota_lock(ip, nuid, ngid);
219 ++ if (error)
220 ++ goto out;
221 ++
222 + if (!uid_eq(ouid, NO_UID_QUOTA_CHANGE) ||
223 + !gid_eq(ogid, NO_GID_QUOTA_CHANGE)) {
224 + error = gfs2_quota_check(ip, nuid, ngid);
225 +@@ -1637,6 +1649,8 @@ out_end_trans:
226 + gfs2_trans_end(sdp);
227 + out_gunlock_q:
228 + gfs2_quota_unlock(ip);
229 ++out:
230 ++ put_write_access(inode);
231 + return error;
232 + }
233 +
234 +diff --git a/include/linux/mm.h b/include/linux/mm.h
235 +index 35527173cf50..9fac6dd69b11 100644
236 +--- a/include/linux/mm.h
237 ++++ b/include/linux/mm.h
238 +@@ -846,11 +846,14 @@ static __always_inline void *lowmem_page_address(const struct page *page)
239 + #endif
240 +
241 + #if defined(WANT_PAGE_VIRTUAL)
242 +-#define page_address(page) ((page)->virtual)
243 +-#define set_page_address(page, address) \
244 +- do { \
245 +- (page)->virtual = (address); \
246 +- } while(0)
247 ++static inline void *page_address(const struct page *page)
248 ++{
249 ++ return page->virtual;
250 ++}
251 ++static inline void set_page_address(struct page *page, void *address)
252 ++{
253 ++ page->virtual = address;
254 ++}
255 + #define page_address_init() do { } while(0)
256 + #endif
257 +
258 +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
259 +index f281c8068557..314b77eb1216 100644
260 +--- a/sound/pci/hda/patch_hdmi.c
261 ++++ b/sound/pci/hda/patch_hdmi.c
262 +@@ -1496,11 +1496,14 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
263 + * specification worked this way. Hence, we just ignore the data in
264 + * the unsolicited response to avoid custom WARs.
265 + */
266 +- int present = snd_hda_pin_sense(codec, pin_nid);
267 ++ int present;
268 + bool update_eld = false;
269 + bool eld_changed = false;
270 + bool ret;
271 +
272 ++ snd_hda_power_up(codec);
273 ++ present = snd_hda_pin_sense(codec, pin_nid);
274 ++
275 + mutex_lock(&per_pin->lock);
276 + pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE);
277 + if (pin_eld->monitor_present)
278 +@@ -1573,6 +1576,7 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
279 + jack->block_report = !ret;
280 +
281 + mutex_unlock(&per_pin->lock);
282 ++ snd_hda_power_down(codec);
283 + return ret;
284 + }
285 +