mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
RDMA/hfi1: Drop device data from hfi1_validate_rcvhdrcnt()
hfi1_validate_rcvhdrcnt() only needs hfi1_devdata to identify the adapter in error messages. Requiring the full device data prevents module parameter validation from running before hfi1_devdata is allocated. Pass pci_dev instead and use dev_err(), allowing validation to move earlier without losing the PCI BDF needed on multi-device systems. Use %u for the unsigned count while changing the messages. Link: https://patch.msgid.link/20260708-clean-init-one-hfi1-v1-5-b9e9641268a5@nvidia.com Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
@@ -11929,26 +11929,27 @@ u8 encode_rcv_header_entry_size(u8 size)
|
||||
|
||||
/**
|
||||
* hfi1_validate_rcvhdrcnt - validate hdrcnt
|
||||
* @dd: the device data
|
||||
* @pdev: the PCI device
|
||||
* @thecnt: the header count
|
||||
*/
|
||||
int hfi1_validate_rcvhdrcnt(struct hfi1_devdata *dd, uint thecnt)
|
||||
int hfi1_validate_rcvhdrcnt(struct pci_dev *pdev, uint thecnt)
|
||||
{
|
||||
if (thecnt <= HFI1_MIN_HDRQ_EGRBUF_CNT) {
|
||||
dd_dev_err(dd, "Receive header queue count too small\n");
|
||||
dev_err(&pdev->dev, "Receive header queue count too small\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (thecnt > HFI1_MAX_HDRQ_EGRBUF_CNT) {
|
||||
dd_dev_err(dd,
|
||||
"Receive header queue count cannot be greater than %u\n",
|
||||
HFI1_MAX_HDRQ_EGRBUF_CNT);
|
||||
dev_err(&pdev->dev,
|
||||
"Receive header queue count cannot be greater than %u\n",
|
||||
HFI1_MAX_HDRQ_EGRBUF_CNT);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (thecnt % HDRQ_INCREMENT) {
|
||||
dd_dev_err(dd, "Receive header queue count %d must be divisible by %lu\n",
|
||||
thecnt, HDRQ_INCREMENT);
|
||||
dev_err(&pdev->dev,
|
||||
"Receive header queue count %u must be divisible by %lu\n",
|
||||
thecnt, HDRQ_INCREMENT);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
@@ -660,7 +660,7 @@ static inline u32 chip_rcv_array_count(struct hfi1_devdata *dd)
|
||||
}
|
||||
|
||||
u8 encode_rcv_header_entry_size(u8 size);
|
||||
int hfi1_validate_rcvhdrcnt(struct hfi1_devdata *dd, uint thecnt);
|
||||
int hfi1_validate_rcvhdrcnt(struct pci_dev *pdev, uint thecnt);
|
||||
void set_hdrq_regs(struct hfi1_devdata *dd, u8 ctxt, u8 entsize, u16 hdrcnt);
|
||||
|
||||
u64 create_pbc(struct hfi1_pportdata *ppd, u64 flags, int srate_mbs, u32 vl,
|
||||
|
||||
@@ -1580,7 +1580,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
}
|
||||
|
||||
/* Validate some global module parameters */
|
||||
ret = hfi1_validate_rcvhdrcnt(dd, rcvhdrcnt);
|
||||
ret = hfi1_validate_rcvhdrcnt(pdev, rcvhdrcnt);
|
||||
if (ret)
|
||||
goto bail;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user