qla2x00t-32gbit: Use 64-bit max LUNs when supported

The Linux 3.10 backport selected uint unconditionally for ql2xmaxlun,
limiting the module parameter to 32 bits even on current kernels.

Select uint only when param_check_ullong is absent from the kernel's
module parameter API. Otherwise retain the upstream uint64_t/ullong type.
Use the same feature check for the extern declaration so all driver
translation units agree, including vendor kernels with this API backported.

The default value and existing 16-bit limit for older HBAs are unchanged.
This commit is contained in:
Gleb Chesnokov
2026-10-19 17:38:13 +03:00
parent 6ac5660f0d
commit 2148ffafdb
2 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -176,7 +176,7 @@ extern int ql2xgffidenable;
extern int ql2xenabledif;
extern int ql2xenablehba_err_chk;
extern int ql2xdontresethba;
#if 1
#ifndef param_check_ullong
extern uint ql2xmaxlun;
#else
extern uint64_t ql2xmaxlun;
+2 -1
View File
@@ -243,7 +243,8 @@ MODULE_PARM_DESC(ql2xdontresethba,
" 0 (Default) -- Reset on failure.\n"
" 1 -- Do not reset on failure.\n");
#if 1
/* Older kernels may lack the ullong module parameter type. */
#ifndef param_check_ullong
uint ql2xmaxlun = MAX_LUNS;
module_param(ql2xmaxlun, uint, S_IRUGO);
#else