Linux-Next discussions
 help / color / mirror / Atom feed
* Re: linux-next: build failure after merge of the final tree (tip tree related)
From: Stephen Rothwell @ 2010-12-07  1:56 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, Peter Zijlstra
  Cc: linux-next, linux-kernel
In-Reply-To: <20101129135045.15aec5ed.sfr@canb.auug.org.au>

[-- Attachment #1: Type: text/plain, Size: 606 bytes --]

On Mon, 29 Nov 2010 13:50:45 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the final tree, today's linux-next build (sparc64 defconfig)
> failed like this:
> 
> arch/sparc/kernel/perf_event.c:1326: error: 'init_hw_perf_event' undeclared here (not in a function)
> 
> Caused by commit 004417a6d468e24399e383645c068b498eed84ad ("perf, arch:
> Cleanup perf-pmu init vs lockup-detector").
> 
> I reverted that commit for today.

I am still reverting that commit.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* linux-next: build failure after merge of the net tree
From: Stephen Rothwell @ 2010-12-07  1:00 UTC (permalink / raw)
  To: David Miller, netdev; +Cc: linux-next, linux-kernel, Joe Perches, Breno Leitao

[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]

Hi all,

After merging the net tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

drivers/net/ehea/ehea_main.c: In function 'ehea_refill_rq1':
drivers/net/ehea/ehea_main.c:405: error: implicit declaration of function 'ehea_info'
drivers/net/ehea/ehea_main.c: In function 'ehea_init_fill_rq1':
drivers/net/ehea/ehea_main.c:429: error: implicit declaration of function 'ehea_error'
drivers/net/ehea/ehea_main.c: In function 'ehea_neq_tasklet':
drivers/net/ehea/ehea_main.c:1306: warning: format '%lx' expects type 'long unsigned int', but argument 2 has type 'u64'

Caused by commit 539995d18649023199986424d140f1d620372ce5 ("ehea: Use the
standard logging functions") interacting with commit
5c7e57f7cddb83d81d83fefa5822dfe80891130e ("ehea: Add some info messages
and fix an issue") which went into Linus' tree before 2.6.37-rc4.

Presumably a merge of net-current into the net tree will need a fixup patch.

I have used the net tree from next-20101206 for today.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* Re: linux-next: build failure after merge of the acpi tree
From: Stephen Rothwell @ 2010-12-07  0:27 UTC (permalink / raw)
  To: Len Brown; +Cc: linux-next, linux-kernel, Rafael J. Wysocki
In-Reply-To: <20101202112239.c7d05518.sfr@canb.auug.org.au>

[-- Attachment #1: Type: text/plain, Size: 1506 bytes --]

Hi Len,

On Thu, 2 Dec 2010 11:22:39 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the acpi tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
> 
> In file included from drivers/video/output.c:25:
> include/linux/video_output.h: In function 'video_output_register':
> include/linux/video_output.h:49: error: implicit declaration of function 'ERR_PTR'
> include/linux/video_output.h:49: warning: return makes pointer from integer without a cast
> In file included from drivers/video/output.c:27:
> include/linux/err.h: At top level:
> include/linux/err.h:22: error: conflicting types for 'ERR_PTR'
> include/linux/video_output.h:49: note: previous implicit declaration of 'ERR_PTR' was here
> drivers/video/output.c:84: error: redefinition of 'video_output_register'
> include/linux/video_output.h:44: note: previous definition of 'video_output_register' was here
> drivers/video/output.c:114: error: redefinition of 'video_output_unregister'
> include/linux/video_output.h:51: note: previous definition of 'video_output_unregister' was here
> 
> Caused by commit 16d21716c8849c3283d1b9e590e6fe8d1966f4b7 ("ACPI: video:
> fix build for VIDEO_OUTPUT_CONTROL=n").  See Rule 1 in
> Documentation/SubmitChecklist.
> 
> I have used the version of the acpi tree from next-20101201 for today.

I am still getting this failure.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* Re: linux-next: unsigned commits
From: Stephen Rothwell @ 2010-12-06 23:38 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-next, LKML
In-Reply-To: <20101206233458.GA3738@srcf.ucam.org>

[-- Attachment #1: Type: text/plain, Size: 360 bytes --]

Hi Matthew,

On Mon, 6 Dec 2010 23:34:58 +0000 Matthew Garrett <mjg59@srcf.ucam.org> wrote:
>
> They're somewhat WIP - I'll shift them to a topic branch.

Thanks.  They really shouldn't be in linux-next until they are (more or
less) finished.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* Re: linux-next: unsigned commits
From: Matthew Garrett @ 2010-12-06 23:34 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, LKML
In-Reply-To: <20101207103346.fbbcf099.sfr@canb.auug.org.au>

On Tue, Dec 07, 2010 at 10:33:46AM +1100, Stephen Rothwell wrote:
> Hi Matthew,
> 
> Looking through the drivers-x86 tree update for linux-next today, I found
> a few commits that have no signed-off-by line ...
> 
> 8f2e88b22a4caaebcc8d5a9e00a8249fec350cf3	"Generic key reporting"
> e3a2b10707902bcf95d022a5bab8f13b26bccc64	"ACPI-ify"
> 52f4e59f269e0d3bb1d54ca654d9cbf6880e7370	"Fix some tos1900 devices"
> 64ea4efdd949c99d9206a44a43984d2e861350f1	"wwan rfkill stubs"
> 
> And I think those commit messages could do with some elaboration as well.

They're somewhat WIP - I'll shift them to a topic branch.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply

* linux-next: unsigned commits
From: Stephen Rothwell @ 2010-12-06 23:33 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-next, LKML

[-- Attachment #1: Type: text/plain, Size: 577 bytes --]

Hi Matthew,

Looking through the drivers-x86 tree update for linux-next today, I found
a few commits that have no signed-off-by line ...

8f2e88b22a4caaebcc8d5a9e00a8249fec350cf3	"Generic key reporting"
e3a2b10707902bcf95d022a5bab8f13b26bccc64	"ACPI-ify"
52f4e59f269e0d3bb1d54ca654d9cbf6880e7370	"Fix some tos1900 devices"
64ea4efdd949c99d9206a44a43984d2e861350f1	"wwan rfkill stubs"

And I think those commit messages could do with some elaboration as well.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* Re: linux-next: Tree for December 3 (cifs)
From: Randy Dunlap @ 2010-12-06 16:43 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Shirish Pargaonkar, Ingo Molnar, Steve French, Stephen Rothwell,
	linux-next-u79uwXL29TY76Z2rM5mHXA, LKML,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA, Linus Torvalds, Andrew Morton
In-Reply-To: <20101206105021.2b6bfc96-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>

On 12/06/10 07:50, Jeff Layton wrote:
> On Mon, 6 Dec 2010 09:40:33 -0600
> Shirish Pargaonkar <shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> 
>> On Mon, Dec 6, 2010 at 6:35 AM, Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>>> On Mon, 6 Dec 2010 08:09:56 +0100
>>> Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org> wrote:
>>>
>>>>
>>>> * Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> wrote:
>>>>
>>>>> On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Changes since 20101202:
>>>>>
>>>>>
>>>>> When CIFS_EXPERIMENTAL is not enabled:
>>>>>
>>>>> (.text+0xdf6c9): undefined reference to `get_cifs_acl'
>>>>>
>>>>> from fs/cifs/xattr.c:cifs_getxattr()
>>>>>
>>>>>
>>>>> CONFIG_CIFS=y
>>>>> # CONFIG_CIFS_STATS is not set
>>>>> CONFIG_CIFS_WEAK_PW_HASH=y
>>>>> # CONFIG_CIFS_UPCALL is not set
>>>>> CONFIG_CIFS_XATTR=y
>>>>> CONFIG_CIFS_POSIX=y
>>>>> # CONFIG_CIFS_DEBUG2 is not set
>>>>> # CONFIG_CIFS_DFS_UPCALL is not set
>>>>> CONFIG_CIFS_FSCACHE=y
>>>>> CONFIG_CIFS_ACL=y
>>>>> # CONFIG_CIFS_EXPERIMENTAL is not set
>>>>
>>>> And this build regression has been pushed upstream now, as of:
>>>>
>>>>    8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
>>>>
>>>> and it is triggering for me too:
>>>>
>>>>    fs/built-in.o: In function `cifs_getxattr':
>>>>    (.text+0xc518e): undefined reference to `get_cifs_acl'
>>>>
>>>> The regression got introduced by:
>>>>
>>>>    fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)
>>>>
>>>> Which introduced the new CIFS_ACL option.
>>>>
>>>> Thanks,
>>>>
>>>>       Ingo
>>>
>>> Yeah, looks like this new Kconfig option depends on some code that's
>>> under the (much-overloaded) CIFS_EXPERIMENTAL Kconfig option. I think
>>> this patch needs some rework. The simple fix would be to make it
>>> dependent on CIFS_EXPERIMENTAL, but that's rather icky since
>>
>> Making CONFIG_CIFS_ACL dependent on CONFIG_CIFS_EXPERIMENTAL
>> works
>>
>>  config CIFS_ACL
>>           bool "Provide CIFS ACL support (EXPERIMENTAL)"
>> -         depends on EXPERIMENTAL && CIFS_XATTR
>> +         depends on CIFS_EXPERIMENTAL && CIFS_XATTR
>>           help
>>             Allows to fetch CIFS/NTFS ACL from the server.  The DACL blob
>>             is handed over to the application/caller.
>>
>> At the minimum function find_readable_file() and three functions
>> in cifssmb.c would not have to be in CIFS_EXPERIMENTAL.
>> And we would need to move some other cifs acl related functions
>> from under CIFS_ACL from CIFS_EXPERIMENTAL.
>>
> 
> Ugh, let's not do that. CONFIG_CIFS_EXPERIMENTAL is like a box of
> chocolates...when you enable it you just never know what you're going
> to get...
> 
> I think the patch below is a better way to deal with this. It's larger
> than I would like to see at this point in the release cycle, but we
> might as well fix it the right way.
> 
> I also have some other patches to clean up CONFIG_CIFS_EXPERIMENTAL,
> but I'll send those along separately for 2.6.38.
> 
> Steve, if this looks good, I'll send it along to you as a "formal"
> patch for inclusion via your tree.

Thanks, that works.

Acked-by: Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>


> -------------------[snip]---------------------
> 
> cifs: fix use of CONFIG_CIFS_ACL
> 
> Some of the code under CONFIG_CIFS_ACL is dependent upon code under
> CONFIG_CIFS_EXPERIMENTAL, but the Kconfig options don't reflect that
> dependency. Move more of the ACL code out from under
> CONFIG_CIFS_EXPERIMENTAL and under CONFIG_CIFS_ACL.
> 
> Also move find_readable_file out from other any sort of Kconfig
> option and make it a function normally compiled in.
> 
> Reported-by: Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
>  fs/cifs/Makefile    |    4 +-
>  fs/cifs/cifsacl.c   |    3 -
>  fs/cifs/cifsacl.h   |    4 -
>  fs/cifs/cifsproto.h |    2 -
>  fs/cifs/cifssmb.c   |  183 ++++++++++++++++++++++++++-------------------------
>  fs/cifs/file.c      |    2 -
>  fs/cifs/inode.c     |    8 +-
>  7 files changed, 99 insertions(+), 107 deletions(-)
> 
> diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile
> index adefa60..43b19dd 100644
> --- a/fs/cifs/Makefile
> +++ b/fs/cifs/Makefile
> @@ -6,7 +6,9 @@ obj-$(CONFIG_CIFS) += cifs.o
>  cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
>  	  link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o \
>  	  md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o \
> -	  readdir.o ioctl.o sess.o export.o cifsacl.o
> +	  readdir.o ioctl.o sess.o export.o
> +
> +cifs-$(CONFIG_CIFS_ACL) += cifsacl.o
>  
>  cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
>  
> diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
> index c6ebea0..a437ec3 100644
> --- a/fs/cifs/cifsacl.c
> +++ b/fs/cifs/cifsacl.c
> @@ -30,8 +30,6 @@
>  #include "cifs_debug.h"
>  
>  
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -
>  static struct cifs_wksid wksidarr[NUM_WK_SIDS] = {
>  	{{1, 0, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, "null user"},
>  	{{1, 1, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0} }, "nobody"},
> @@ -774,4 +772,3 @@ int mode_to_cifs_acl(struct inode *inode, const char *path, __u64 nmode)
>  
>  	return rc;
>  }
> -#endif /* CONFIG_CIFS_EXPERIMENTAL */
> diff --git a/fs/cifs/cifsacl.h b/fs/cifs/cifsacl.h
> index 6c8096c..c4ae7d0 100644
> --- a/fs/cifs/cifsacl.h
> +++ b/fs/cifs/cifsacl.h
> @@ -74,11 +74,7 @@ struct cifs_wksid {
>  	char sidname[SIDNAMELENGTH];
>  } __attribute__((packed));
>  
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -
>  extern int match_sid(struct cifs_sid *);
>  extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
>  
> -#endif /*  CONFIG_CIFS_EXPERIMENTAL */
> -
>  #endif /* _CIFSACL_H */
> diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
> index 38cdec9..cb65499 100644
> --- a/fs/cifs/cifsproto.h
> +++ b/fs/cifs/cifsproto.h
> @@ -80,9 +80,7 @@ extern bool is_valid_oplock_break(struct smb_hdr *smb,
>  				  struct TCP_Server_Info *);
>  extern bool is_size_safe_to_change(struct cifsInodeInfo *, __u64 eof);
>  extern struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *, bool);
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
>  extern struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *, bool);
> -#endif
>  extern unsigned int smbCalcSize(struct smb_hdr *ptr);
>  extern unsigned int smbCalcSize_LE(struct smb_hdr *ptr);
>  extern int decode_negTokenInit(unsigned char *security_blob, int length,
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index 0ef7c3a..d7957a3 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -2478,95 +2478,6 @@ querySymLinkRetry:
>  }
>  
>  #ifdef CONFIG_CIFS_EXPERIMENTAL
> -/* Initialize NT TRANSACT SMB into small smb request buffer.
> -   This assumes that all NT TRANSACTS that we init here have
> -   total parm and data under about 400 bytes (to fit in small cifs
> -   buffer size), which is the case so far, it easily fits. NB:
> -	Setup words themselves and ByteCount
> -	MaxSetupCount (size of returned setup area) and
> -	MaxParameterCount (returned parms size) must be set by caller */
> -static int
> -smb_init_nttransact(const __u16 sub_command, const int setup_count,
> -		   const int parm_len, struct cifsTconInfo *tcon,
> -		   void **ret_buf)
> -{
> -	int rc;
> -	__u32 temp_offset;
> -	struct smb_com_ntransact_req *pSMB;
> -
> -	rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
> -				(void **)&pSMB);
> -	if (rc)
> -		return rc;
> -	*ret_buf = (void *)pSMB;
> -	pSMB->Reserved = 0;
> -	pSMB->TotalParameterCount = cpu_to_le32(parm_len);
> -	pSMB->TotalDataCount  = 0;
> -	pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
> -					  MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
> -	pSMB->ParameterCount = pSMB->TotalParameterCount;
> -	pSMB->DataCount  = pSMB->TotalDataCount;
> -	temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
> -			(setup_count * 2) - 4 /* for rfc1001 length itself */;
> -	pSMB->ParameterOffset = cpu_to_le32(temp_offset);
> -	pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
> -	pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
> -	pSMB->SubCommand = cpu_to_le16(sub_command);
> -	return 0;
> -}
> -
> -static int
> -validate_ntransact(char *buf, char **ppparm, char **ppdata,
> -		   __u32 *pparmlen, __u32 *pdatalen)
> -{
> -	char *end_of_smb;
> -	__u32 data_count, data_offset, parm_count, parm_offset;
> -	struct smb_com_ntransact_rsp *pSMBr;
> -
> -	*pdatalen = 0;
> -	*pparmlen = 0;
> -
> -	if (buf == NULL)
> -		return -EINVAL;
> -
> -	pSMBr = (struct smb_com_ntransact_rsp *)buf;
> -
> -	/* ByteCount was converted from little endian in SendReceive */
> -	end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
> -			(char *)&pSMBr->ByteCount;
> -
> -	data_offset = le32_to_cpu(pSMBr->DataOffset);
> -	data_count = le32_to_cpu(pSMBr->DataCount);
> -	parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
> -	parm_count = le32_to_cpu(pSMBr->ParameterCount);
> -
> -	*ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
> -	*ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
> -
> -	/* should we also check that parm and data areas do not overlap? */
> -	if (*ppparm > end_of_smb) {
> -		cFYI(1, "parms start after end of smb");
> -		return -EINVAL;
> -	} else if (parm_count + *ppparm > end_of_smb) {
> -		cFYI(1, "parm end after end of smb");
> -		return -EINVAL;
> -	} else if (*ppdata > end_of_smb) {
> -		cFYI(1, "data starts after end of smb");
> -		return -EINVAL;
> -	} else if (data_count + *ppdata > end_of_smb) {
> -		cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
> -			*ppdata, data_count, (data_count + *ppdata),
> -			end_of_smb, pSMBr);
> -		return -EINVAL;
> -	} else if (parm_count + data_count > pSMBr->ByteCount) {
> -		cFYI(1, "parm count and data count larger than SMB");
> -		return -EINVAL;
> -	}
> -	*pdatalen = data_count;
> -	*pparmlen = parm_count;
> -	return 0;
> -}
> -
>  int
>  CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
>  			const unsigned char *searchName,
> @@ -3056,7 +2967,97 @@ GetExtAttrOut:
>  
>  #endif /* CONFIG_POSIX */
>  
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
> +/*
> + * Initialize NT TRANSACT SMB into small smb request buffer.  This assumes that
> + * all NT TRANSACTS that we init here have total parm and data under about 400
> + * bytes (to fit in small cifs buffer size), which is the case so far, it
> + * easily fits. NB: Setup words themselves and ByteCount MaxSetupCount (size of
> + * returned setup area) and MaxParameterCount (returned parms size) must be set
> + * by caller
> + */
> +static int
> +smb_init_nttransact(const __u16 sub_command, const int setup_count,
> +		   const int parm_len, struct cifsTconInfo *tcon,
> +		   void **ret_buf)
> +{
> +	int rc;
> +	__u32 temp_offset;
> +	struct smb_com_ntransact_req *pSMB;
> +
> +	rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
> +				(void **)&pSMB);
> +	if (rc)
> +		return rc;
> +	*ret_buf = (void *)pSMB;
> +	pSMB->Reserved = 0;
> +	pSMB->TotalParameterCount = cpu_to_le32(parm_len);
> +	pSMB->TotalDataCount  = 0;
> +	pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
> +					  MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
> +	pSMB->ParameterCount = pSMB->TotalParameterCount;
> +	pSMB->DataCount  = pSMB->TotalDataCount;
> +	temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
> +			(setup_count * 2) - 4 /* for rfc1001 length itself */;
> +	pSMB->ParameterOffset = cpu_to_le32(temp_offset);
> +	pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
> +	pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
> +	pSMB->SubCommand = cpu_to_le16(sub_command);
> +	return 0;
> +}
> +
> +static int
> +validate_ntransact(char *buf, char **ppparm, char **ppdata,
> +		   __u32 *pparmlen, __u32 *pdatalen)
> +{
> +	char *end_of_smb;
> +	__u32 data_count, data_offset, parm_count, parm_offset;
> +	struct smb_com_ntransact_rsp *pSMBr;
> +
> +	*pdatalen = 0;
> +	*pparmlen = 0;
> +
> +	if (buf == NULL)
> +		return -EINVAL;
> +
> +	pSMBr = (struct smb_com_ntransact_rsp *)buf;
> +
> +	/* ByteCount was converted from little endian in SendReceive */
> +	end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
> +			(char *)&pSMBr->ByteCount;
> +
> +	data_offset = le32_to_cpu(pSMBr->DataOffset);
> +	data_count = le32_to_cpu(pSMBr->DataCount);
> +	parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
> +	parm_count = le32_to_cpu(pSMBr->ParameterCount);
> +
> +	*ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
> +	*ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
> +
> +	/* should we also check that parm and data areas do not overlap? */
> +	if (*ppparm > end_of_smb) {
> +		cFYI(1, "parms start after end of smb");
> +		return -EINVAL;
> +	} else if (parm_count + *ppparm > end_of_smb) {
> +		cFYI(1, "parm end after end of smb");
> +		return -EINVAL;
> +	} else if (*ppdata > end_of_smb) {
> +		cFYI(1, "data starts after end of smb");
> +		return -EINVAL;
> +	} else if (data_count + *ppdata > end_of_smb) {
> +		cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
> +			*ppdata, data_count, (data_count + *ppdata),
> +			end_of_smb, pSMBr);
> +		return -EINVAL;
> +	} else if (parm_count + data_count > pSMBr->ByteCount) {
> +		cFYI(1, "parm count and data count larger than SMB");
> +		return -EINVAL;
> +	}
> +	*pdatalen = data_count;
> +	*pparmlen = parm_count;
> +	return 0;
> +}
> +
>  /* Get Security Descriptor (by handle) from remote server for a file or dir */
>  int
>  CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid,
> @@ -3214,7 +3215,7 @@ setCifsAclRetry:
>  	return (rc);
>  }
>  
> -#endif /* CONFIG_CIFS_EXPERIMENTAL */
> +#endif /* CONFIG_CIFS_ACL */
>  
>  /* Legacy Query Path Information call for lookup to old servers such
>     as Win9x/WinME */
> diff --git a/fs/cifs/file.c b/fs/cifs/file.c
> index b857ce5..5a28660 100644
> --- a/fs/cifs/file.c
> +++ b/fs/cifs/file.c
> @@ -1108,7 +1108,6 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file,
>  	return total_written;
>  }
>  
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
>  struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
>  					bool fsuid_only)
>  {
> @@ -1142,7 +1141,6 @@ struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
>  	spin_unlock(&cifs_file_list_lock);
>  	return NULL;
>  }
> -#endif
>  
>  struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode,
>  					bool fsuid_only)
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index 0023146..10d1cab 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -687,7 +687,7 @@ int cifs_get_inode_info(struct inode **pinode,
>  			cFYI(1, "cifs_sfu_type failed: %d", tmprc);
>  	}
>  
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
>  	/* fill in 0777 bits from ACL */
>  	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
>  		rc = cifs_acl_to_fattr(cifs_sb, &fattr, *pinode, full_path,
> @@ -698,7 +698,7 @@ int cifs_get_inode_info(struct inode **pinode,
>  			goto cgii_exit;
>  		}
>  	}
> -#endif
> +#endif /* CONFIG_CIFS_ACL */
>  
>  	/* fill in remaining high mode bits e.g. SUID, VTX */
>  	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
> @@ -2128,7 +2128,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
>  
>  	if (attrs->ia_valid & ATTR_MODE) {
>  		rc = 0;
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
>  		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
>  			rc = mode_to_cifs_acl(inode, full_path, mode);
>  			if (rc) {
> @@ -2137,7 +2137,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
>  				goto cifs_setattr_exit;
>  			}
>  		} else
> -#endif
> +#endif /* CONFIG_CIFS_ACL */
>  		if (((mode & S_IWUGO) == 0) &&
>  		    (cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
>  


-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply

* Re: linux-next: Tree for December 6 (pch_uart)
From: Randy Dunlap @ 2010-12-06 16:14 UTC (permalink / raw)
  To: Zimny Lech; +Cc: Stephen Rothwell, linux-next, LKML
In-Reply-To: <AANLkTi=iCZ=XQk3zXwK-BPnK4=9SU5W-arf+rom9dx8V@mail.gmail.com>

On Mon, 6 Dec 2010 16:09:33 +0100 Zimny Lech wrote:

> Ave,
> 
> 2010/12/6 Stephen Rothwell <sfr@canb.auug.org.au>:
> > Hi all,
> >
> > [The mirroring on kernel.org is currently being slow, so this release may
> > not be available yet.]
> >
> > Changes since 20101203:
> >
> 
> Nothing new here, only known issues
> 
> Kernel: arch/x86/boot/bzImage is ready  (#5)
>   Building modules, stage 2.
>   MODPOST 314 modules
> ERROR: "dma_release_channel" [drivers/serial/pch_uart.ko] undefined!
> ERROR: "__dma_request_channel" [drivers/serial/pch_uart.ko] undefined!
> WARNING: modpost: Found 4 section mismatch(es).
> To see full details build your kernel with:
> 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
> make[2]: *** [__modpost] Error 1
> make[1]: *** [modules] Error 2
> make: *** [sub-make] Error 2

Greg, are you going to merge the patch that I posted for this one?



> WARNING: modpost: Found 9 section mismatch(es).
> To see full details build your kernel with:
> 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
>   GEN     .version
>   CHK     include/generated/compile.h
>   UPD     include/generated/compile.h
>   CC      init/version.o
>   LD      init/built-in.o
>   LD      .tmp_vmlinux1
> drivers/built-in.o: In function `pch_uart_startup':
> pch_uart.c:(.text+0x102efc): undefined reference to `__dma_request_channel'
> pch_uart.c:(.text+0x102f46): undefined reference to `__dma_request_channel'
> pch_uart.c:(.text+0x103037): undefined reference to `dma_release_channel'
> drivers/built-in.o: In function `pch_uart_shutdown':
> pch_uart.c:(.text+0x103135): undefined reference to `dma_release_channel'
> pch_uart.c:(.text+0x103151): undefined reference to `dma_release_channel'
> make[1]: *** [.tmp_vmlinux1] Error 1
> make: *** [sub-make] Error 2
> 

same patch as above.


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply

* Re: linux-next: Tree for December 3 (cifs)
From: Shirish Pargaonkar @ 2010-12-06 16:13 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Ingo Molnar, Randy Dunlap, Steve French, Stephen Rothwell,
	linux-next-u79uwXL29TY76Z2rM5mHXA, LKML,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA, Linus Torvalds, Andrew Morton
In-Reply-To: <20101206105021.2b6bfc96-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>

On Mon, Dec 6, 2010 at 9:50 AM, Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> On Mon, 6 Dec 2010 09:40:33 -0600
> Shirish Pargaonkar <shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>> On Mon, Dec 6, 2010 at 6:35 AM, Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>> > On Mon, 6 Dec 2010 08:09:56 +0100
>> > Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org> wrote:
>> >
>> >>
>> >> * Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> wrote:
>> >>
>> >> > On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
>> >> >
>> >> > > Hi all,
>> >> > >
>> >> > > Changes since 20101202:
>> >> >
>> >> >
>> >> > When CIFS_EXPERIMENTAL is not enabled:
>> >> >
>> >> > (.text+0xdf6c9): undefined reference to `get_cifs_acl'
>> >> >
>> >> > from fs/cifs/xattr.c:cifs_getxattr()
>> >> >
>> >> >
>> >> > CONFIG_CIFS=y
>> >> > # CONFIG_CIFS_STATS is not set
>> >> > CONFIG_CIFS_WEAK_PW_HASH=y
>> >> > # CONFIG_CIFS_UPCALL is not set
>> >> > CONFIG_CIFS_XATTR=y
>> >> > CONFIG_CIFS_POSIX=y
>> >> > # CONFIG_CIFS_DEBUG2 is not set
>> >> > # CONFIG_CIFS_DFS_UPCALL is not set
>> >> > CONFIG_CIFS_FSCACHE=y
>> >> > CONFIG_CIFS_ACL=y
>> >> > # CONFIG_CIFS_EXPERIMENTAL is not set
>> >>
>> >> And this build regression has been pushed upstream now, as of:
>> >>
>> >>    8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
>> >>
>> >> and it is triggering for me too:
>> >>
>> >>    fs/built-in.o: In function `cifs_getxattr':
>> >>    (.text+0xc518e): undefined reference to `get_cifs_acl'
>> >>
>> >> The regression got introduced by:
>> >>
>> >>    fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)
>> >>
>> >> Which introduced the new CIFS_ACL option.
>> >>
>> >> Thanks,
>> >>
>> >>       Ingo
>> >
>> > Yeah, looks like this new Kconfig option depends on some code that's
>> > under the (much-overloaded) CIFS_EXPERIMENTAL Kconfig option. I think
>> > this patch needs some rework. The simple fix would be to make it
>> > dependent on CIFS_EXPERIMENTAL, but that's rather icky since
>>
>> Making CONFIG_CIFS_ACL dependent on CONFIG_CIFS_EXPERIMENTAL
>> works
>>
>>  config CIFS_ACL
>>           bool "Provide CIFS ACL support (EXPERIMENTAL)"
>> -         depends on EXPERIMENTAL && CIFS_XATTR
>> +         depends on CIFS_EXPERIMENTAL && CIFS_XATTR
>>           help
>>             Allows to fetch CIFS/NTFS ACL from the server.  The DACL blob
>>             is handed over to the application/caller.
>>
>> At the minimum function find_readable_file() and three functions
>> in cifssmb.c would not have to be in CIFS_EXPERIMENTAL.
>> And we would need to move some other cifs acl related functions
>> from under CIFS_ACL from CIFS_EXPERIMENTAL.
>>
>
> Ugh, let's not do that. CONFIG_CIFS_EXPERIMENTAL is like a box of
> chocolates...when you enable it you just never know what you're going
> to get...
>
> I think the patch below is a better way to deal with this. It's larger
> than I would like to see at this point in the release cycle, but we
> might as well fix it the right way.
>
> I also have some other patches to clean up CONFIG_CIFS_EXPERIMENTAL,
> but I'll send those along separately for 2.6.38.
>
> Steve, if this looks good, I'll send it along to you as a "formal"
> patch for inclusion via your tree.
>
> -------------------[snip]---------------------
>
> cifs: fix use of CONFIG_CIFS_ACL
>
> Some of the code under CONFIG_CIFS_ACL is dependent upon code under
> CONFIG_CIFS_EXPERIMENTAL, but the Kconfig options don't reflect that
> dependency. Move more of the ACL code out from under
> CONFIG_CIFS_EXPERIMENTAL and under CONFIG_CIFS_ACL.
>
> Also move find_readable_file out from other any sort of Kconfig
> option and make it a function normally compiled in.
>
> Reported-by: Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> ---
>  fs/cifs/Makefile    |    4 +-
>  fs/cifs/cifsacl.c   |    3 -
>  fs/cifs/cifsacl.h   |    4 -
>  fs/cifs/cifsproto.h |    2 -
>  fs/cifs/cifssmb.c   |  183 ++++++++++++++++++++++++++-------------------------
>  fs/cifs/file.c      |    2 -
>  fs/cifs/inode.c     |    8 +-
>  7 files changed, 99 insertions(+), 107 deletions(-)
>
> diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile
> index adefa60..43b19dd 100644
> --- a/fs/cifs/Makefile
> +++ b/fs/cifs/Makefile
> @@ -6,7 +6,9 @@ obj-$(CONFIG_CIFS) += cifs.o
>  cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
>          link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o \
>          md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o \
> -         readdir.o ioctl.o sess.o export.o cifsacl.o
> +         readdir.o ioctl.o sess.o export.o
> +
> +cifs-$(CONFIG_CIFS_ACL) += cifsacl.o
>
>  cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
>
> diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
> index c6ebea0..a437ec3 100644
> --- a/fs/cifs/cifsacl.c
> +++ b/fs/cifs/cifsacl.c
> @@ -30,8 +30,6 @@
>  #include "cifs_debug.h"
>
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -
>  static struct cifs_wksid wksidarr[NUM_WK_SIDS] = {
>        {{1, 0, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, "null user"},
>        {{1, 1, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0} }, "nobody"},
> @@ -774,4 +772,3 @@ int mode_to_cifs_acl(struct inode *inode, const char *path, __u64 nmode)
>
>        return rc;
>  }
> -#endif /* CONFIG_CIFS_EXPERIMENTAL */
> diff --git a/fs/cifs/cifsacl.h b/fs/cifs/cifsacl.h
> index 6c8096c..c4ae7d0 100644
> --- a/fs/cifs/cifsacl.h
> +++ b/fs/cifs/cifsacl.h
> @@ -74,11 +74,7 @@ struct cifs_wksid {
>        char sidname[SIDNAMELENGTH];
>  } __attribute__((packed));
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> -
>  extern int match_sid(struct cifs_sid *);
>  extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
>
> -#endif /*  CONFIG_CIFS_EXPERIMENTAL */
> -
>  #endif /* _CIFSACL_H */
> diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
> index 38cdec9..cb65499 100644
> --- a/fs/cifs/cifsproto.h
> +++ b/fs/cifs/cifsproto.h
> @@ -80,9 +80,7 @@ extern bool is_valid_oplock_break(struct smb_hdr *smb,
>                                  struct TCP_Server_Info *);
>  extern bool is_size_safe_to_change(struct cifsInodeInfo *, __u64 eof);
>  extern struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *, bool);
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
>  extern struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *, bool);
> -#endif
>  extern unsigned int smbCalcSize(struct smb_hdr *ptr);
>  extern unsigned int smbCalcSize_LE(struct smb_hdr *ptr);
>  extern int decode_negTokenInit(unsigned char *security_blob, int length,
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index 0ef7c3a..d7957a3 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -2478,95 +2478,6 @@ querySymLinkRetry:
>  }
>
>  #ifdef CONFIG_CIFS_EXPERIMENTAL
> -/* Initialize NT TRANSACT SMB into small smb request buffer.
> -   This assumes that all NT TRANSACTS that we init here have
> -   total parm and data under about 400 bytes (to fit in small cifs
> -   buffer size), which is the case so far, it easily fits. NB:
> -       Setup words themselves and ByteCount
> -       MaxSetupCount (size of returned setup area) and
> -       MaxParameterCount (returned parms size) must be set by caller */
> -static int
> -smb_init_nttransact(const __u16 sub_command, const int setup_count,
> -                  const int parm_len, struct cifsTconInfo *tcon,
> -                  void **ret_buf)
> -{
> -       int rc;
> -       __u32 temp_offset;
> -       struct smb_com_ntransact_req *pSMB;
> -
> -       rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
> -                               (void **)&pSMB);
> -       if (rc)
> -               return rc;
> -       *ret_buf = (void *)pSMB;
> -       pSMB->Reserved = 0;
> -       pSMB->TotalParameterCount = cpu_to_le32(parm_len);
> -       pSMB->TotalDataCount  = 0;
> -       pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
> -                                         MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
> -       pSMB->ParameterCount = pSMB->TotalParameterCount;
> -       pSMB->DataCount  = pSMB->TotalDataCount;
> -       temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
> -                       (setup_count * 2) - 4 /* for rfc1001 length itself */;
> -       pSMB->ParameterOffset = cpu_to_le32(temp_offset);
> -       pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
> -       pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
> -       pSMB->SubCommand = cpu_to_le16(sub_command);
> -       return 0;
> -}
> -
> -static int
> -validate_ntransact(char *buf, char **ppparm, char **ppdata,
> -                  __u32 *pparmlen, __u32 *pdatalen)
> -{
> -       char *end_of_smb;
> -       __u32 data_count, data_offset, parm_count, parm_offset;
> -       struct smb_com_ntransact_rsp *pSMBr;
> -
> -       *pdatalen = 0;
> -       *pparmlen = 0;
> -
> -       if (buf == NULL)
> -               return -EINVAL;
> -
> -       pSMBr = (struct smb_com_ntransact_rsp *)buf;
> -
> -       /* ByteCount was converted from little endian in SendReceive */
> -       end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
> -                       (char *)&pSMBr->ByteCount;
> -
> -       data_offset = le32_to_cpu(pSMBr->DataOffset);
> -       data_count = le32_to_cpu(pSMBr->DataCount);
> -       parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
> -       parm_count = le32_to_cpu(pSMBr->ParameterCount);
> -
> -       *ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
> -       *ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
> -
> -       /* should we also check that parm and data areas do not overlap? */
> -       if (*ppparm > end_of_smb) {
> -               cFYI(1, "parms start after end of smb");
> -               return -EINVAL;
> -       } else if (parm_count + *ppparm > end_of_smb) {
> -               cFYI(1, "parm end after end of smb");
> -               return -EINVAL;
> -       } else if (*ppdata > end_of_smb) {
> -               cFYI(1, "data starts after end of smb");
> -               return -EINVAL;
> -       } else if (data_count + *ppdata > end_of_smb) {
> -               cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
> -                       *ppdata, data_count, (data_count + *ppdata),
> -                       end_of_smb, pSMBr);
> -               return -EINVAL;
> -       } else if (parm_count + data_count > pSMBr->ByteCount) {
> -               cFYI(1, "parm count and data count larger than SMB");
> -               return -EINVAL;
> -       }
> -       *pdatalen = data_count;
> -       *pparmlen = parm_count;
> -       return 0;
> -}
> -
>  int
>  CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
>                        const unsigned char *searchName,
> @@ -3056,7 +2967,97 @@ GetExtAttrOut:
>
>  #endif /* CONFIG_POSIX */
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
> +/*
> + * Initialize NT TRANSACT SMB into small smb request buffer.  This assumes that
> + * all NT TRANSACTS that we init here have total parm and data under about 400
> + * bytes (to fit in small cifs buffer size), which is the case so far, it
> + * easily fits. NB: Setup words themselves and ByteCount MaxSetupCount (size of
> + * returned setup area) and MaxParameterCount (returned parms size) must be set
> + * by caller
> + */
> +static int
> +smb_init_nttransact(const __u16 sub_command, const int setup_count,
> +                  const int parm_len, struct cifsTconInfo *tcon,
> +                  void **ret_buf)
> +{
> +       int rc;
> +       __u32 temp_offset;
> +       struct smb_com_ntransact_req *pSMB;
> +
> +       rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
> +                               (void **)&pSMB);
> +       if (rc)
> +               return rc;
> +       *ret_buf = (void *)pSMB;
> +       pSMB->Reserved = 0;
> +       pSMB->TotalParameterCount = cpu_to_le32(parm_len);
> +       pSMB->TotalDataCount  = 0;
> +       pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
> +                                         MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
> +       pSMB->ParameterCount = pSMB->TotalParameterCount;
> +       pSMB->DataCount  = pSMB->TotalDataCount;
> +       temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
> +                       (setup_count * 2) - 4 /* for rfc1001 length itself */;
> +       pSMB->ParameterOffset = cpu_to_le32(temp_offset);
> +       pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
> +       pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
> +       pSMB->SubCommand = cpu_to_le16(sub_command);
> +       return 0;
> +}
> +
> +static int
> +validate_ntransact(char *buf, char **ppparm, char **ppdata,
> +                  __u32 *pparmlen, __u32 *pdatalen)
> +{
> +       char *end_of_smb;
> +       __u32 data_count, data_offset, parm_count, parm_offset;
> +       struct smb_com_ntransact_rsp *pSMBr;
> +
> +       *pdatalen = 0;
> +       *pparmlen = 0;
> +
> +       if (buf == NULL)
> +               return -EINVAL;
> +
> +       pSMBr = (struct smb_com_ntransact_rsp *)buf;
> +
> +       /* ByteCount was converted from little endian in SendReceive */
> +       end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
> +                       (char *)&pSMBr->ByteCount;
> +
> +       data_offset = le32_to_cpu(pSMBr->DataOffset);
> +       data_count = le32_to_cpu(pSMBr->DataCount);
> +       parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
> +       parm_count = le32_to_cpu(pSMBr->ParameterCount);
> +
> +       *ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
> +       *ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
> +
> +       /* should we also check that parm and data areas do not overlap? */
> +       if (*ppparm > end_of_smb) {
> +               cFYI(1, "parms start after end of smb");
> +               return -EINVAL;
> +       } else if (parm_count + *ppparm > end_of_smb) {
> +               cFYI(1, "parm end after end of smb");
> +               return -EINVAL;
> +       } else if (*ppdata > end_of_smb) {
> +               cFYI(1, "data starts after end of smb");
> +               return -EINVAL;
> +       } else if (data_count + *ppdata > end_of_smb) {
> +               cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
> +                       *ppdata, data_count, (data_count + *ppdata),
> +                       end_of_smb, pSMBr);
> +               return -EINVAL;
> +       } else if (parm_count + data_count > pSMBr->ByteCount) {
> +               cFYI(1, "parm count and data count larger than SMB");
> +               return -EINVAL;
> +       }
> +       *pdatalen = data_count;
> +       *pparmlen = parm_count;
> +       return 0;
> +}
> +
>  /* Get Security Descriptor (by handle) from remote server for a file or dir */
>  int
>  CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid,
> @@ -3214,7 +3215,7 @@ setCifsAclRetry:
>        return (rc);
>  }
>
> -#endif /* CONFIG_CIFS_EXPERIMENTAL */
> +#endif /* CONFIG_CIFS_ACL */
>
>  /* Legacy Query Path Information call for lookup to old servers such
>    as Win9x/WinME */
> diff --git a/fs/cifs/file.c b/fs/cifs/file.c
> index b857ce5..5a28660 100644
> --- a/fs/cifs/file.c
> +++ b/fs/cifs/file.c
> @@ -1108,7 +1108,6 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file,
>        return total_written;
>  }
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
>  struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
>                                        bool fsuid_only)
>  {
> @@ -1142,7 +1141,6 @@ struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
>        spin_unlock(&cifs_file_list_lock);
>        return NULL;
>  }
> -#endif
>
>  struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode,
>                                        bool fsuid_only)
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index 0023146..10d1cab 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -687,7 +687,7 @@ int cifs_get_inode_info(struct inode **pinode,
>                        cFYI(1, "cifs_sfu_type failed: %d", tmprc);
>        }
>
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
>        /* fill in 0777 bits from ACL */
>        if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
>                rc = cifs_acl_to_fattr(cifs_sb, &fattr, *pinode, full_path,
> @@ -698,7 +698,7 @@ int cifs_get_inode_info(struct inode **pinode,
>                        goto cgii_exit;
>                }
>        }
> -#endif
> +#endif /* CONFIG_CIFS_ACL */
>
>        /* fill in remaining high mode bits e.g. SUID, VTX */
>        if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
> @@ -2128,7 +2128,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
>
>        if (attrs->ia_valid & ATTR_MODE) {
>                rc = 0;
> -#ifdef CONFIG_CIFS_EXPERIMENTAL
> +#ifdef CONFIG_CIFS_ACL
>                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
>                        rc = mode_to_cifs_acl(inode, full_path, mode);
>                        if (rc) {
> @@ -2137,7 +2137,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
>                                goto cifs_setattr_exit;
>                        }
>                } else
> -#endif
> +#endif /* CONFIG_CIFS_ACL */
>                if (((mode & S_IWUGO) == 0) &&
>                    (cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
>
> --
> 1.7.3.2
>
>

Jeff, patch looks good except I have one comment, I will state it
that when the patch is posted on cifs mailing list.

^ permalink raw reply

* Re: linux-next: Tree for December 3 (cifs)
From: Jeff Layton @ 2010-12-06 15:50 UTC (permalink / raw)
  To: Shirish Pargaonkar
  Cc: Ingo Molnar, Randy Dunlap, Steve French, Stephen Rothwell,
	linux-next-u79uwXL29TY76Z2rM5mHXA, LKML,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA, Linus Torvalds, Andrew Morton
In-Reply-To: <AANLkTimTFi6jji5wmnBTT25XYAXAhJYNY+YmqhW5McEC-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Mon, 6 Dec 2010 09:40:33 -0600
Shirish Pargaonkar <shirishpargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

> On Mon, Dec 6, 2010 at 6:35 AM, Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> > On Mon, 6 Dec 2010 08:09:56 +0100
> > Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org> wrote:
> >
> >>
> >> * Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> wrote:
> >>
> >> > On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
> >> >
> >> > > Hi all,
> >> > >
> >> > > Changes since 20101202:
> >> >
> >> >
> >> > When CIFS_EXPERIMENTAL is not enabled:
> >> >
> >> > (.text+0xdf6c9): undefined reference to `get_cifs_acl'
> >> >
> >> > from fs/cifs/xattr.c:cifs_getxattr()
> >> >
> >> >
> >> > CONFIG_CIFS=y
> >> > # CONFIG_CIFS_STATS is not set
> >> > CONFIG_CIFS_WEAK_PW_HASH=y
> >> > # CONFIG_CIFS_UPCALL is not set
> >> > CONFIG_CIFS_XATTR=y
> >> > CONFIG_CIFS_POSIX=y
> >> > # CONFIG_CIFS_DEBUG2 is not set
> >> > # CONFIG_CIFS_DFS_UPCALL is not set
> >> > CONFIG_CIFS_FSCACHE=y
> >> > CONFIG_CIFS_ACL=y
> >> > # CONFIG_CIFS_EXPERIMENTAL is not set
> >>
> >> And this build regression has been pushed upstream now, as of:
> >>
> >>    8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
> >>
> >> and it is triggering for me too:
> >>
> >>    fs/built-in.o: In function `cifs_getxattr':
> >>    (.text+0xc518e): undefined reference to `get_cifs_acl'
> >>
> >> The regression got introduced by:
> >>
> >>    fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)
> >>
> >> Which introduced the new CIFS_ACL option.
> >>
> >> Thanks,
> >>
> >>       Ingo
> >
> > Yeah, looks like this new Kconfig option depends on some code that's
> > under the (much-overloaded) CIFS_EXPERIMENTAL Kconfig option. I think
> > this patch needs some rework. The simple fix would be to make it
> > dependent on CIFS_EXPERIMENTAL, but that's rather icky since
> 
> Making CONFIG_CIFS_ACL dependent on CONFIG_CIFS_EXPERIMENTAL
> works
> 
>  config CIFS_ACL
>           bool "Provide CIFS ACL support (EXPERIMENTAL)"
> -         depends on EXPERIMENTAL && CIFS_XATTR
> +         depends on CIFS_EXPERIMENTAL && CIFS_XATTR
>           help
>             Allows to fetch CIFS/NTFS ACL from the server.  The DACL blob
>             is handed over to the application/caller.
> 
> At the minimum function find_readable_file() and three functions
> in cifssmb.c would not have to be in CIFS_EXPERIMENTAL.
> And we would need to move some other cifs acl related functions
> from under CIFS_ACL from CIFS_EXPERIMENTAL.
> 

Ugh, let's not do that. CONFIG_CIFS_EXPERIMENTAL is like a box of
chocolates...when you enable it you just never know what you're going
to get...

I think the patch below is a better way to deal with this. It's larger
than I would like to see at this point in the release cycle, but we
might as well fix it the right way.

I also have some other patches to clean up CONFIG_CIFS_EXPERIMENTAL,
but I'll send those along separately for 2.6.38.

Steve, if this looks good, I'll send it along to you as a "formal"
patch for inclusion via your tree.

-------------------[snip]---------------------

cifs: fix use of CONFIG_CIFS_ACL

Some of the code under CONFIG_CIFS_ACL is dependent upon code under
CONFIG_CIFS_EXPERIMENTAL, but the Kconfig options don't reflect that
dependency. Move more of the ACL code out from under
CONFIG_CIFS_EXPERIMENTAL and under CONFIG_CIFS_ACL.

Also move find_readable_file out from other any sort of Kconfig
option and make it a function normally compiled in.

Reported-by: Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
 fs/cifs/Makefile    |    4 +-
 fs/cifs/cifsacl.c   |    3 -
 fs/cifs/cifsacl.h   |    4 -
 fs/cifs/cifsproto.h |    2 -
 fs/cifs/cifssmb.c   |  183 ++++++++++++++++++++++++++-------------------------
 fs/cifs/file.c      |    2 -
 fs/cifs/inode.c     |    8 +-
 7 files changed, 99 insertions(+), 107 deletions(-)

diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile
index adefa60..43b19dd 100644
--- a/fs/cifs/Makefile
+++ b/fs/cifs/Makefile
@@ -6,7 +6,9 @@ obj-$(CONFIG_CIFS) += cifs.o
 cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \
 	  link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o \
 	  md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o \
-	  readdir.o ioctl.o sess.o export.o cifsacl.o
+	  readdir.o ioctl.o sess.o export.o
+
+cifs-$(CONFIG_CIFS_ACL) += cifsacl.o
 
 cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o
 
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index c6ebea0..a437ec3 100644
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@ -30,8 +30,6 @@
 #include "cifs_debug.h"
 
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-
 static struct cifs_wksid wksidarr[NUM_WK_SIDS] = {
 	{{1, 0, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, "null user"},
 	{{1, 1, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0} }, "nobody"},
@@ -774,4 +772,3 @@ int mode_to_cifs_acl(struct inode *inode, const char *path, __u64 nmode)
 
 	return rc;
 }
-#endif /* CONFIG_CIFS_EXPERIMENTAL */
diff --git a/fs/cifs/cifsacl.h b/fs/cifs/cifsacl.h
index 6c8096c..c4ae7d0 100644
--- a/fs/cifs/cifsacl.h
+++ b/fs/cifs/cifsacl.h
@@ -74,11 +74,7 @@ struct cifs_wksid {
 	char sidname[SIDNAMELENGTH];
 } __attribute__((packed));
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-
 extern int match_sid(struct cifs_sid *);
 extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
 
-#endif /*  CONFIG_CIFS_EXPERIMENTAL */
-
 #endif /* _CIFSACL_H */
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 38cdec9..cb65499 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -80,9 +80,7 @@ extern bool is_valid_oplock_break(struct smb_hdr *smb,
 				  struct TCP_Server_Info *);
 extern bool is_size_safe_to_change(struct cifsInodeInfo *, __u64 eof);
 extern struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *, bool);
-#ifdef CONFIG_CIFS_EXPERIMENTAL
 extern struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *, bool);
-#endif
 extern unsigned int smbCalcSize(struct smb_hdr *ptr);
 extern unsigned int smbCalcSize_LE(struct smb_hdr *ptr);
 extern int decode_negTokenInit(unsigned char *security_blob, int length,
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 0ef7c3a..d7957a3 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -2478,95 +2478,6 @@ querySymLinkRetry:
 }
 
 #ifdef CONFIG_CIFS_EXPERIMENTAL
-/* Initialize NT TRANSACT SMB into small smb request buffer.
-   This assumes that all NT TRANSACTS that we init here have
-   total parm and data under about 400 bytes (to fit in small cifs
-   buffer size), which is the case so far, it easily fits. NB:
-	Setup words themselves and ByteCount
-	MaxSetupCount (size of returned setup area) and
-	MaxParameterCount (returned parms size) must be set by caller */
-static int
-smb_init_nttransact(const __u16 sub_command, const int setup_count,
-		   const int parm_len, struct cifsTconInfo *tcon,
-		   void **ret_buf)
-{
-	int rc;
-	__u32 temp_offset;
-	struct smb_com_ntransact_req *pSMB;
-
-	rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
-				(void **)&pSMB);
-	if (rc)
-		return rc;
-	*ret_buf = (void *)pSMB;
-	pSMB->Reserved = 0;
-	pSMB->TotalParameterCount = cpu_to_le32(parm_len);
-	pSMB->TotalDataCount  = 0;
-	pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
-					  MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
-	pSMB->ParameterCount = pSMB->TotalParameterCount;
-	pSMB->DataCount  = pSMB->TotalDataCount;
-	temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
-			(setup_count * 2) - 4 /* for rfc1001 length itself */;
-	pSMB->ParameterOffset = cpu_to_le32(temp_offset);
-	pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
-	pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
-	pSMB->SubCommand = cpu_to_le16(sub_command);
-	return 0;
-}
-
-static int
-validate_ntransact(char *buf, char **ppparm, char **ppdata,
-		   __u32 *pparmlen, __u32 *pdatalen)
-{
-	char *end_of_smb;
-	__u32 data_count, data_offset, parm_count, parm_offset;
-	struct smb_com_ntransact_rsp *pSMBr;
-
-	*pdatalen = 0;
-	*pparmlen = 0;
-
-	if (buf == NULL)
-		return -EINVAL;
-
-	pSMBr = (struct smb_com_ntransact_rsp *)buf;
-
-	/* ByteCount was converted from little endian in SendReceive */
-	end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
-			(char *)&pSMBr->ByteCount;
-
-	data_offset = le32_to_cpu(pSMBr->DataOffset);
-	data_count = le32_to_cpu(pSMBr->DataCount);
-	parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
-	parm_count = le32_to_cpu(pSMBr->ParameterCount);
-
-	*ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
-	*ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
-
-	/* should we also check that parm and data areas do not overlap? */
-	if (*ppparm > end_of_smb) {
-		cFYI(1, "parms start after end of smb");
-		return -EINVAL;
-	} else if (parm_count + *ppparm > end_of_smb) {
-		cFYI(1, "parm end after end of smb");
-		return -EINVAL;
-	} else if (*ppdata > end_of_smb) {
-		cFYI(1, "data starts after end of smb");
-		return -EINVAL;
-	} else if (data_count + *ppdata > end_of_smb) {
-		cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
-			*ppdata, data_count, (data_count + *ppdata),
-			end_of_smb, pSMBr);
-		return -EINVAL;
-	} else if (parm_count + data_count > pSMBr->ByteCount) {
-		cFYI(1, "parm count and data count larger than SMB");
-		return -EINVAL;
-	}
-	*pdatalen = data_count;
-	*pparmlen = parm_count;
-	return 0;
-}
-
 int
 CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
 			const unsigned char *searchName,
@@ -3056,7 +2967,97 @@ GetExtAttrOut:
 
 #endif /* CONFIG_POSIX */
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
+#ifdef CONFIG_CIFS_ACL
+/*
+ * Initialize NT TRANSACT SMB into small smb request buffer.  This assumes that
+ * all NT TRANSACTS that we init here have total parm and data under about 400
+ * bytes (to fit in small cifs buffer size), which is the case so far, it
+ * easily fits. NB: Setup words themselves and ByteCount MaxSetupCount (size of
+ * returned setup area) and MaxParameterCount (returned parms size) must be set
+ * by caller
+ */
+static int
+smb_init_nttransact(const __u16 sub_command, const int setup_count,
+		   const int parm_len, struct cifsTconInfo *tcon,
+		   void **ret_buf)
+{
+	int rc;
+	__u32 temp_offset;
+	struct smb_com_ntransact_req *pSMB;
+
+	rc = small_smb_init(SMB_COM_NT_TRANSACT, 19 + setup_count, tcon,
+				(void **)&pSMB);
+	if (rc)
+		return rc;
+	*ret_buf = (void *)pSMB;
+	pSMB->Reserved = 0;
+	pSMB->TotalParameterCount = cpu_to_le32(parm_len);
+	pSMB->TotalDataCount  = 0;
+	pSMB->MaxDataCount = cpu_to_le32((tcon->ses->server->maxBuf -
+					  MAX_CIFS_HDR_SIZE) & 0xFFFFFF00);
+	pSMB->ParameterCount = pSMB->TotalParameterCount;
+	pSMB->DataCount  = pSMB->TotalDataCount;
+	temp_offset = offsetof(struct smb_com_ntransact_req, Parms) +
+			(setup_count * 2) - 4 /* for rfc1001 length itself */;
+	pSMB->ParameterOffset = cpu_to_le32(temp_offset);
+	pSMB->DataOffset = cpu_to_le32(temp_offset + parm_len);
+	pSMB->SetupCount = setup_count; /* no need to le convert byte fields */
+	pSMB->SubCommand = cpu_to_le16(sub_command);
+	return 0;
+}
+
+static int
+validate_ntransact(char *buf, char **ppparm, char **ppdata,
+		   __u32 *pparmlen, __u32 *pdatalen)
+{
+	char *end_of_smb;
+	__u32 data_count, data_offset, parm_count, parm_offset;
+	struct smb_com_ntransact_rsp *pSMBr;
+
+	*pdatalen = 0;
+	*pparmlen = 0;
+
+	if (buf == NULL)
+		return -EINVAL;
+
+	pSMBr = (struct smb_com_ntransact_rsp *)buf;
+
+	/* ByteCount was converted from little endian in SendReceive */
+	end_of_smb = 2 /* sizeof byte count */ + pSMBr->ByteCount +
+			(char *)&pSMBr->ByteCount;
+
+	data_offset = le32_to_cpu(pSMBr->DataOffset);
+	data_count = le32_to_cpu(pSMBr->DataCount);
+	parm_offset = le32_to_cpu(pSMBr->ParameterOffset);
+	parm_count = le32_to_cpu(pSMBr->ParameterCount);
+
+	*ppparm = (char *)&pSMBr->hdr.Protocol + parm_offset;
+	*ppdata = (char *)&pSMBr->hdr.Protocol + data_offset;
+
+	/* should we also check that parm and data areas do not overlap? */
+	if (*ppparm > end_of_smb) {
+		cFYI(1, "parms start after end of smb");
+		return -EINVAL;
+	} else if (parm_count + *ppparm > end_of_smb) {
+		cFYI(1, "parm end after end of smb");
+		return -EINVAL;
+	} else if (*ppdata > end_of_smb) {
+		cFYI(1, "data starts after end of smb");
+		return -EINVAL;
+	} else if (data_count + *ppdata > end_of_smb) {
+		cFYI(1, "data %p + count %d (%p) past smb end %p start %p",
+			*ppdata, data_count, (data_count + *ppdata),
+			end_of_smb, pSMBr);
+		return -EINVAL;
+	} else if (parm_count + data_count > pSMBr->ByteCount) {
+		cFYI(1, "parm count and data count larger than SMB");
+		return -EINVAL;
+	}
+	*pdatalen = data_count;
+	*pparmlen = parm_count;
+	return 0;
+}
+
 /* Get Security Descriptor (by handle) from remote server for a file or dir */
 int
 CIFSSMBGetCIFSACL(const int xid, struct cifsTconInfo *tcon, __u16 fid,
@@ -3214,7 +3215,7 @@ setCifsAclRetry:
 	return (rc);
 }
 
-#endif /* CONFIG_CIFS_EXPERIMENTAL */
+#endif /* CONFIG_CIFS_ACL */
 
 /* Legacy Query Path Information call for lookup to old servers such
    as Win9x/WinME */
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index b857ce5..5a28660 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1108,7 +1108,6 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file,
 	return total_written;
 }
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
 struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
 					bool fsuid_only)
 {
@@ -1142,7 +1141,6 @@ struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
 	spin_unlock(&cifs_file_list_lock);
 	return NULL;
 }
