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

Reply via email to