lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440807231554g4fc4f981j5f9a8db9ab51fe93@mail.gmail.com>
Date:	Wed, 23 Jul 2008 15:54:09 -0700
From:	"Yinghai Lu" <yhlu.kernel@...il.com>
To:	"Greg KH" <greg@...ah.com>
Cc:	"Ingo Molnar" <mingo@...e.hu>,
	"Thomas Gleixner" <tglx@...utronix.de>,
	"H. Peter Anvin" <hpa@...or.com>,
	"Andrew Morton" <akpm@...ux-foundation.org>,
	"Andi Kleen" <andi@...stfloor.org>,
	"Arjan van de Ven" <arjan@...radead.org>,
	"Eric W. Biederman" <ebiederm@...ssion.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86: usb debug port early console v2

On Wed, Jul 23, 2008 at 3:45 PM, Greg KH <greg@...ah.com> wrote:
> On Wed, Jul 23, 2008 at 02:00:53PM -0700, Yinghai Lu wrote:
>> --- linux-2.6.orig/drivers/usb/host/ehci.h
>> +++ linux-2.6/drivers/usb/host/ehci.h
>> @@ -62,6 +62,7 @@ struct ehci_stats {
>>
>>  #define      EHCI_MAX_ROOT_PORTS     15              /* see HCS_N_PORTS */
>>
>> +#ifndef EARLY_PRINTK
>>  struct ehci_hcd {                    /* one per controller */
>>       /* glue to PCI and HCD framework */
>>       struct ehci_caps __iomem *caps;
>> @@ -207,6 +208,7 @@ timer_action (struct ehci_hcd *ehci, enu
>>               mod_timer(&ehci->watchdog, t + jiffies);
>>       }
>>  }
>> +#endif /* EARLY_PRINTK */
>>
>>  /*-------------------------------------------------------------------------*/
>>
>> @@ -352,6 +354,8 @@ struct ehci_dbg_port {
>>
>>  #define      QTD_NEXT(ehci, dma)     cpu_to_hc32(ehci, (u32)dma)
>>
>> +#ifndef EARLY_PRINTK
>> +
>>  /*
>>   * EHCI Specification 0.95 Section 3.5
>>   * QTD: describe data transfer components (buffer, direction, ...)
>> @@ -392,7 +396,7 @@ struct ehci_qtd {
>>       struct urb              *urb;                   /* qtd's urb */
>>       size_t                  length;                 /* length of buffer */
>>  } __attribute__ ((aligned (32)));
>> -
>> +#endif
>>  /* mask NakCnt+T in qh->hw_alt_next */
>>  #define QTD_MASK(ehci)       cpu_to_hc32 (ehci, ~0x1f)
>>
>> @@ -449,6 +453,7 @@ union ehci_shadow {
>>   * These appear in both the async and (for interrupt) periodic schedules.
>>   */
>>
>> +#ifndef EARLY_PRINTK
>>  struct ehci_qh {
>>       /* first part defined by EHCI spec */
>>       __hc32                  hw_next;        /* see EHCI 3.6.1 */
>> @@ -504,6 +509,7 @@ struct ehci_qh {
>>  #define NO_FRAME ((unsigned short)~0)                        /* pick new start */
>>       struct usb_device       *dev;           /* access to TT */
>>  } __attribute__ ((aligned (32)));
>> +#endif /* EARLY_PRITNK */
>>
>>  /*-------------------------------------------------------------------------*/
>>
>> @@ -517,6 +523,7 @@ struct ehci_iso_packet {
>>       u32                     buf1;
>>  };
>>
>> +#ifndef EARLY_PRINTK
>>  /* temporary schedule data for packets from iso urbs (both speeds)
>>   * each packet is one logical usb transaction to the device (not TT),
>>   * beginning at stream->next_uframe
>> @@ -651,6 +658,7 @@ struct ehci_sitd {
>>       unsigned                frame;
>>       unsigned                index;
>>  } __attribute__ ((aligned (32)));
>> +#endif
>>
>>  /*-------------------------------------------------------------------------*/
>>
>> @@ -672,6 +680,8 @@ struct ehci_fstn {
>>       union ehci_shadow       fstn_next;      /* ptr to periodic q entry */
>>  } __attribute__ ((aligned (32)));
>>
>> +#ifndef EARLY_PRINTK
>> +
>>  /*-------------------------------------------------------------------------*/
>>
>>  #ifdef CONFIG_USB_EHCI_ROOT_HUB_TT
>> @@ -843,4 +853,6 @@ static inline u32 hc32_to_cpup (const st
>>
>>  /*-------------------------------------------------------------------------*/
>>
>> +#endif /* EARLY_PRINTK */
>> +
>>  #endif /* __LINUX_EHCI_HCD_H */
>
> I don't understand the issue of any of these #ifdefs here.  Why are they
> needed?

In file included from arch/x86/kernel/early_printk.c:19:
arch/x86/kernel/../../../drivers/usb/host/ehci.h:109: error: field
'iaa_watchdog' has incomplete type
arch/x86/kernel/../../../drivers/usb/host/ehci.h:110: error: field
'watchdog' has incomplete type
arch/x86/kernel/../../../drivers/usb/host/ehci.h:142: warning: 'struct
usb_hcd' declared inside parameter list
arch/x86/kernel/../../../drivers/usb/host/ehci.h:142: warning: its
scope is only this definition or declaration, which is probably not
what you want
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function 'hcd_to_ehci':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:144: error:
dereferencing pointer to incomplete type
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function 'ehci_to_hcd':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:148: error:
dereferencing pointer to incomplete type
arch/x86/kernel/../../../drivers/usb/host/ehci.h:148: warning: type
defaults to 'int' in declaration of '__mptr'
arch/x86/kernel/../../../drivers/usb/host/ehci.h:148: error: invalid
use of undefined type 'struct usb_hcd'
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function
'iaa_watchdog_start':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:155: error: implicit
declaration of function 'timer_pending'
arch/x86/kernel/../../../drivers/usb/host/ehci.h:156: error: implicit
declaration of function 'mod_timer'
arch/x86/kernel/../../../drivers/usb/host/ehci.h:157: error: 'jiffies'
undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:157: error: (Each
undeclared identifier is reported only once
arch/x86/kernel/../../../drivers/usb/host/ehci.h:157: error: for each
function it appears in.)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:157: error: implicit
declaration of function 'msecs_to_jiffies'
arch/x86/kernel/../../../drivers/usb/host/ehci.h:157: error:
'EHCI_IAA_MSECS' undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function
'iaa_watchdog_done':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:162: error: implicit
declaration of function 'del_timer'
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function 'timer_action':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:194: error:
'EHCI_IO_JIFFIES' undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:197: error:
'EHCI_ASYNC_JIFFIES' undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:204: error:
'EHCI_SHRINK_FRAMES' undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:204: error: 'HZ'
undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:207: error: 'jiffies'
undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h: In function 'ehci_port_speed':
arch/x86/kernel/../../../drivers/usb/host/ehci.h:692: error:
dereferencing pointer to incomplete type
arch/x86/kernel/../../../drivers/usb/host/ehci.h:697: error:
'USB_PORT_FEAT_LOWSPEED' undeclared (first use in this function)
arch/x86/kernel/../../../drivers/usb/host/ehci.h:700: error:
'USB_PORT_FEAT_HIGHSPEED' undeclared (first use in this function)
arch/x86/kernel/early_printk.c: In function 'early_dbgp_init':
arch/x86/kernel/early_printk.c:629: warning: passing argument 3 of
'strict_strtoul' from incompatible pointer type
make[1]: *** [arch/x86/kernel/early_printk.o] Error 1


>
> And shouldn't there be a separate config option for early printk through
> the ehci debug port?

under usb or processor?

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