Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
57c1091
Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count
bryamzxz Jun 14, 2026
d577e46
Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count
bryamzxz Jun 14, 2026
4fc0625
ntb_hw_amd: Fix incorrect debug message in link disable path
aloktiwa Feb 8, 2026
d876153
NTB: epf: Avoid pci_iounmap() with offset when PEER_SPAD and CONFIG s…
Mar 4, 2026
8df9694
NTB: fix kernel-doc warnings in ntb.h
rddunlap Mar 12, 2026
d1c3d45
ntb: amd: Use named initializer for pci_device_id::driver_data
ukleinek May 7, 2026
d855898
Revert "Input: rmi4 - fix register descriptor address calculation"
dtor Jun 27, 2026
2d6d33e
Input: rmi4 - tolerate short register descriptor structure
dtor Jun 26, 2026
d86d4f8
Input: gscps2 - advance receive buffer write index
Jun 24, 2026
8b69c04
Merge tag 'input-for-v7.2-rc0-2' of git://git.kernel.org/pub/scm/linu…
torvalds Jun 28, 2026
0716f9b
Merge tag 'ntb-7.2' of https://github.com/jonmason/ntb
torvalds Jun 28, 2026
dc59e4f
Linux 7.2-rc1
torvalds Jun 28, 2026
9bd6ac1
Revert "scsi: qla2xxx: Sanitize payload size to prevent member overflow"
johnmeneghini Jun 30, 2026
74b86d9
scsi: lpfc/qla2xxx: makefile change - do not commit
johnmeneghini Dec 24, 2025
f320dce
scsi: qla2xxx: Fix flex array member not at end
Mr-Bossman Jul 10, 2026
856eef1
fc_els: use 'union fc_tlv_desc'
Jun 24, 2025
2559f4d
nvme: add NVME_CTRL_MARGINAL flag
bgurney-rh Jul 7, 2025
9441fec
nvme-multipath: numa support for marginal paths
Mr-Bossman Jun 22, 2026
ab9b145
nvme-multipath: queue-depth support for marginal paths
johnmeneghini Jul 1, 2025
afbbc0e
nvme-multipath: round-robin support for marginal paths
Mr-Bossman Jun 18, 2026
8ec0d54
nvme: sysfs: emit the marginal path state in show_state()
bgurney-rh Jun 24, 2025
ac2aa89
scsi: scsi_transport_fc: Add set_rport_marginal to fc_function_template
Mr-Bossman Jun 8, 2026
0b30c08
scsi: scsi_transport_fc: user support for clearing NVME_CTRL_MARGINAL
johnmeneghini Sep 24, 2025
1888068
nvme-fc: add nvme_fc_set_remoteport_fpin()
Mr-Bossman Jun 9, 2026
f8f67c9
scsi: qla2xxx: enable FPIN notification for NVMe
Mr-Bossman Jun 8, 2026
0b5a6ec
scsi: lpfc: enable FPIN notification for NVMe
Mr-Bossman Jun 8, 2026
a492131
nvme: fcloop: Add set_rport_marginal to sysfs
Mr-Bossman Jul 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 7
PATCHLEVEL = 1
PATCHLEVEL = 2
SUBLEVEL = 0
EXTRAVERSION =
EXTRAVERSION = -rc1
NAME = Baby Opossum Posse

# *DOCUMENTATION*
Expand Down
39 changes: 26 additions & 13 deletions drivers/input/rmi4/rmi_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -616,8 +616,8 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr,
unsigned int presence_offset;
unsigned int map_offset;
unsigned int offset;
unsigned int num_registers;
unsigned int reg;
int i;
int b;
int ret;

Expand All @@ -643,7 +643,7 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr,
ret = rmi_read_block(d, addr, buf, size_presence_reg);
if (ret)
return ret;
addr += size_presence_reg;
++addr;

