Skip to content

Commit 5882bc5

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.6.y' into rpi-6.6.y
2 parents 085e8b4 + 91de249 commit 5882bc5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+3907
-1722
lines changed

Documentation/ABI/stable/sysfs-block

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ Description:
101101
devices that support receiving integrity metadata.
102102

103103

104+
What: /sys/block/<disk>/partscan
105+
Date: May 2024
106+
Contact: Christoph Hellwig <[email protected]>
107+
Description:
108+
The /sys/block/<disk>/partscan files reports if partition
109+
scanning is enabled for the disk. It returns "1" if partition
110+
scanning is enabled, or "0" if not. The value type is a 32-bit
111+
unsigned integer, but only "0" and "1" are valid values.
112+
113+
104114
What: /sys/block/<disk>/<partition>/alignment_offset
105115
Date: April 2009
106116
Contact: Martin K. Petersen <[email protected]>

Documentation/admin-guide/hw-vuln/core-scheduling.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ arg4:
6767
will be performed for all tasks in the task group of ``pid``.
6868

6969
arg5:
70-
userspace pointer to an unsigned long for storing the cookie returned by
71-
``PR_SCHED_CORE_GET`` command. Should be 0 for all other commands.
70+
userspace pointer to an unsigned long long for storing the cookie returned
71+
by ``PR_SCHED_CORE_GET`` command. Should be 0 for all other commands.
7272

7373
In order for a process to push a cookie to, or pull a cookie from a process, it
7474
is required to have the ptrace access mode: `PTRACE_MODE_READ_REALCREDS` to the

Documentation/admin-guide/mm/damon/usage.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ pages of all memory cgroups except ``/having_care_already``.::
389389
# # further filter out all cgroups except one at '/having_care_already'
390390
echo memcg > 1/type
391391
echo /having_care_already > 1/memcg_path
392-
echo N > 1/matching
392+
echo Y > 1/matching
393393

394394
Note that ``anon`` and ``memcg`` filters are currently supported only when
395395
``paddr`` `implementation <sysfs_contexts>` is being used.

Documentation/sphinx/kernel_include.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ def _run(self):
9797
# HINT: this is the only line I had to change / commented out:
9898
#path = utils.relative_path(None, path)
9999

100-
path = nodes.reprunicode(path)
101100
encoding = self.options.get(
102101
'encoding', self.state.document.settings.input_encoding)
103102
e_handler=self.state.document.settings.input_encoding_error_handler

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 6
4-
SUBLEVEL = 31
4+
SUBLEVEL = 32
55
EXTRAVERSION =
66
NAME = Hurr durr I'ma ninja sloth
77

block/genhd.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -345,9 +345,7 @@ int disk_scan_partitions(struct gendisk *disk, blk_mode_t mode)
345345
struct block_device *bdev;
346346
int ret = 0;
347347

348-
if (disk->flags & (GENHD_FL_NO_PART | GENHD_FL_HIDDEN))
349-
return -EINVAL;
350-
if (test_bit(GD_SUPPRESS_PART_SCAN, &disk->state))
348+
if (!disk_has_partscan(disk))
351349
return -EINVAL;
352350
if (disk->open_partitions)
353351
return -EBUSY;
@@ -503,8 +501,7 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
503501
goto out_unregister_bdi;
504502

505503
/* Make sure the first partition scan will be proceed */
506-
if (get_capacity(disk) && !(disk->flags & GENHD_FL_NO_PART) &&
507-
!test_bit(GD_SUPPRESS_PART_SCAN, &disk->state))
504+
if (get_capacity(disk) && disk_has_partscan(disk))
508505
set_bit(GD_NEED_PART_SCAN, &disk->state);
509506

510507
bdev_add(disk->part0, ddev->devt);
@@ -1040,6 +1037,12 @@ static ssize_t diskseq_show(struct device *dev,
10401037
return sprintf(buf, "%llu\n", disk->diskseq);
10411038
}
10421039

