Sivaram Kannan wrote: > Hi all, > > I have created a patch for Open-Fcoe-Target which could compile against the > latest kernel test branch(linux-2.6.29-rc8). The same patch will also compile against the latest stable version 2.6.28. I exposed the target and when I triggered the initiator, I could see sequence of SCSI packets at the wireshark. I did not understand the messages completely, I am decoding it. One problem that I noticed during the testing is with the initiator. For initiator I compiled the latest 2.6.29-rc8 in Fedora 10, and when I give the command "echo "ethX" > /sys/module/fcoe/parameters/create", I am getting a kernel opps. There is no trouble at the target end, wireshark was still printing SCSI packets. Would attaching the wireshark trace from target end would be helpful to identify what is the problem?
Wireshark might help, but more useful would be the serial console output from the crashing system. I guess I'll try to reproduce the error. It might have to do with point-to-point mode, which doesn't get fully tested with every change. > I have tested the patch with the scripts/checkpatch.pl, it gave one error > saying "ERROR: Missing Signed-off-by: > line(s)" . You just need to add a line that says "signed-off-by: Your-name-here <[email protected]>" at the end of your patch description. This says that you vouch that the patch was made without using proprietary source. Your changes look fine to me. Joe > Thanks, > Siva > > ================= > > fcoe/fcoe_dev.c | 4 ++-- > fcoe/fcoe_if.c | 2 +- > fcoe/fcoeinit.c | 4 ++-- > include/sa_hash.h | 1 + > openfctgt/openfc_scst.c | 6 +++--- > 5 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/fcoe/fcoe_dev.c b/fcoe/fcoe_dev.c > index 8f2dad1..5ba163f 100644 > --- a/fcoe/fcoe_dev.c > +++ b/fcoe/fcoe_dev.c > @@ -284,14 +284,14 @@ int fcoe_xmit(struct fcdev *fc_dev, struct fc_frame *fp) > u_long off = sg->offset; > u_long len = sg->length; > > - skb_fill_page_desc(skb, indx, sg->page, off, len); > + skb_fill_page_desc(skb, indx, sg->page_link, off, len); > skb->len += len; > skb->data_len += len; > while (len > 0) { > u_long clen; > > clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK)); > - data = kmap_atomic(sg->page + (off >> PAGE_SHIFT), > + data = kmap_atomic(sg->page_link + (off >> PAGE_SHIFT), > KM_SKB_DATA_SOFTIRQ); > crc = crc32_sb8_64_bit(crc, data + (off & ~PAGE_MASK), > clen); > diff --git a/fcoe/fcoe_if.c b/fcoe/fcoe_if.c > index 8cf6c34..d87ede1 100644 > --- a/fcoe/fcoe_if.c > +++ b/fcoe/fcoe_if.c > @@ -194,7 +194,7 @@ int fcoe_create_interface(struct fcoe_info *fci, void > *ptr) > /* > * get the pointer the real eth device > */ > - fc->real_dev = (void *)dev_get_by_name(cfg->local_ifname); > + fc->real_dev = (void *)dev_get_by_name(&init_net, cfg->local_ifname); > if (fc->real_dev == NULL) { > SA_LOG("could not get network device for %s", > cfg->local_ifname); > diff --git a/fcoe/fcoeinit.c b/fcoe/fcoeinit.c > index 182a9b1..77f16f6 100644 > --- a/fcoe/fcoeinit.c > +++ b/fcoe/fcoeinit.c > @@ -287,7 +287,7 @@ static int __init fcoeinit(void) > rc = -ENODEV; > goto out_chrdev; > } > - class_device_create(fci->fcoe_class, NULL, > + device_create(fci->fcoe_class, NULL, > MKDEV(fci->fcoe_major, 0), NULL, FCOE_CTL_DEV_NAME); > > /* > @@ -362,7 +362,7 @@ static void __exit fcoe_exit(void) > #ifdef CONFIG_HOTPLUG_CPU > unregister_cpu_notifier(&fcoe_cpu_notifier); > #endif /* CONFIG_HOTPLUG_CPU */ > - class_device_destroy(fci->fcoe_class, MKDEV(fci->fcoe_major, 0)); > + device_destroy(fci->fcoe_class, MKDEV(fci->fcoe_major, 0)); > class_destroy(fci->fcoe_class); > fcoe_unreg_char_dev(); > fcoe_dev_cleanup(); > diff --git a/include/sa_hash.h b/include/sa_hash.h > index d4ee6be..cd64fa4 100644 > --- a/include/sa_hash.h > +++ b/include/sa_hash.h > @@ -21,6 +21,7 @@ > #define _LIBSA_HASH_H_ > > #include <linux/list.h> > +#include <linux/rculist.h> > > /* > * Hash table facility. > diff --git a/openfctgt/openfc_scst.c b/openfctgt/openfc_scst.c > index d245ae9..b89537a 100644 > --- a/openfctgt/openfc_scst.c > +++ b/openfctgt/openfc_scst.c > @@ -171,7 +171,7 @@ openfc_scsi_send_data(struct fc_scsi_pkt *fsp, struct > fc_seq *sp, > if (using_sg) { > ASSERT(fp->fr_sg_len < FC_FRAME_SG_LEN); > fsg = &fp->fr_sg[fp->fr_sg_len++]; > - fsg->page = sg->page; > + fsg->page_link = sg->page_link; > fsg->offset = sg->offset + offset; > fsg->length = sg_bytes; > fp->fr_len += sg_bytes; > @@ -185,7 +185,7 @@ openfc_scsi_send_data(struct fc_scsi_pkt *fsp, struct > fc_seq *sp, > */ > sg_bytes = min(sg_bytes, (size_t) (PAGE_SIZE - > (off & ~PAGE_MASK))); > - page_addr = kmap_atomic(sg->page + > + page_addr = kmap_atomic(sg->page_link + > (off >> PAGE_SHIFT), KM_SOFTIRQ0); > __memcpy(data, (char *) page_addr + > (off & ~PAGE_MASK), sg_bytes); > @@ -247,7 +247,7 @@ int openfct_cp_to_user(struct fc_scsi_pkt *fsp, uint > offset, void *buf, int len) > off = offset + sg->offset; > sg_bytes = min(sg_bytes, > (u_int32_t) (PAGE_SIZE - (off & ~PAGE_MASK))); > - page_addr = kmap_atomic(sg->page + (off >> PAGE_SHIFT), > + page_addr = kmap_atomic(sg->page_link + (off >> PAGE_SHIFT), > KM_SOFTIRQ0); > if (!page_addr) { > return -1; > > > > > _______________________________________________ > devel mailing list > [email protected] > http://www.open-fcoe.org/mailman/listinfo/devel _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
