Skip to content

Commit 0f292fb

Browse files
committed
Merge tag 'v6.6.75' into rpi-6.6.y
This is the 6.6.75 stable release
2 parents fab0093 + d51b7d3 commit 0f292fb

File tree

37 files changed

+633
-130
lines changed

37 files changed

+633
-130
lines changed

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 = 74
4+
SUBLEVEL = 75
55
EXTRAVERSION =
66
NAME = Pinguïn Aangedreven
77

block/ioctl.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
115115
return -EINVAL;
116116

117117
filemap_invalidate_lock(inode->i_mapping);
118-
err = truncate_bdev_range(bdev, mode, start, start + len - 1);
118+
err = truncate_bdev_range(bdev, mode, start, end - 1);
119119
if (err)
120120
goto fail;
121121
err = blkdev_issue_discard(bdev, start >> 9, len >> 9, GFP_KERNEL);
@@ -127,7 +127,7 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
127127
static int blk_ioctl_secure_erase(struct block_device *bdev, blk_mode_t mode,
128128
void __user *argp)
129129
{
130-
uint64_t start, len;
130+
uint64_t start, len, end;
131131
uint64_t range[2];
132132
int err;
133133

@@ -142,11 +142,12 @@ static int blk_ioctl_secure_erase(struct block_device *bdev, blk_mode_t mode,
142142
len = range[1];
143143
if ((start & 511) || (len & 511))
144144
return -EINVAL;
145-
if (start + len > bdev_nr_bytes(bdev))
145+
if (check_add_overflow(start, len, &end) ||
146+
end > bdev_nr_bytes(bdev))
146147
return -EINVAL;
147148

148149
filemap_invalidate_lock(bdev->bd_inode->i_mapping);
149-
err = truncate_bdev_range(bdev, mode, start, start + len - 1);
150+
err = truncate_bdev_range(bdev, mode, start, end - 1);
150151
if (!err)
151152
err = blkdev_issue_secure_erase(bdev, start >> 9, len >> 9,
152153
GFP_KERNEL);

drivers/ata/libahci.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2082,13 +2082,6 @@ static void ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
20822082
struct ahci_port_priv *pp = qc->ap->private_data;
20832083
u8 *rx_fis = pp->rx_fis;
20842084

2085-
/*
2086-
* rtf may already be filled (e.g. for successful NCQ commands).
2087-
* If that is the case, we have nothing to do.
2088-
*/
2089-
if (qc->flags & ATA_QCFLAG_RTF_FILLED)
2090-
return;
2091-
20922085
if (pp->fbs_enabled)
20932086
rx_fis += qc->dev->link->pmp * AHCI_RX_FIS_SZ;
20942087

@@ -2102,7 +2095,6 @@ static void ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
21022095
!(qc->flags & ATA_QCFLAG_EH)) {
21032096
ata_tf_from_fis(rx_fis + RX_FIS_PIO_SETUP, &qc->result_tf);
21042097
qc->result_tf.status = (rx_fis + RX_FIS_PIO_SETUP)[15];
2105-
qc->flags |= ATA_QCFLAG_RTF_FILLED;
21062098
return;
21072099
}
21082100

@@ -2125,12 +2117,10 @@ static void ahci_qc_fill_rtf(struct ata_queued_cmd *qc)
21252117
*/
21262118
qc->result_tf.status = fis[2];
21272119
qc->result_tf.error = fis[3];
2128-
qc->flags |= ATA_QCFLAG_RTF_FILLED;
21292120
return;
21302121
}
21312122

21322123
ata_tf_from_fis(rx_fis + RX_FIS_D2H_REG, &qc->result_tf);
2133-
qc->flags |= ATA_QCFLAG_RTF_FILLED;
21342124
}
21352125

21362126
static void ahci_qc_ncq_fill_rtf(struct ata_port *ap, u64 done_mask)
@@ -2165,6 +2155,7 @@ static void ahci_qc_ncq_fill_rtf(struct ata_port *ap, u64 done_mask)
21652155
if (qc && ata_is_ncq(qc->tf.protocol)) {
21662156
qc->result_tf.status = status;
21672157
qc->result_tf.error = error;
2158+
qc->result_tf.flags = qc->tf.flags;
21682159
qc->flags |= ATA_QCFLAG_RTF_FILLED;
21692160
}
21702161
done_mask &= ~(1ULL << tag);
@@ -2189,6 +2180,7 @@ static void ahci_qc_ncq_fill_rtf(struct ata_port *ap, u64 done_mask)
21892180
fis += RX_FIS_SDB;
21902181
qc->result_tf.status = fis[2];
21912182
qc->result_tf.error = fis[3];
2183+
qc->result_tf.flags = qc->tf.flags;
21922184
qc->flags |= ATA_QCFLAG_RTF_FILLED;
21932185
}
21942186
done_mask &= ~(1ULL << tag);

drivers/ata/libata-core.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4792,8 +4792,16 @@ static void fill_result_tf(struct ata_queued_cmd *qc)
47924792
{
47934793
struct ata_port *ap = qc->ap;
47944794

4795+
/*
4796+
* rtf may already be filled (e.g. for successful NCQ commands).
4797+
* If that is the case, we have nothing to do.
4798+
*/
4799+
if (qc->flags & ATA_QCFLAG_RTF_FILLED)
4800+
return;
4801+
47954802
qc->result_tf.flags = qc->tf.flags;
47964803
ap->ops->qc_fill_rtf(qc);
4804+
qc->flags |= ATA_QCFLAG_RTF_FILLED;
47974805
}
47984806

