[SCSI] fnic: Kernel panic due to FIP mode misconfiguration
If switch configured in FIP and adapter configured in non-fip mode, driver panics while queueing FIP frame in non-existing fip_frame_queue. Added config check before queueing FIP frame in misconfiguration case to avoid kernel panic. Signed-off-by: Hiral Patel <hiralpat@cisco.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
d3c995f1dc
commit
d7fadce335
1 changed files with 6 additions and 0 deletions
|
@ -603,6 +603,12 @@ static inline int fnic_import_rq_eth_pkt(struct fnic *fnic, struct sk_buff *skb)
|
|||
skb_reset_mac_header(skb);
|
||||
}
|
||||
if (eh->h_proto == htons(ETH_P_FIP)) {
|
||||
if (!(fnic->config.flags & VFCF_FIP_CAPABLE)) {
|
||||
printk(KERN_ERR "Dropped FIP frame, as firmware "
|
||||
"uses non-FIP mode, Enable FIP "
|
||||
"using UCSM\n");
|
||||
goto drop;
|
||||
}
|
||||
skb_queue_tail(&fnic->fip_frame_queue, skb);
|
||||
queue_work(fnic_fip_queue, &fnic->fip_frame_work);
|
||||
return 1; /* let caller know packet was used */
|
||||
|
|
Loading…
Reference in a new issue