1040+
static ssize_t partscan_show(struct device *dev,
1041+
struct device_attribute *attr, char *buf)
1042+
{
1043+
return sprintf(buf, "%u\n", disk_has_partscan(dev_to_disk(dev)));
1044+
}
1045+
10431046
static DEVICE_ATTR(range, 0444, disk_range_show, NULL);
10441047
static DEVICE_ATTR(ext_range, 0444, disk_ext_range_show, NULL);
10451048
static DEVICE_ATTR(removable, 0444, disk_removable_show, NULL);
@@ -1053,6 +1056,7 @@ static DEVICE_ATTR(stat, 0444, part_stat_show, NULL);
10531056
static DEVICE_ATTR(inflight, 0444, part_inflight_show, NULL);
10541057
static DEVICE_ATTR(badblocks, 0644, disk_badblocks_show, disk_badblocks_store);
10551058
static DEVICE_ATTR(diskseq, 0444, diskseq_show, NULL);
1059+
static DEVICE_ATTR(partscan, 0444, partscan_show, NULL);
10561060

10571061
#ifdef CONFIG_FAIL_MAKE_REQUEST
10581062
ssize_t part_fail_show(struct device *dev,
@@ -1099,6 +1103,7 @@ static struct attribute *disk_attrs[] = {
10991103
&dev_attr_events_async.attr,
11001104
&dev_attr_events_poll_msecs.attr,
11011105
&dev_attr_diskseq.attr,
1106+
&dev_attr_partscan.attr,
11021107
#ifdef CONFIG_FAIL_MAKE_REQUEST
11031108
&dev_attr_fail.attr,
11041109
#endif

block/partitions/core.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -592,10 +592,7 @@ static int blk_add_partitions(struct gendisk *disk)
592592
struct parsed_partitions *state;
593593
int ret = -EAGAIN, p;
594594

595-
if (disk->flags & GENHD_FL_NO_PART)
596-
return 0;
597-
598-
if (test_bit(GD_SUPPRESS_PART_SCAN, &disk->state))
595+
if (!disk_has_partscan(disk))
599596
return 0;
600597

601598
state = check_partition(disk);

drivers/android/binder.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5368,7 +5368,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
53685368
goto err;
53695369
break;
53705370
case BINDER_SET_MAX_THREADS: {
5371-
int max_threads;
5371+
u32 max_threads;
53725372

53735373
if (copy_from_user(&max_threads, ubuf,
53745374
sizeof(max_threads))) {

drivers/android/binder_internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ struct binder_proc {
421421
struct list_head todo;
422422
struct binder_stats stats;
423423
struct list_head delivered_death;
424-
int max_threads;
424+
u32 max_threads;
425425
int requested_threads;
426426
int requested_threads_started;
427427
int tmp_ref;

drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,6 +1025,9 @@ int amdgpu_ras_query_error_status(struct amdgpu_device *adev,
10251025
if (!obj)
10261026
return -EINVAL;
10271027

1028+
if (!info || info->head.block == AMDGPU_RAS_BLOCK_COUNT)
1029+
return -EINVAL;
1030+
10281031
if (info->head.block == AMDGPU_RAS_BLOCK__UMC) {
10291032
amdgpu_ras_get_ecc_info(adev, &err_data);
10301033
} else {

drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,12 @@ static bool setup_dsc_config(
10331033
if (!is_dsc_possible)
10341034
goto done;
10351035

1036-
dsc_cfg->num_slices_v = pic_height/slice_height;
1036+
if (slice_height > 0) {
1037+
dsc_cfg->num_slices_v = pic_height / slice_height;
1038+
} else {
1039+
is_dsc_possible = false;
1040+
goto done;
1041+
}
10371042

10381043
if (target_bandwidth_kbps > 0) {
10391044
is_dsc_possible = decide_dsc_target_bpp_x16(

drivers/mmc/core/mmc.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1819,8 +1819,13 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
18191819

18201820
if (err)
18211821
goto free_card;
1822-
1823-
} else if (!mmc_card_hs400es(card)) {
1822+
} else if (mmc_card_hs400es(card)) {
1823+
if (host->ops->execute_hs400_tuning) {
1824+
err = host->ops->execute_hs400_tuning(host, card);
1825+
if (err)
1826+
goto free_card;
1827+
}
1828+
} else {
18241829
/* Select the desired bus width optionally */
18251830
err = mmc_select_bus_width(card);
18261831
if (err > 0 && mmc_card_hs(card)) {

drivers/net/ethernet/intel/ice/ice_virtchnl.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -547,17 +547,15 @@ bool ice_vc_isvalid_vsi_id(struct ice_vf *vf, u16 vsi_id)
547547

548548
/**
549549
* ice_vc_isvalid_q_id
550-
* @vf: pointer to the VF info
551-
* @vsi_id: VSI ID
550+
* @vsi: VSI to check queue ID against
552551
* @qid: VSI relative queue ID
553552
*
554553
* check for the valid queue ID
555554
*/
556-
static bool ice_vc_isvalid_q_id(struct ice_vf *vf, u16 vsi_id, u8 qid)
555+
static bool ice_vc_isvalid_q_id(struct ice_vsi *vsi, u8 qid)
557556
{
558-
struct ice_vsi *vsi = ice_find_vsi(vf->pf, vsi_id);
559557
/* allocated Tx and Rx queues should be always equal for VF VSI */
560-
return (vsi && (qid < vsi->alloc_txq));
558+
return qid < vsi->alloc_txq;
561559
}
562560

563561
/**
@@ -1257,7 +1255,7 @@ static int ice_vc_ena_qs_msg(struct ice_vf *vf, u8 *msg)
12571255
*/
12581256
q_map = vqs->rx_queues;
12591257
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF) {
1260-
if (!ice_vc_isvalid_q_id(vf, vqs->vsi_id, vf_q_id)) {
1258+
if (!ice_vc_isvalid_q_id(vsi, vf_q_id)) {
12611259
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
12621260
goto error_param;
12631261
}
@@ -1279,7 +1277,7 @@ static int ice_vc_ena_qs_msg(struct ice_vf *vf, u8 *msg)
12791277

12801278
q_map = vqs->tx_queues;
12811279
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF) {
1282-
if (!ice_vc_isvalid_q_id(vf, vqs->vsi_id, vf_q_id)) {
1280+
if (!ice_vc_isvalid_q_id(vsi, vf_q_id)) {
12831281
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
12841282
goto error_param;
12851283
}
@@ -1384,7 +1382,7 @@ static int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)
13841382
q_map = vqs->tx_queues;
13851383

13861384
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF) {
1387-
if (!ice_vc_isvalid_q_id(vf, vqs->vsi_id, vf_q_id)) {
1385+
if (!ice_vc_isvalid_q_id(vsi, vf_q_id)) {
13881386
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
13891387
goto error_param;
13901388
}
@@ -1410,7 +1408,7 @@ static int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)
14101408
bitmap_zero(vf->rxq_ena, ICE_MAX_RSS_QS_PER_VF);
14111409
} else if (q_map) {
14121410
for_each_set_bit(vf_q_id, &q_map, ICE_MAX_RSS_QS_PER_VF) {
1413-
if (!ice_vc_isvalid_q_id(vf, vqs->vsi_id, vf_q_id)) {
1411+
if (!ice_vc_isvalid_q_id(vsi, vf_q_id)) {
14141412
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
14151413
goto error_param;
14161414
}
@@ -1466,7 +1464,7 @@ ice_cfg_interrupt(struct ice_vf *vf, struct ice_vsi *vsi, u16 vector_id,
14661464
for_each_set_bit(vsi_q_id_idx, &qmap, ICE_MAX_RSS_QS_PER_VF) {
14671465
vsi_q_id = vsi_q_id_idx;
14681466

1469-
if (!ice_vc_isvalid_q_id(vf, vsi->vsi_num, vsi_q_id))
1467+
if (!ice_vc_isvalid_q_id(vsi, vsi_q_id))
14701468
return VIRTCHNL_STATUS_ERR_PARAM;
14711469

14721470
q_vector->num_ring_rx++;
@@ -1480,7 +1478,7 @@ ice_cfg_interrupt(struct ice_vf *vf, struct ice_vsi *vsi, u16 vector_id,
14801478
for_each_set_bit(vsi_q_id_idx, &qmap, ICE_MAX_RSS_QS_PER_VF) {
14811479
vsi_q_id = vsi_q_id_idx;
14821480

1483-
if (!ice_vc_isvalid_q_id(vf, vsi->vsi_num, vsi_q_id))
1481+
if (!ice_vc_isvalid_q_id(vsi, vsi_q_id))
14841482
return VIRTCHNL_STATUS_ERR_PARAM;
14851483

14861484
q_vector->num_ring_tx++;
@@ -1629,7 +1627,7 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
16291627
qpi->txq.headwb_enabled ||
16301628
!ice_vc_isvalid_ring_len(qpi->txq.ring_len) ||
16311629
!ice_vc_isvalid_ring_len(qpi->rxq.ring_len) ||
1632-
!ice_vc_isvalid_q_id(vf, qci->vsi_id, qpi->txq.queue_id)) {
1630+
!ice_vc_isvalid_q_id(vsi, qpi->txq.queue_id)) {
16331631
goto error_param;
16341632
}
16351633

drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,6 @@ ice_vc_fdir_param_check(struct ice_vf *vf, u16 vsi_id)
107107
if (!(vf->driver_caps & VIRTCHNL_VF_OFFLOAD_FDIR_PF))
108108
return -EINVAL;
109109

110-
if (vsi_id != vf->lan_vsi_num)
111-
return -EINVAL;
112-
113110
if (!ice_vc_isvalid_vsi_id(vf, vsi_id))
114111
return -EINVAL;
115112

drivers/net/ethernet/micrel/ks8851_common.c

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -328,32 +328,24 @@ static irqreturn_t ks8851_irq(int irq, void *_ks)
328328
{
329329
struct ks8851_net *ks = _ks;
330330
struct sk_buff_head rxq;
331-
unsigned handled = 0;
332331
unsigned long flags;
333332
unsigned int status;
334333
struct sk_buff *skb;
335334

336335
ks8851_lock(ks, &flags);
337336

338337
status = ks8851_rdreg16(ks, KS_ISR);
338+
ks8851_wrreg16(ks, KS_ISR, status);
339339

340340
netif_dbg(ks, intr, ks->netdev,
341341
"%s: status 0x%04x\n", __func__, status);
342342

343-
if (status & IRQ_LCI)
344-
handled |= IRQ_LCI;
345-
346343
if (status & IRQ_LDI) {
347344
u16 pmecr = ks8851_rdreg16(ks, KS_PMECR);
348345
pmecr &= ~PMECR_WKEVT_MASK;
349346
ks8851_wrreg16(ks, KS_PMECR, pmecr | PMECR_WKEVT_LINK);
350-
351-
handled |= IRQ_LDI;
352347
}
353348

354-
if (status & IRQ_RXPSI)
355-
handled |= IRQ_RXPSI;
356-
357349
if (status & IRQ_TXI) {
358350
unsigned short tx_space = ks8851_rdreg16(ks, KS_TXMIR);
359351

@@ -365,20 +357,12 @@ static irqreturn_t ks8851_irq(int irq, void *_ks)
365357
if (netif_queue_stopped(ks->netdev))
366358
netif_wake_queue(ks->netdev);
367359
spin_unlock(&ks->statelock);
368-
369-
handled |= IRQ_TXI;
370360
}
371361

372-
if (status & IRQ_RXI)
373-
handled |= IRQ_RXI;
374-
375362
if (status & IRQ_SPIBEI) {
376363
netdev_err(ks->netdev, "%s: spi bus error\n", __func__);
377-
handled |= IRQ_SPIBEI;
378364
}
379365

380-
ks8851_wrreg16(ks, KS_ISR, handled);
381-
382366
if (status & IRQ_RXI) {
383367
/* the datasheet says to disable the rx interrupt during
384368
* packet read-out, however we're masking the interrupt

0 commit comments

Comments
 (0)