47994807
static void ata_verify_xfer(struct ata_queued_cmd *qc)

drivers/cpufreq/amd-pstate.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,8 +579,13 @@ static void amd_pstate_adjust_perf(unsigned int cpu,
579579
unsigned long max_perf, min_perf, des_perf,
580580
cap_perf, lowest_nonlinear_perf, max_freq;
581581
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
582-
struct amd_cpudata *cpudata = policy->driver_data;
583582
unsigned int target_freq;
583+
struct amd_cpudata *cpudata;
584+
585+
if (!policy)
586+
return;
587+
588+
cpudata = policy->driver_data;
584589

585590
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
586591
amd_pstate_update_min_max_limit(policy);

drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ void dmub_hw_lock_mgr_inbox0_cmd(struct dc_dmub_srv *dmub_srv,
6363

6464
bool should_use_dmub_lock(struct dc_link *link)
6565
{
66-
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
66+
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1 ||
67+
link->psr_settings.psr_version == DC_PSR_VERSION_1)
6768
return true;
6869
return false;
6970
}

drivers/hid/hid-ids.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,6 @@
509509
#define USB_DEVICE_ID_GENERAL_TOUCH_WIN8_PIT_E100 0xe100
510510

511511
#define I2C_VENDOR_ID_GOODIX 0x27c6
512-
#define I2C_DEVICE_ID_GOODIX_01E0 0x01e0
513512
#define I2C_DEVICE_ID_GOODIX_01E8 0x01e8
514513
#define I2C_DEVICE_ID_GOODIX_01E9 0x01e9
515514
#define I2C_DEVICE_ID_GOODIX_01F0 0x01f0

drivers/hid/hid-multitouch.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,8 +1447,7 @@ static __u8 *mt_report_fixup(struct hid_device *hdev, __u8 *rdesc,
14471447
{
14481448
if (hdev->vendor == I2C_VENDOR_ID_GOODIX &&
14491449
(hdev->product == I2C_DEVICE_ID_GOODIX_01E8 ||
1450-
hdev->product == I2C_DEVICE_ID_GOODIX_01E9 ||
1451-
hdev->product == I2C_DEVICE_ID_GOODIX_01E0)) {
1450+
hdev->product == I2C_DEVICE_ID_GOODIX_01E9)) {
14521451
if (rdesc[607] == 0x15) {
14531452
rdesc[607] = 0x25;
14541453
dev_info(
@@ -2073,10 +2072,7 @@ static const struct hid_device_id mt_devices[] = {
20732072
I2C_DEVICE_ID_GOODIX_01E8) },
20742073
{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU,
20752074
HID_DEVICE(BUS_I2C, HID_GROUP_ANY, I2C_VENDOR_ID_GOODIX,
2076-
I2C_DEVICE_ID_GOODIX_01E9) },
2077-
{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU,
2078-
HID_DEVICE(BUS_I2C, HID_GROUP_ANY, I2C_VENDOR_ID_GOODIX,
2079-
I2C_DEVICE_ID_GOODIX_01E0) },
2075+
I2C_DEVICE_ID_GOODIX_01E8) },
20802076

20812077
/* GoodTouch panels */
20822078
{ .driver_data = MT_CLS_NSMU,

drivers/hwmon/drivetemp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ static int drivetemp_scsi_command(struct drivetemp_data *st,
194194
scsi_cmd[14] = ata_command;
195195

196196
err = scsi_execute_cmd(st->sdev, scsi_cmd, op, st->smartdata,
197-
ATA_SECT_SIZE, HZ, 5, NULL);
197+
ATA_SECT_SIZE, 10 * HZ, 5, NULL);
198198
if (err > 0)
199199
err = -EIO;
200200
return err;

drivers/infiniband/hw/bnxt_re/main.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,8 @@ static void bnxt_re_set_default_pacing_data(struct bnxt_re_dev *rdev)
485485
static void __wait_for_fifo_occupancy_below_th(struct bnxt_re_dev *rdev)
486486
{
487487
u32 read_val, fifo_occup;
488+
struct bnxt_qplib_db_pacing_data *pacing_data = rdev->qplib_res.pacing_data;
489+
u32 retry_fifo_check = 1000;
488490

489491
/* loop shouldn't run infintely as the occupancy usually goes
490492
* below pacing algo threshold as soon as pacing kicks in.
@@ -500,6 +502,14 @@ static void __wait_for_fifo_occupancy_below_th(struct bnxt_re_dev *rdev)
500502

501503
if (fifo_occup < rdev->qplib_res.pacing_data->pacing_th)
502504
break;
505+
if (!retry_fifo_check--) {
506+
dev_info_once(rdev_to_dev(rdev),
507+
"%s: fifo_occup = 0x%xfifo_max_depth = 0x%x pacing_th = 0x%x\n",
508+
__func__, fifo_occup, pacing_data->fifo_max_depth,
509+
pacing_data->pacing_th);
510+
break;
511+
}
512+
503513
}
504514
}
505515

0 commit comments

Comments
 (0)