Subject: [BUG -next] sysfs change breaks userspace

From: Heiko Carstens <[email-masked]>
Date: Thu, 31 Oct 2013 12:43:58 +0100

Hi Tejun,

I just tried out linux-next and my network doesn't come up anymore.
Userspace fails like this:

network[2211]: Bringing up interface eth0:  sysfs read broadcast value: Invalid argument

I bisected that down to:

commit 13c589d5b0ac654d9da7e490a2dd548e6b86b4a5
Author: Tejun Heo <[email-masked]>
Date:   Tue Oct 1 17:42:02 2013 -0400

    sysfs: use seq_file when reading regular files
    
    sysfs read path implements its own buffering scheme between userland
    and kernel callbacks, which essentially is a degenerate duplicate of
    seq_file.  This patch replaces the custom read buffering
    implementation in sysfs with seq_file.
    
    While the amount of code reduction is small, this reduces low level
    hairiness and enables future development of a new versatile API based
    on seq_file so that sysfs features can be shared with other
    subsystems.
    
    As write path was already converted to not use sysfs_open_file->page,
    this patch makes ->page and ->count unused and removes them.
    
    Userland behavior remains the same except for some extreme corner
    cases - e.g. sysfs will now regenerate the content each time a file is
    read after a non-contiguous seek whereas the original code would keep
    using the same content.  While this is a userland visible behavior
    change, it is extremely unlikely to be noticeable and brings sysfs
    behavior closer to that of procfs.
    
    Signed-off-by: Tejun Heo <[email-masked]>
    Cc: Kay Sievers <[email-masked]>
    Signed-off-by: Greg Kroah-Hartman <[email-masked]>