-#endif
 
 struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode,
 					bool fsuid_only)
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 0023146..10d1cab 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -687,7 +687,7 @@ int cifs_get_inode_info(struct inode **pinode,
 			cFYI(1, "cifs_sfu_type failed: %d", tmprc);
 	}
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
+#ifdef CONFIG_CIFS_ACL
 	/* fill in 0777 bits from ACL */
 	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
 		rc = cifs_acl_to_fattr(cifs_sb, &fattr, *pinode, full_path,
@@ -698,7 +698,7 @@ int cifs_get_inode_info(struct inode **pinode,
 			goto cgii_exit;
 		}
 	}
-#endif
+#endif /* CONFIG_CIFS_ACL */
 
 	/* fill in remaining high mode bits e.g. SUID, VTX */
 	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
@@ -2128,7 +2128,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
 
 	if (attrs->ia_valid & ATTR_MODE) {
 		rc = 0;
-#ifdef CONFIG_CIFS_EXPERIMENTAL
+#ifdef CONFIG_CIFS_ACL
 		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) {
 			rc = mode_to_cifs_acl(inode, full_path, mode);
 			if (rc) {
@@ -2137,7 +2137,7 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
 				goto cifs_setattr_exit;
 			}
 		} else
-#endif
+#endif /* CONFIG_CIFS_ACL */
 		if (((mode & S_IWUGO) == 0) &&
 		    (cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
 
-- 
1.7.3.2

^ permalink raw reply related

* Re: linux-next: Tree for December 3 (cifs)
From: Shirish Pargaonkar @ 2010-12-06 15:40 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Ingo Molnar, Randy Dunlap, Steve French, Stephen Rothwell,
	linux-next, LKML, linux-cifs, Linus Torvalds, Andrew Morton
In-Reply-To: <20101206073513.54ca2c71@tlielax.poochiereds.net>

On Mon, Dec 6, 2010 at 6:35 AM, Jeff Layton <jlayton@redhat.com> wrote:
> On Mon, 6 Dec 2010 08:09:56 +0100
> Ingo Molnar <mingo@elte.hu> wrote:
>
>>
>> * Randy Dunlap <randy.dunlap@oracle.com> wrote:
>>
>> > On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
>> >
>> > > Hi all,
>> > >
>> > > Changes since 20101202:
>> >
>> >
>> > When CIFS_EXPERIMENTAL is not enabled:
>> >
>> > (.text+0xdf6c9): undefined reference to `get_cifs_acl'
>> >
>> > from fs/cifs/xattr.c:cifs_getxattr()
>> >
>> >
>> > CONFIG_CIFS=y
>> > # CONFIG_CIFS_STATS is not set
>> > CONFIG_CIFS_WEAK_PW_HASH=y
>> > # CONFIG_CIFS_UPCALL is not set
>> > CONFIG_CIFS_XATTR=y
>> > CONFIG_CIFS_POSIX=y
>> > # CONFIG_CIFS_DEBUG2 is not set
>> > # CONFIG_CIFS_DFS_UPCALL is not set
>> > CONFIG_CIFS_FSCACHE=y
>> > CONFIG_CIFS_ACL=y
>> > # CONFIG_CIFS_EXPERIMENTAL is not set
>>
>> And this build regression has been pushed upstream now, as of:
>>
>>    8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
>>
>> and it is triggering for me too:
>>
>>    fs/built-in.o: In function `cifs_getxattr':
>>    (.text+0xc518e): undefined reference to `get_cifs_acl'
>>
>> The regression got introduced by:
>>
>>    fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)
>>
>> Which introduced the new CIFS_ACL option.
>>
>> Thanks,
>>
>>       Ingo
>
> Yeah, looks like this new Kconfig option depends on some code that's
> under the (much-overloaded) CIFS_EXPERIMENTAL Kconfig option. I think
> this patch needs some rework. The simple fix would be to make it
> dependent on CIFS_EXPERIMENTAL, but that's rather icky since

Making CONFIG_CIFS_ACL dependent on CONFIG_CIFS_EXPERIMENTAL
works

 config CIFS_ACL
          bool "Provide CIFS ACL support (EXPERIMENTAL)"
-         depends on EXPERIMENTAL && CIFS_XATTR
+         depends on CIFS_EXPERIMENTAL && CIFS_XATTR
          help
            Allows to fetch CIFS/NTFS ACL from the server.  The DACL blob
            is handed over to the application/caller.

At the minimum function find_readable_file() and three functions
in cifssmb.c would not have to be in CIFS_EXPERIMENTAL.
And we would need to move some other cifs acl related functions
from under CIFS_ACL from CIFS_EXPERIMENTAL.

> CIFS_EXPERIMENTAL pulls in some rather broken stuff...
>
> --
> Jeff Layton <jlayton@redhat.com>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply

* Re: linux-next: Tree for December 6
From: Zimny Lech @ 2010-12-06 15:09 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, LKML
In-Reply-To: <20101206140055.34289498.sfr@canb.auug.org.au>

Ave,

2010/12/6 Stephen Rothwell <sfr@canb.auug.org.au>:
> Hi all,
>
> [The mirroring on kernel.org is currently being slow, so this release may
> not be available yet.]
>
> Changes since 20101203:
>

Nothing new here, only known issues

Kernel: arch/x86/boot/bzImage is ready  (#5)
  Building modules, stage 2.
  MODPOST 314 modules
ERROR: "dma_release_channel" [drivers/serial/pch_uart.ko] undefined!
ERROR: "__dma_request_channel" [drivers/serial/pch_uart.ko] undefined!
WARNING: modpost: Found 4 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
make: *** [sub-make] Error 2


WARNING: modpost: Found 9 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `pch_uart_startup':
pch_uart.c:(.text+0x102efc): undefined reference to `__dma_request_channel'
pch_uart.c:(.text+0x102f46): undefined reference to `__dma_request_channel'
pch_uart.c:(.text+0x103037): undefined reference to `dma_release_channel'
drivers/built-in.o: In function `pch_uart_shutdown':
pch_uart.c:(.text+0x103135): undefined reference to `dma_release_channel'
pch_uart.c:(.text+0x103151): undefined reference to `dma_release_channel'
make[1]: *** [.tmp_vmlinux1] Error 1
make: *** [sub-make] Error 2


  LD      drivers/rtc/built-in.o
make[4]: *** No rule to make target
`drivers/scsi/aic7xxx/aicasm/*.[chyl]', needed by
`drivers/scsi/aic7xxx/aicasm/aicasm'.  Stop.
make[3]: *** [drivers/scsi/aic7xxx] Error 2
make[2]: *** [drivers/scsi] Error 2
make[1]: *** [drivers] Error 2
make: *** [sub-make] Error 2

  GEN     /home/test/linux-2.6-obj/Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
warning: (SCSI_SRP && SCSI_LOWLEVEL && SCSI && PCI) selects SCSI_TGT
which has unmet direct dependencies (SCSI && EXPERIMENTAL)
warning: (HAVE_TEXT_POKE_SMP && SMP) selects STOP_MACHINE which has
unmet direct dependencies (SMP && MODULE_UNLOAD || HOTPLUG_CPU)
warning: (CRYPTO_LRW && CRYPTO && EXPERIMENTAL || CRYPTO_XTS && CRYPTO
&& EXPERIMENTAL || CRYPTO_GHASH && CRYPTO) selects CRYPTO_GF128MUL
which has unmet dire
warning: (MEDIA_TUNER && MEDIA_SUPPORT && VIDEO_MEDIA && I2C &&
!MEDIA_TUNER_CUSTOMISE) selects MEDIA_TUNER_TEA5761 which has unmet
direct dependencies (MEDIA
*
* Restart config...
*
*
* USB Gadget Support
*
USB Gadget Support (USB_GADGET) [Y/n/?] y
  Debugging information files (DEVELOPMENT) (USB_GADGET_DEBUG_FILES) [N/y/?] n
  Debugging information files in debugfs (DEVELOPMENT)
(USB_GADGET_DEBUG_FS) [N/y/?] n
  Maximum VBUS Power usage (2-500 mA) (USB_GADGET_VBUS_DRAW) [2] 2
  USB Peripheral Controller
  > 1. Renesas R8A66597 USB Peripheral Controller (USB_GADGET_R8A66597)
    2. PXA9xx Processor USB2.0 controller (USB_GADGET_PXA_U2O)
    3. Renesas M66592 USB Peripheral Controller (USB_GADGET_M66592)
    4. AMD5536 UDC (USB_GADGET_AMD5536UDC)
    5. MIPS USB CI13xxx (USB_GADGET_CI13XXX)
    6. NetChip 228x (USB_GADGET_NET2280)
    7. Toshiba TC86C001 'Goku-S' (USB_GADGET_GOKU)
    8. Intel Langwell USB Device Controller (USB_GADGET_LANGWELL)
    9. Intel EG20T(Topcliff) USB Device controller (USB_GADGET_EG20T)
    10. Dummy HCD (DEVELOPMENT) (USB_GADGET_DUMMY_HCD)
  choice[1-10?]: 1
  USB Gadget Drivers
    1. Gadget Zero (DEVELOPMENT) (USB_ZERO)
    2. Audio Gadget (EXPERIMENTAL) (USB_AUDIO)
  > 3. Ethernet Gadget (with CDC Ethernet support) (USB_ETH)
    4. File-backed Storage Gadget (USB_FILE_STORAGE)
    5. Mass Storage Gadget (USB_MASS_STORAGE)
    6. Serial Gadget (with CDC ACM and CDC OBEX support) (USB_G_SERIAL)
    7. Printer Gadget (USB_G_PRINTER)
    8. CDC Composite Device (Ethernet and ACM) (USB_CDC_COMPOSITE)
    9. Nokia composite gadget (USB_G_NOKIA)
    10. Multifunction Composite Gadget (EXPERIMENTAL) (USB_G_MULTI)
    11. HID Gadget (USB_G_HID)
    12. EHCI Debug Device Gadget (USB_G_DBGP)
    13. USB Webcam Gadget (USB_G_WEBCAM)
  choice[1-13?]: 3
    RNDIS support (USB_ETH_RNDIS) [Y/n/?] (NEW) aborted!

Console input/output is redirected. Run 'make oldconfig' to update
configuration.

make[3]: *** [silentoldconfig] Error 1
make[2]: *** [silentoldconfig] Error 2
make[1]: *** No rule to make target `include/config/auto.conf', needed
by `include/config/kernel.release'.  Stop.
make: *** [sub-make] Error 2


-- 
Slawa!
Zimny "Spie dziadu!" Lech z Wawelu

Piekielny strach zagrzmiał
Patrzę na sufit
Krew tam
Strzępy głów w bólach jęczą coś

^ permalink raw reply

* Re: linux-next: Tree for December 3 (cifs)
From: Jeff Layton @ 2010-12-06 12:35 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Randy Dunlap, Steve French, Stephen Rothwell,
	linux-next-u79uwXL29TY76Z2rM5mHXA, LKML,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA, Linus Torvalds, Andrew Morton
In-Reply-To: <20101206070956.GA5570-X9Un+BFzKDI@public.gmane.org>

On Mon, 6 Dec 2010 08:09:56 +0100
Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org> wrote:

> 
> * Randy Dunlap <randy.dunlap-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> wrote:
> 
> > On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
> > 
> > > Hi all,
> > > 
> > > Changes since 20101202:
> > 
> > 
> > When CIFS_EXPERIMENTAL is not enabled:
> > 
> > (.text+0xdf6c9): undefined reference to `get_cifs_acl'
> > 
> > from fs/cifs/xattr.c:cifs_getxattr()
> > 
> > 
> > CONFIG_CIFS=y
> > # CONFIG_CIFS_STATS is not set
> > CONFIG_CIFS_WEAK_PW_HASH=y
> > # CONFIG_CIFS_UPCALL is not set
> > CONFIG_CIFS_XATTR=y
> > CONFIG_CIFS_POSIX=y
> > # CONFIG_CIFS_DEBUG2 is not set
> > # CONFIG_CIFS_DFS_UPCALL is not set
> > CONFIG_CIFS_FSCACHE=y
> > CONFIG_CIFS_ACL=y
> > # CONFIG_CIFS_EXPERIMENTAL is not set
> 
> And this build regression has been pushed upstream now, as of:
> 
>    8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
> 
> and it is triggering for me too:
> 
>    fs/built-in.o: In function `cifs_getxattr':
>    (.text+0xc518e): undefined reference to `get_cifs_acl'
> 
> The regression got introduced by:
> 
>    fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)
> 
> Which introduced the new CIFS_ACL option.
> 
> Thanks,
> 
> 	Ingo

Yeah, looks like this new Kconfig option depends on some code that's
under the (much-overloaded) CIFS_EXPERIMENTAL Kconfig option. I think
this patch needs some rework. The simple fix would be to make it
dependent on CIFS_EXPERIMENTAL, but that's rather icky since
CIFS_EXPERIMENTAL pulls in some rather broken stuff...

-- 
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

^ permalink raw reply

* Re: linux-next: manual merge of the sound tree with the Linus' tree
From: Takashi Iwai @ 2010-12-06  8:02 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Stephen Rothwell, linux-next, linux-kernel, Paul Mundt
In-Reply-To: <w3pd3pfg01p.wl%kuninori.morimoto.gx@renesas.com>

At Mon, 06 Dec 2010 10:30:44 +0900,
Kuninori Morimoto wrote:
> 
> 
> Dear Stephen, Takashi, Paul
> 
> > Today's linux-next merge of the sound tree got a conflict in
> > sound/soc/sh/fsi.c between commit
> > d4bc99b977e3a1dd10a84a01ebe59ac2ccebf0cd ("ARM: mach-shmobile: ap4evb:
> > FSI clock use proper process for HDMI") from Linus' tree and commit
> > 2b0e73025f74699e9cc9df60649fcc14cd02481b ("ASoC: sh: fsi: change
> > fsi->mst_ctrl to master->a/b_mclk") from the sound tree.
> (snip)
> > diff --cc sound/soc/sh/fsi.c
> > index 4c2404b,19a2f99..0000000
> > --- a/sound/soc/sh/fsi.c
> > +++ b/sound/soc/sh/fsi.c
> > @@@ -131,10 -142,6 +142,8 @@@ struct fsi_priv 
> >   
> >   	struct fsi_stream playback;
> >   	struct fsi_stream capture;
> >  +
> >  +	long rate;
> > - 
> > - 	u32 mst_ctrl;
> >   };
> >   
> >   struct fsi_core {
> 
> Oops. I'm so sorry.
> I didn't care about this conflict. sorry again.

Don't worry, such a conflict isn't your fault, but happens rather
occasionally in everywhere :)

> Above fixup is excellent

Thanks for checking!


Takashi

^ permalink raw reply

* Re: linux-next: Tree for December 3 (cifs)
From: Ingo Molnar @ 2010-12-06  7:09 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Stephen Rothwell, Steve French, linux-next, LKML, linux-cifs,
	Linus Torvalds, Andrew Morton
In-Reply-To: <20101203094844.68f2bc40.randy.dunlap@oracle.com>


* Randy Dunlap <randy.dunlap@oracle.com> wrote:

> On Fri, 3 Dec 2010 13:04:40 +1100 Stephen Rothwell wrote:
> 
> > Hi all,
> > 
> > Changes since 20101202:
> 
> 
> When CIFS_EXPERIMENTAL is not enabled:
> 
> (.text+0xdf6c9): undefined reference to `get_cifs_acl'
> 
> from fs/cifs/xattr.c:cifs_getxattr()
> 
> 
> CONFIG_CIFS=y
> # CONFIG_CIFS_STATS is not set
> CONFIG_CIFS_WEAK_PW_HASH=y
> # CONFIG_CIFS_UPCALL is not set
> CONFIG_CIFS_XATTR=y
> CONFIG_CIFS_POSIX=y
> # CONFIG_CIFS_DEBUG2 is not set
> # CONFIG_CIFS_DFS_UPCALL is not set
> CONFIG_CIFS_FSCACHE=y
> CONFIG_CIFS_ACL=y
> # CONFIG_CIFS_EXPERIMENTAL is not set

And this build regression has been pushed upstream now, as of:

   8520eeaa1235: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6

and it is triggering for me too:

   fs/built-in.o: In function `cifs_getxattr':
   (.text+0xc518e): undefined reference to `get_cifs_acl'

The regression got introduced by:

   fbeba8bb16d7: cifs: Handle extended attribute name cifs_acl to generate cifs acl blob (try #4)

Which introduced the new CIFS_ACL option.

Thanks,

	Ingo

^ permalink raw reply

* linux-next: Tree for December 6
From: Stephen Rothwell @ 2010-12-06  3:00 UTC (permalink / raw)
  To: linux-next; +Cc: LKML

[-- Attachment #1: Type: text/plain, Size: 9564 bytes --]

Hi all,

[The mirroring on kernel.org is currently being slow, so this release may
not be available yet.]

Changes since 20101203:

The arm tree gained a conflict against the arm-current tree.

The hid tree lost its conflict.

The v4l-dvb tree still has its build failure for which I applied a patch.

The acpi tree still has its build failure so I used the version from
next-20101201.

The sound tree gained a conflict against Linus' tree.

The tip tree still has its build failures so I have reverted 3 commits.

The usb tree gained conflicts against Linus' and the sh trees.

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/v2.6/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" as mentioned in the FAQ on the wiki
(see below).

You can see which trees have been included by looking in the Next/Trees
file in the source.  There are also quilt-import.log and merge.log files
in the Next directory.  Between each merge, the tree was built with
a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the
final fixups (if any), it is also built with powerpc allnoconfig (32 and
64 bit), ppc44x_defconfig and allyesconfig (minus
CONFIG_PROFILE_ALL_BRANCHES - this fails its final link) and i386, sparc
and sparc64 defconfig. These builds also have
CONFIG_ENABLE_WARN_DEPRECATED, CONFIG_ENABLE_MUST_CHECK and
CONFIG_DEBUG_INFO disabled when necessary.

Below is a summary of the state of the merge.

We are up to 181 trees (counting Linus' and 26 trees of patches pending
for Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.

There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ .  Thanks to Frank Seidel.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

$ git checkout master
$ git reset --hard stable
Merging origin/master
Merging fixes/fixes
Merging arm-current/master
Merging m68k-current/for-linus
Merging powerpc-merge/merge
Merging sparc-current/master
Merging scsi-rc-fixes/master
Merging net-current/master
Merging sound-current/for-linus
Merging pci-current/for-linus
Merging wireless-current/master
Merging kbuild-current/rc-fixes
Merging driver-core.current/driver-core-linus
Merging tty.current/tty-linus
Merging usb.current/usb-linus
Merging staging.current/staging-linus
Merging cpufreq-current/fixes
Merging input-current/for-linus
Merging md-current/for-linus
Merging audit-current/for-linus
Merging crypto-current/master
Merging ide-curent/master
Merging dwmw2/master
Merging sh-current/sh-fixes-for-linus
Merging rmobile-current/rmobile-fixes-for-linus
Merging fbdev-current/fbdev-fixes-for-linus
Merging gcl-current/merge
Merging arm/devel
CONFLICT (content): Merge conflict in arch/arm/common/gic.c
Merging davinci/davinci-next
Merging i.MX/for-next
Merging msm/for-next
Merging omap/for-next
Merging pxa/for-next
Merging samsung/next-samsung
Merging s5p/for-next
Merging tegra/for-next
Merging ux500-core/ux500-core
Merging avr32/avr32-arch
Merging blackfin/for-linus
Merging cris/for-next
Merging ia64/test
Merging m68k/for-next
Merging m68knommu/for-next
Merging microblaze/next
Merging mips/mips-for-linux-next
Merging parisc/next
Merging powerpc/next
Merging 4xx/next
Merging 52xx-and-virtex/next
Merging galak/next
Merging s390/features
Merging sh/sh-latest
Merging rmobile/rmobile-latest
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/Kconfig
Applying: rmobile: merge fixup for clkdev changes
Merging sparc/master
Merging tile/master
Merging xtensa/master
CONFLICT (content): Merge conflict in arch/xtensa/configs/iss_defconfig
Merging ceph/for-next
Merging cifs/master
Merging configfs/linux-next
Merging ecryptfs/next
Merging ext3/for_next
Merging ext4/next
Merging fatfs/master
Merging fuse/for-next
Merging gfs2/master
Merging hfsplus/for-next
Merging jfs/next
Merging logfs/master
CONFLICT (content): Merge conflict in fs/logfs/logfs.h
Merging nfs/linux-next
Merging nfsd/nfsd-next
Merging nilfs2/for-next
Merging ocfs2/linux-next
Merging omfs/for-next
Merging squashfs/master
Merging udf/for_next
Merging v9fs/for-next
Merging ubifs/linux-next
Merging xfs/master
Merging vfs/for-next
Merging pci/linux-next
CONFLICT (content): Merge conflict in drivers/pci/pci-sysfs.c
Merging hid/for-next
Merging quilt/i2c
Merging bjdooks-i2c/next-i2c
Merging quilt/jdelvare-hwmon
Merging hwmon-staging/hwmon-next
Merging quilt/kernel-doc
Merging v4l-dvb/master
Applying: media: const and __devinitdata do not mix
Merging kbuild/for-next
Merging kconfig/for-next
Merging ide/master
Merging libata/NEXT
Merging infiniband/for-next
Merging acpi/test
$ git reset --hard HEAD^
Merging refs/next/20101201/acpi
Merging idle-test/idle-test
Merging ieee1394/for-next
Merging ubi/linux-next
Merging kvm/linux-next
Merging dlm/next
Merging swiotlb/master
Merging ibft/master
Merging scsi/master
Merging async_tx/next
Merging net/master
CONFLICT (content): Merge conflict in drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
Merging wireless/master
CONFLICT (content): Merge conflict in drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
Merging bluetooth/master
Merging mtd/master
Merging crypto/master
Merging sound/for-next
CONFLICT (content): Merge conflict in sound/soc/sh/fsi.c
Merging sound-asoc/for-next
Merging cpufreq/next
Merging quilt/rr
Merging input/next
Merging lsm/for-next
Merging block/for-next
Merging quilt/device-mapper
Merging embedded/master
Merging firmware/master
Merging pcmcia/master
Merging battery/master
Merging leds/for-mm
CONFLICT (content): Merge conflict in drivers/leds/Kconfig
Merging backlight/for-mm
Merging mmc/mmc-next
Merging kgdb/kgdb-next
Merging slab/for-next
Merging uclinux/for-next
Merging md/for-next
Merging mfd/for-next
CONFLICT (content): Merge conflict in drivers/mfd/wm8994-core.c
Merging hdlc/hdlc-next
Merging drm/drm-next
Merging fbdev/master
Merging viafb/viafb-next
Merging omap_dss2/for-next
Merging voltage/for-next
CONFLICT (content): Merge conflict in drivers/regulator/core.c
Merging security-testing/next
Merging selinux/master
Merging lblnet/master
Merging agp/agp-next
Merging watchdog/master
Merging bdev/master
Merging dwmw2-iommu/master
Merging cputime/cputime
Merging osd/linux-next
Merging jc_docs/docs-next
Merging nommu/master
Merging trivial/for-next
CONFLICT (content): Merge conflict in MAINTAINERS
CONFLICT (content): Merge conflict in drivers/scsi/bfa/bfa_fcpim.c
Merging audit/for-next
Merging suspend/linux-next
Merging fsnotify/for-next
Merging irda/for-next
Merging catalin/for-next
Merging alacrity/linux-next
CONFLICT (content): Merge conflict in drivers/Makefile
CONFLICT (content): Merge conflict in include/linux/Kbuild
CONFLICT (content): Merge conflict in lib/Kconfig
Merging i7core_edac/linux_next
Merging i7300_edac/linux_next
Merging devicetree/next-devicetree
Merging spi/next-spi
Merging tip/auto-latest
$ git commit -v -a[master b24dd93] Revert "x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog"
$ git commit -v -a[master be3436e] Revert "x86, nmi_watchdog: Remove the old nmi_watchdog"
[master 1e102e7] Revert "perf, arch: Cleanup perf-pmu init vs lockup-detector"
Merging rcu/rcu/next
Merging oprofile/for-next
Merging xen/upstream/xen
Merging swiotlb-xen/master
Merging xen-pvhvm/linux-next
Merging edac-amd/for-next
Merging percpu/for-next
Merging workqueues/for-next
Merging sfi/sfi-test
Merging asm-generic/next
Merging drivers-x86/linux-next
Merging hwpoison/hwpoison
Merging sysctl/master
Merging driver-core/driver-core-next
Merging tty/tty-next
Merging usb/usb-next
CONFLICT (content): Merge conflict in arch/sh/Kconfig
CONFLICT (content): Merge conflict in drivers/usb/musb/blackfin.c
Merging staging/staging-next
CONFLICT (content): Merge conflict in drivers/staging/batman-adv/hard-interface.c
CONFLICT (content): Merge conflict in drivers/staging/batman-adv/soft-interface.c
CONFLICT (delete/modify): drivers/staging/winbond/sysdef.h deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/winbond/sysdef.h left in tree.
$ git rm -f drivers/staging/winbond/sysdef.h
Merging slabh/slabh
Merging bkl-trivial/trivial
Merging bkl-llseek/llseek
Merging bkl-vfs/vfs
Merging bkl-config/config
CONFLICT (content): Merge conflict in arch/powerpc/kernel/setup_64.c
CONFLICT (content): Merge conflict in include/linux/hardirq.h
CONFLICT (content): Merge conflict in include/linux/smp_lock.h
Merging irqflags/master
Merging cleancache/linux-next
CONFLICT (content): Merge conflict in fs/ocfs2/super.c
CONFLICT (content): Merge conflict in include/linux/fs.h
CONFLICT (content): Merge conflict in mm/Kconfig
Merging scsi-post-merge/merge-base:master

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply

* linux-next: manual merge of the usb tree with the sh tree
From: Stephen Rothwell @ 2010-12-06  1:47 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-next, linux-kernel, Paul Mundt

Hi Greg,

Today's linux-next merge of the usb tree got a conflict in
arch/sh/Kconfig between commit f020c92de48246510623162fb22d60d91810cc56
("sh: Enable optional gpiolib for all CPUs with pinmux tables") from the
sh tree and commit e3e9887ee9de36d8e2bef972ad74a42abd7a44c4 ("sh: Convert
to USB_ARCH_HAS_OHCI/EHCI selects") from the usb tree.

Just context changes.  I fixed ti up (see below) and can carry the fix as
necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc arch/sh/Kconfig
index 90cd621,e0e2234..0000000
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@@ -347,7 -344,7 +347,8 @@@ config CPU_SUBTYPE_SH772
  	select CPU_SH3
  	select CPU_HAS_DSP
  	select SYS_SUPPORTS_CMT
 +	select ARCH_WANT_OPTIONAL_GPIOLIB
+ 	select USB_ARCH_HAS_OHCI
  	help
  	  Select SH7720 if you have a SH3-DSP SH7720 CPU.
  
@@@ -461,7 -456,8 +464,9 @@@ config CPU_SUBTYPE_SH778
  	select CPU_SHX3
  	select CPU_HAS_PTEAEX
  	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
 +	select ARCH_WANT_OPTIONAL_GPIOLIB
+ 	select USB_ARCH_HAS_OHCI
+ 	select USB_ARCH_HAS_EHCI
  
  config CPU_SUBTYPE_SHX3
  	bool "Support SH-X3 processor"

^ permalink raw reply

* linux-next: manual merge of the usb tree with Linus'  tree
From: Stephen Rothwell @ 2010-12-06  1:47 UTC (permalink / raw)
  To: Greg KH
  Cc: linux-next, linux-kernel, Bob Liu, Mike Frysinger, Felipe Balbi,
	Hema Kalliguddi

Hi Greg,

Today's linux-next merge of the usb tree got a conflict in
drivers/usb/musb/blackfin.c between commit
1e393c6eece048052d4131ec4dad3b98e35a98e2 ("USB: musb: blackfin: pm: make
it work") from Linus' tree and commit
ea65df57c2eea803535a071752efb030c46a11f5 ("usb: musb: remove board_data
parameter from musb_platform_init()") from the usb tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc drivers/usb/musb/blackfin.c
index fcb5206,e8cbcc5..0000000
--- a/drivers/usb/musb/blackfin.c
+++ b/drivers/usb/musb/blackfin.c
@@@ -360,33 -380,6 +360,33 @@@ static void musb_platform_reg_init(stru
  				EP2_RX_ENA | EP3_RX_ENA | EP4_RX_ENA |
  				EP5_RX_ENA | EP6_RX_ENA | EP7_RX_ENA);
  	SSYNC();
 +}
 +
- int __init musb_platform_init(struct musb *musb, void *board_data)
++int __init musb_platform_init(struct musb *musb)
 +{
 +
 +	/*
 +	 * Rev 1.0 BF549 EZ-KITs require PE7 to be high for both DEVICE
 +	 * and OTG HOST modes, while rev 1.1 and greater require PE7 to
 +	 * be low for DEVICE mode and high for HOST mode. We set it high
 +	 * here because we are in host mode
 +	 */
 +
 +	if (gpio_request(musb->config->gpio_vrsel, "USB_VRSEL")) {
 +		printk(KERN_ERR "Failed ro request USB_VRSEL GPIO_%d\n",
 +			musb->config->gpio_vrsel);
 +		return -ENODEV;
 +	}
 +	gpio_direction_output(musb->config->gpio_vrsel, 0);
 +
 +	usb_nop_xceiv_register();
 +	musb->xceiv = otg_get_transceiver();
 +	if (!musb->xceiv) {
 +		gpio_free(musb->config->gpio_vrsel);
 +		return -ENODEV;
 +	}
 +
 +	musb_platform_reg_init(musb);
  
  	if (is_host_enabled(musb)) {
  		musb->board_set_vbus = bfin_set_vbus;

^ permalink raw reply

* Re: linux-next: manual merge of the sound tree with the Linus' tree
From: Kuninori Morimoto @ 2010-12-06  1:30 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: Takashi Iwai, linux-next, linux-kernel, Paul Mundt
In-Reply-To: <20101206113542.b1d2f978.sfr@canb.auug.org.au>


Dear Stephen, Takashi, Paul

> Today's linux-next merge of the sound tree got a conflict in
> sound/soc/sh/fsi.c between commit
> d4bc99b977e3a1dd10a84a01ebe59ac2ccebf0cd ("ARM: mach-shmobile: ap4evb:
> FSI clock use proper process for HDMI") from Linus' tree and commit
> 2b0e73025f74699e9cc9df60649fcc14cd02481b ("ASoC: sh: fsi: change
> fsi->mst_ctrl to master->a/b_mclk") from the sound tree.
(snip)
> diff --cc sound/soc/sh/fsi.c
> index 4c2404b,19a2f99..0000000
> --- a/sound/soc/sh/fsi.c
> +++ b/sound/soc/sh/fsi.c
> @@@ -131,10 -142,6 +142,8 @@@ struct fsi_priv 
>   
>   	struct fsi_stream playback;
>   	struct fsi_stream capture;
>  +
>  +	long rate;
> - 
> - 	u32 mst_ctrl;
>   };
>   
>   struct fsi_core {

Oops. I'm so sorry.
I didn't care about this conflict. sorry again.

Above fixup is excellent

Best regards
--
Kuninori Morimoto
 

^ permalink raw reply

* linux-next: manual merge of the sound tree with the Linus' tree
From: Stephen Rothwell @ 2010-12-06  0:35 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: linux-next, linux-kernel, Kuninori Morimoto, Paul Mundt

Hi Takashi,

Today's linux-next merge of the sound tree got a conflict in
sound/soc/sh/fsi.c between commit
d4bc99b977e3a1dd10a84a01ebe59ac2ccebf0cd ("ARM: mach-shmobile: ap4evb:
FSI clock use proper process for HDMI") from Linus' tree and commit
2b0e73025f74699e9cc9df60649fcc14cd02481b ("ASoC: sh: fsi: change
fsi->mst_ctrl to master->a/b_mclk") from the sound tree.

Just context changes.  I fixed it up (see below) and can carry the fix as
necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc sound/soc/sh/fsi.c
index 4c2404b,19a2f99..0000000
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@@ -131,10 -142,6 +142,8 @@@ struct fsi_priv 
  
  	struct fsi_stream playback;
  	struct fsi_stream capture;
 +
 +	long rate;
- 
- 	u32 mst_ctrl;
  };
  
  struct fsi_core {

^ permalink raw reply

* linux-next: manual merge of the arm tree with the arm-current tree
From: Stephen Rothwell @ 2010-12-05 23:58 UTC (permalink / raw)
  To: Russell King; +Cc: linux-next, linux-kernel, Pawel Moll

Hi Russell,

Today's linux-next merge of the arm tree got a conflict in
arch/arm/common/gic.c between commit
e6afec9b6808eff6dc392ac07c1552e87aebcdf7 ("ARM: 6496/1: GIC: Do not try
to register more then NR_IRQS interrupts") from the arm-current tree and
commit d9522a4675b30f128d4410a6d453ab63edd18e64 ("ARM: GIC: move gic_data
[] initialization into gic_init()") from the arm tree.

I fixed it up (see below) can can carry the fix for a while.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc arch/arm/common/gic.c
index fea1bd7,b6a1d09..0000000
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@@ -207,15 -210,13 +210,13 @@@ void __init gic_cascade_irq(unsigned in
  	set_irq_chained_handler(irq, gic_handle_cascade_irq);
  }
  
- void __init gic_dist_init(unsigned int gic_nr, void __iomem *base,
- 			  unsigned int irq_start)
+ static void __init gic_dist_init(struct gic_chip_data *gic,
+ 	unsigned int irq_start)
  {
 -	unsigned int max_irq, i;
 +	unsigned int gic_irqs, irq_limit, i;
+ 	void __iomem *base = gic->dist_base;
  	u32 cpumask = 1 << smp_processor_id();
  
- 	if (gic_nr >= MAX_GIC_NR)
- 		BUG();
- 
  	cpumask |= cpumask << 8;
  	cpumask |= cpumask << 16;
  
@@@ -259,18 -262,11 +257,18 @@@
  		writel(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32);
  
  	/*
 +	 * Limit number of interrupts registered to the platform maximum
 +	 */
- 	irq_limit = gic_data[gic_nr].irq_offset + gic_irqs;
++	irq_limit = gic->irq_offset + gic_irqs;
 +	if (WARN_ON(irq_limit > NR_IRQS))
 +		irq_limit = NR_IRQS;
 +
 +	/*
  	 * Setup the Linux IRQ subsystem.
  	 */
 -	for (i = irq_start; i < gic->irq_offset + max_irq; i++) {
 +	for (i = irq_start; i < irq_limit; i++) {
  		set_irq_chip(i, &gic_chip);
- 		set_irq_chip_data(i, &gic_data[gic_nr]);
+ 		set_irq_chip_data(i, gic);
  		set_irq_handler(i, handle_level_irq);
  		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
  	}

^ permalink raw reply

* Re: linux-next: build failure after merge of the acpi tree
From: Rafael J. Wysocki @ 2010-12-03 23:51 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Len Brown, linux-next, linux-kernel, ACPI Devel Maling List
In-Reply-To: <20101202112239.c7d05518.sfr@canb.auug.org.au>

On Thursday, December 02, 2010, Stephen Rothwell wrote:
> Hi Len,
> 
> After merging the acpi tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
> 
> In file included from drivers/video/output.c:25:
> include/linux/video_output.h: In function 'video_output_register':
> include/linux/video_output.h:49: error: implicit declaration of function 'ERR_PTR'
> include/linux/video_output.h:49: warning: return makes pointer from integer without a cast
> In file included from drivers/video/output.c:27:
> include/linux/err.h: At top level:
> include/linux/err.h:22: error: conflicting types for 'ERR_PTR'
> include/linux/video_output.h:49: note: previous implicit declaration of 'ERR_PTR' was here
> drivers/video/output.c:84: error: redefinition of 'video_output_register'
> include/linux/video_output.h:44: note: previous definition of 'video_output_register' was here
> drivers/video/output.c:114: error: redefinition of 'video_output_unregister'
> include/linux/video_output.h:51: note: previous definition of 'video_output_unregister' was here
> 
> Caused by commit 16d21716c8849c3283d1b9e590e6fe8d1966f4b7 ("ACPI: video:
> fix build for VIDEO_OUTPUT_CONTROL=n").  See Rule 1 in
> Documentation/SubmitChecklist.
> 
> I have used the version of the acpi tree from next-20101201 for today.

Something like this will help, perhaps:

---
 include/linux/video_output.h |    1 +
 1 file changed, 1 insertion(+)

Index: linux-2.6/include/linux/video_output.h
===================================================================
--- linux-2.6.orig/include/linux/video_output.h
+++ linux-2.6/include/linux/video_output.h
@@ -23,6 +23,7 @@
 #ifndef _LINUX_VIDEO_OUTPUT_H
 #define _LINUX_VIDEO_OUTPUT_H
 #include <linux/device.h>
+#include <linux/err.h>
 struct output_device;
 struct output_properties {
 	int (*set_state)(struct output_device *);

^ permalink raw reply

* Re: [PATCH -next] arm: trivial: add missing argument to printk
From: Russell King - ARM Linux @ 2010-12-03 19:14 UTC (permalink / raw)
  To: Anand Gadiyar; +Cc: linux-arm-kernel, linux-next
In-Reply-To: <1291403172-2438-1-git-send-email-gadiyar@ti.com>

On Sat, Dec 04, 2010 at 12:36:12AM +0530, Anand Gadiyar wrote:
> Patch "ARM: CPU hotplug: move cpu_killed completion to core code"
> accidentally left out an argument to a printk call. This introduces
> the following build warning - fix this.

Already caught this.

^ permalink raw reply

* [PATCH -next] arm: trivial: add missing argument to printk
From: Anand Gadiyar @ 2010-12-03 19:06 UTC (permalink / raw)
  To: linux-arm-kernel, linux-next; +Cc: Anand Gadiyar, Russell King

Patch "ARM: CPU hotplug: move cpu_killed completion to core code"
accidentally left out an argument to a printk call. This introduces
the following build warning - fix this.

arch/arm/kernel/smp.c: In function '__cpu_die':
arch/arm/kernel/smp.c:216: warning: too few arguments for format

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>

---
 arch/arm/kernel/smp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: mainline/arch/arm/kernel/smp.c
===================================================================
--- mainline.orig/arch/arm/kernel/smp.c
+++ mainline/arch/arm/kernel/smp.c
@@ -213,7 +213,7 @@ static DECLARE_COMPLETION(cpu_died);
 void __cpu_die(unsigned int cpu)
 {
 	if (wait_for_completion_timeout(&cpu_died, 5000)) {
-		printk(KERN_ERR "CPU%u: cpu didn't die\n");
+		printk(KERN_ERR "CPU%u: cpu didn't die\n", cpu);
 		return;
 	}
 	printk(KERN_NOTICE "CPU%u: shutdown\n", cpu);

^ permalink raw reply

* [PATCH RFC -next] omap: fix omap2plus_defconfig build
From: Anand Gadiyar @ 2010-12-03 18:31 UTC (permalink / raw)
  To: linux-arm-kernel, linux-omap, linux-next; +Cc: Anand Gadiyar

Having CONFIG_SWP_EMULATE causes the build of omap2plus_defconfig
to fail as below:

  CC      arch/arm/kernel/swp_emulate.o
/tmp/ccCx8SX8.s: Assembler messages:
/tmp/ccCx8SX8.s:339: Error: selected processor does not support ARM mode `ldrexb r7,[r6]'
/tmp/ccCx8SX8.s:340: Error: selected processor does not support ARM mode `strexb r3,r2,[r6]'
make[1]: *** [arch/arm/kernel/swp_emulate.o] Error 1
make: *** [arch/arm/kernel] Error 2

While a proper fix is being found, work around it by turning off
the config option in the defconfig.

While at it, make savedefconfig trimmed a few lines.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
---
1. The issue has been discussed here:
http://marc.info/?t=128748412500003&r=1&w=2

It's been around for a couple of months now.
The last status was that maybe the toolchain should be fixed.

I'm afraid I don't know how to fix this properly, so I'm
hoping we can live with a workaround like this...

2. An alternative patch is this one:
http://marc.info/?l=linux-arm-kernel&m=128748874510144&w=2

3. Not sure if this should have been combined with the other noise
from make savedefconfig - maybe I should have hand-edited the
old defconfig to add one line.

 arch/arm/configs/omap2plus_defconfig |   68 ++++-------------------------------
 1 file changed, 8 insertions(+), 60 deletions(-)

Index: mainline/arch/arm/configs/omap2plus_defconfig
===================================================================
--- mainline.orig/arch/arm/configs/omap2plus_defconfig
+++ mainline/arch/arm/configs/omap2plus_defconfig
@@ -21,57 +21,23 @@ CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_BLK_DEV_BSG is not set
 CONFIG_ARCH_OMAP=y
-CONFIG_ARCH_OMAP2=y
-CONFIG_ARCH_OMAP3=y
-CONFIG_ARCH_OMAP4=y
 CONFIG_OMAP_RESET_CLOCKS=y
 CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_32K_TIMER=y
-CONFIG_MACH_OMAP_GENERIC=y
-CONFIG_ARCH_OMAP2420=y
-CONFIG_ARCH_OMAP2430=y
-CONFIG_ARCH_OMAP3430=y
-CONFIG_MACH_OMAP_H4=y
-CONFIG_MACH_OMAP_APOLLON=y
-CONFIG_MACH_OMAP_2430SDP=y
-CONFIG_MACH_OMAP3_BEAGLE=y
-CONFIG_MACH_DEVKIT8000=y
-CONFIG_MACH_OMAP_LDP=y
-CONFIG_MACH_OVERO=y
-CONFIG_MACH_OMAP3EVM=y
-CONFIG_MACH_OMAP3517EVM=y
-CONFIG_MACH_OMAP3_PANDORA=y
-CONFIG_MACH_OMAP3_TOUCHBOOK=y
-CONFIG_MACH_OMAP_3430SDP=y
-CONFIG_MACH_NOKIA_N8X0=y
-CONFIG_MACH_NOKIA_RX51=y
-CONFIG_MACH_OMAP_ZOOM2=y
-CONFIG_MACH_OMAP_ZOOM3=y
-CONFIG_MACH_CM_T35=y
-CONFIG_MACH_IGEP0020=y
-CONFIG_MACH_SBC3530=y
-CONFIG_MACH_OMAP_3630SDP=y
-CONFIG_MACH_OMAP_4430SDP=y
 CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_L1_CACHE_SHIFT=5
+# CONFIG_SWP_EMULATE is not set
 CONFIG_ARM_ERRATA_411920=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_SMP=y
 # CONFIG_LOCAL_TIMERS is not set
-CONFIG_AEABI=y
 CONFIG_LEDS=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
 CONFIG_KEXEC=y
 CONFIG_FPE_NWFPE=y
-CONFIG_VFP=y
-CONFIG_NEON=y
 CONFIG_BINFMT_MISC=y
-CONFIG_PM=y
 CONFIG_PM_DEBUG=y
-CONFIG_PM_RUNTIME=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -90,7 +56,7 @@ CONFIG_NETFILTER=y
 CONFIG_BT=m
 CONFIG_BT_L2CAP=m
 CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
 CONFIG_BT_BNEP_MC_FILTER=y
@@ -126,7 +92,6 @@ CONFIG_MTD_UBI=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=16384
-CONFIG_EEPROM_LEGACY=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
@@ -157,8 +122,6 @@ CONFIG_TOUCHSCREEN_ADS7846=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_TWL4030_PWRBUTTON=y
 CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_EXTENDED=y
 CONFIG_SERIAL_8250_MANY_PORTS=y
@@ -167,9 +130,7 @@ CONFIG_SERIAL_8250_DETECT_IRQ=y
 CONFIG_SERIAL_8250_RSA=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_HW_RANDOM=y
-CONFIG_I2C=y
 CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_OMAP=y
 CONFIG_SPI=y
 CONFIG_SPI_OMAP24XX=y
 CONFIG_DEBUG_GPIO=y
@@ -180,10 +141,6 @@ CONFIG_POWER_SUPPLY=y
 CONFIG_WATCHDOG=y
 CONFIG_OMAP_WATCHDOG=y
 CONFIG_TWL4030_WATCHDOG=y
-CONFIG_MENELAUS=y
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-CONFIG_REGULATOR=y
 CONFIG_REGULATOR_TWL4030=y
 CONFIG_REGULATOR_TPS65023=y
 CONFIG_REGULATOR_TPS6507X=y
@@ -196,7 +153,6 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_LCD_PLATFORM=y
 CONFIG_DISPLAY_SUPPORT=y
-# CONFIG_VGA_CONSOLE is not set
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 CONFIG_FONTS=y
@@ -205,25 +161,20 @@ CONFIG_FONT_8x16=y
 CONFIG_LOGO=y
 CONFIG_SOUND=m
 CONFIG_SND=m
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
 CONFIG_SND_VERBOSE_PRINTK=y
 CONFIG_SND_DEBUG=y
-CONFIG_SND_USB_AUDIO=y
-CONFIG_SND_SOC=y
-CONFIG_SND_OMAP_SOC=y
-CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=m
+CONFIG_SND_OMAP_SOC=m
+CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
 CONFIG_USB=y
 CONFIG_USB_DEBUG=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 CONFIG_USB_DEVICEFS=y
 CONFIG_USB_SUSPEND=y
-# CONFIG_USB_OTG_WHITELIST is not set
 CONFIG_USB_MON=y
-# CONFIG_USB_MUSB_HDRC is not set
-# CONFIG_USB_MUSB_OTG is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
-CONFIG_USB_MUSB_DEBUG=y
 CONFIG_USB_WDM=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_LIBUSUAL=y
@@ -249,7 +200,6 @@ CONFIG_RTC_DRV_TWL4030=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_FS_XATTR is not set
-CONFIG_INOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QFMT_V2=y
 CONFIG_MSDOS_FS=y
@@ -273,12 +223,10 @@ CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_PRINTK_TIME=y
 CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_SCHEDSTATS=y
 CONFIG_TIMER_STATS=y
 CONFIG_PROVE_LOCKING=y
-# CONFIG_LOCK_STAT is not set
 CONFIG_DEBUG_SPINLOCK_SLEEP=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
 CONFIG_DEBUG_INFO=y

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox