* drivers/scsi/fnic/fdls_disc.c:166 fdls_reclaim_oxid_handler() error: uninitialized symbol 'cur_jiffies'.
@ 2025-02-14 6:56 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-14 6:56 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Karan Tilak Kumar <kartilak@cisco.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Sesidhar Baddela <sebaddel@cisco.com>
CC: Gian Carlo Boffa <gcboffa@cisco.com>
CC: Arulprabhu Ponnusamy <arulponn@cisco.com>
CC: Arun Easi <aeasi@cisco.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 128c8f96eb8638c060cd3532dc394d046ce64fe1
commit: a63e78eb2b0f654b138abfc323f6bd7573e26145 scsi: fnic: Add support for fabric based solicited requests and responses
date: 6 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 6 weeks ago
config: i386-randconfig-141-20250214 (https://download.01.org/0day-ci/archive/20250214/202502141403.1PcpwyJp-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202502141403.1PcpwyJp-lkp@intel.com/
smatch warnings:
drivers/scsi/fnic/fdls_disc.c:166 fdls_reclaim_oxid_handler() error: uninitialized symbol 'cur_jiffies'.
drivers/scsi/fnic/fdls_disc.c:263 fdls_schedule_oxid_free_retry_work() warn: inconsistent indenting
drivers/scsi/fnic/fdls_disc.c:989 fdls_send_fabric_logo() warn: inconsistent indenting
drivers/scsi/fnic/fdls_disc.c:1953 fnic_fdls_validate_and_get_frame_type() warn: inconsistent indenting
vim +/cur_jiffies +166 drivers/scsi/fnic/fdls_disc.c
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 119
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 120 /**
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 121 * fdls_reclaim_oxid_handler - Callback handler for delayed_oxid_work
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 122 * @work: Handle to work_struct
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 123 *
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 124 * Scheduled when an oxid is to be freed later
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 125 * After freeing expired oxid(s), the handler schedules
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 126 * another callback with the remaining time
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 127 * of next unexpired entry in the reclaim list.
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 128 */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 129 void fdls_reclaim_oxid_handler(struct work_struct *work)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 130 {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 131 struct fnic_oxid_pool_s *oxid_pool = container_of(work,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 132 struct fnic_oxid_pool_s, oxid_reclaim_work.work);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 133 struct fnic_iport_s *iport = container_of(oxid_pool,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 134 struct fnic_iport_s, oxid_pool);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 135 struct fnic *fnic = iport->fnic;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 136 struct reclaim_entry_s *reclaim_entry, *next;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 137 unsigned long delay_j, cur_jiffies;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 138
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 139 FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 140 "Reclaim oxid callback\n");
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 141
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 142 spin_lock_irqsave(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 143
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 144 /* Though the work was scheduled for one entry,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 145 * walk through and free the expired entries which might have been scheduled
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 146 * at around the same time as the first entry
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 147 */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 148 list_for_each_entry_safe(reclaim_entry, next,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 149 &(oxid_pool->oxid_reclaim_list), links) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 150
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 151 /* The list is always maintained in the order of expiry time */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 152 cur_jiffies = jiffies;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 153 if (time_before(cur_jiffies, reclaim_entry->expires))
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 154 break;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 155
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 156 list_del(&reclaim_entry->links);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 157 fdls_free_oxid_idx(iport, reclaim_entry->oxid_idx);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 158 kfree(reclaim_entry);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 159 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 160
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 161 /* schedule to free up the next entry */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 162 if (!list_empty(&oxid_pool->oxid_reclaim_list)) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 163 reclaim_entry = list_first_entry(&oxid_pool->oxid_reclaim_list,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 164 struct reclaim_entry_s, links);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 165
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 @166 delay_j = reclaim_entry->expires - cur_jiffies;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 167 schedule_delayed_work(&oxid_pool->oxid_reclaim_work, delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 168 FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 169 "Scheduling next callback at:%ld jiffies\n", delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 170 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 171
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 172 spin_unlock_irqrestore(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 173 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 174
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 175 /**
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 176 * fdls_free_oxid - Helper function to free the oxid
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 177 * @iport: Handle to iport instance
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 178 * @oxid: oxid to free
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 179 * @active_oxid: the oxid which is in use
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 180 *
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 181 * Called with fnic lock held
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 182 */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 183 void fdls_free_oxid(struct fnic_iport_s *iport,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 184 uint16_t oxid, uint16_t *active_oxid)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 185 {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 186 fdls_free_oxid_idx(iport, FNIC_OXID_IDX(oxid));
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 187 *active_oxid = FNIC_UNASSIGNED_OXID;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 188 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 189
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 190 /**
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 191 * fdls_schedule_oxid_free - Schedule oxid to be freed later
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 192 * @iport: Handle to iport instance
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 193 * @active_oxid: the oxid which is in use
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 194 *
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 195 * Gets called in a rare case scenario when both a command
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 196 * (fdls or target discovery) timed out and the following ABTS
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 197 * timed out as well, without a link change.
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 198 *
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 199 * Called with fnic lock held
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 200 */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 201 void fdls_schedule_oxid_free(struct fnic_iport_s *iport, uint16_t *active_oxid)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 202 {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 203 struct fnic *fnic = iport->fnic;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 204 struct fnic_oxid_pool_s *oxid_pool = &iport->oxid_pool;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 205 struct reclaim_entry_s *reclaim_entry;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 206 unsigned long delay_j = msecs_to_jiffies(OXID_RECLAIM_TOV(iport));
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 207 int oxid_idx = FNIC_OXID_IDX(*active_oxid);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 208
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 209 lockdep_assert_held(&fnic->fnic_lock);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 210
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 211 FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 212 "Schedule oxid free. oxid: 0x%x\n", *active_oxid);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 213
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 214 *active_oxid = FNIC_UNASSIGNED_OXID;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 215
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 216 reclaim_entry = (struct reclaim_entry_s *)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 217 kzalloc(sizeof(struct reclaim_entry_s), GFP_ATOMIC);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 218
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 219 if (!reclaim_entry) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 220 FNIC_FCS_DBG(KERN_WARNING, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 221 "Failed to allocate memory for reclaim struct for oxid idx: %d\n",
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 222 oxid_idx);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 223
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 224 /* Retry the scheduling */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 225 WARN_ON(test_and_set_bit(oxid_idx, oxid_pool->pending_schedule_free));
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 226 schedule_delayed_work(&oxid_pool->schedule_oxid_free_retry, 0);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 227 return;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 228 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 229
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 230 reclaim_entry->oxid_idx = oxid_idx;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 231 reclaim_entry->expires = round_jiffies(jiffies + delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 232
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 233 list_add_tail(&reclaim_entry->links, &oxid_pool->oxid_reclaim_list);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 234
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 235 schedule_delayed_work(&oxid_pool->oxid_reclaim_work, delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 236 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 237
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 238 /**
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 239 * fdls_schedule_oxid_free_retry_work - Thread to schedule the
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 240 * oxid to be freed later
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 241 *
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 242 * @work: Handle to the work struct
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 243 */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 244 void fdls_schedule_oxid_free_retry_work(struct work_struct *work)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 245 {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 246 struct fnic_oxid_pool_s *oxid_pool = container_of(work,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 247 struct fnic_oxid_pool_s, schedule_oxid_free_retry.work);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 248 struct fnic_iport_s *iport = container_of(oxid_pool,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 249 struct fnic_iport_s, oxid_pool);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 250 struct fnic *fnic = iport->fnic;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 251 struct reclaim_entry_s *reclaim_entry;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 252 unsigned long delay_j = msecs_to_jiffies(OXID_RECLAIM_TOV(iport));
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 253 int idx;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 254
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 255 spin_lock_irqsave(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 256
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 257 for_each_set_bit(idx, oxid_pool->pending_schedule_free, FNIC_OXID_POOL_SZ) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 258
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 259 FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 260 "Schedule oxid free. oxid idx: %d\n", idx);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 261
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 262 spin_unlock_irqrestore(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 @263 reclaim_entry = (struct reclaim_entry_s *)
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 264 kzalloc(sizeof(struct reclaim_entry_s), GFP_KERNEL);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 265 spin_lock_irqsave(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 266
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 267 if (!reclaim_entry) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 268 FNIC_FCS_DBG(KERN_WARNING, fnic->lport->host, fnic->fnic_num,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 269 "Failed to allocate memory for reclaim struct for oxid idx: 0x%x\n",
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 270 idx);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 271
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 272 schedule_delayed_work(&oxid_pool->schedule_oxid_free_retry,
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 273 msecs_to_jiffies(SCHEDULE_OXID_FREE_RETRY_TIME));
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 274 spin_unlock_irqrestore(&fnic->fnic_lock, fnic->lock_flags);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 275 return;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 276 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 277
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 278 if (test_and_clear_bit(idx, oxid_pool->pending_schedule_free)) {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 279 reclaim_entry->oxid_idx = idx;
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 280 reclaim_entry->expires = round_jiffies(jiffies + delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 281 list_add_tail(&reclaim_entry->links, &oxid_pool->oxid_reclaim_list);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 282 schedule_delayed_work(&oxid_pool->oxid_reclaim_work, delay_j);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 283 } else {
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 284 /* unlikely scenario, free the allocated memory and continue */
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 285 kfree(reclaim_entry);
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 286 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 287 }
a63e78eb2b0f65 Karan Tilak Kumar 2024-12-11 288
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-02-14 6:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-14 6:56 drivers/scsi/fnic/fdls_disc.c:166 fdls_reclaim_oxid_handler() error: uninitialized symbol 'cur_jiffies' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.