Messages in this thread | | | Date | Sun, 7 Feb 2016 16:32:38 +0800 | From | kbuild test robot <> | Subject | Re: [PATCH] tty: add Moxa Smartio MUE serial driver |
| |
Hi Mathieu,
[auto build test ERROR on tty/tty-testing] [also build test ERROR on v4.5-rc2 next-20160205] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Mathieu-OTHACEHE/tty-add-Moxa-Smartio-MUE-serial-driver/20160202-043752 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing config: ia64-allmodconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=ia64
All errors (new ones prefixed by >>):
drivers/tty/mxupcie.c: In function 'mxupcie_get_serial_info': >> drivers/tty/mxupcie.c:803:2: error: implicit declaration of function 'copy_to_user' [-Werror=implicit-function-declaration] if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) ^ drivers/tty/mxupcie.c: In function 'mxupcie_set_serial_info': >> drivers/tty/mxupcie.c:822:2: error: implicit declaration of function 'copy_from_user' [-Werror=implicit-function-declaration] if (copy_from_user(&new_serial, new_info, sizeof(new_serial))) ^ drivers/tty/mxupcie.c: In function 'mxupcie_get_lsr_info': >> drivers/tty/mxupcie.c:897:2: error: implicit declaration of function 'put_user' [-Werror=implicit-function-declaration] put_user(result, value); ^ cc1: some warnings being treated as errors
vim +/copy_to_user +803 drivers/tty/mxupcie.c
797 tmp.baud_base = info->baud_base; 798 tmp.close_delay = info->close_delay; 799 tmp.closing_wait = info->closing_wait; 800 tmp.custom_divisor = info->custom_divisor; 801 tmp.hub6 = 0; 802 > 803 if (copy_to_user(retinfo, &tmp, sizeof(*retinfo))) 804 return -EFAULT; 805 806 return 0; 807 } 808 809 static int mxupcie_set_serial_info(struct tty_struct *tty, 810 struct serial_struct *new_info) 811 { 812 struct mxupcie_port *info = tty->driver_data; 813 struct tty_port *port = &info->port; 814 struct serial_struct new_serial; 815 unsigned int flags; 816 int retval = 0; 817 unsigned long sp_flags; 818 819 if (!new_info) 820 return -EFAULT; 821 > 822 if (copy_from_user(&new_serial, new_info, sizeof(new_serial))) 823 return -EFAULT; 824 825 if ((new_serial.irq != info->board->irq) || 826 (new_serial.port != *info->ioaddr)) 827 return -EINVAL; 828 829 flags = port->flags & ASYNC_SPD_MASK; 830 831 if (!capable(CAP_SYS_ADMIN)) { 832 if ((new_serial.baud_base != info->baud_base) || 833 (new_serial.close_delay != info->close_delay) || 834 ((new_serial.flags & ~ASYNC_USR_MASK) != 835 (port->flags & ~ASYNC_USR_MASK))) 836 return -EPERM; 837 838 port->flags = ((port->flags & ~ASYNC_USR_MASK) | 839 (new_serial.flags & ASYNC_USR_MASK)); 840 } else { 841 /* 842 * OK, past this point, all the error checking has been done. 843 * At this point, we start making changes..... 844 */ 845 port->flags = ((port->flags & ~ASYNC_FLAGS) | 846 (new_serial.flags & ASYNC_FLAGS)); 847 info->close_delay = new_serial.close_delay * HZ / 100; 848 info->closing_wait = new_serial.closing_wait * HZ / 100; 849 850 if ((new_serial.baud_base != info->baud_base) || 851 (new_serial.custom_divisor != info->custom_divisor)) { 852 853 if (new_serial.custom_divisor == 0) 854 return -EINVAL; 855 856 info->custom_baud_rate = new_serial.baud_base / 857 new_serial.custom_divisor; 858 } 859 } 860 861 if (test_bit(ASYNCB_INITIALIZED, &port->flags)) { 862 if (flags != (port->flags & ASYNC_SPD_MASK)) { 863 spin_lock_irqsave(&info->slock, sp_flags); 864 mxupcie_change_speed(tty, NULL); 865 spin_unlock_irqrestore(&info->slock, sp_flags); 866 } 867 } else { 868 retval = mxupcie_activate(port, tty); 869 if (retval == 0) 870 set_bit(ASYNCB_INITIALIZED, &port->flags); 871 } 872 873 return retval; 874 } 875 876 /* 877 * mx_get_lsr_info - get line status register info 878 * 879 * Purpose: Let user call ioctl() to get info when the UART physically 880 * is emptied. On bus types like RS485, the transmitter must 881 * release the bus after transmitting. This must be done when 882 * the transmit shift register is empty, not be done when the 883 * transmit holding register is empty. This functionality 884 * allows an RS485 driver to be written in user space. 885 */ 886 static int mxupcie_get_lsr_info(struct tty_struct *tty, unsigned int *value) 887 { 888 struct mxupcie_port *info = tty->driver_data; 889 unsigned char status; 890 unsigned int result; 891 unsigned long sp_flags; 892 893 spin_lock_irqsave(&info->slock, sp_flags); 894 status = ioread8(info->ioaddr + UART_LSR); 895 spin_unlock_irqrestore(&info->slock, sp_flags); 896 result = ((status & UART_LSR_TEMT) ? TIOCSER_TEMT : 0); > 897 put_user(result, value); 898 899 return 0; 900 }
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/octet-stream] | |