if (buf[0] == 0) {
if (size_presence_reg < 3)
Expand All @@ -657,7 +657,7 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr,

memset(presence_map, 0, sizeof(presence_map));
map_offset = 0;
for (i = presence_offset; i < size_presence_reg; i++) {
for (int i = presence_offset; i < size_presence_reg; i++) {
for (b = 0; b < 8; b++) {
if (buf[i] & BIT(b)) {
if (map_offset >= RMI_REG_DESC_PRESENCE_BITS)
Expand Down Expand Up @@ -697,28 +697,41 @@ int rmi_read_register_desc(struct rmi_device *d, u16 addr,
if (ret)
return ret;

reg = find_first_bit(presence_map, RMI_REG_DESC_PRESENCE_BITS);
offset = 0;
for (i = 0; i < rdesc->num_registers; i++) {
struct rmi_register_desc_item *item = &rdesc->registers[i];
num_registers = 0;
for_each_set_bit(reg, presence_map, RMI_REG_DESC_PRESENCE_BITS) {
struct rmi_register_desc_item *item = &rdesc->registers[num_registers];
int item_size;

if (offset >= rdesc->struct_size)
break;

item_size = rmi_parse_register_desc_item(item,
&struct_buf[offset],
rdesc->struct_size - offset);
if (item_size < 0)
return item_size;
if (item_size < 0) {
dev_warn(&d->dev,
"%s: Failed to parse register %d descriptor, ignoring it\n",
__func__, reg);
break;
}

item->reg = reg;
offset += item_size;

rmi_dbg(RMI_DEBUG_CORE, &d->dev,
"%s: reg: %d reg size: %u subpackets: %d\n", __func__,
item->reg, item->reg_size, item->num_subpackets);
if (item->reg_size == 0) {
dev_warn(&d->dev,
"%s: Register %d has 0 size, ignoring it\n",
__func__, item->reg);
} else {
rmi_dbg(RMI_DEBUG_CORE, &d->dev,
"%s: reg: %d reg size: %u subpackets: %d\n", __func__,
item->reg, item->reg_size, item->num_subpackets);

reg = find_next_bit(presence_map,
RMI_REG_DESC_PRESENCE_BITS, reg + 1);
num_registers++;
}
}
rdesc->num_registers = num_registers;

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/input/rmi4/rmi_f30.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ static int rmi_f30_map_gpios(struct rmi_function *fn,
int button_count = min_t(u8, f30->gpioled_count, TRACKSTICK_RANGE_END);

f30->gpioled_key_map = devm_kcalloc(&fn->dev,
button_count,
f30->gpioled_count,
sizeof(f30->gpioled_key_map[0]),
GFP_KERNEL);
if (!f30->gpioled_key_map) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/input/rmi4/rmi_f3a.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ static int rmi_f3a_map_gpios(struct rmi_function *fn, struct f3a_data *f3a,
int button_count = min_t(u8, f3a->gpio_count, TRACKSTICK_RANGE_END);

f3a->gpio_key_map = devm_kcalloc(&fn->dev,
button_count,
f3a->gpio_count,
sizeof(f3a->gpio_key_map[0]),
GFP_KERNEL);
if (!f3a->gpio_key_map) {
Expand Down
1 change: 1 addition & 0 deletions drivers/input/serio/gscps2.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ static void gscps2_read_data(struct gscps2port *ps2port)
ps2port->buffer[ps2port->append].str = status;
ps2port->buffer[ps2port->append].data =
gscps2_readb_input(ps2port->addr);
ps2port->append = (ps2port->append + 1) & BUFFER_SIZE;
} while (true);
}

Expand Down
20 changes: 10 additions & 10 deletions drivers/ntb/hw/amd/ntb_hw_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ static int amd_ntb_link_disable(struct ntb_dev *ntb)

if (ndev->ntb.topo == NTB_TOPO_SEC)
return -EINVAL;
dev_dbg(&ntb->pdev->dev, "Enabling Link.\n");
dev_dbg(&ntb->pdev->dev, "Disabling Link.\n");

return 0;
}
Expand Down Expand Up @@ -1328,15 +1328,15 @@ static const struct ntb_dev_data dev_data[] = {
};

static const struct pci_device_id amd_ntb_pci_tbl[] = {
{ PCI_VDEVICE(AMD, 0x145b), (kernel_ulong_t)&dev_data[0] },
{ PCI_VDEVICE(AMD, 0x148b), (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x14c0), (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x14c3), (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x155a), (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x17d4), (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x17d7), (kernel_ulong_t)&dev_data[2] },
{ PCI_VDEVICE(HYGON, 0x145b), (kernel_ulong_t)&dev_data[0] },
{ 0, }
{ PCI_VDEVICE(AMD, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] },
{ PCI_VDEVICE(AMD, 0x148b), .driver_data = (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x14c0), .driver_data = (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x14c3), .driver_data = (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x155a), .driver_data = (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x17d4), .driver_data = (kernel_ulong_t)&dev_data[1] },
{ PCI_VDEVICE(AMD, 0x17d7), .driver_data = (kernel_ulong_t)&dev_data[2] },
{ PCI_VDEVICE(HYGON, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] },
{ }
};
MODULE_DEVICE_TABLE(pci, amd_ntb_pci_tbl);

Expand Down
3 changes: 2 additions & 1 deletion drivers/ntb/hw/epf/ntb_hw_epf.c
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,8 @@ static void ntb_epf_deinit_pci(struct ntb_epf_dev *ndev)
struct pci_dev *pdev = ndev->ntb.pdev;

pci_iounmap(pdev, ndev->ctrl_reg);
pci_iounmap(pdev, ndev->peer_spad_reg);
if (ndev->barno_map[BAR_PEER_SPAD] != ndev->barno_map[BAR_CONFIG])
pci_iounmap(pdev, ndev->peer_spad_reg);
pci_iounmap(pdev, ndev->db_reg);

pci_release_regions(pdev);
Expand Down
1 change: 1 addition & 0 deletions drivers/nvme/host/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -5165,6 +5165,7 @@ int nvme_init_ctrl(struct nvme_ctrl *ctrl, struct device *dev,
WRITE_ONCE(ctrl->state, NVME_CTRL_NEW);
ctrl->passthru_err_log_enabled = false;
clear_bit(NVME_CTRL_FAILFAST_EXPIRED, &ctrl->flags);
clear_bit(NVME_CTRL_MARGINAL, &ctrl->flags);
spin_lock_init(&ctrl->lock);
mutex_init(&ctrl->namespaces_lock);

Expand Down
20 changes: 20 additions & 0 deletions drivers/nvme/host/fc.c
Original file line number Diff line number Diff line change
Expand Up @@ -788,6 +788,10 @@ nvme_fc_ctrl_connectivity_loss(struct nvme_fc_ctrl *ctrl)
"Reconnect", ctrl->cnum);

set_bit(ASSOC_FAILED, &ctrl->flags);

/* clear 'marginal' flag as controller will be reset */
clear_bit(NVME_CTRL_MARGINAL, &ctrl->flags);

nvme_reset_ctrl(&ctrl->ctrl);
}

Expand Down Expand Up @@ -891,6 +895,22 @@ nvme_fc_set_remoteport_devloss(struct nvme_fc_remote_port *portptr,
}
EXPORT_SYMBOL_GPL(nvme_fc_set_remoteport_devloss);

void
nvme_fc_set_remoteport_fpin(struct nvme_fc_remote_port *portptr, bool marginal)
{
struct nvme_fc_rport *rport = remoteport_to_rport(portptr);
struct nvme_fc_ctrl *ctrl;

spin_lock_irq(&rport->lock);
list_for_each_entry(ctrl, &rport->ctrl_list, ctrl_list) {
if (marginal)
set_bit(NVME_CTRL_MARGINAL, &ctrl->ctrl.flags);
else
clear_bit(NVME_CTRL_MARGINAL, &ctrl->ctrl.flags);
}
spin_unlock_irq(&rport->lock);
}
EXPORT_SYMBOL_GPL(nvme_fc_set_remoteport_fpin);

/* *********************** FC-NVME DMA Handling **************************** */

Expand Down
Loading