Commit 239686c1 authored by Heiko Carstens's avatar Heiko Carstens Committed by David S. Miller

s390/lcs: remove incorrect kernel doc indicators

Many comments above functions start with a kernel doc indicator, but
the comments are not using kernel doc style. Get rid of the warnings
by simply removing the indicator.

E.g.:

drivers/s390/net/lcs.c:2355: warning:
 This comment starts with '/**', but isn't a kernel-doc comment.
Acked-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a962cc4b
...@@ -40,18 +40,18 @@ ...@@ -40,18 +40,18 @@
#error Cannot compile lcs.c without some net devices switched on. #error Cannot compile lcs.c without some net devices switched on.
#endif #endif
/** /*
* initialization string for output * initialization string for output
*/ */
static char version[] __initdata = "LCS driver"; static char version[] __initdata = "LCS driver";
/** /*
* the root device for lcs group devices * the root device for lcs group devices
*/ */
static struct device *lcs_root_dev; static struct device *lcs_root_dev;
/** /*
* Some prototypes. * Some prototypes.
*/ */
static void lcs_tasklet(unsigned long); static void lcs_tasklet(unsigned long);
...@@ -62,14 +62,14 @@ static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *); ...@@ -62,14 +62,14 @@ static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *);
#endif /* CONFIG_IP_MULTICAST */ #endif /* CONFIG_IP_MULTICAST */
static int lcs_recovery(void *ptr); static int lcs_recovery(void *ptr);
/** /*
* Debug Facility Stuff * Debug Facility Stuff
*/ */
static char debug_buffer[255]; static char debug_buffer[255];
static debug_info_t *lcs_dbf_setup; static debug_info_t *lcs_dbf_setup;
static debug_info_t *lcs_dbf_trace; static debug_info_t *lcs_dbf_trace;
/** /*
* LCS Debug Facility functions * LCS Debug Facility functions
*/ */
static void static void
...@@ -96,7 +96,7 @@ lcs_register_debug_facility(void) ...@@ -96,7 +96,7 @@ lcs_register_debug_facility(void)
return 0; return 0;
} }
/** /*
* Allocate io buffers. * Allocate io buffers.
*/ */
static int static int
...@@ -123,7 +123,7 @@ lcs_alloc_channel(struct lcs_channel *channel) ...@@ -123,7 +123,7 @@ lcs_alloc_channel(struct lcs_channel *channel)
return 0; return 0;
} }
/** /*
* Free io buffers. * Free io buffers.
*/ */
static void static void
...@@ -151,7 +151,7 @@ lcs_cleanup_channel(struct lcs_channel *channel) ...@@ -151,7 +151,7 @@ lcs_cleanup_channel(struct lcs_channel *channel)
lcs_free_channel(channel); lcs_free_channel(channel);
} }
/** /*
* LCS free memory for card and channels. * LCS free memory for card and channels.
*/ */
static void static void
...@@ -162,7 +162,7 @@ lcs_free_card(struct lcs_card *card) ...@@ -162,7 +162,7 @@ lcs_free_card(struct lcs_card *card)
kfree(card); kfree(card);
} }
/** /*
* LCS alloc memory for card and channels * LCS alloc memory for card and channels
*/ */
static struct lcs_card * static struct lcs_card *
...@@ -402,7 +402,7 @@ lcs_do_start_thread(struct lcs_card *card, unsigned long thread) ...@@ -402,7 +402,7 @@ lcs_do_start_thread(struct lcs_card *card, unsigned long thread)
return rc; return rc;
} }
/** /*
* Initialize channels,card and state machines. * Initialize channels,card and state machines.
*/ */
static void static void
...@@ -451,7 +451,8 @@ static void lcs_clear_multicast_list(struct lcs_card *card) ...@@ -451,7 +451,8 @@ static void lcs_clear_multicast_list(struct lcs_card *card)
spin_unlock_irqrestore(&card->ipm_lock, flags); spin_unlock_irqrestore(&card->ipm_lock, flags);
#endif #endif
} }
/**
/*
* Cleanup channels,card and state machines. * Cleanup channels,card and state machines.
*/ */
static void static void
...@@ -468,7 +469,7 @@ lcs_cleanup_card(struct lcs_card *card) ...@@ -468,7 +469,7 @@ lcs_cleanup_card(struct lcs_card *card)
lcs_cleanup_channel(&card->read); lcs_cleanup_channel(&card->read);
} }
/** /*
* Start channel. * Start channel.
*/ */
static int static int
...@@ -517,7 +518,7 @@ lcs_clear_channel(struct lcs_channel *channel) ...@@ -517,7 +518,7 @@ lcs_clear_channel(struct lcs_channel *channel)
} }
/** /*
* Stop channel. * Stop channel.
*/ */
static int static int
...@@ -545,7 +546,7 @@ lcs_stop_channel(struct lcs_channel *channel) ...@@ -545,7 +546,7 @@ lcs_stop_channel(struct lcs_channel *channel)
return 0; return 0;
} }
/** /*
* start read and write channel * start read and write channel
*/ */
static int static int
...@@ -565,7 +566,7 @@ lcs_start_channels(struct lcs_card *card) ...@@ -565,7 +566,7 @@ lcs_start_channels(struct lcs_card *card)
return rc; return rc;
} }
/** /*
* stop read and write channel * stop read and write channel
*/ */
static int static int
...@@ -577,7 +578,7 @@ lcs_stop_channels(struct lcs_card *card) ...@@ -577,7 +578,7 @@ lcs_stop_channels(struct lcs_card *card)
return 0; return 0;
} }
/** /*
* Get empty buffer. * Get empty buffer.
*/ */
static struct lcs_buffer * static struct lcs_buffer *
...@@ -610,7 +611,7 @@ lcs_get_buffer(struct lcs_channel *channel) ...@@ -610,7 +611,7 @@ lcs_get_buffer(struct lcs_channel *channel)
return buffer; return buffer;
} }
/** /*
* Resume channel program if the channel is suspended. * Resume channel program if the channel is suspended.
*/ */
static int static int
...@@ -636,7 +637,7 @@ __lcs_resume_channel(struct lcs_channel *channel) ...@@ -636,7 +637,7 @@ __lcs_resume_channel(struct lcs_channel *channel)
} }
/** /*
* Make a buffer ready for processing. * Make a buffer ready for processing.
*/ */
static void __lcs_ready_buffer_bits(struct lcs_channel *channel, int index) static void __lcs_ready_buffer_bits(struct lcs_channel *channel, int index)
...@@ -678,7 +679,7 @@ lcs_ready_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer) ...@@ -678,7 +679,7 @@ lcs_ready_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer)
return rc; return rc;
} }
/** /*
* Mark the buffer as processed. Take care of the suspend bit * Mark the buffer as processed. Take care of the suspend bit
* of the previous buffer. This function is called from * of the previous buffer. This function is called from
* interrupt context, so the lock must not be taken. * interrupt context, so the lock must not be taken.
...@@ -712,7 +713,7 @@ __lcs_processed_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer) ...@@ -712,7 +713,7 @@ __lcs_processed_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer)
return __lcs_resume_channel(channel); return __lcs_resume_channel(channel);
} }
/** /*
* Put a processed buffer back to state empty. * Put a processed buffer back to state empty.
*/ */
static void static void
...@@ -728,7 +729,7 @@ lcs_release_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer) ...@@ -728,7 +729,7 @@ lcs_release_buffer(struct lcs_channel *channel, struct lcs_buffer *buffer)
spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags); spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
} }
/** /*
* Get buffer for a lan command. * Get buffer for a lan command.
*/ */
static struct lcs_buffer * static struct lcs_buffer *
...@@ -785,7 +786,7 @@ lcs_alloc_reply(struct lcs_cmd *cmd) ...@@ -785,7 +786,7 @@ lcs_alloc_reply(struct lcs_cmd *cmd)
return reply; return reply;
} }
/** /*
* Notifier function for lancmd replies. Called from read irq. * Notifier function for lancmd replies. Called from read irq.
*/ */
static void static void
...@@ -813,7 +814,7 @@ lcs_notify_lancmd_waiters(struct lcs_card *card, struct lcs_cmd *cmd) ...@@ -813,7 +814,7 @@ lcs_notify_lancmd_waiters(struct lcs_card *card, struct lcs_cmd *cmd)
spin_unlock(&card->lock); spin_unlock(&card->lock);
} }
/** /*
* Emit buffer of a lan command. * Emit buffer of a lan command.
*/ */
static void static void
...@@ -877,7 +878,7 @@ lcs_send_lancmd(struct lcs_card *card, struct lcs_buffer *buffer, ...@@ -877,7 +878,7 @@ lcs_send_lancmd(struct lcs_card *card, struct lcs_buffer *buffer,
return rc ? -EIO : 0; return rc ? -EIO : 0;
} }
/** /*
* LCS startup command * LCS startup command
*/ */
static int static int
...@@ -895,7 +896,7 @@ lcs_send_startup(struct lcs_card *card, __u8 initiator) ...@@ -895,7 +896,7 @@ lcs_send_startup(struct lcs_card *card, __u8 initiator)
return lcs_send_lancmd(card, buffer, NULL); return lcs_send_lancmd(card, buffer, NULL);
} }
/** /*
* LCS shutdown command * LCS shutdown command
*/ */
static int static int
...@@ -912,7 +913,7 @@ lcs_send_shutdown(struct lcs_card *card) ...@@ -912,7 +913,7 @@ lcs_send_shutdown(struct lcs_card *card)
return lcs_send_lancmd(card, buffer, NULL); return lcs_send_lancmd(card, buffer, NULL);
} }
/** /*
* LCS lanstat command * LCS lanstat command
*/ */
static void static void
...@@ -939,7 +940,7 @@ lcs_send_lanstat(struct lcs_card *card) ...@@ -939,7 +940,7 @@ lcs_send_lanstat(struct lcs_card *card)
return lcs_send_lancmd(card, buffer, __lcs_lanstat_cb); return lcs_send_lancmd(card, buffer, __lcs_lanstat_cb);
} }
/** /*
* send stoplan command * send stoplan command
*/ */
static int static int
...@@ -958,7 +959,7 @@ lcs_send_stoplan(struct lcs_card *card, __u8 initiator) ...@@ -958,7 +959,7 @@ lcs_send_stoplan(struct lcs_card *card, __u8 initiator)
return lcs_send_lancmd(card, buffer, NULL); return lcs_send_lancmd(card, buffer, NULL);
} }
/** /*
* send startlan command * send startlan command
*/ */
static void static void
...@@ -986,7 +987,7 @@ lcs_send_startlan(struct lcs_card *card, __u8 initiator) ...@@ -986,7 +987,7 @@ lcs_send_startlan(struct lcs_card *card, __u8 initiator)
} }
#ifdef CONFIG_IP_MULTICAST #ifdef CONFIG_IP_MULTICAST
/** /*
* send setipm command (Multicast) * send setipm command (Multicast)
*/ */
static int static int
...@@ -1010,7 +1011,7 @@ lcs_send_setipm(struct lcs_card *card,struct lcs_ipm_list *ipm_list) ...@@ -1010,7 +1011,7 @@ lcs_send_setipm(struct lcs_card *card,struct lcs_ipm_list *ipm_list)
return lcs_send_lancmd(card, buffer, NULL); return lcs_send_lancmd(card, buffer, NULL);
} }
/** /*
* send delipm command (Multicast) * send delipm command (Multicast)
*/ */
static int static int
...@@ -1034,7 +1035,7 @@ lcs_send_delipm(struct lcs_card *card,struct lcs_ipm_list *ipm_list) ...@@ -1034,7 +1035,7 @@ lcs_send_delipm(struct lcs_card *card,struct lcs_ipm_list *ipm_list)
return lcs_send_lancmd(card, buffer, NULL); return lcs_send_lancmd(card, buffer, NULL);
} }
/** /*
* check if multicast is supported by LCS * check if multicast is supported by LCS
*/ */
static void static void
...@@ -1074,7 +1075,7 @@ lcs_check_multicast_support(struct lcs_card *card) ...@@ -1074,7 +1075,7 @@ lcs_check_multicast_support(struct lcs_card *card)
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
/** /*
* set or del multicast address on LCS card * set or del multicast address on LCS card
*/ */
static void static void
...@@ -1129,7 +1130,7 @@ lcs_fix_multicast_list(struct lcs_card *card) ...@@ -1129,7 +1130,7 @@ lcs_fix_multicast_list(struct lcs_card *card)
spin_unlock_irqrestore(&card->ipm_lock, flags); spin_unlock_irqrestore(&card->ipm_lock, flags);
} }
/** /*
* get mac address for the relevant Multicast address * get mac address for the relevant Multicast address
*/ */
static void static void
...@@ -1139,7 +1140,7 @@ lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev) ...@@ -1139,7 +1140,7 @@ lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev)
ip_eth_mc_map(ipm, mac); ip_eth_mc_map(ipm, mac);
} }
/** /*
* function called by net device to handle multicast address relevant things * function called by net device to handle multicast address relevant things
*/ */
static void lcs_remove_mc_addresses(struct lcs_card *card, static void lcs_remove_mc_addresses(struct lcs_card *card,
...@@ -1260,7 +1261,7 @@ lcs_register_mc_addresses(void *data) ...@@ -1260,7 +1261,7 @@ lcs_register_mc_addresses(void *data)
} }
#endif /* CONFIG_IP_MULTICAST */ #endif /* CONFIG_IP_MULTICAST */
/** /*
* function called by net device to * function called by net device to
* handle multicast address relevant things * handle multicast address relevant things
*/ */
...@@ -1355,7 +1356,7 @@ lcs_schedule_recovery(struct lcs_card *card) ...@@ -1355,7 +1356,7 @@ lcs_schedule_recovery(struct lcs_card *card)
schedule_work(&card->kernel_thread_starter); schedule_work(&card->kernel_thread_starter);
} }
/** /*
* IRQ Handler for LCS channels * IRQ Handler for LCS channels
*/ */
static void static void
...@@ -1439,7 +1440,7 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1439,7 +1440,7 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
tasklet_schedule(&channel->irq_tasklet); tasklet_schedule(&channel->irq_tasklet);
} }
/** /*
* Tasklet for IRQ handler * Tasklet for IRQ handler
*/ */
static void static void
...@@ -1476,7 +1477,7 @@ lcs_tasklet(unsigned long data) ...@@ -1476,7 +1477,7 @@ lcs_tasklet(unsigned long data)
wake_up(&channel->wait_q); wake_up(&channel->wait_q);
} }
/** /*
* Finish current tx buffer and make it ready for transmit. * Finish current tx buffer and make it ready for transmit.
*/ */
static void static void
...@@ -1490,7 +1491,7 @@ __lcs_emit_txbuffer(struct lcs_card *card) ...@@ -1490,7 +1491,7 @@ __lcs_emit_txbuffer(struct lcs_card *card)
card->tx_emitted++; card->tx_emitted++;
} }
/** /*
* Callback for finished tx buffers. * Callback for finished tx buffers.
*/ */
static void static void
...@@ -1515,7 +1516,7 @@ lcs_txbuffer_cb(struct lcs_channel *channel, struct lcs_buffer *buffer) ...@@ -1515,7 +1516,7 @@ lcs_txbuffer_cb(struct lcs_channel *channel, struct lcs_buffer *buffer)
spin_unlock(&card->lock); spin_unlock(&card->lock);
} }
/** /*
* Packet transmit function called by network stack * Packet transmit function called by network stack
*/ */
static int static int
...@@ -1593,7 +1594,7 @@ lcs_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1593,7 +1594,7 @@ lcs_start_xmit(struct sk_buff *skb, struct net_device *dev)
return rc; return rc;
} }
/** /*
* send startlan and lanstat command to make LCS device ready * send startlan and lanstat command to make LCS device ready
*/ */
static int static int
...@@ -1648,7 +1649,7 @@ lcs_startlan(struct lcs_card *card) ...@@ -1648,7 +1649,7 @@ lcs_startlan(struct lcs_card *card)
return rc; return rc;
} }
/** /*
* LCS detect function * LCS detect function
* setup channels and make them I/O ready * setup channels and make them I/O ready
*/ */
...@@ -1680,7 +1681,7 @@ lcs_detect(struct lcs_card *card) ...@@ -1680,7 +1681,7 @@ lcs_detect(struct lcs_card *card)
return rc; return rc;
} }
/** /*
* LCS Stop card * LCS Stop card
*/ */
static int static int
...@@ -1705,7 +1706,7 @@ lcs_stopcard(struct lcs_card *card) ...@@ -1705,7 +1706,7 @@ lcs_stopcard(struct lcs_card *card)
return rc; return rc;
} }
/** /*
* Kernel Thread helper functions for LGW initiated commands * Kernel Thread helper functions for LGW initiated commands
*/ */
static void static void
...@@ -1721,7 +1722,7 @@ lcs_start_kernel_thread(struct work_struct *work) ...@@ -1721,7 +1722,7 @@ lcs_start_kernel_thread(struct work_struct *work)
#endif #endif
} }
/** /*
* Process control frames. * Process control frames.
*/ */
static void static void
...@@ -1748,7 +1749,7 @@ lcs_get_control(struct lcs_card *card, struct lcs_cmd *cmd) ...@@ -1748,7 +1749,7 @@ lcs_get_control(struct lcs_card *card, struct lcs_cmd *cmd)
lcs_notify_lancmd_waiters(card, cmd); lcs_notify_lancmd_waiters(card, cmd);
} }
/** /*
* Unpack network packet. * Unpack network packet.
*/ */
static void static void
...@@ -1779,7 +1780,7 @@ lcs_get_skb(struct lcs_card *card, char *skb_data, unsigned int skb_len) ...@@ -1779,7 +1780,7 @@ lcs_get_skb(struct lcs_card *card, char *skb_data, unsigned int skb_len)
netif_rx(skb); netif_rx(skb);
} }
/** /*
* LCS main routine to get packets and lancmd replies from the buffers * LCS main routine to get packets and lancmd replies from the buffers
*/ */
static void static void
...@@ -1829,7 +1830,7 @@ lcs_get_frames_cb(struct lcs_channel *channel, struct lcs_buffer *buffer) ...@@ -1829,7 +1830,7 @@ lcs_get_frames_cb(struct lcs_channel *channel, struct lcs_buffer *buffer)
lcs_ready_buffer(&card->read, buffer); lcs_ready_buffer(&card->read, buffer);
} }
/** /*
* get network statistics for ifconfig and other user programs * get network statistics for ifconfig and other user programs
*/ */
static struct net_device_stats * static struct net_device_stats *
...@@ -1842,7 +1843,7 @@ lcs_getstats(struct net_device *dev) ...@@ -1842,7 +1843,7 @@ lcs_getstats(struct net_device *dev)
return &card->stats; return &card->stats;
} }
/** /*
* stop lcs device * stop lcs device
* This function will be called by user doing ifconfig xxx down * This function will be called by user doing ifconfig xxx down
*/ */
...@@ -1866,7 +1867,7 @@ lcs_stop_device(struct net_device *dev) ...@@ -1866,7 +1867,7 @@ lcs_stop_device(struct net_device *dev)
return rc; return rc;
} }
/** /*
* start lcs device and make it runnable * start lcs device and make it runnable
* This function will be called by user doing ifconfig xxx up * This function will be called by user doing ifconfig xxx up
*/ */
...@@ -1892,7 +1893,7 @@ lcs_open_device(struct net_device *dev) ...@@ -1892,7 +1893,7 @@ lcs_open_device(struct net_device *dev)
return rc; return rc;
} }
/** /*
* show function for portno called by cat or similar things * show function for portno called by cat or similar things
*/ */
static ssize_t static ssize_t
...@@ -1908,7 +1909,7 @@ lcs_portno_show (struct device *dev, struct device_attribute *attr, char *buf) ...@@ -1908,7 +1909,7 @@ lcs_portno_show (struct device *dev, struct device_attribute *attr, char *buf)
return sprintf(buf, "%d\n", card->portno); return sprintf(buf, "%d\n", card->portno);
} }
/** /*
* store the value which is piped to file portno * store the value which is piped to file portno
*/ */
static ssize_t static ssize_t
...@@ -2033,7 +2034,7 @@ static const struct device_type lcs_devtype = { ...@@ -2033,7 +2034,7 @@ static const struct device_type lcs_devtype = {
.groups = lcs_attr_groups, .groups = lcs_attr_groups,
}; };
/** /*
* lcs_probe_device is called on establishing a new ccwgroup_device. * lcs_probe_device is called on establishing a new ccwgroup_device.
*/ */
static int static int
...@@ -2077,7 +2078,7 @@ lcs_register_netdev(struct ccwgroup_device *ccwgdev) ...@@ -2077,7 +2078,7 @@ lcs_register_netdev(struct ccwgroup_device *ccwgdev)
return register_netdev(card->dev); return register_netdev(card->dev);
} }
/** /*
* lcs_new_device will be called by setting the group device online. * lcs_new_device will be called by setting the group device online.
*/ */
static const struct net_device_ops lcs_netdev_ops = { static const struct net_device_ops lcs_netdev_ops = {
...@@ -2199,7 +2200,7 @@ lcs_new_device(struct ccwgroup_device *ccwgdev) ...@@ -2199,7 +2200,7 @@ lcs_new_device(struct ccwgroup_device *ccwgdev)
return -ENODEV; return -ENODEV;
} }
/** /*
* lcs_shutdown_device, called when setting the group device offline. * lcs_shutdown_device, called when setting the group device offline.
*/ */
static int static int
...@@ -2240,7 +2241,7 @@ lcs_shutdown_device(struct ccwgroup_device *ccwgdev) ...@@ -2240,7 +2241,7 @@ lcs_shutdown_device(struct ccwgroup_device *ccwgdev)
return __lcs_shutdown_device(ccwgdev, 0); return __lcs_shutdown_device(ccwgdev, 0);
} }
/** /*
* drive lcs recovery after startup and startlan initiated by Lan Gateway * drive lcs recovery after startup and startlan initiated by Lan Gateway
*/ */
static int static int
...@@ -2271,7 +2272,7 @@ lcs_recovery(void *ptr) ...@@ -2271,7 +2272,7 @@ lcs_recovery(void *ptr)
return 0; return 0;
} }
/** /*
* lcs_remove_device, free buffers and card * lcs_remove_device, free buffers and card
*/ */
static void static void
...@@ -2315,7 +2316,7 @@ static struct ccw_driver lcs_ccw_driver = { ...@@ -2315,7 +2316,7 @@ static struct ccw_driver lcs_ccw_driver = {
.int_class = IRQIO_LCS, .int_class = IRQIO_LCS,
}; };
/** /*
* LCS ccwgroup driver registration * LCS ccwgroup driver registration
*/ */
static struct ccwgroup_driver lcs_group_driver = { static struct ccwgroup_driver lcs_group_driver = {
...@@ -2351,7 +2352,7 @@ static const struct attribute_group *lcs_drv_attr_groups[] = { ...@@ -2351,7 +2352,7 @@ static const struct attribute_group *lcs_drv_attr_groups[] = {
NULL, NULL,
}; };
/** /*
* LCS Module/Kernel initialization function * LCS Module/Kernel initialization function
*/ */
static int static int
...@@ -2389,7 +2390,7 @@ __init lcs_init_module(void) ...@@ -2389,7 +2390,7 @@ __init lcs_init_module(void)
} }
/** /*
* LCS module cleanup function * LCS module cleanup function
*/ */
static void static void
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment