Netdev List
 help / color / mirror / Atom feed
* RE: ubi_io_read: error -74 (ECC error)
From: Anurag Raghavan (RBEI/ETW11) @ 2017-01-06 11:58 UTC (permalink / raw)
  To: Boris Brezillon
  Cc: linux-mips@linux-mips.org, alsa-devel@alsa-project.org,
	linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
	airlied@linux.ie, linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-mtd@lists.infradead.org,
	sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-am33-list@redhat.com,
	linux-c6x-dev@linux-c6x.org, linux-rdma@vger.kernel.org,
	linux-hexagon@vger.kernel.org
In-Reply-To: <20170106123053.4a5ffabc@bbrezillon>

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

Sorry Boris, by mistake it happened.

I am attaching my full log here.  This issue is happening very rarely. I am using mfg-tool to flash. I am recreating this issue by continuously flashing the partition.
And my kernel version is 3.0.35

Best regards

Raghavan Anurag
RBEI/ETW1  

Tel. +91(422)667-4001 | Mobil 9986968950



-----Original Message-----
From: linux-mtd [mailto:linux-mtd-bounces@lists.infradead.org] On Behalf Of Boris Brezillon
Sent: Friday, January 06, 2017 5:01 PM
To: Anurag Raghavan (RBEI/ETW11) <Raghavan.Anurag@in.bosch.com>
Cc: linux-mips@linux-mips.org; alsa-devel@alsa-project.org; linux-ia64@vger.kernel.org; linux-doc@vger.kernel.org; airlied@linux.ie; linux-fbdev@vger.kernel.org; dri-devel@lists.freedesktop.org; linux-mtd@lists.infradead.org; sparclinux@vger.kernel.org; linux-arch@vger.kernel.org; linux-s390@vger.kernel.org; linux-am33-list@redhat.com; linux-c6x-dev@linux-c6x.org; linux-rdma@vger.kernel.org; linux-hexagon@vger.kernel.org; linux-sh@vger.kernel.org; coreteam@netfilter.org; fcoe-devel@open-fcoe.org; xen-devel@lists.xenproject.org; linux-snps-arc@lists.infradead.org; linux-media@vger.kernel.org; uclinux-h8-devel@lists.sourceforge.jp; linux-xtensa@linux-xtensa.org; arnd@arndb.de; linux-kbuild@vger.kernel.org; adi-buildroot-devel@lists.sourceforge.net; linux-raid@vger.kernel.org; linux-m68k@lists.linux-m68k.org; openrisc@lists.librecores.org; Nicolas Dichtel <nicolas.dichtel@6wind.com>; linux-metag@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux-nfs@vger.kernel.org; linux-cris-kernel@axis.com; linux-parisc@vger.kernel.org; netdev@vger.kernel.org; linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org; linux-spi@vger.kernel.org; mmarek@suse.com; netfilter-devel@vger.kernel.org; linux-alpha@vger.kernel.org; nios2-dev@lists.rocketboards.org; linuxppc-dev@lists.ozlabs.org; davem@davemloft.net
Subject: Re: ubi_io_read: error -74 (ECC error)

Hi Raghavan,

On Fri, 6 Jan 2017 10:07:29 +0000
"Anurag Raghavan (RBEI/ETW11)" <Raghavan.Anurag@in.bosch.com> wrote:

> Hi All,
> 
> My appdata partition could not be mounted or where the partition was not able to be used. Anyone can help me to find out the root cause of this. What are the possibilities of this ubifs corruption. Any patched are available to fix this issue.

Can you please stop sending over and over the same message in the hope that someone will magically solve the problem for you. Pinging maintainers is accepted but not 3 times in 2 days.

> 
> I am using the kernel version-30.3.5

It's not even a valid kernel version (probably a kerne, and we'll need a lot more than the 10 lines of log you provided to help you debug your driver, like the boot logs, a reference to the kernel sources you're using, after how much time this problem occurred...

> Any kernel patches are available to solve this issue...??

What's your NAND controller? It seems related to a NAND driver issue.

Regards,

Boris

> 
> Error logs:
> 
> [    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
> [    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
> [    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
> [    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
> [    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
> [    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
> [    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117
> dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new': 
> Structure needs cleaning
> 
> Best regards
> 
> Raghavan Anurag
> RBEI/ETW1
> 
> Tel. +91(422)667-4001 | Mobil 9986968950
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

[-- Attachment #2: serial_logs.txt --]
[-- Type: text/plain, Size: 140079 bytes --]

Jan  1 00[    5.153807] UBI: number of user volumes:     1
:00:04 BUI270 user.notice kernel:[    5.161042] UBI: available PEBs:     0
 [    5.109240] UBI: number of go[    5.168233] UBI: total number of reserved PEBs: 3344
od PEBs:        3344
Jan  1 00:0[    5.176238] UBI: number of PEBs reserved for bad PEB handling: 33
0:04 BUI270 user.notice kernel: [[    5.185123] UBI: max/mean erase counter: 178/112
    5.116681] UBI: number of bad [    5.192596] UBI: image sequence number:  1084247201
PEBs:         4
Jan  1 00:00:04 [    5.200339] UBI: background thread "ubi_bgt1d" started, PID 861
BUI270 user.notice kernel: [    5.124169] UBI: number of corrupted PEBs:   0
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.131397] UBI: max. allowed volumes:       128
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.138873] UBI: wear-leveling threshold:    4096
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.146325] UBI: number of internal [    5.237997] UBIFS: recovery needed
volumes: 1
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.153807] UBI: number of user volumes:     1
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.161042] UBI: available PEBs:      0
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.168233] UBI: total number of reserved PEBs: 3344
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.176238] UBI: number of PEBs reserved for bad PEB handling: 33
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.185123] UBI: max/mean erase counter: 178/112
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.192596] UBI: image sequence number:  1084247201
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.200339] UBI: background thread   "ubi_bgt1d" started, PID 861
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.237997] UBIFS: recovery needed
[    5.320423] UBIFS: recovery completed
[    5.324094] UBIFS: mounted UBI device 1, volume 0, name "appdata"
Jan  1 00:00:05 BUI270 user.notic[    5.330588] UBIFS: file system size:   836517888 bytes (816912 KiB, 797 MiB, 3294 LEBs)
e kernel: [    5.320423] UBIFS: r[    5.341759] UBIFS: journal size:       33521664 bytes (32736 KiB, 31 MiB, 132 LEBs)
ecovery completed
Jan  1 00:00:0[    5.351952] UBIFS: media format:       w4/r0 (latest is w4/r0)
5 BUI270 user.notice kernel: [   [    5.360628] UBIFS: default compressor: lzo
 5.324094] UBIFS: mounted UBI dev[    5.367468] UBIFS: reserved for root:  4952683 bytes (4836 KiB)
ice 1, volume 0, name "appdata"
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.330588] UBIFS: file system size:   836517888 bytes (816912 KiB, 797 MiB, 3294 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.341759] UBIFS: journal size:       33521664 bytes (32736 KiB, 31 MiB, 132 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.351952] UBIFS: media format:       w4/r0 (latest is w4/r0)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.360628] UBIFS: default compressor: lzo
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.367468] UBIFS: reserved for root:  4952683 bytes (4836 KiB)
mv: can't rename '/var/log//S11-system-settings.28.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.27.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.26.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.25.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.24.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.23.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.22.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.21.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.20.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.19.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.18.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.17.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.16.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.15.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.14.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.13.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.12.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.11.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.10.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.9.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.8.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.7.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.6.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.5.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.4.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.3.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.2.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.1.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.0.gz': Read-only file system
gzip: can't open '/var/log//S11-system-settings.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.gz': No such file or directory
/etc/init.d/rc5.d/S11-system-settings: line 4: can't create /var/log//S11-system                                               -settings: Read-only file system
mv: can't rename '/var/log//S12-swap.28.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.27.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.26.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.25.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.24.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.23.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.22.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.21.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.20.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.19.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.18.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.17.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.16.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.15.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.14.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.13.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.12.[    5.746472] UBI: attaching mtd2 to ub                                               i2
gz': Read-only file system
mv: c[    5.752826] UBI: physical eraseblock size:   262144 bytes (256 KiB)
an't rename '/var/log//S12-swap.1[    5.761672] UBI: logical eraseblock size:                                                   253952 bytes
1.gz': Read-only file system
mv:[    5.769896] UBI: smallest flash I/O unit:    4096
 can't rename '/var/log//S12-swap[    5.777337] UBI: VID header offset:                                                         4096 (aligned 4096)
.10.gz': Read-only file system
m[    5.786389] UBI: data offset:                8192
v: can't rename '/var/log//S12-swap.9.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.8.gz': Read-only file syst[    5.803581] UB                                               I: max. sequence number:       1016
em
mv: can't rename '/var/log//S12-swap.7.gz': Read-only file sy[    5.813351] UBI:                                                attached mtd2 to ubi2
stem
mv: can't rename '/var/log/[    5.819241] UBI: MTD device name:            "vers                                               ion"
/S12-swap.6.gz': Read-only file s[    5.827047] UBI: MTD device size:                                                           6 MiB
ystem
mv: can't rename '/var/log[    5.834911] UBI: number of good PEBs:        24
//S12-swap.5.gz': Read-only file [    5.842207] UBI: number of bad PEBs:                                                        0
system
mv: can't rename '/var/lo[    5.849509] UBI: number of corrupted PEBs:   0
g//S12-swap.4.gz': Read-only file[    5.856692] UBI: max. allowed volumes:                                                      128
 system
mv: can't rename '/var/l[    5.864350] UBI: wear-leveling threshold:    4096
og//S12-swap.3.gz': Read-only fil[    5.871849] UBI: number of internal volumes:                                                1
e system
mv: can't rename '/var/[    5.879151] UBI: number of user volumes:     1
log//S12-swap.2.gz': Read-only fi[    5.886337] UBI: available PEBs:                                                            0
le system
mv: can't rename '/var[    5.893818] UBI: total number of reserved PEBs: 24
/log//S12-swap.1.gz': Read-only f[    5.901406] UBI: number of PEBs reserved for                                                bad PEB handling: 2
ile system
mv: can't rename '/va[    5.910272] UBI: max/mean erase counter: 54/41
r/log//S12-swap.0.gz': Read-only [    5.917458] UBI: image sequence number:  127                                               650293
file system
gzip: can't open '/v[    5.925292] UBI: background thread "ubi_bgt2d" started, P                                               ID 983
ar/log//S12-swap.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.gz': No such file or directory
/etc/init.d/rc5.d/S12-swap: line 4: can't create /var/log//S12-swap: Read-only f                                               ile system
mv: can't rename '/var/log//S13-partition-version.28.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.27.gz': Read-onl[    5.963444]                                                UBIFS: recovery needed
y file system
mv: can't rename '/var/log//S13-partition-version.26.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.25.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.24.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.23.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.22.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.21.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.20.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.19.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.18.gz': Read-only file system
mv: can't rename '/var/lo[    6.034518] UBIFS: recovery completed
g//S13-partition-version.17.gz': [    6.038658] UBIFS: mounted UBI device 2, vol                                               ume 0, name "version"
Read-only file system
mv: can't [    6.047670] UBIFS: file system size:   2539520 bytes (2480 KiB, 2 M                                               iB, 10 LEBs)
rename '/var/log//S13-partition-v[    6.057691] UBIFS: journal size:       17776                                               65 bytes (1736 KiB, 1 MiB, 5 LEBs)
ersion.16.gz': Read-only file sys[    6.067671] UBIFS: media format:       w4/r0                                                (latest is w4/r0)
tem
mv: can't rename '/var/log//[    6.076351] UBIFS: default compressor: lzo
S13-partition-version.15.gz': Rea[    6.083304] UBIFS: reserved for root:  11994                                               7 bytes (117 KiB)
d-only file system
mv: can't rename '/var/log//S13-partition-version.14.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.13.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.12.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.11.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.10.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.9.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.8.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.7.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.6.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.5.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.4.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.3.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.2.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.1.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.0.gz': Read-only file system
gzip: can't open '/var/log//S13-partition-version.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.gz': No such file or directory
/etc/init.d/rc5.d/S13-partition-version: line 4: can't create /var/log//S13-part                                               ition-version: Read-only file system
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.746472] UBI: attaching mtd2 to                                                ubi2
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.752826] UBI: physical eraseblo                                               ck size:   262144 bytes (256 KiB)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.761672] UBI: logical erasebloc                                               k size:    253952 bytes
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.769896] UBI: smallest flash I/                                               O unit:    4096
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.777337] UBI: VID header offset                                               :          4096 (aligned 4096)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.786389] UBI: data offset:                                                               8192
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.803581] UBI: max. sequence num                                               ber:       1016
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.813351] UBI: attached mtd2 to                                                ubi2
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.819241] UBI: MTD device name:                                                Jan  1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.noticJan  1 00:00:0                                               5 BUI270 user.notice kernel: [    5.849509] UBI: numJan  1 00:00:05 BUI270 user.                                               noticJan  1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.notice kernel:                                                [    5.879151] UBI: numJan  1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270                                                user.noticJan  1 00:00:05 BUI270 user.notice kernel: [    5.910272] UBI: maxJan                                                 1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.notice kernel: [    5.9                                               63444] UBIFS: recovery needed
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.034518] UBIFS: recovery comple                                               ted
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.038658] UBIFS: mounted UBI dev                                               ice 2, volume 0, name "version"
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.047670] UBIFS: file system siz                                               e:   2539520 bytes (2480 KiB, 2 MiB, 10 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.057691] UBIFS: journal size:                                                      1777665 bytes (1736 KiB, 1 MiB, 5 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.067671] UBIFS: media format:                                                      w4/r0 (latest is w4/r0)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.076351] UBIFS: default compres                                               sor: lzo
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.083304] UBIFS: reserved for ro                                               ot:  119947 bytes (117 KiB)
mv: can't rename '/var/log//S20-dbus-uuid.28.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.27.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.26.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.25.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.24.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.23.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.22.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.21.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.20.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.19.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.18.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.17.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.16.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.15.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.14.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.13.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.12.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.11.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.10.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.9.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.8.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.7.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.6.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.5.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.4.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.3.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.2.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.1.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.0.gz': Read-only file system
gzip: can't open '/var/log//S20-dbus-uuid.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.gz': No such file or directory
/etc/init.d/rc5.d/S20-dbus-uuid: line 4: can't create /var/log//S20-dbus-uuid: R                                               ead-only file system
mv: can't rename '/var/log//S20-dbusd.28.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.27.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.26.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.25.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.24.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.23.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.22.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.21.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.20.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.19.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.18.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.17.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.16.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.15.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.14.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.13.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.12.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.11.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.10.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.9.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.8.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.7.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.6.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.5.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.4.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.3.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.2.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.1.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.0.gz': Read-only file system
gzip: can't open '/var/log//S20-dbusd.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.gz': No such file or directory
/etc/init.d/rc5.d/S20-dbusd: line 4: can't create /var/log//S20-dbusd: Read-only                                                file system
mv: can't rename '/var/log//S23-ipcd.28.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.27.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.26.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.25.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.24.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.23.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.22.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.21.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.20.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.19.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.18.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.17.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.16.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.15.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.14.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.13.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.12.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.11.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.10.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.9.gz': Read-only[    6.919903] spi_imx imx6                                               q-ecspi.1: probed
 file system
mv: can't rename '/var/log//S23-ipcd.8.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.7.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.6.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.5.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.4.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.3.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.2.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.1.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.0.gz': Read-only file system
gzip: can't open '/var/log//S23-ipcd.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.gz': No such file or directory
/etc/init.d/rc5.d/S23-ipcd: line 4: can't create /var/log//S23-ipcd: Read-only f                                               ile system
Jan  1 00:00:06 BUI270 user.info kernel: [    6.919903] spi_imx imx6q-ecspi.1: p                                               robed
mv: can't rename '/var/log//S24-clocksync.28.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.27.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.26.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.25.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.24.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.23.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.22.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.21.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.20.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.19.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.18.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.17.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.16.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.15.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.14.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.13.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.12.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.11.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.10.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.9.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.8.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.7.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.6.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.5.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.4.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.3.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.2.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.1.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.0.gz': Read-only file system
gzip: can't open '/var/log//S24-clocksync.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.gz': No such file or directory
/etc/init.d/rc5.d/S24-clocksync: line 4: can't create /var/log//S24-clocksync: R                                               ead-only file system
mv: can't rename '/var/log//S28-shutdownd.28.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.27.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.26.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.25.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.24.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.23.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.22.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.21.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.20.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.19.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.18.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.17.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.16.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.15.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.14.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.13.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.12.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.11.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.10.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.9.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.8.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.7.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.6.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.5.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.4.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.3.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.2.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.1.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.0.gz': Read-only file system
gzip: can't open '/var/log//S28-shutdownd.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.gz': No such file or directory
/etc/init.d/rc5.d/S28-shutdownd: line 4: can't create /var/log//S28-shutdownd: R                                               ead-only file system
mv: can't rename '/var/log//S70-configure-packages.28.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.27.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.26.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.25.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.24.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.23.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.22.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.21.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.20.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.19.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.18.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.16.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.15.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.14.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.13.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.12.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.11.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.10.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.9.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.8.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.7.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.6.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.5.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.4.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.3.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.2.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.1.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.0.gz': Read-only file system
gzip: can't open '/var/log//S70-configure-packages.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.gz': No such file or director                                               y
/etc/init.d/rc5.d/S70-configure-packages: line 4: can't create /var/log//S70-con                                               figure-packages: Read-only file system
mv: can't rename '/var/log//S85-usb-diag.28.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.27.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.26.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.25.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.24.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.23.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.22.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.21.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.20.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.19.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.18.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.17.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.16.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.15.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.14.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.13.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.12.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.11.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.10.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.9.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.8.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.7.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.6.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.5.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.4.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.3.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.2.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.1.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.0.gz': Read-only file system
gzip: can't open '/var/log//S85-usb-diag.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.gz': No such file or directory
/etc/init.d/rc5.d/S85-usb-diag: line 4: can't create /var/log//S85-usb-diag: Rea                                               d-only file system
mv: can't rename '/var/log//S90-hotplugd.28.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.27.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.26.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.25.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.24.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.23.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.22.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.21.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.20.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.19.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.18.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.17.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.16.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.15.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.14.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.13.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.12.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.11.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.10.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.9.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.8.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.7.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.6.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.5.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.4.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.3.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.2.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.1.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.0.gz': Read-only file system
gzip: can't open '/var/log//S90-hotplugd.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.gz': No such file or directory
/etc/init.d/rc5.d/S90-hotplugd: line 4: can't create /var/log//S90-hotplugd: Rea                                               d-only file system
mv: can't rename '/var/log//S93-ti-st.28.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.27.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.26.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.25.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.24.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.23.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.22.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.21.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.20.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.19.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.18.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.17.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.16.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.15.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.14.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.13.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.12.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.11.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.10.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.9.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.8.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.7.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.6.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.5.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.4.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.3.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.2.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.1.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.0.gz': Read-only file system
gzip: can't open '/var/log//S93-ti-st.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.gz': No such file or directory
/etc/init.d/rc5.d/S93-ti-st: line 4: can't create /var/log//S93-ti-st: Read-only                                                file system
mv: can't rename '/var/log//S96-wifi.28.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.27.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.26.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.25.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.24.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.22.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.21.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.20.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.19.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.18.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.17.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.16.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.15.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.14.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.13.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.12.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.11.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.10.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.9.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.8.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.7.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.6.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.4.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.3.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.2.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.1.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.0.gz': Read-only file system
gzip: can't open '/var/log//S96-wifi.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.gz': No such file or directory
/etc/init.d/rc5.d/S96-wifi: line 4: can't create /var/log//S96-wifi: Read-only f                                               ile system
mv: can't rename '/var/log//S97-ondemand.28.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.27.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.26.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.25.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.24.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.23.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.22.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.21.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.20.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.19.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.18.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.17.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.16.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.15.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.14.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.13.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.12.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.11.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.10.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.9.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.8.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.7.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.6.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.5.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.4.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.3.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.2.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.1.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.0.gz': Read-only file system
gzip: can't open '/var/log//S97-ondemand.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.gz': No such file or directory
/etc/init.d/rc5.d/S97-ondemand: line 4: can't create /var/log//S97-ondemand: Rea                                               d-only file system
mv: can't rename '/var/log//S98-chargerdetect.28.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.27.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.26.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.25.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.24.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.23.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.22.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.21.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.20.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.19.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.18.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.17.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.16.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.15.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.14.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.13.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.12.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.11.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.10.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.9.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.8.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.7.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.6.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.5.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.4.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.3.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.2.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.1.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.0.gz': Read-only file system
gzip: can't open '/var/log//S98-chargerdetect.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.gz': No such file or directory
/etc/init.d/rc5.d/S98-chargerdetect: line 4: can't create /var/log//S98-chargerd                                               etect: Read-only file system
mv: can't rename '/var/log//S98-kssupdater.28.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.27.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.26.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.25.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.24.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.23.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.22.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.21.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.20.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.19.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.18.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.17.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.16.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.15.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.14.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.13.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.12.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.11.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.10.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.9.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.8.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.7.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.6.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.5.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.4.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.3.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.2.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.1.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.0.gz': Read-only file system
gzip: can't open '/var/log//S98-kssupdater.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.gz': No such file or directory
/etc/init.d/rc5.d/S98-kssupdater: line 4: can't create /var/log//S98-kssupdater:                                                Read-only file system
[   17.697027] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
Jan  1 00:00:17 BUI270 user.info kernel: [   17.697027] gadgetfs: USB Gadget fil                                               esystem, version 24 Aug 2004
Jan  1 00:00:17 BUI270 user.debug kernel: [   17.704741] retval -120


U-Boot 2012.10-00019-gcb1c2df (Feb 26 2016 - 11:09:32)

DRAM:  512 MiB
NAND:  1024 MiB
Using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0x600000, size 0x280000
 2621440 bytes read: OK
## Booting kernel from Legacy Image at 12000000 ...
   Image Name:   Linux-3.0.35-00062-g61ad1ad
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2314164 Bytes = 2.2 MiB
   Load Address: 10008000
   Entry Point:  10008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

[    0.000000] Linux version 3.0.35-00062-g61ad1ad (rse1cob@kor303101_Ubuntu1004                                               ) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- B                                               uilt at 2011/08/10 09:20) ) #1 PREEMPT Fri Jan 29 10:42:55 CET 2016
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: eBike A1 Sample
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] CPU identified as i.MX6DL/SOLO, silicon rev 1.1
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pag                                               es: 121600
[    0.000000] Kernel command line: console=ttymxc3,115200 mem=512m ubi.mtd=3 ro                                               ot=ubi0:rootfs rootfstype=ubifs rootwait rw mtdparts=gpmi-nand:6m(bootloader),5m                                               (kernel),6m(version),170m(filesystem),-(appdata) video=mxcfb0:dev=lcd,EBIKE-LCD,                                               if=RGB24,fbpix=RGB32,bpp=32 consoleblank=0 vt.global_cursor_default=0 lpj=790528                                               0 fb0base=0x17b00000 fbmem=1M info_kernel=original
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 123MB 100MB 256MB = 479MB total
[    0.000000] Memory: 481000k/481000k available, 43288k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)
[    0.000000]     vmalloc : 0xa0800000 - 0xf2000000   (1304 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)
[    0.000000]     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
[    0.000000]     modules : 0x7f000000 - 0x7fe00000   (  14 MB)
[    0.000000]       .init : 0x80008000 - 0x80027000   ( 124 kB)
[    0.000000]       .text : 0x80027000 - 0x80450d24   (4264 kB)
[    0.000000]       .data : 0x80452000 - 0x8048fd08   ( 248 kB)
[    0.000000]        .bss : 0x8048fd2c - 0x804d6c40   ( 284 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, N                                               odes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Verbose stalled-CPUs detection is disabled.
[    0.000000] NR_IRQS:496
[    0.000000] MXC GPIO hardware
[    0.000000] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 14                                               31655ms
[    0.000000] Set periph_clk's parent to pll2_pfd_400M!
[    0.000000] MXC_Early serial console at MMIO 0x21f0000 (options '115200')
[    0.000000] bootconsole [ttymxc3] enabled
[    0.000000] Console: colour dummy device 80x30
[    0.240424] Calibrating delay loop (skipped) preset value.. 1581.05 BogoMIPS                                                (lpj=7905280)
[    0.248759] pid_max: default: 32768 minimum: 301
[    0.253612] Mount-cache hash table entries: 512
[    0.258528] CPU: Testing write buffer coherency: ok
[    0.263578] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counter                                               s available
[    0.272189] devtmpfs: initialized
[    0.282390] print_constraints: dummy:
[    0.286323] NET: Registered protocol family 16
[    0.295015] print_constraints: vddpu: 725 <--> 1300 mV at 1150 mV fast normal                                               
[    0.302713] print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast norm                                               al
[    0.310493] print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast norma                                               l
[    0.318269] print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast norm                                               al
[    0.326072] print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast norma                                               l
[    0.333805] print_constraints: vdd3p0: 2800 <--> 3150 mV at 3000 mV fast norm                                               al
[    0.348510] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.355474] hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-ste                                               p.
[    0.362809] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.368856] L310 cache controller enabled
[    0.372883] l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02050000, Cache si                                               ze: 524288 B
[    0.381919] IMX usb wakeup probe
[    0.394528] bio: create slab <bio-0> at 0
[    0.401070] mxs-dma mxs-dma-apbh: initialized
[    0.406588] usbcore: registered new interface driver usbfs
[    0.412205] usbcore: registered new interface driver hub
[    0.417672] usbcore: registered new device driver usb
[    0.424178] Bluetooth: Core ver 2.16
[    0.427923] NET: Registered protocol family 31
[    0.432379] Bluetooth: HCI device and connection manager initialized
[    0.438824] Bluetooth: HCI socket layer initialized
[    0.443715] Bluetooth: L2CAP socket layer initialized
[    0.448846] Bluetooth: SCO socket layer initialized
[    0.453754] Switching to clocksource mxc_timer1
[    0.470291] NET: Registered protocol family 2
[    0.474739] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.482419] TCP established hash table entries: 16384 (order: 5, 131072 bytes                                               )
[    0.489887] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    0.496547] TCP: Hash tables configured (established 16384 bind 16384)
[    0.503107] TCP reno registered
[    0.506260] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.512127] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.518665] NET: Registered protocol family 1
[    0.523207] RPC: Registered named UNIX socket transport module.
[    0.529199] RPC: Registered udp transport module.
[    0.533915] RPC: Registered tcp transport module.
[    0.538642] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.545269] Static Power Management for Freescale i.MX6
[    0.550546] wait mode is enabled for i.MX6
[    0.554771] cpaddr = a0880000 suspend_iram_base=a082e000
[    0.560188] PM driver module loaded
[    0.563690] i.MXC CPU frequency driver
[    0.583592] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.590780] msgmni has been set to 939
[    0.595573] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2                                               53)
[    0.603030] io scheduler noop registered
[    0.606963] io scheduler deadline registered
[    0.611346] io scheduler cfq registered (default)
[    0.616344] mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver lcd
[    0.622837] imx-ipuv3 imx-ipuv3.0: Warning: channel already initialized 9
[    0.629733] imx-ipuv3 imx-ipuv3.0: Warning: channel already enabled 9
[    0.638966] imx-sdma imx-sdma: loaded firmware 1.1
[    0.648066] imx-sdma imx-sdma: initialized
[    0.652553] Serial: IMX driver
[    0.655682] imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
[    0.662556] imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
[    0.669276] imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
[    0.675946] imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
[    0.682451] console [ttymxc3] enabled, bootconsole disabled
[    0.682451] console [ttymxc3] enabled, bootconsole disabled
[    0.695118] NAND device: Manufacturer ID: 0x98, Chip ID: 0xa3 (Toshiba NAND 1                                               GiB 1,8V 8-bit)
[    0.704386] 5 cmdlinepart partitions found on MTD device gpmi-nand
[    0.710622] Creating 5 MTD partitions on "gpmi-nand":
[    0.715683] 0x000000000000-0x000000600000 : "bootloader"
[    0.721827] 0x000000600000-0x000000b00000 : "kernel"
[    0.727540] 0x000000b00000-0x000001100000 : "version"
[    0.733404] 0x000001100000-0x00000bb00000 : "filesystem"
[    0.739572] 0x00000bb00000-0x000040000000 : "appdata"
[    0.745641] GPMI NAND driver registered. (IMX)
[    0.750472] UBI: attaching mtd3 to ubi0
[    0.754313] UBI: physical eraseblock size:   262144 bytes (256 KiB)
[    0.760670] UBI: logical eraseblock size:    253952 bytes
[    0.766070] UBI: smallest flash I/O unit:    4096
[    0.770801] UBI: VID header offset:          4096 (aligned 4096)
[    0.776808] UBI: data offset:                8192
[    1.039017] UBI: max. sequence number:       45072
[    1.047621] UBI: attached mtd3 to ubi0
[    1.051402] UBI: MTD device name:            "filesystem"
[    1.056803] UBI: MTD device size:            170 MiB
[    1.061790] UBI: number of good PEBs:        680
[    1.066408] UBI: number of bad PEBs:         0
[    1.070861] UBI: number of corrupted PEBs:   0
[    1.075306] UBI: max. allowed volumes:       128
[    1.079933] UBI: wear-leveling threshold:    4096
[    1.084638] UBI: number of internal volumes: 1
[    1.089090] UBI: number of user volumes:     1
[    1.093534] UBI: available PEBs:             0
[    1.097977] UBI: total number of reserved PEBs: 680
[    1.102863] UBI: number of PEBs reserved for bad PEB handling: 6
[    1.108878] UBI: max/mean erase counter: 200/65
[    1.113409] UBI: image sequence number:  210784587
[    1.118206] UBI: background thread "ubi_bgt0d" started, PID 459
[    1.124154] ARC USBOTG Device Controller driver (1 August 2005)
[    1.130199] add wake up source irq 75
[    1.137399] my_batt_ext_power_changed!
[    1.141193] It is not usb supply!
[    1.144643] cpuidle: using governor ladder
[    1.148780] cpuidle: using governor menu
[    1.152846] sdhci: Secure Digital Host Controller Interface driver
[    1.159048] sdhci: Copyright(c) Pierre Ossman
[    1.164508] mmc0: no vmmc regulator found
[    1.170709] Powering ON wl12xx
[    1.173784] mmc0: SDHCI controller on platform [sdhci-esdhc-imx.0] using ADMA
[    1.194135] Thermal calibration data is 0x57f4ed69
[    1.198989] Thermal sensor with ratio = 182
[    1.221302] Anatop Thermal registered as thermal_zone0
[    1.227598] anatop_thermal_probe: default cooling device is cpufreq!
[    1.235996] anatop_thermal_probe: Crit 388, hot 383, active 378
[    1.241950] mmc0: card claims to support voltages below the defined range. These will be ignored.
[    1.251228] NET: Registered protocol family 26
[    1.255717] TCP cubic registered
[    1.262012] NET: Registered protocol family 17
[    1.266560] Bluetooth: RFCOMM TTY layer initialized
[    1.274531] Bluetooth: RFCOMM socket layer initialized
[    1.279710] Bluetooth: RFCOMM ver 1.11
[    1.283501] lib80211: common routines for IEEE802.11 drivers
[    1.289208] Registering the dns_resolver key type
[    1.293951] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9                                                rev 4
[    1.301796] Bus freq driver module loaded
[    1.305846] Bus freq driver Enabled
[    1.311034] mxc_dvfs_core_probe
[    1.314371] DVFS driver module loaded
[    1.319099] regulator_init_complete: vddpu: incomplete constraints, leaving on
[    1.342410] mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
[    1.349367] mmc0: new high speed SDIO card at address 0001
[    1.355175] Powering OFF wl12xx
[    1.373957] UBIFS: recovery needed
[    1.458322] UBIFS: recovery completed
[    1.461992] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    1.468002] UBIFS: file system size:   167608320 bytes (163680 KiB, 159 MiB, 660 LEBs)
[    1.476008] UBIFS: journal size:       8380416 bytes (8184 KiB, 7 MiB, 33 LEBs)
[    1.483715] UBIFS: media format:       w4/r0 (latest is w4/r0)
[    1.489562] UBIFS: default compressor: lzo
[    1.493660] UBIFS: reserved for root:  4952683 bytes (4836 KiB)
[    1.500684] VFS: Mounted root (ubifs filesystem) on device 0:13.
[    1.507744] devtmpfs: mounted
[    1.510774] Freeing init memory: 124K
[    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
[    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
[    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
[    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
[    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
[    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
[    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117
dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new': Structure needs cleaning

Please press Enter to activate this console. mv: can't rename '/var/log//S01-pre                                               vent-display-sleep.28.gz': Read-only file system
mv: can't rename '/var/log//S01-prevent-display-sleep.27.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.26.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.25.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.24.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.23.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.22.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.21.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.20.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.19.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.18.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.17.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.16.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.15.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.14.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.13.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.12.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.11.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.10.gz': Read-only file sys                                               tem
mv: can't rename '/var/log//S01-prevent-display-sleep.9.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.8.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.7.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.6.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.5.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.4.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.3.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.2.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.1.gz': Read-only file syst                                               em
mv: can't rename '/var/log//S01-prevent-display-sleep.0.gz': Read-only file syst                                               em
gzip: can't open '/var/log//S01-prevent-display-sleep.gz': Read-only file system
mv: can't rename '/var/log//S01-prevent-display-sleep.gz': No such file or direc                                               tory
/etc/init.d/rc5.d/S01-prevent-display-sleep: line 4: can't create /var/log//S01-                                               prevent-display-sleep: Read-only file system
mv: can't rename '/var/log//messages.28.gz': Read-only file system
mv: can't rename '/var/log//messages.27.gz': Read-only file system
mv: can't rename '/var/log//messages.26.gz': Read-only file system
mv: can't rename '/var/log//messages.25.gz': Read-only file system
mv: can't rename '/var/log//messages.24.gz': Read-only file system
mv: can't rename '/var/log//messages.23.gz': Read-only file system
mv: can't rename '/var/log//messages.22.gz': Read-only file system
mv: can't rename '/var/log//messages.21.gz': Read-only file system
mv: can't rename '/var/log//messages.20.gz': Read-only file system
mv: can't rename '/var/log//messages.19.gz': Read-only file system
mv: can't rename '/var/log//messages.18.gz': Read-only file system
mv: can't rename '/var/log//messages.17.gz': Read-only file system
mv: can't rename '/var/log//messages.16.gz': Read-only file system
mv: can't rename '/var/log//messages.15.gz': Read-only file system
mv: can't rename '/var/log//messages.14.gz': Read-only file system
mv: can't rename '/var/log//messages.13.gz': Read-only file system
mv: can't rename '/var/log//messages.12.gz': Read-only file system
mv: can't rename '/var/log//messages.11.gz': Read-only file system
mv: can't rename '/var/log//messages.10.gz': Read-only file system
mv: can't rename '/var/log//messages.9.gz': Read-only file system
mv: can't rename '/var/log//messages.8.gz': Read-only file system
mv: can't rename '/var/log//messages.7.gz': Read-only file system
mv: can't rename '/var/log//messages.6.gz': Read-only file system
mv: can't rename '/var/log//messages.5.gz': Read-only file system
mv: can't rename '/var/log//messages.4.gz': Read-only file system
mv: can't rename '/var/log//messages.3.gz': Read-only file system
mv: can't rename '/var/log//messages.2.gz': Read-only file system
mv: can't rename '/var/log//messages.1.gz': Read-only file system
mv: can't rename '/var/log//messages.0.gz': Read-only file system
gzip: can't open '/var/log//messages.gz': Read-only file system
mv: can't rename '/var/log//messages.gz': No such file or directory
/etc/init.d/rc5.d/S01-syslogd: line 4: can't create /var/log//messages: Read-onl                                               y file system
Jan  1 00:00:01 BUI270 syslog.info syslogd started: BusyBox v1.21.1
Jan  1 00:00:01 BUI270 user.notice kernel: klogd started: BusyBox v1.21.1 (2015-                                               07-30 17:20:12 IST)
Jan  1 00:00:01 BUI270 user.notice kernel: [    0.000000] Linux version 3.0.35-0                                               0062-g61ad1ad (rse1cob@kor303101_Ubuntu1004) (gcc version 4.6.2 20110630 (prerel                                               ease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 PREEMP                                               T Fri Jan 29 10:42:55 CET 2016
Jan  1 00:00:01 BUI270 user.warn kernel: [    0.000000] CPU: ARMv7 Processor [41                                               2fc09a] revision 10 (ARMv7), cr=10c53c7d
Jan  1 00:00:01 BUI270 user.warn kernel: [    0.000000] CPU: VIPT nonaliasing da                                               ta cache, VIPT aliasing instruction cache
Jan  1 00:00:01 BUI270 user.warn kernel: [    0.000000] Machine: eBike A1 Sample
Jan  1 00:00:01 BUI270 user.warn kernel: [    0.000000] Memory policy: ECC disab                                               led, Data cache writeback
Jan  1 00:00:01 BUI270 user.info kernel: [    0.000000] CPU identified as i.MX6D                                               L/SOLO, silicon rev 1.1
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000] On node 0 totalpages: 1                                               22624
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000] free_area_init_node: no                                               de 0, pgdat 8048480c, node_mem_map 8b800000
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000]   DMA zone: 368 pages u                                               sed for memmap
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000]   DMA zone: 0 pages res                                               erved
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000]   DMA zone: 46736 pages                                               , LIFO batch:15
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000]   Normal zone: 656 page                                               s used for memmap
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000]   Normal zone: 74864 pa                                               ges, LIFO batch:15
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000] pcpu-alloc: s0 r0 d3276                                               8 u32768 alloc=1*32768
Jan  1 00:00:01 BUI270 user.debug kernel: [    0.000000] pcpu-alloc: [0] 0
Jan  1 00:00:01 BJan  1 00:00:01 BUI270 user.notiJan  1 00:00:01 BUI270 user.inf                                               oJan  1 00:00:01 BUI270 user.infoJan  1 00:00:01 BUI270 user.infoJan  1 00:00:01                                                BUI270 user.notiJan  1 00:00:01 BUI270 user.infoJan  1 00:00:01 BUI270 user.not                                               iJan  1 00:00:01 BUI270 user.debuJan  1 00:00:01 BUI270 user.debuJan  1 00:00:01                                                BUI270 user.debuJan  1 00:00:01 BUI270 user.debuJan  1 00:00:01 BUI270 user.deb                                               uJan  1 00:00:01 BUI270 user.debuJan  1 00:00:01 BUI270 user.debumv: can't renam                                               e '/var/log//S05-filesystems.28.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.27.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.26.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.25.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.24.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.23.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.22.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.21.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.20.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.19.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.18.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.17.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.16.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.15.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.14.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.13.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.12.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.11.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.10.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.9.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.8.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.7.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.6.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.5.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.4.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.3.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.2.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.1.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.0.gz': Read-only file system
gzip: can't open '/var/log//S05-filesystems.gz': Read-only file system
mv: can't rename '/var/log//S05-filesystems.gz': No such file or directory
/etc/init.d/rc5.d/S05-filesystems: line 4: can't create /var/log//S05-filesystem                                               s: Read-only file system
mv: can't rename '/var/log//S06-mkdevices.28.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.27.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.26.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.25.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.24.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.23.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.22.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.21.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.20.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.19.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.18.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.17.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.16.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.15.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.14.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.13.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.12.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.11.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.10.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.9.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.8.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.7.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.6.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.5.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.4.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.3.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.2.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.1.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.0.gz': Read-only file system
gzip: can't open '/var/log//S06-mkdevices.gz': Read-only file system
mv: can't rename '/var/log//S06-mkdevices.gz': No such file or directory
/etc/init.d/rc5.d/S06-mkdevices: line 4: can't create /var/log//S06-mkdevices: R                                               ead-only file system
mv: can't rename '/var/log//S07-network-lo.28.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.27.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.26.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.25.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.24.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.23.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.22.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.21.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.20.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.19.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.18.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.17.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.16.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.15.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.14.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.13.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.12.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.11.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.10.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.9.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.8.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.7.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.6.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.5.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.4.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.3.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.2.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.1.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.0.gz': Read-only file system
gzip: can't open '/var/log//S07-network-lo.gz': Read-only file system
mv: can't rename '/var/log//S07-network-lo.gz': No such file or directory
/etc/init.d/rc5.d/S07-network-lo: line 4: can't create /var/log//S07-network-lo:                                                Read-only file system
mv: can't rename '/var/log//S08-sysctl.28.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.27.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.26.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.25.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.24.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.23.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.22.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.21.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.20.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.19.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.18.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.17.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.16.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.15.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.14.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.13.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.12.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.11.gz': Read-only file system
^Amv: can't rename '/var/log//S08-sysctl.10.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.9.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.8.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.7.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.6.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.5.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.4.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.3.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.2.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.1.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.0.gz': Read-only file system
gzip: can't open '/var/log//S08-sysctl.gz': Read-only file system
mv: can't rename '/var/log//S08-sysctl.gz': No such file or directory
/etc/init.d/rc5.d/S08-sysctl: line 4: can't create /var/log//S08-sysctl: Read-on                                               ly file system
mv: can't rename '/var/log//S09-hostname.28.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.27.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.26.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.25.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.24.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.23.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.22.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.21.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.20.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.19.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.18.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.17.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.16.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.15.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.14.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.13.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.12.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.11.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.10.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.9.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.8.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.7.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.6.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.5.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.4.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.3.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.2.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.1.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.0.gz': Read-only file system
gzip: can't open '/var/log//S09-hostname.gz': Read-only file system
mv: can't rename '/var/log//S09-hostname.gz': No such file or directory
/etc/init.d/rc5.d/S09-hostname: line 4: can't create /var/log//S09-hostname: Rea                                               d-only file system
mv: can't rename '/var/log//S09-progressbar.28.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.27.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.26.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.25.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.24.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.23.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.22.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.21.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.20.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.19.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.18.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.17.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.16.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.15.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.14.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.13.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.12.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.11.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.10.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.9.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.8.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.7.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.6.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.5.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.4.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.3.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.2.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.1.gz': Read-only file system
mv: can't rename '/var/log//S09-progressbar.0.gz': Read-only file system
gzip: can't open '/var/log//S09-progressbar.gz': Read-on[    3.759364] UBI: atta                                               ching mtd4 to ubi1
ly file system
mv: can't rename [    3.764298] UBI: physical eraseblock size:   262144 bytes (2                                               56 KiB)
'/var/log//S09-progressbar.gz': N[    3.773800] UBI: logical eraseblock size:                                                   253952 bytes
o such file or directory
/etc/in[    3.781821] UBI: smallest flash I/O unit:    4096
it.d/rc5.d/S09-progressbar: line [    3.789362] UBI: VID header offset:                                                         4096 (aligned 4096)
4: can't create /var/log//S09-pro[    3.798109] UBI: data offset:                                                               8192
gressbar: Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.28.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.27.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.26.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.25.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.24.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.23.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.22.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.21.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.20.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.19.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.18.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.17.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.16.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.15.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.14.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.13.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.12.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.11.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.10.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.9.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.8.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.7.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.6.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.5.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.4.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.3.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.2.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.1.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.0.gz': Read-only file system
gzip: can't open '/var/log//S10-partition-qtapp.gz': Read-only file system
mv: can't rename '/var/log//S10-partition-qtapp.gz': No such file or directory
/etc/init.d/rc5.d/S10-partition-qtapp: line 4: can't create /var/log//S10-partit                                               ion-qtapp: Read-only file system
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.759364] UBI: attaching mtd4 to                                                ubi1
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.764298] UBI: physical eraseblo                                               ck size:   262144 bytes (256 KiB)
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.773800] UBI: logical erasebloc                                               k size:    253952 bytes
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.781821] UBI: smallest flash I/                                               O unit:    4096
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.789362] UBI: VID header offset                                               :          4096 (aligned 4096)
Jan  1 00:00:03 BUI270 user.notice kernel: [    3.798109] UBI: data offset:                                                               8192
[    5.075234] UBI: max. sequence number:       377778
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.075234] UBI: max. sequence num                                               ber:       377778[    5.086458] UBI: attached mtd4 to ubi1

Jan  1 00:00:04 BUI270 user.notic[    5.092729] UBI: MTD device name:                                                           "appdata"
e kernel: [    5.086458] UBI: att[    5.100841] UBI: MTD device size:                                                           837 MiB
ached mtd4 to ubi1
Jan  1 00:00:[    5.108634] UBI: number of good PEBs:        3344
04 BUI270 user.notice kernel: [  [    5.116076] UBI: number of bad PEBs:                                                        4
  5.092729] UBI: MTD device name:[    5.123564] UBI: number of corrupted PEBs:                                                  0
            "appdata"
Jan  1 00:[    5.130792] UBI: max. allowed volumes:       128
00:04 BUI270 user.notice kernel: [    5.138156] UBI: wear-leveling threshold:                                                   4096
[    5.100841] UBI: MTD device si[    5.145903] UBI: number of internal volumes:                                                1
ze:            837 MiB
Jan  1 00[    5.153135] UBI: number of user volumes:     1
:00:04 BUI270 user.notice kernel:[    5.160437] UBI: available PEBs:                                                            0
 [    5.108634] UBI: number of go[    5.167628] UBI: total number of reserved PE                                               Bs: 3344
od PEBs:        3344
Jan  1 00:0[    5.175634] UBI: number of PEBs reserved for bad PEB handling: 33
0:04 BUI270 user.notice kernel: [[    5.184518] UBI: max/mean erase counter: 178                                               /112
    5.116076] UBI: number of bad [    5.191992] UBI: image sequence number:  108                                               4247201
PEBs:         4
Jan  1 00:00:04 [    5.199735] UBI: background thread "ubi_bgt1d" started, PID 8                                               61
BUI270 user.notice kernel: [    5.123564] UBI: number of corrupted PEBs:   0
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.130792] UBI: max. allowed volu                                               mes:       128
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.138156] UBI: wear-leveling thr                                               eshold:    4096
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.145903] UBI: number of interna                                               l [    5.237302] UBIFS: recovery needed
volumes: 1
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.153135] UBI: number of user vo                                               lumes:     1
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.160437] UBI: available PEBs:                                                            0
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.167628] UBI: total number of r                                               eserved PEBs: 3344
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.175634] UBI: number of PEBs re                                               served for bad PEB handling: 33
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.184518] UBI: max/mean erase co                                               unter: 178/112
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.191992] UBI: image sequence nu                                               mber:  1084247201
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.199735] UBI: background thread                                                "ubi_bgt1d" started, PID 861
Jan  1 00:00:04 BUI270 user.notice kernel: [    5.237302] UBIFS: recovery needed
[    5.324388] UBIFS: recovery completed
[    5.328059] UBIFS: mounted UBI device 1, volume 0, name "appdata"
Jan  1 00:00:05 BUI270 user.notic[    5.334586] UBIFS: file system size:   83651                                               7888 bytes (816912 KiB, 797 MiB, 3294 LEBs)
e kernel: [    5.324388] UBIFS: r[    5.345730] UBIFS: journal size:       33521                                               664 bytes (32736 KiB, 31 MiB, 132 LEBs)
ecovery completed
Jan  1 00:00:0[    5.355922] UBIFS: media format:       w4/r0 (latest is w4/r0)
5 BUI270 user.notice kernel: [   [    5.364600] UBIFS: default compressor: lzo
 5.328059] UBIFS: mounted UBI dev[    5.371553] UBIFS: reserved for root:  49526                                               83 bytes (4836 KiB)
ice 1, volume 0, name "appdata"
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.334586] UBIFS: file system siz                                               e:   836517888 bytes (816912 KiB, 797 MiB, 3294 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.345730] UBIFS: journal size:                                                      33521664 bytes (32736 KiB, 31 MiB, 132 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.355922] UBIFS: media format:                                                      w4/r0 (latest is w4/r0)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.364600] UBIFS: default compres                                               sor: lzo
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.371553] UBIFS: reserved for ro                                               ot:  4952683 bytes (4836 KiB)
mv: can't rename '/var/log//S11-system-settings.28.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.27.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.26.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.25.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.24.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.23.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.22.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.21.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.20.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.19.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.18.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.17.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.16.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.15.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.14.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.13.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.12.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.11.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.10.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.9.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.8.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.7.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.6.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.5.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.4.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.3.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.2.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.1.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.0.gz': Read-only file system
gzip: can't open '/var/log//S11-system-settings.gz': Read-only file system
mv: can't rename '/var/log//S11-system-settings.gz': No such file or directory
/etc/init.d/rc5.d/S11-system-settings: line 4: can't create /var/log//S11-system                                               -settings: Read-only file system
mv: can't rename '/var/log//S12-swap.28.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.27.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.26.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.25.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.24.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.23.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.22.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.21.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.20.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.19.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.18.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.17.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.16.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.15.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.14.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.13.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.12.[    5.750260] UBI: attaching mtd2 to ub                                               i2
gz': Read-only file system
mv: c[    5.756364] UBI: physical eraseblock size:   262144 bytes (256 KiB)
an't rename '/var/log//S12-swap.1[    5.765942] UBI: logical eraseblock size:                                                   253952 bytes
1.gz': Read-only file system
mv:[    5.773889] UBI: smallest flash I/O unit:    4096
 can't rename '/var/log//S12-swap[    5.781430] UBI: VID header offset:                                                         4096 (aligned 4096)
.10.gz': Read-only file system
m[    5.790290] UBI: data offset:                8192
v: can't rename '/var/log//S12-swap.9.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.8.gz': Read-only file syst[    5.807609] UB                                               I: max. sequence number:       1019
em
mv: can't rename '/var/log//S12-swap.7.gz': Read-only file sy[    5.817304] UBI:                                                attached mtd2 to ubi2
stem
mv: can't rename '/var/log/[    5.823207] UBI: MTD device name:            "vers                                               ion"
/S12-swap.6.gz': Read-only file s[    5.831169] UBI: MTD device size:                                                           6 MiB
ystem
mv: can't rename '/var/log[    5.838792] UBI: number of good PEBs:        24
//S12-swap.5.gz': Read-only file [    5.846060] UBI: number of bad PEBs:                                                        0
system
mv: can't rename '/var/lo[    5.853549] UBI: number of corrupted PEBs:   0
g//S12-swap.4.gz': Read-only file[    5.860782] UBI: max. allowed volumes:                                                      128
 system
mv: can't rename '/var/l[    5.868142] UBI: wear-leveling threshold:    4096
og//S12-swap.3.gz': Read-only fil[    5.875887] UBI: number of internal volumes:                                                1
e system
mv: can't rename '/var/[    5.883123] UBI: number of user volumes:     1
log//S12-swap.2.gz': Read-only fi[    5.890425] UBI: available PEBs:                                                            0
le system
mv: can't rename '/var[    5.897614] UBI: total number of reserved PEBs: 24
/log//S12-swap.1.gz': Read-only f[    5.905442] UBI: number of PEBs reserved for                                                bad PEB handling: 2
ile system
mv: can't rename '/va[    5.914246] UBI: max/mean erase counter: 55/42
r/log//S12-swap.0.gz': Read-only [    5.921545] UBI: image sequence number:  127                                               650293
file system
gzip: can't open '/v[    5.929203] UBI: background thread "ubi_bgt2d" started, P                                               ID 983
ar/log//S12-swap.gz': Read-only file system
mv: can't rename '/var/log//S12-swap.gz': No such file or directory
/etc/init.d/rc5.d/S12-swap: line 4: can't create /var/log//S12-swap: Read-only f                                               ile system
mv: can't rename '/var/log//S13-partition-version.28.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.27.gz': Read-onl[    5.967521]                                                UBIFS: recovery needed
y file system
mv: can't rename '/var/log//S13-partition-version.26.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.25.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.24.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.23.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.22.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.21.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.20.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.19.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.18.gz': Read-only file system
mv: can't rename '/var/lo[    6.038325] UBIFS: recovery completed
g//S13-partition-version.17.gz': [    6.042312] UBIFS: mounted UBI device 2, vol                                               ume 0, name "version"
Read-only file system
mv: can't [    6.051685] UBIFS: file system size:   2539520 bytes (2480 KiB, 2 M                                               iB, 10 LEBs)
rename '/var/log//S13-partition-v[    6.061904] UBIFS: journal size:       17776                                               65 bytes (1736 KiB, 1 MiB, 5 LEBs)
ersion.16.gz': Read-only file sys[    6.071646] UBIFS: media format:       w4/r0                                                (latest is w4/r0)
tem
mv: can't rename '/var/log//[    6.080321] UBIFS: default compressor: lzo
S13-partition-version.15.gz': Rea[    6.087161] UBIFS: reserved for root:  11994                                               7 bytes (117 KiB)
d-only file system
mv: can't rename '/var/log//S13-partition-version.14.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.13.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.12.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.11.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.10.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.9.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.8.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.7.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.6.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.5.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.4.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.3.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.2.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.1.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.0.gz': Read-only file system
gzip: can't open '/var/log//S13-partition-version.gz': Read-only file system
mv: can't rename '/var/log//S13-partition-version.gz': No such file or directory
/etc/init.d/rc5.d/S13-partition-version: line 4: can't create /var/log//S13-part                                               ition-version: Read-only file system
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.750260] UBI: attaching mtd2 to                                                ubi2
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.756364] UBI: physical eraseblo                                               ck size:   262144 bytes (256 KiB)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.765942] UBI: logical erasebloc                                               k size:    253952 bytes
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.773889] UBI: smallest flash I/                                               O unit:    4096
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.781430] UBI: VID header offset                                               :          4096 (aligned 4096)
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.790290] UBI: data offset:                                                               8192
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.807609] UBI: max. sequence num                                               ber:       1019
Jan  1 00:00:05 BUI270 user.notice kernel: [    5.817304] UBI: attached mtd2 to                                                ubi2
Jan  1 00:00:05 BUI270 user.notice kernel: [   Jan  1 00:00:05 BUI270 user.notic                                               Jan  1 00:00:05 BUI270 user.notice kernel: [    5.838792] UBI: numJan  1 00:00:0                                               5 BUI270 user.noticJan  1 00:00:05 BUI270 user.notice kernel: [    5.860782] UBI                                               : maxJan  1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.noticJan  1 00                                               :00:05 BUI270 user.notice kernel: [    5.890425] UBI: avaJan  1 00:00:05 BUI270                                                user.noticJan  1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.noticJan                                                 1 00:00:05 BUI270 user.noticJan  1 00:00:05 BUI270 user.notice kernel: [    5.9                                               67521] UBIFS: recovery needed
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.038325] UBIFS: recovery comple                                               ted
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.042312] UBIFS: mounted UBI dev                                               ice 2, volume 0, name "version"
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.051685] UBIFS: file system siz                                               e:   2539520 bytes (2480 KiB, 2 MiB, 10 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.061904] UBIFS: journal size:                                                      1777665 bytes (1736 KiB, 1 MiB, 5 LEBs)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.071646] UBIFS: media format:                                                      w4/r0 (latest is w4/r0)
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.080321] UBIFS: default compres                                               sor: lzo
Jan  1 00:00:05 BUI270 user.notice kernel: [    6.087161] UBIFS: reserved for ro                                               ot:  119947 bytes (117 KiB)
mv: can't rename '/var/log//S20-dbus-uuid.28.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.27.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.26.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.25.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.24.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.23.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.22.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.21.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.20.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.19.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.18.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.17.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.16.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.15.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.14.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.13.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.12.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.11.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.10.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.9.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.8.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.7.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.6.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.5.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.4.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.3.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.2.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.1.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.0.gz': Read-only file system
gzip: can't open '/var/log//S20-dbus-uuid.gz': Read-only file system
mv: can't rename '/var/log//S20-dbus-uuid.gz': No such file or directory
/etc/init.d/rc5.d/S20-dbus-uuid: line 4: can't create /var/log//S20-dbus-uuid: R                                               ead-only file system
mv: can't rename '/var/log//S20-dbusd.28.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.27.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.26.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.25.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.24.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.23.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.22.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.21.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.20.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.19.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.18.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.17.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.16.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.15.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.14.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.13.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.12.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.11.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.10.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.9.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.8.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.7.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.6.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.5.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.4.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.3.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.2.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.1.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.0.gz': Read-only file system
gzip: can't open '/var/log//S20-dbusd.gz': Read-only file system
mv: can't rename '/var/log//S20-dbusd.gz': No such file or directory
/etc/init.d/rc5.d/S20-dbusd: line 4: can't create /var/log//S20-dbusd: Read-only                                                file system
mv: can't rename '/var/log//S23-ipcd.28.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.27.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.26.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.25.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.24.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.23.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.22.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.21.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.20.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.19.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.18.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.17.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.16.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.15.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.14.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.13.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.12.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.11.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.10.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.9.gz': Read-only[    6.924296] spi_imx imx6                                               q-ecspi.1: probed
 file system
mv: can't rename '/var/log//S23-ipcd.8.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.7.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.6.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.5.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.4.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.3.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.2.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.1.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.0.gz': Read-only file system
gzip: can't open '/var/log//S23-ipcd.gz': Read-only file system
mv: can't rename '/var/log//S23-ipcd.gz': No such file or directory
/etc/init.d/rc5.d/S23-ipcd: line 4: can't create /var/log//S23-ipcd: Read-only f                                               ile system
Jan  1 00:00:06 BUI270 user.info kernel: [    6.924296] spi_imx imx6q-ecspi.1: p                                               robed
mv: can't rename '/var/log//S24-clocksync.28.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.27.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.26.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.25.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.24.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.23.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.22.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.21.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.20.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.19.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.18.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.17.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.16.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.15.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.14.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.13.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.12.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.11.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.10.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.9.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.8.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.7.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.6.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.5.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.4.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.3.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.2.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.1.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.0.gz': Read-only file system
gzip: can't open '/var/log//S24-clocksync.gz': Read-only file system
mv: can't rename '/var/log//S24-clocksync.gz': No such file or directory
/etc/init.d/rc5.d/S24-clocksync: line 4: can't create /var/log//S24-clocksync: R                                               ead-only file system
mv: can't rename '/var/log//S28-shutdownd.28.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.27.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.26.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.25.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.24.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.23.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.22.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.21.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.20.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.19.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.18.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.17.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.16.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.15.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.14.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.13.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.12.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.11.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.10.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.9.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.8.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.7.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.6.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.5.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.4.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.3.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.2.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.1.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.0.gz': Read-only file system
gzip: can't open '/var/log//S28-shutdownd.gz': Read-only file system
mv: can't rename '/var/log//S28-shutdownd.gz': No such file or directory
/etc/init.d/rc5.d/S28-shutdownd: line 4: can't create /var/log//S28-shutdownd: R                                               ead-only file system
mv: can't rename '/var/log//S70-configure-packages.28.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.27.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.26.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.25.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.24.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.23.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.22.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.21.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.20.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.19.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.18.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.16.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.15.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.14.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.13.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.12.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.11.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.10.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.9.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.8.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.7.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.6.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.5.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.4.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.3.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.2.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.1.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.0.gz': Read-only file system
gzip: can't open '/var/log//S70-configure-packages.gz': Read-only file system
mv: can't rename '/var/log//S70-configure-packages.gz': No such file or director                                               y
/etc/init.d/rc5.d/S70-configure-packages: line 4: can't create /var/log//S70-con                                               figure-packages: Read-only file system
mv: can't rename '/var/log//S85-usb-diag.28.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.27.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.26.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.25.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.24.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.23.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.22.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.21.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.20.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.19.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.18.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.17.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.16.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.15.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.14.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.13.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.12.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.11.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.10.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.9.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.8.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.7.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.6.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.5.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.4.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.3.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.2.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.1.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.0.gz': Read-only file system
gzip: can't open '/var/log//S85-usb-diag.gz': Read-only file system
mv: can't rename '/var/log//S85-usb-diag.gz': No such file or directory
/etc/init.d/rc5.d/S85-usb-diag: line 4: can't create /var/log//S85-usb-diag: Rea                                               d-only file system
mv: can't rename '/var/log//S90-hotplugd.28.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.27.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.26.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.25.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.24.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.23.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.22.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.21.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.20.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.19.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.18.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.17.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.16.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.15.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.14.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.13.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.12.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.11.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.10.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.9.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.8.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.7.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.6.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.5.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.4.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.3.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.2.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.1.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.0.gz': Read-only file system
gzip: can't open '/var/log//S90-hotplugd.gz': Read-only file system
mv: can't rename '/var/log//S90-hotplugd.gz': No such file or directory
/etc/init.d/rc5.d/S90-hotplugd: line 4: can't create /var/log//S90-hotplugd: Rea                                               d-only file system
mv: can't rename '/var/log//S93-ti-st.28.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.27.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.26.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.25.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.24.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.23.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.22.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.21.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.20.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.19.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.18.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.17.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.16.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.15.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.14.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.13.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.12.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.11.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.10.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.9.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.8.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.7.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.6.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.5.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.4.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.3.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.2.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.1.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.0.gz': Read-only file system
gzip: can't open '/var/log//S93-ti-st.gz': Read-only file system
mv: can't rename '/var/log//S93-ti-st.gz': No such file or directory
/etc/init.d/rc5.d/S93-ti-st: line 4: can't create /var/log//S93-ti-st: Read-only                                                file system
mv: can't rename '/var/log//S96-wifi.28.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.27.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.26.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.25.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.24.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.22.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.21.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.20.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.19.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.18.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.17.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.16.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.15.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.14.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.13.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.12.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.11.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.10.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.9.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.8.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.7.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.6.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.4.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.3.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.2.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.1.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.0.gz': Read-only file system
gzip: can't open '/var/log//S96-wifi.gz': Read-only file system
mv: can't rename '/var/log//S96-wifi.gz': No such file or directory
/etc/init.d/rc5.d/S96-wifi: line 4: can't create /var/log//S96-wifi: Read-only f                                               ile system
mv: can't rename '/var/log//S97-ondemand.28.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.27.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.26.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.25.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.24.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.23.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.22.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.21.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.20.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.19.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.18.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.17.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.16.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.15.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.14.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.13.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.12.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.11.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.10.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.9.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.8.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.7.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.6.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.5.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.4.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.3.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.2.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.1.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.0.gz': Read-only file system
gzip: can't open '/var/log//S97-ondemand.gz': Read-only file system
mv: can't rename '/var/log//S97-ondemand.gz': No such file or directory
/etc/init.d/rc5.d/S97-ondemand: line 4: can't create /var/log//S97-ondemand: Rea                                               d-only file system
mv: can't rename '/var/log//S98-chargerdetect.28.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.27.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.26.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.25.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.24.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.23.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.22.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.21.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.20.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.19.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.18.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.17.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.16.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.15.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.14.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.13.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.12.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.11.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.10.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.9.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.8.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.7.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.6.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.5.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.4.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.3.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.2.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.1.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.0.gz': Read-only file system
gzip: can't open '/var/log//S98-chargerdetect.gz': Read-only file system
mv: can't rename '/var/log//S98-chargerdetect.gz': No such file or directory
/etc/init.d/rc5.d/S98-chargerdetect: line 4: can't create /var/log//S98-chargerd                                               etect: Read-only file system
mv: can't rename '/var/log//S98-kssupdater.28.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.27.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.26.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.25.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.24.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.23.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.22.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.21.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.20.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.19.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.18.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.17.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.16.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.15.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.14.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.13.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.12.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.11.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.10.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.9.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.8.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.7.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.6.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.5.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.4.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.3.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.2.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.1.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.0.gz': Read-only file system
gzip: can't open '/var/log//S98-kssupdater.gz': Read-only file system
mv: can't rename '/var/log//S98-kssupdater.gz': No such file or directory
/etc/init.d/rc5.d/S98-kssupdater: line 4: can't create /var/log//S98-kssupdater:                                                Read-only file system
^C[   17.698405] gadgetfs: USB Gadget filesystem, version 24 Aug 2004
Jan  1 00:00:17 BUI270 user.info kernel: [   17.698405] gadgetfs: USB Gadget fil                                               esystem, version 24 Aug 2004
Jan  1 00:00:17 BUI270 user.debug kernel: [   17.705780] retval -120


[-- Attachment #3: Type: text/plain, Size: 169 bytes --]

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

^ permalink raw reply

* Fixed link for 10G
From: Madalin-Cristian Bucur @ 2017-01-06 12:01 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org

Hi Florian,

I'm trying to add a fixed-link property that declares 10G speed
for a XGMII PHY and I'm encountering some issues as the fixed
link infrastructure does not seem to support this speed.

I'm using this device tree snippet (using the legacy format, but it
should not matter):

        ethernet@f2000 { /* 10GEC2 */
                fixed-link = <0 1 10000 0 0>;
                phy-connection-type = "xgmii";
        };

and I get this error:

	[    0.464238] swphy: unknown speed
	[    0.467464] fsl_mac: probe of 1af2000.ethernet failed with error -22

Looking at the code, fixed_phy_register() seems to check for speeds up
to 1G and swphy only caters 1G and lower speeds, the swphy_decode_speed()
returning -EINVAL for 10G, triggering the error printed above in
swphy_validate_state().

What would be the proper way to add support for the 10G fixed link speed?

Thank you,
Madalin

^ permalink raw reply

* [PATCH net-next] cxgb4/cxgb4vf: Display 25G and 100G link speed
From: Ganesh Goudar @ 2017-01-06 11:21 UTC (permalink / raw)
  To: netdev, davem; +Cc: nirranjan, hariprasad, Ganesh Goudar

Add support to report 25G and 100G links, which was missed
as part of commit "eb97ad99f9ed".

Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c     | 20 +++++++++++++-------
 drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 21 ++++++++++++---------
 2 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 6f95187..db436ae 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -188,18 +188,24 @@ static void link_report(struct net_device *dev)
 		const struct port_info *p = netdev_priv(dev);
 
 		switch (p->link_cfg.speed) {
-		case 10000:
-			s = "10Gbps";
+		case 100:
+			s = "100Mbps";
 			break;
 		case 1000:
-			s = "1000Mbps";
+			s = "1Gbps";
 			break;
-		case 100:
-			s = "100Mbps";
+		case 10000:
+			s = "10Gbps";
+			break;
+		case 25000:
+			s = "25Gbps";
 			break;
 		case 40000:
 			s = "40Gbps";
 			break;
+		case 100000:
+			s = "100Gbps";
+			break;
 		default:
 			pr_info("%s: unsupported speed: %d\n",
 				dev->name, p->link_cfg.speed);
@@ -4397,9 +4403,9 @@ static void print_port_info(const struct net_device *dev)
 		spd = " 8 GT/s";
 
 	if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_100M)
-		bufp += sprintf(bufp, "100/");
+		bufp += sprintf(bufp, "100M/");
 	if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_1G)
-		bufp += sprintf(bufp, "1000/");
+		bufp += sprintf(bufp, "1G/");
 	if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_10G)
 		bufp += sprintf(bufp, "10G/");
 	if (pi->link_cfg.supported & FW_PORT_CAP_SPEED_25G)
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
index 0d1a134..ac7a150 100644
--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -158,20 +158,23 @@ void t4vf_os_link_changed(struct adapter *adapter, int pidx, int link_ok)
 		netif_carrier_on(dev);
 
 		switch (pi->link_cfg.speed) {
-		case 40000:
-			s = "40Gbps";
+		case 100:
+			s = "100Mbps";
+			break;
+		case 1000:
+			s = "1Gbps";
 			break;
-
 		case 10000:
 			s = "10Gbps";
 			break;
-
-		case 1000:
-			s = "1000Mbps";
+		case 25000:
+			s = "25Gbps";
 			break;
-
-		case 100:
-			s = "100Mbps";
+		case 40000:
+			s = "40Gbps";
+			break;
+		case 100000:
+			s = "100Gbps";
 			break;
 
 		default:
-- 
2.1.0

^ permalink raw reply related

* Re: [PATCH v2 4/7] x86: put msr-index.h in uapi
From: Borislav Petkov @ 2017-01-06 12:14 UTC (permalink / raw)
  To: Nicolas Dichtel
  Cc: arnd, mmarek, linux-kbuild, linux-doc, linux-kernel, linux-alpha,
	linux-snps-arc, linux-arm-kernel, adi-buildroot-devel,
	linux-c6x-dev, linux-cris-kernel, uclinux-h8-devel, linux-hexagon,
	linux-ia64, linux-m68k, linux-metag, linux-mips, linux-am33-list,
	nios2-dev, openrisc, linux-parisc, linuxppc-dev, linux-s390,
	linux-sh, sparclinux, linux-xtensa, linux-ar
In-Reply-To: <1483695839-18660-5-git-send-email-nicolas.dichtel@6wind.com>

On Fri, Jan 06, 2017 at 10:43:56AM +0100, Nicolas Dichtel wrote:
> This header file is exported, thus move it to uapi.

It should rather not be exported - please remove it from
arch/x86/include/uapi/asm/Kbuild instead.

Thanks.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

^ permalink raw reply

* Re: [PATCH v4] rfkill: Add rfkill-any LED trigger
From: Johannes Berg @ 2017-01-06 12:22 UTC (permalink / raw)
  To: Michał Kępień, David S . Miller
  Cc: Михаил Кринкин,
	linux-wireless, netdev, linux-kernel
In-Reply-To: <20170106060747.6162-1-kernel@kempniu.pl>

On Fri, 2017-01-06 at 07:07 +0100, Michał Kępień wrote:
> Add a new "global" (i.e. not per-rfkill device) LED trigger, rfkill-
> any,
> which may be useful on laptops with a single "radio LED" and multiple
> radio transmitters.  The trigger is meant to turn a LED on whenever
> there is at least one radio transmitter active and turn it off
> otherwise.
> 
> Signed-off-by: Michał Kępień <kernel@kempniu.pl>
> ---
> Changes from v3:
> 
>   - Revert introducing a new bitfield and instead defer LED event
> firing
>     to a work queue to prevent conditional locking and ensure the
>     trigger can really be used from any context.  This also voids the
>     need to take rfkill_global_mutex before calling
> rfkill_set_block()
>     in rfkill_resume().

Looks better, but

> +static struct work_struct rfkill_any_work;

At least on module exit you need to cancel this work.

johannes

^ permalink raw reply

* pull-request: mac80211 2017-01-06
From: Johannes Berg @ 2017-01-06 12:37 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, linux-wireless

Hi Dave,

Here's another fix for something I noticed while reviewing the code in
a new suggested patch that added another netlink socket destroy path.

Since the new patch would otherwise cause conflicts, it might be good
to pull net or Linus's next RC containing it into net-next, if you can.

Please pull and let me know if there's any problem.

Thanks,
johannes



The following changes since commit 35f432a03e41d3bf08c51ede917f94e2288fbe8c:

  mac80211: initialize fast-xmit 'info' later (2017-01-02 11:28:25 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git tags/mac80211-for-davem-2017-01-06

for you to fetch changes up to 753aacfd2e95df6a0caf23c03dc309020765bea9:

  nl80211: fix sched scan netlink socket owner destruction (2017-01-05 10:59:53 +0100)

----------------------------------------------------------------
Another single fix, to correctly handle destruction of a
single netlink socket having ownership of multiple objects
(scheduled scan requests and interfaces.)

----------------------------------------------------------------
Johannes Berg (1):
      nl80211: fix sched scan netlink socket owner destruction

 net/wireless/nl80211.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

^ permalink raw reply

* Re: [PATCH net-next] bridge: multicast to unicast
From: Johannes Berg @ 2017-01-06 12:47 UTC (permalink / raw)
  To: Linus Lüssing, netdev
  Cc: bridge, linux-wireless, linux-kernel, Michael Braun,
	David S . Miller, Felix Fietkau
In-Reply-To: <20170102193214.31723-1-linus.luessing@c0d3.blue>

On Mon, 2017-01-02 at 20:32 +0100, Linus Lüssing wrote:
> Implements an optional, per bridge port flag and feature to deliver
> multicast packets to any host on the according port via unicast
> individually. This is done by copying the packet per host and
> changing the multicast destination MAC to a unicast one accordingly.

How does this compare and/or relate to the multicast-to-unicast feature
we were going to add to the wifi stack, particularly mac80211? Do we
perhaps not need that feature at all, if bridging will have it?

I suppose that the feature there could apply also to locally generated
traffic when the AP interface isn't in a bridge, but I think I could
live with requiring the AP to be put into a bridge to achieve a similar
configuration?

Additionally, on an unrelated note, this seems to apply generically to
all kinds of frames, losing information by replacing the address.
Shouldn't it have similar limitations as the wifi stack feature has
then, like only applying to ARP, IPv4, IPv6 and not general protocols?

Also, it should probably come with the same caveat as we documented for
the wifi feature:

    Note that this may break certain expectations of the receiver,
    such as the ability to drop unicast IP packets received within
    multicast L2 frames, or the ability to not send ICMP destination
    unreachable messages for packets received in L2 multicast (which
    is required, but the receiver can't tell the difference if this
    new option is enabled.)


I'll hold off sending my tree in until we see that we really need both
features, or decide that we want the wifi feature *instead* of the
bridge feature.

johannes

^ permalink raw reply

* Re: [PATCHv2 net-next 02/11] net: mvpp2: handle too large value in mvpp2_rx_time_coal_set()
From: Russell King - ARM Linux @ 2017-01-06 12:59 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Andrew Lunn, Yehuda Yitschak, Jason Cooper, netdev, Hanna Hawa,
	Nadav Haklai, Gregory Clement, Stefan Chulski, Marcin Wojtas,
	David S. Miller, linux-arm-kernel, Sebastian Hesselbarth
In-Reply-To: <1482943567-12483-3-git-send-email-thomas.petazzoni@free-electrons.com>

On Wed, Dec 28, 2016 at 05:45:58PM +0100, Thomas Petazzoni wrote:
> When configuring the MVPP2_ISR_RX_THRESHOLD_REG with the RX coalescing
> time threshold, we do not check for the maximum allowed value supported
> by the driver, which means we might overflow and use a bogus value. This
> commit adds a check for this situation, and if a value higher than what
> is supported by the hardware is provided, then we use the maximum value
> supported by the hardware.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  drivers/net/ethernet/marvell/mvpp2.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
> index 02d91e4..a1ba89f 100644
> --- a/drivers/net/ethernet/marvell/mvpp2.c
> +++ b/drivers/net/ethernet/marvell/mvpp2.c
> @@ -154,6 +154,7 @@
>  
>  /* Interrupt Cause and Mask registers */
>  #define MVPP2_ISR_RX_THRESHOLD_REG(rxq)		(0x5200 + 4 * (rxq))
> +#define     MVPP2_MAX_ISR_RX_THRESHOLD		0xfffff0
>  #define MVPP2_ISR_RXQ_GROUP_REG(rxq)		(0x5400 + 4 * (rxq))
>  #define MVPP2_ISR_ENABLE_REG(port)		(0x5420 + 4 * (port))
>  #define     MVPP2_ISR_ENABLE_INTERRUPT(mask)	((mask) & 0xffff)
> @@ -4397,6 +4398,12 @@ static void mvpp2_rx_time_coal_set(struct mvpp2_port *port,
>  	u32 val;
>  
>  	val = (port->priv->tclk / USEC_PER_SEC) * usec;
> +
> +	if (val > MVPP2_MAX_ISR_RX_THRESHOLD) {
> +		val = MVPP2_MAX_ISR_RX_THRESHOLD;
> +		usec = (val * USEC_PER_SEC) / port->priv->tclk;
> +	}
> +

Beware of rounding and overflow errors.  usec and val are u32's.

	MVPP2_MAX_ISR_RX_THRESHOLD = 16777200
	USEC_PER_SEC = 1000000

This equates to 0xF423F0BDC00 for the multiplication, which is a little
larger than 32-bit.  Assuming tclk is 166.666666MHz (as it was on Dove
- I don't know what it would be here) and 64-bit arithmetic, the maximum
value gives 100663us.

Passing that back into the function gives... 16710058, so the second time
around, we end up with a different setting (even though a change wasn't
requested.)

However, 100664 won't trigger your check, neither will values all the way
up to 101067 - the reason being that you're losing so much precision by
dividling the clock by USEC_PER_SEC first.  Only if it's a whole number
of MHz will you get away with that.

So, I'd suggest you switch to using 64 bit math here - it's not a fast
path.  Using bc to evaluate val = port->priv->tclk * usec / USEC_PER_SEC
gives:

	(166666666 * 100663 / 1000000)
	16777166

which is as close as you can come to the limit.

So, I'd suggest (these variants round down, which is acceptable for
this implementation):

static u32 usec_to_cycles(u32 usec, unsigned long clock_rate_hz)
{
	u64 tmp = clock_rate_hz * usec;

	do_div(tmp, USEC_PER_SEC);

	return tmp > 0xffffffff ? 0xffffffff : tmp;
}

static u32 cycles_to_usec(u32 cycles, unsigned long clock_rate_hz)
{
	u64 tmp = cycles * USEC_PER_SEC;

	do_div(tmp, clock_rate_hz);

	return tmp > 0xffffffff ? 0xffffffff : tmp;
}

and:
	u32 val = usec_to_cycles(usec, port->priv->tclk);

	if (val > MVPP2_MAX_ISR_RX_THRESHOLD) {
		usec = cycles_to_usec(MVPP2_MAX_ISR_RX_THRESHOLD,
				      port->priv->tclk);

		/* re-evaluate to get actual register value for usec */
		val = usec_to_cycles(usec, port->priv->tclk);
	}

>  	mvpp2_write(port->priv, MVPP2_ISR_RX_THRESHOLD_REG(rxq->id), val);
>  
>  	rxq->time_coal = usec;

This function appears to be called from two places:

mvpp2_rxq_init():
        mvpp2_rx_time_coal_set(port, rxq, rxq->time_coal);

mvpp2_ethtool_set_coalesce():
                rxq->time_coal = c->rx_coalesce_usecs;
                mvpp2_rx_time_coal_set(port, rxq, rxq->time_coal);

It seems rather pointless to pass in rxq->time_coal when you're also
passing in rxq.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* Re: [PATCHv2 net-next 09/11] net: mvpp2: simplify MVPP2_PRS_RI_* definitions
From: Russell King - ARM Linux @ 2017-01-06 13:07 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Andrew Lunn, Yehuda Yitschak, Jason Cooper, netdev, Hanna Hawa,
	Nadav Haklai, Gregory Clement, Stefan Chulski, Marcin Wojtas,
	David S. Miller, linux-arm-kernel, Sebastian Hesselbarth
In-Reply-To: <1482943567-12483-10-git-send-email-thomas.petazzoni@free-electrons.com>

On Wed, Dec 28, 2016 at 05:46:05PM +0100, Thomas Petazzoni wrote:
> Some of the MVPP2_PRS_RI_* definitions use the ~(value) syntax, which
> doesn't compile nicely on 64-bit. Moreover, those definitions are in
> fact unneeded, since they are always used in combination with a bit
> mask that ensures only the appropriate bits are modified.
> 
> Therefore, such definitions should just be set to 0x0. For example:
> 
>  #define MVPP2_PRS_RI_L2_CAST_MASK              0x600
>  #define MVPP2_PRS_RI_L2_UCAST                  ~(BIT(9) | BIT(10))
>  #define MVPP2_PRS_RI_L2_MCAST                  BIT(9)
>  #define MVPP2_PRS_RI_L2_BCAST                  BIT(10)
> 
> becomes
> 
>  #define MVPP2_PRS_RI_L2_CAST_MASK              0x600
>  #define MVPP2_PRS_RI_L2_UCAST                  0x0
>  #define MVPP2_PRS_RI_L2_MCAST                  BIT(9)
>  #define MVPP2_PRS_RI_L2_BCAST                  BIT(10)

So this is a two-bit field in a register with three defined states - I'm
not sure that using BIT() here is really a good idea.  BIT() is fine for
single-bit controls, but I think it adds an additional level of confusion
for multi-bit controls.

Also, the combination of the mask being defined as hex and the controls
using BIT() is particularly not nice.  I think either use one style or
the other, don't mix them.  So either:

  #define MVPP2_PRS_RI_L2_CAST_MASK              0x600
  #define MVPP2_PRS_RI_L2_UCAST                  0x000
  #define MVPP2_PRS_RI_L2_MCAST                  0x200
  #define MVPP2_PRS_RI_L2_BCAST                  0x400

or:

  #define MVPP2_PRS_RI_L2_CAST_MASK              (BIT(10) | BIT(9))
  #define MVPP2_PRS_RI_L2_UCAST                  0
  #define MVPP2_PRS_RI_L2_MCAST                  BIT(9)
  #define MVPP2_PRS_RI_L2_BCAST                  BIT(10)

It then becomes obvious that the mask and the settings are changing the
same bits.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* Re: [PATCH v3 3/3] stmmac: adding new glue driver dwmac-dwc-qos-eth
From: Alexandre Torgue @ 2017-01-06 13:27 UTC (permalink / raw)
  To: Joao Pinto, davem@davemloft.net
  Cc: lars.persson@axis.com, niklass@axis.com, swarren@nvidia.com,
	treding@nvidia.com, netdev@vger.kernel.org
In-Reply-To: <f4ce118b-6966-528d-bda9-3aa8c3a43435@synopsys.com>

Hi Joao,

On 01/05/2017 06:49 PM, Joao Pinto wrote:
> Hi Alex,
>
> Às 5:19 PM de 1/5/2017, Alexandre Torgue escreveu:
>> Hi Joao,
>>
>> On 01/04/2017 05:22 PM, Joao Pinto wrote:
>>> This patch adds a new glue driver called dwmac-dwc-qos-eth which
>>> was based in the dwc_eth_qos as is. To assure retro-compatibility a slight
>>> tweak was also added to stmmac_platform.
>>
>> Sorry to come late in the review. I have a basic question. Why do you create a
>> glue driver for that ?
>> dwmac-glues are currently vendor specific, so why create one for IP ? Why not
>> continue to use stmmac_platform.c ?
>> (It is very basic, I assume I miss something)
>>
>
> If you check in the kernel tree there is a synopsys qos driver under
> net/ethernet/synopsys/*.qos.c. At this moment Synopsys has the goal to support
> QoS in the mainline kernel and so a discussion took place a month ago, about
> what would be the best solution. At the time we (mailing-list folks) decided to
> port the net/ethernet/synopsys/*.qos.c driver to stmmac and remove it. This way
> we can have stmmac has a single synopsys ethernet software package.

Yes I saw a thread about that and also discussed with Peppe. It is a 
very good thing to do that ! so thanks for that.

> For us to achieve this we agreed that stmmac would have
>
> Lars the current synopsys/*.qos.c maintainer requested that stmmac be compatible
> with the devicetree bindings that axis' customers were using in the driver. So
> if you check the new glue driver, you will see it parses the legacy drivers DT
> bindings and initiates stmmac. So you can see it like a legacy compatible glue
> for the stmmac.

Ok if it is to keep compatibility to existing DT.

Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>

>
> Thanks,
> Joao
>
>> thanks
>> Alex
>>
>>
>>
>>>
>>> Signed-off-by: Joao Pinto <jpinto@synopsys.com>
>>> ---
>>> changes v2 -> v3:
>>> - Nothing changed, just to keep up patch set version
>>> changes v1 -> v2:
>>> - WOL was not declared in the new glue driver
>>> - clocks were switched and now fixed (apb_pclk and phy_ref_clk)
>>>
>>>  .../bindings/net/snps,dwc-qos-ethernet.txt         |   3 +
>>>  drivers/net/ethernet/stmicro/stmmac/Kconfig        |   9 +
>>>  drivers/net/ethernet/stmicro/stmmac/Makefile       |   1 +
>>>  .../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c    | 200 +++++++++++++++++++++
>>>  .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |  15 +-
>>>  5 files changed, 225 insertions(+), 3 deletions(-)
>>>  create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>> b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>> index d93f71c..21d27aa 100644
>>> --- a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>> +++ b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>> @@ -1,5 +1,8 @@
>>>  * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)
>>>
>>> +This binding is deprecated, but it continues to be supported, but new
>>> +features should be preferably added to the stmmac binding document.
>>> +
>>>  This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service)
>>>  IP block. The IP supports multiple options for bus type, clocking and reset
>>>  structure, and feature list. Consequently, a number of properties and list
>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>> b/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>> index ab66248..99594e3 100644
>>> --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>> +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>> @@ -29,6 +29,15 @@ config STMMAC_PLATFORM
>>>
>>>  if STMMAC_PLATFORM
>>>
>>> +config DWMAC_DWC_QOS_ETH
>>> +    tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
>>> +    select PHYLIB
>>> +    select CRC32
>>> +    select MII
>>> +    depends on OF && HAS_DMA
>>> +    help
>>> +      Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
>>> +
>>>  config DWMAC_GENERIC
>>>      tristate "Generic driver for DWMAC"
>>>      default STMMAC_PLATFORM
>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile
>>> b/drivers/net/ethernet/stmicro/stmmac/Makefile
>>> index 8f83a86..700c603 100644
>>> --- a/drivers/net/ethernet/stmicro/stmmac/Makefile
>>> +++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
>>> @@ -16,6 +16,7 @@ obj-$(CONFIG_DWMAC_SOCFPGA)    += dwmac-altr-socfpga.o
>>>  obj-$(CONFIG_DWMAC_STI)        += dwmac-sti.o
>>>  obj-$(CONFIG_DWMAC_STM32)    += dwmac-stm32.o
>>>  obj-$(CONFIG_DWMAC_SUNXI)    += dwmac-sunxi.o
>>> +obj-$(CONFIG_DWMAC_DWC_QOS_ETH)    += dwmac-dwc-qos-eth.o
>>>  obj-$(CONFIG_DWMAC_GENERIC)    += dwmac-generic.o
>>>  stmmac-platform-objs:= stmmac_platform.o
>>>  dwmac-altr-socfpga-objs := altr_tse_pcs.o dwmac-socfpga.o
>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>> b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>> new file mode 100644
>>> index 0000000..4532a7c
>>> --- /dev/null
>>> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>> @@ -0,0 +1,200 @@
>>> +/*
>>> + * Synopsys DWC Ethernet Quality-of-Service v4.10a linux driver
>>> + *
>>> + * Copyright (C) 2016 Joao Pinto <jpinto@synopsys.com>
>>> + *
>>> + * This program is free software; you can redistribute it and/or modify
>>> + * it under the terms of the GNU General Public License version 2 as
>>> + * published by the Free Software Foundation.
>>> + *
>>> + * You should have received a copy of the GNU General Public License
>>> + * along with this program. If not, see
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_licenses_&d=DgIC-g&c=DPL6_X_6JkXFx7AXWqB0tg&r=s2fO0hii0OGNOv9qQy_HRXy-xAJUD1NNoEcc3io_kx0&m=WxdcavXD85uZcK9qUC9QsAnK7mu8d7BeoV_d5swO3GI&s=AibQEfk8wEmP3dWHGtq3DBJ2zsceESdTEooLDJV68Zo&e=
>>>> .
>>> + */
>>> +
>>> +#include <linux/clk.h>
>>> +#include <linux/clk-provider.h>
>>> +#include <linux/device.h>
>>> +#include <linux/ethtool.h>
>>> +#include <linux/io.h>
>>> +#include <linux/ioport.h>
>>> +#include <linux/module.h>
>>> +#include <linux/of_net.h>
>>> +#include <linux/mfd/syscon.h>
>>> +#include <linux/platform_device.h>
>>> +#include <linux/stmmac.h>
>>> +
>>> +#include "stmmac_platform.h"
>>> +
>>> +static int dwc_eth_dwmac_config_dt(struct platform_device *pdev,
>>> +                   struct plat_stmmacenet_data *plat_dat)
>>> +{
>>> +    struct device_node *np = pdev->dev.of_node;
>>> +    u32 burst_map = 0;
>>> +    u32 bit_index = 0;
>>> +    u32 a_index = 0;
>>> +
>>> +    if (!plat_dat->axi) {
>>> +        plat_dat->axi = kzalloc(sizeof(struct stmmac_axi), GFP_KERNEL);
>>> +
>>> +        if (!plat_dat->axi)
>>> +            return -ENOMEM;
>>> +    }
>>> +
>>> +    plat_dat->axi->axi_lpi_en = of_property_read_bool(np, "snps,en-lpi");
>>> +    if (of_property_read_u32(np, "snps,write-requests",
>>> +                 &plat_dat->axi->axi_wr_osr_lmt)) {
>>> +        /**
>>> +         * Since the register has a reset value of 1, if property
>>> +         * is missing, default to 1.
>>> +         */
>>> +        plat_dat->axi->axi_wr_osr_lmt = 1;
>>> +    } else {
>>> +        /**
>>> +         * If property exists, to keep the behavior from dwc_eth_qos,
>>> +         * subtract one after parsing.
>>> +         */
>>> +        plat_dat->axi->axi_wr_osr_lmt--;
>>> +    }
>>> +
>>> +    if (of_property_read_u32(np, "read,read-requests",
>>> +                 &plat_dat->axi->axi_rd_osr_lmt)) {
>>> +        /**
>>> +         * Since the register has a reset value of 1, if property
>>> +         * is missing, default to 1.
>>> +         */
>>> +        plat_dat->axi->axi_rd_osr_lmt = 1;
>>> +    } else {
>>> +        /**
>>> +         * If property exists, to keep the behavior from dwc_eth_qos,
>>> +         * subtract one after parsing.
>>> +         */
>>> +        plat_dat->axi->axi_rd_osr_lmt--;
>>> +    }
>>> +    of_property_read_u32(np, "snps,burst-map", &burst_map);
>>> +
>>> +    /* converts burst-map bitmask to burst array */
>>> +    for (bit_index = 0; bit_index < 7; bit_index++) {
>>> +        if (burst_map & (1 << bit_index)) {
>>> +            switch (bit_index) {
>>> +            case 0:
>>> +            plat_dat->axi->axi_blen[a_index] = 4; break;
>>> +            case 1:
>>> +            plat_dat->axi->axi_blen[a_index] = 8; break;
>>> +            case 2:
>>> +            plat_dat->axi->axi_blen[a_index] = 16; break;
>>> +            case 3:
>>> +            plat_dat->axi->axi_blen[a_index] = 32; break;
>>> +            case 4:
>>> +            plat_dat->axi->axi_blen[a_index] = 64; break;
>>> +            case 5:
>>> +            plat_dat->axi->axi_blen[a_index] = 128; break;
>>> +            case 6:
>>> +            plat_dat->axi->axi_blen[a_index] = 256; break;
>>> +            default:
>>> +            break;
>>> +            }
>>> +            a_index++;
>>> +        }
>>> +    }
>>> +
>>> +    /* dwc-qos needs GMAC4, AAL, TSO and PMT */
>>> +    plat_dat->has_gmac4 = 1;
>>> +    plat_dat->dma_cfg->aal = 1;
>>> +    plat_dat->tso_en = 1;
>>> +    plat_dat->pmt = 1;
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +static int dwc_eth_dwmac_probe(struct platform_device *pdev)
>>> +{
>>> +    struct plat_stmmacenet_data *plat_dat;
>>> +    struct stmmac_resources stmmac_res;
>>> +    struct resource *res;
>>> +    int ret;
>>> +
>>> +    /**
>>> +     * Since stmmac_platform supports name IRQ only, basic platform
>>> +     * resource initialization is done in the glue logic.
>>> +     */
>>> +    stmmac_res.irq = platform_get_irq(pdev, 0);
>>> +    if (stmmac_res.irq < 0) {
>>> +        if (stmmac_res.irq != -EPROBE_DEFER) {
>>> +            dev_err(&pdev->dev,
>>> +                "IRQ configuration information not found\n");
>>> +        }
>>> +        return stmmac_res.irq;
>>> +    }
>>> +    stmmac_res.wol_irq = stmmac_res.irq;
>>> +
>>> +    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>>> +    stmmac_res.addr = devm_ioremap_resource(&pdev->dev, res);
>>> +    if (IS_ERR(stmmac_res.addr))
>>> +        return PTR_ERR(stmmac_res.addr);
>>> +
>>> +    plat_dat = stmmac_probe_config_dt(pdev, &stmmac_res.mac);
>>> +    if (IS_ERR(plat_dat))
>>> +        return PTR_ERR(plat_dat);
>>> +
>>> +    plat_dat->stmmac_clk = devm_clk_get(&pdev->dev, "apb_pclk");
>>> +    if (IS_ERR(plat_dat->stmmac_clk)) {
>>> +        dev_err(&pdev->dev, "apb_pclk clock not found.\n");
>>> +        ret = PTR_ERR(plat_dat->stmmac_clk);
>>> +        plat_dat->stmmac_clk = NULL;
>>> +        goto err_remove_config_dt;
>>> +    }
>>> +    clk_prepare_enable(plat_dat->stmmac_clk);
>>> +
>>> +    plat_dat->pclk = devm_clk_get(&pdev->dev, "phy_ref_clk");
>>> +    if (IS_ERR(plat_dat->pclk)) {
>>> +        dev_err(&pdev->dev, "phy_ref_clk clock not found.\n");
>>> +        ret = PTR_ERR(plat_dat->pclk);
>>> +        plat_dat->pclk = NULL;
>>> +        goto err_out_clk_dis_phy;
>>> +    }
>>> +    clk_prepare_enable(plat_dat->pclk);
>>> +
>>> +    ret = dwc_eth_dwmac_config_dt(pdev, plat_dat);
>>> +    if (ret)
>>> +        goto err_out_clk_dis_aper;
>>> +
>>> +    ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
>>> +    if (ret)
>>> +        goto err_out_clk_dis_aper;
>>> +
>>> +    return 0;
>>> +
>>> +err_out_clk_dis_aper:
>>> +    clk_disable_unprepare(plat_dat->pclk);
>>> +err_out_clk_dis_phy:
>>> +    clk_disable_unprepare(plat_dat->stmmac_clk);
>>> +err_remove_config_dt:
>>> +    stmmac_remove_config_dt(pdev, plat_dat);
>>> +
>>> +    return ret;
>>> +}
>>> +
>>> +static int dwc_eth_dwmac_remove(struct platform_device *pdev)
>>> +{
>>> +    return stmmac_pltfr_remove(pdev);
>>> +}
>>> +
>>> +static const struct of_device_id dwc_eth_dwmac_match[] = {
>>> +    { .compatible = "snps,dwc-qos-ethernet-4.10", },
>>> +    { }
>>> +};
>>> +MODULE_DEVICE_TABLE(of, dwc_eth_dwmac_match);
>>> +
>>> +static struct platform_driver dwc_eth_dwmac_driver = {
>>> +    .probe  = dwc_eth_dwmac_probe,
>>> +    .remove = dwc_eth_dwmac_remove,
>>> +    .driver = {
>>> +        .name           = "dwc-eth-dwmac",
>>> +        .of_match_table = dwc_eth_dwmac_match,
>>> +    },
>>> +};
>>> +module_platform_driver(dwc_eth_dwmac_driver);
>>> +
>>> +MODULE_AUTHOR("Joao Pinto <jpinto@synopsys.com>");
>>> +MODULE_DESCRIPTION("Synopsys DWC Ethernet Quality-of-Service v4.10a driver");
>>> +MODULE_LICENSE("GPL v2");
>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> index 4e44f9c..00c0f8d 100644
>>> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> @@ -181,10 +181,19 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
>>>          mdio = false;
>>>      }
>>>
>>> -    /* If snps,dwmac-mdio is passed from DT, always register the MDIO */
>>> -    for_each_child_of_node(np, plat->mdio_node) {
>>> -        if (of_device_is_compatible(plat->mdio_node, "snps,dwmac-mdio"))
>>> +    /* exception for dwmac-dwc-qos-eth glue logic */
>>> +    if (of_device_is_compatible(np, "snps,dwc-qos-ethernet-4.10")) {
>>> +        plat->mdio_node = of_get_child_by_name(np, "mdio");
>>> +    } else {
>>> +        /**
>>> +         * If snps,dwmac-mdio is passed from DT, always register
>>> +         * the MDIO
>>> +         */
>>> +        for_each_child_of_node(np, plat->mdio_node) {
>>> +            if (of_device_is_compatible(plat->mdio_node,
>>> +                            "snps,dwmac-mdio"))
>>>              break;
>>> +        }
>>>      }
>>>
>>>      if (plat->mdio_node) {
>>>
>

^ permalink raw reply

* Re: [PATCH v3 3/3] stmmac: adding new glue driver dwmac-dwc-qos-eth
From: Joao Pinto @ 2017-01-06 13:30 UTC (permalink / raw)
  To: Alexandre Torgue, Joao Pinto, davem@davemloft.net
  Cc: lars.persson@axis.com, niklass@axis.com, swarren@nvidia.com,
	treding@nvidia.com, netdev@vger.kernel.org
In-Reply-To: <8c146599-fdc6-2555-c785-2c7dff841371@st.com>

Às 1:27 PM de 1/6/2017, Alexandre Torgue escreveu:
> Hi Joao,
> 
> On 01/05/2017 06:49 PM, Joao Pinto wrote:
>> Hi Alex,
>>
>> Às 5:19 PM de 1/5/2017, Alexandre Torgue escreveu:
>>> Hi Joao,
>>>
>>> On 01/04/2017 05:22 PM, Joao Pinto wrote:
>>>> This patch adds a new glue driver called dwmac-dwc-qos-eth which
>>>> was based in the dwc_eth_qos as is. To assure retro-compatibility a slight
>>>> tweak was also added to stmmac_platform.
>>>
>>> Sorry to come late in the review. I have a basic question. Why do you create a
>>> glue driver for that ?
>>> dwmac-glues are currently vendor specific, so why create one for IP ? Why not
>>> continue to use stmmac_platform.c ?
>>> (It is very basic, I assume I miss something)
>>>
>>
>> If you check in the kernel tree there is a synopsys qos driver under
>> net/ethernet/synopsys/*.qos.c. At this moment Synopsys has the goal to support
>> QoS in the mainline kernel and so a discussion took place a month ago, about
>> what would be the best solution. At the time we (mailing-list folks) decided to
>> port the net/ethernet/synopsys/*.qos.c driver to stmmac and remove it. This way
>> we can have stmmac has a single synopsys ethernet software package.
> 
> Yes I saw a thread about that and also discussed with Peppe. It is a very good
> thing to do that ! so thanks for that.

No problem! Glad to help!

Joao

> 
>> For us to achieve this we agreed that stmmac would have
>>
>> Lars the current synopsys/*.qos.c maintainer requested that stmmac be compatible
>> with the devicetree bindings that axis' customers were using in the driver. So
>> if you check the new glue driver, you will see it parses the legacy drivers DT
>> bindings and initiates stmmac. So you can see it like a legacy compatible glue
>> for the stmmac.
> 
> Ok if it is to keep compatibility to existing DT.
> 
> Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>
> 
>>
>> Thanks,
>> Joao
>>
>>> thanks
>>> Alex
>>>
>>>
>>>
>>>>
>>>> Signed-off-by: Joao Pinto <jpinto@synopsys.com>
>>>> ---
>>>> changes v2 -> v3:
>>>> - Nothing changed, just to keep up patch set version
>>>> changes v1 -> v2:
>>>> - WOL was not declared in the new glue driver
>>>> - clocks were switched and now fixed (apb_pclk and phy_ref_clk)
>>>>
>>>>  .../bindings/net/snps,dwc-qos-ethernet.txt         |   3 +
>>>>  drivers/net/ethernet/stmicro/stmmac/Kconfig        |   9 +
>>>>  drivers/net/ethernet/stmicro/stmmac/Makefile       |   1 +
>>>>  .../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c    | 200 +++++++++++++++++++++
>>>>  .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |  15 +-
>>>>  5 files changed, 225 insertions(+), 3 deletions(-)
>>>>  create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>>> b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>>> index d93f71c..21d27aa 100644
>>>> --- a/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>>> +++ b/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
>>>> @@ -1,5 +1,8 @@
>>>>  * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)
>>>>
>>>> +This binding is deprecated, but it continues to be supported, but new
>>>> +features should be preferably added to the stmmac binding document.
>>>> +
>>>>  This binding supports the Synopsys Designware Ethernet QoS (Quality Of
>>>> Service)
>>>>  IP block. The IP supports multiple options for bus type, clocking and reset
>>>>  structure, and feature list. Consequently, a number of properties and list
>>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>>> b/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>>> index ab66248..99594e3 100644
>>>> --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>>> +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig
>>>> @@ -29,6 +29,15 @@ config STMMAC_PLATFORM
>>>>
>>>>  if STMMAC_PLATFORM
>>>>
>>>> +config DWMAC_DWC_QOS_ETH
>>>> +    tristate "Support for snps,dwc-qos-ethernet.txt DT binding."
>>>> +    select PHYLIB
>>>> +    select CRC32
>>>> +    select MII
>>>> +    depends on OF && HAS_DMA
>>>> +    help
>>>> +      Support for chips using the snps,dwc-qos-ethernet.txt DT binding.
>>>> +
>>>>  config DWMAC_GENERIC
>>>>      tristate "Generic driver for DWMAC"
>>>>      default STMMAC_PLATFORM
>>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile
>>>> b/drivers/net/ethernet/stmicro/stmmac/Makefile
>>>> index 8f83a86..700c603 100644
>>>> --- a/drivers/net/ethernet/stmicro/stmmac/Makefile
>>>> +++ b/drivers/net/ethernet/stmicro/stmmac/Makefile
>>>> @@ -16,6 +16,7 @@ obj-$(CONFIG_DWMAC_SOCFPGA)    += dwmac-altr-socfpga.o
>>>>  obj-$(CONFIG_DWMAC_STI)        += dwmac-sti.o
>>>>  obj-$(CONFIG_DWMAC_STM32)    += dwmac-stm32.o
>>>>  obj-$(CONFIG_DWMAC_SUNXI)    += dwmac-sunxi.o
>>>> +obj-$(CONFIG_DWMAC_DWC_QOS_ETH)    += dwmac-dwc-qos-eth.o
>>>>  obj-$(CONFIG_DWMAC_GENERIC)    += dwmac-generic.o
>>>>  stmmac-platform-objs:= stmmac_platform.o
>>>>  dwmac-altr-socfpga-objs := altr_tse_pcs.o dwmac-socfpga.o
>>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>>> b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>>> new file mode 100644
>>>> index 0000000..4532a7c
>>>> --- /dev/null
>>>> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
>>>> @@ -0,0 +1,200 @@
>>>> +/*
>>>> + * Synopsys DWC Ethernet Quality-of-Service v4.10a linux driver
>>>> + *
>>>> + * Copyright (C) 2016 Joao Pinto <jpinto@synopsys.com>
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify
>>>> + * it under the terms of the GNU General Public License version 2 as
>>>> + * published by the Free Software Foundation.
>>>> + *
>>>> + * You should have received a copy of the GNU General Public License
>>>> + * along with this program. If not, see
>>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_licenses_&d=DgIC-g&c=DPL6_X_6JkXFx7AXWqB0tg&r=s2fO0hii0OGNOv9qQy_HRXy-xAJUD1NNoEcc3io_kx0&m=WxdcavXD85uZcK9qUC9QsAnK7mu8d7BeoV_d5swO3GI&s=AibQEfk8wEmP3dWHGtq3DBJ2zsceESdTEooLDJV68Zo&e=
>>>>
>>>>> .
>>>> + */
>>>> +
>>>> +#include <linux/clk.h>
>>>> +#include <linux/clk-provider.h>
>>>> +#include <linux/device.h>
>>>> +#include <linux/ethtool.h>
>>>> +#include <linux/io.h>
>>>> +#include <linux/ioport.h>
>>>> +#include <linux/module.h>
>>>> +#include <linux/of_net.h>
>>>> +#include <linux/mfd/syscon.h>
>>>> +#include <linux/platform_device.h>
>>>> +#include <linux/stmmac.h>
>>>> +
>>>> +#include "stmmac_platform.h"
>>>> +
>>>> +static int dwc_eth_dwmac_config_dt(struct platform_device *pdev,
>>>> +                   struct plat_stmmacenet_data *plat_dat)
>>>> +{
>>>> +    struct device_node *np = pdev->dev.of_node;
>>>> +    u32 burst_map = 0;
>>>> +    u32 bit_index = 0;
>>>> +    u32 a_index = 0;
>>>> +
>>>> +    if (!plat_dat->axi) {
>>>> +        plat_dat->axi = kzalloc(sizeof(struct stmmac_axi), GFP_KERNEL);
>>>> +
>>>> +        if (!plat_dat->axi)
>>>> +            return -ENOMEM;
>>>> +    }
>>>> +
>>>> +    plat_dat->axi->axi_lpi_en = of_property_read_bool(np, "snps,en-lpi");
>>>> +    if (of_property_read_u32(np, "snps,write-requests",
>>>> +                 &plat_dat->axi->axi_wr_osr_lmt)) {
>>>> +        /**
>>>> +         * Since the register has a reset value of 1, if property
>>>> +         * is missing, default to 1.
>>>> +         */
>>>> +        plat_dat->axi->axi_wr_osr_lmt = 1;
>>>> +    } else {
>>>> +        /**
>>>> +         * If property exists, to keep the behavior from dwc_eth_qos,
>>>> +         * subtract one after parsing.
>>>> +         */
>>>> +        plat_dat->axi->axi_wr_osr_lmt--;
>>>> +    }
>>>> +
>>>> +    if (of_property_read_u32(np, "read,read-requests",
>>>> +                 &plat_dat->axi->axi_rd_osr_lmt)) {
>>>> +        /**
>>>> +         * Since the register has a reset value of 1, if property
>>>> +         * is missing, default to 1.
>>>> +         */
>>>> +        plat_dat->axi->axi_rd_osr_lmt = 1;
>>>> +    } else {
>>>> +        /**
>>>> +         * If property exists, to keep the behavior from dwc_eth_qos,
>>>> +         * subtract one after parsing.
>>>> +         */
>>>> +        plat_dat->axi->axi_rd_osr_lmt--;
>>>> +    }
>>>> +    of_property_read_u32(np, "snps,burst-map", &burst_map);
>>>> +
>>>> +    /* converts burst-map bitmask to burst array */
>>>> +    for (bit_index = 0; bit_index < 7; bit_index++) {
>>>> +        if (burst_map & (1 << bit_index)) {
>>>> +            switch (bit_index) {
>>>> +            case 0:
>>>> +            plat_dat->axi->axi_blen[a_index] = 4; break;
>>>> +            case 1:
>>>> +            plat_dat->axi->axi_blen[a_index] = 8; break;
>>>> +            case 2:
>>>> +            plat_dat->axi->axi_blen[a_index] = 16; break;
>>>> +            case 3:
>>>> +            plat_dat->axi->axi_blen[a_index] = 32; break;
>>>> +            case 4:
>>>> +            plat_dat->axi->axi_blen[a_index] = 64; break;
>>>> +            case 5:
>>>> +            plat_dat->axi->axi_blen[a_index] = 128; break;
>>>> +            case 6:
>>>> +            plat_dat->axi->axi_blen[a_index] = 256; break;
>>>> +            default:
>>>> +            break;
>>>> +            }
>>>> +            a_index++;
>>>> +        }
>>>> +    }
>>>> +
>>>> +    /* dwc-qos needs GMAC4, AAL, TSO and PMT */
>>>> +    plat_dat->has_gmac4 = 1;
>>>> +    plat_dat->dma_cfg->aal = 1;
>>>> +    plat_dat->tso_en = 1;
>>>> +    plat_dat->pmt = 1;
>>>> +
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +static int dwc_eth_dwmac_probe(struct platform_device *pdev)
>>>> +{
>>>> +    struct plat_stmmacenet_data *plat_dat;
>>>> +    struct stmmac_resources stmmac_res;
>>>> +    struct resource *res;
>>>> +    int ret;
>>>> +
>>>> +    /**
>>>> +     * Since stmmac_platform supports name IRQ only, basic platform
>>>> +     * resource initialization is done in the glue logic.
>>>> +     */
>>>> +    stmmac_res.irq = platform_get_irq(pdev, 0);
>>>> +    if (stmmac_res.irq < 0) {
>>>> +        if (stmmac_res.irq != -EPROBE_DEFER) {
>>>> +            dev_err(&pdev->dev,
>>>> +                "IRQ configuration information not found\n");
>>>> +        }
>>>> +        return stmmac_res.irq;
>>>> +    }
>>>> +    stmmac_res.wol_irq = stmmac_res.irq;
>>>> +
>>>> +    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>>>> +    stmmac_res.addr = devm_ioremap_resource(&pdev->dev, res);
>>>> +    if (IS_ERR(stmmac_res.addr))
>>>> +        return PTR_ERR(stmmac_res.addr);
>>>> +
>>>> +    plat_dat = stmmac_probe_config_dt(pdev, &stmmac_res.mac);
>>>> +    if (IS_ERR(plat_dat))
>>>> +        return PTR_ERR(plat_dat);
>>>> +
>>>> +    plat_dat->stmmac_clk = devm_clk_get(&pdev->dev, "apb_pclk");
>>>> +    if (IS_ERR(plat_dat->stmmac_clk)) {
>>>> +        dev_err(&pdev->dev, "apb_pclk clock not found.\n");
>>>> +        ret = PTR_ERR(plat_dat->stmmac_clk);
>>>> +        plat_dat->stmmac_clk = NULL;
>>>> +        goto err_remove_config_dt;
>>>> +    }
>>>> +    clk_prepare_enable(plat_dat->stmmac_clk);
>>>> +
>>>> +    plat_dat->pclk = devm_clk_get(&pdev->dev, "phy_ref_clk");
>>>> +    if (IS_ERR(plat_dat->pclk)) {
>>>> +        dev_err(&pdev->dev, "phy_ref_clk clock not found.\n");
>>>> +        ret = PTR_ERR(plat_dat->pclk);
>>>> +        plat_dat->pclk = NULL;
>>>> +        goto err_out_clk_dis_phy;
>>>> +    }
>>>> +    clk_prepare_enable(plat_dat->pclk);
>>>> +
>>>> +    ret = dwc_eth_dwmac_config_dt(pdev, plat_dat);
>>>> +    if (ret)
>>>> +        goto err_out_clk_dis_aper;
>>>> +
>>>> +    ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
>>>> +    if (ret)
>>>> +        goto err_out_clk_dis_aper;
>>>> +
>>>> +    return 0;
>>>> +
>>>> +err_out_clk_dis_aper:
>>>> +    clk_disable_unprepare(plat_dat->pclk);
>>>> +err_out_clk_dis_phy:
>>>> +    clk_disable_unprepare(plat_dat->stmmac_clk);
>>>> +err_remove_config_dt:
>>>> +    stmmac_remove_config_dt(pdev, plat_dat);
>>>> +
>>>> +    return ret;
>>>> +}
>>>> +
>>>> +static int dwc_eth_dwmac_remove(struct platform_device *pdev)
>>>> +{
>>>> +    return stmmac_pltfr_remove(pdev);
>>>> +}
>>>> +
>>>> +static const struct of_device_id dwc_eth_dwmac_match[] = {
>>>> +    { .compatible = "snps,dwc-qos-ethernet-4.10", },
>>>> +    { }
>>>> +};
>>>> +MODULE_DEVICE_TABLE(of, dwc_eth_dwmac_match);
>>>> +
>>>> +static struct platform_driver dwc_eth_dwmac_driver = {
>>>> +    .probe  = dwc_eth_dwmac_probe,
>>>> +    .remove = dwc_eth_dwmac_remove,
>>>> +    .driver = {
>>>> +        .name           = "dwc-eth-dwmac",
>>>> +        .of_match_table = dwc_eth_dwmac_match,
>>>> +    },
>>>> +};
>>>> +module_platform_driver(dwc_eth_dwmac_driver);
>>>> +
>>>> +MODULE_AUTHOR("Joao Pinto <jpinto@synopsys.com>");
>>>> +MODULE_DESCRIPTION("Synopsys DWC Ethernet Quality-of-Service v4.10a driver");
>>>> +MODULE_LICENSE("GPL v2");
>>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>>> b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>>> index 4e44f9c..00c0f8d 100644
>>>> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>>> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>>> @@ -181,10 +181,19 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data
>>>> *plat,
>>>>          mdio = false;
>>>>      }
>>>>
>>>> -    /* If snps,dwmac-mdio is passed from DT, always register the MDIO */
>>>> -    for_each_child_of_node(np, plat->mdio_node) {
>>>> -        if (of_device_is_compatible(plat->mdio_node, "snps,dwmac-mdio"))
>>>> +    /* exception for dwmac-dwc-qos-eth glue logic */
>>>> +    if (of_device_is_compatible(np, "snps,dwc-qos-ethernet-4.10")) {
>>>> +        plat->mdio_node = of_get_child_by_name(np, "mdio");
>>>> +    } else {
>>>> +        /**
>>>> +         * If snps,dwmac-mdio is passed from DT, always register
>>>> +         * the MDIO
>>>> +         */
>>>> +        for_each_child_of_node(np, plat->mdio_node) {
>>>> +            if (of_device_is_compatible(plat->mdio_node,
>>>> +                            "snps,dwmac-mdio"))
>>>>              break;
>>>> +        }
>>>>      }
>>>>
>>>>      if (plat->mdio_node) {
>>>>
>>

^ permalink raw reply

* Re: [PATCH net-next v4 0/4] Fix OdroidC2 Gigabit Tx link issue
From: Jerome Brunet @ 2017-01-06 13:50 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Andrew Lunn, Florian Fainelli, Alexandre TORGUE, Neil Armstrong,
	Martin Blumenstingl, netdev, Giuseppe Cavallaro, linux-kernel,
	Yegor Yefremov, Julia Lawall, devicetree, Andre Roth,
	Kevin Hilman, Carlo Caione, linux-amlogic, Andreas Färber,
	linux-arm-kernel
In-Reply-To: <20170106114226.GX14217@n2100.armlinux.org.uk>

On Fri, 2017-01-06 at 11:42 +0000, Russell King - ARM Linux wrote:
> On Fri, Jan 06, 2017 at 11:11:36AM +0100, Jerome Brunet wrote:
> > 
> > The purpose of this patch is to provide a way to mark as broken a
> > particular eee mode. At first, it had nothing to do with "set_eee"
> > but,
> > as Florian rightly pointed out, users shouldn't be able to re-
> > enable a
> > broken mode.
> 
> I think something else has been missed - I don't see much point to
> telling userspace that (eg) 1000baseT EEE is supported and then
> ignore attempts to advertise it.
> 
> If it's broken, then arguably the hardware doesn't support the mode,
> so we should really be masking those bits from the EEE supported mask
> as well.

indeed.

> 
> > 
[...]
> 
> > 
> > > 
> > >  - maybe the problem here is that the PCS doesn't support support
> > > EEE in 1000baseT mode?
> > 
> > 
> > It does, and that's kind of the problem. EEE in ON for 100Tx and
> > 1000T
> > by default with this PHY. I have several platform with the same
> > MAC-PHY 
> > combination. Only the OdroidC2 shows this particular issue with
> > 1000T-
> > EEE
> > 
> > As explained in other mails in this thread. The problem does not
> > come
> > from the MAC entering LPI. It actually comes from the link partner
> > entering LPI on the Rx path under significant Tx transfer. For some
> > reason, this completely mess up our PHY.
> 
> For a 1000baseT link to enter low power, both ends have to enter LPI
> (see 802.3 78.1.3.3.1) - the Tx and Rx paths can't independently
> enter
> LPI.
> 
> So, if you have a busy Tx link, the link itself can't be entering
> LPI.
> Your link partner may be sending a request to enter LPI due to its
> own
> Tx path being idle, which should then be forwarded to your MAC.
> 
> It's pretty hard to see what could be messed up with that - I'd have
> expected the problems to occur when both ends were idle and the link
> had entered low power mode.

Well, maybe I'm not explaining the issue very well. Here the test done
which led me to this conclusion:

The test are done using iperf. Receiving data works well, with the
expected performance. Sending data is the problem, and only under high
load:

Here are the lpi stats before starting the test:
     irq_tx_path_in_lpi_mode_n: 6
     irq_tx_path_exit_lpi_mode_n: 5
     irq_rx_path_in_lpi_mode_n: 76
     irq_rx_path_exit_lpi_mode_n: 75
     phy_eee_wakeup_error_n: 0

Sending data with iperf usually works for little while (between 0 and
10s)

# iperf3 -c 192.168.1.170 -p12345
Connecting to host 192.168.1.170, port 12345
local 192.168.1.30 port 54450 connected to 192.168.1.170 port 12345
Interval           Transfer     Bandwidth       Retr  Cwnd
0.00-1.00   sec   112 MBytes   938 Mbits/sec    0    409 KBytes       
1.00-2.00   sec   112 MBytes   940 Mbits/sec    0    426 KBytes       
2.00-3.00   sec   112 MBytes   939 Mbits/sec    0    426 KBytes       
3.00-4.00   sec   112 MBytes   940 Mbits/sec    0    426 KBytes       
4.00-5.00   sec   112 MBytes   940 Mbits/sec    0    426 KBytes       
5.00-6.00   sec   112 MBytes   939 Mbits/sec    0    426 KBytes       
6.00-7.00   sec  9.26 MBytes  77.6 Mbits/sec    2   1.41 KBytes <=Issue
   
7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes       
8.00-9.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes       
^C10.00-13.58  sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
Interval           Transfer     Bandwidth       Retr
0.00-13.58  sec   681 MBytes   421 Mbits/sec    4             sender
0.00-13.58  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated

iperf3 does not exit ant the link seems completely broken. We cannot
send or receive until the interface is brought down then up again.

Here are the LPI related stats after the test:
     irq_tx_path_in_lpi_mode_n: 48
     irq_tx_path_exit_lpi_mode_n: 48
     irq_rx_path_in_lpi_mode_n: 325
     irq_rx_path_exit_lpi_mode_n: 325
     phy_eee_wakeup_error_n: 0


This happens with :
1) Default configuration: EEE enabled on the MAC, PHY with reset
settings (EEE advertised)
2) EEE disabled on the MAC, PHY still with reset settings (EEE
advertised). In such case there is no irq_tx_path_*_lpi_mode interrupts
at all but still a lot of irq_rx_path_*_lpi_mode interrupts. So even if
the mac does not drive anything EEE related, there is still something
happening between the PHY and the link partner regarding EEE.

3) Disabling EEE advertisement for 1000t: no irq_*_lpi_mode at all. The
feature is not negotiated and the Tx works well.

By the way, EEE work well for the 100tx on the same HW.

> 
> > 
> > > 
> > > On the SolidRun boards, they're using AR8035, and have suffered
> > > this
> > > occasional link drop problem.  What has been found is that it
> > > seems
> > > to
> > > be to do with the timing parameters, and it seemed to only be
> > > 1000bT
> > > that was affected.  I don't remember off hand exactly which or
> > > what
> > > the change was they made to stabilise it though, but I can
> > > probabily
> > > find out tomorrow.
> > > 
> > 
> > Since the same combination of MAC-PHY works well on other designs,
> > it
> > is also my feeling that is has something to do with some timing
> > parameter, maybe related to this particular PCB.
> 
> Maybe a different PHY interface?  Meson seems to use RGMII, maybe
> others use SGMII - but then I'd expect 100base-Tx to also be broken.
> So not really sure.

Nope, same interface (RGMII), same SoC. Only the PCB layout and
external components might be different.

> 
> I was talking to Florian about that last night, because the mis-named
> phy_init_eee() tests for various phy interface modes before
> proceeding,
> which seems to be fairly rubbish as the list of interface modes is
> gradually increasing since it was introduced (and I need to add SGMII
> to it.)  The conclusion I've come to there is that the test should
> never have been part of phylib, because if there are restrictions on
> which phy interface modes are allowable for EEE, they're likely to be
> either PHY or MAC specific.
> 
> The other problem that having the test there causes is that if the
> existing users can't handle EEE over SGMII, then when I add SGMII to
> support my hardware, they end up breaking - far from desirable.
> There's no information on why the test is there, or even which PHYs
> or MACs it's applicable to, which makes this unnecessarily more
> difficult to now resolve.
> 
> My feeling is that the integration of EEE into phylib is fairly poor
> at the moment, and we need to be a lot smarter about it.

You know a lot more than I do on this topic obviously. I'm just trying
to make GbE work (as cleanly as possible) on that board to be honest.

So I'm not sure I understand, are you against EEE integration in phylib
entirely, or specifically against the test I added in set_eee to filter
out broken modes ?

Since set_eee directly set the register, I don't see where else I could
have put this test to prevent EEE broken modes from being re-enabled.

> 
> BTW, one of the problems (not caused by your patch) is that changing
> the EEE advertisment does not (on all PHY drivers) cause the link to
> be renegotiated - there's no call to phy_start_aneg() when the advert
> changes, and even if there was, there's no guarantee that
> phy_start_aneg() will even set the AN restart bit in the control
> register.
> 
> However, given that you're hooking into the set_eee function, I'm not
> sure why you placed your EEE advertisment thing into config_aneg() -
> isn't it more an initialisation thing (so should be in
> config_init()?)

What I change is what the PHY advertise, so it seems logical to do it
where "genphy_config_advert" was called. Just taking the existing code
as an example

> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH net-next] bridge: multicast to unicast
From: Felix Fietkau @ 2017-01-06 13:52 UTC (permalink / raw)
  To: Johannes Berg, Linus Lüssing, netdev
  Cc: David S . Miller, Stephen Hemminger, bridge, linux-kernel,
	linux-wireless, Michael Braun
In-Reply-To: <1483706872.4089.8.camel@sipsolutions.net>

On 2017-01-06 13:47, Johannes Berg wrote:
> On Mon, 2017-01-02 at 20:32 +0100, Linus Lüssing wrote:
>> Implements an optional, per bridge port flag and feature to deliver
>> multicast packets to any host on the according port via unicast
>> individually. This is done by copying the packet per host and
>> changing the multicast destination MAC to a unicast one accordingly.
> 
> How does this compare and/or relate to the multicast-to-unicast feature
> we were going to add to the wifi stack, particularly mac80211? Do we
> perhaps not need that feature at all, if bridging will have it?
> 
> I suppose that the feature there could apply also to locally generated
> traffic when the AP interface isn't in a bridge, but I think I could
> live with requiring the AP to be put into a bridge to achieve a similar
> configuration?
> 
> Additionally, on an unrelated note, this seems to apply generically to
> all kinds of frames, losing information by replacing the address.
> Shouldn't it have similar limitations as the wifi stack feature has
> then, like only applying to ARP, IPv4, IPv6 and not general protocols?
> 
> Also, it should probably come with the same caveat as we documented for
> the wifi feature:
> 
>     Note that this may break certain expectations of the receiver,
>     such as the ability to drop unicast IP packets received within
>     multicast L2 frames, or the ability to not send ICMP destination
>     unreachable messages for packets received in L2 multicast (which
>     is required, but the receiver can't tell the difference if this
>     new option is enabled.)
> 
> 
> I'll hold off sending my tree in until we see that we really need both
> features, or decide that we want the wifi feature *instead* of the
> bridge feature.
The bridge layer can use IGMP snooping to ensure that the multicast
stream is only transmitted to clients that are actually a member of the
group. Can the mac80211 feature do the same?

- Felix

^ permalink raw reply

* Re: [PATCH net-next] bridge: multicast to unicast
From: Johannes Berg @ 2017-01-06 13:54 UTC (permalink / raw)
  To: Felix Fietkau, Linus Lüssing, netdev
  Cc: bridge, linux-wireless, linux-kernel, David S . Miller,
	Michael Braun
In-Reply-To: <8836daaa-9638-4502-d079-fd428595f822@nbd.name>


> The bridge layer can use IGMP snooping to ensure that the multicast
> stream is only transmitted to clients that are actually a member of
> the group. Can the mac80211 feature do the same?

No, it'll convert the packet for all clients that are behind that
netdev. But that's an argument for dropping the mac80211 feature, which
hasn't been merged upstream yet, no?

johannes

^ permalink raw reply

* Re: [PATCH net-next] bridge: multicast to unicast
From: Felix Fietkau @ 2017-01-06 13:54 UTC (permalink / raw)
  To: Johannes Berg, Linus Lüssing, netdev
  Cc: David S . Miller, Stephen Hemminger, bridge, linux-kernel,
	linux-wireless, Michael Braun
In-Reply-To: <1483710841.12677.1.camel@sipsolutions.net>

On 2017-01-06 14:54, Johannes Berg wrote:
> 
>> The bridge layer can use IGMP snooping to ensure that the multicast
>> stream is only transmitted to clients that are actually a member of
>> the group. Can the mac80211 feature do the same?
> 
> No, it'll convert the packet for all clients that are behind that
> netdev. But that's an argument for dropping the mac80211 feature, which
> hasn't been merged upstream yet, no?
Right.

- Felix

^ permalink raw reply

* Re: [PATCHv2 net-next 1/3] sctp: add stream arrays in asoc
From: Xin Long @ 2017-01-06 13:57 UTC (permalink / raw)
  To: Marcelo Ricardo Leitner
  Cc: network dev, linux-sctp, Neil Horman, Vlad Yasevich, davem
In-Reply-To: <20170104133905.GA3781@localhost.localdomain>

On Wed, Jan 4, 2017 at 9:39 PM, Marcelo Ricardo Leitner
<marcelo.leitner@gmail.com> wrote:
> On Tue, Jan 03, 2017 at 01:59:46PM +0800, Xin Long wrote:
>> This patch is to add streamout and streamin arrays in asoc, initialize
>> them in sctp_process_init and free them in sctp_association_free.
>>
>> Stream arrays are used to replace ssnmap to save more stream things in
>> the next patch.
>>
>> Signed-off-by: Xin Long <lucien.xin@gmail.com>
>> ---
>>  include/net/sctp/structs.h | 18 ++++++++++++++++++
>>  net/sctp/associola.c       | 19 +++++++++++++++++++
>>  net/sctp/sm_make_chunk.c   | 17 ++++++++++++++++-
>>  3 files changed, 53 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
>> index 87d56cc..549f17d 100644
>> --- a/include/net/sctp/structs.h
>> +++ b/include/net/sctp/structs.h
>> @@ -1331,6 +1331,18 @@ struct sctp_inithdr_host {
>>       __u32 initial_tsn;
>>  };
>>
>> +struct sctp_stream_out {
>> +     __u16   ssn;
>> +     __u8    state;
>> +};
>> +
>> +struct sctp_stream_in {
>> +     __u16   ssn;
>> +};
>> +
>> +#define SCTP_STREAM_CLOSED           0x00
>> +#define SCTP_STREAM_OPEN             0x01
>> +
>>  /* SCTP_GET_ASSOC_STATS counters */
>>  struct sctp_priv_assoc_stats {
>>       /* Maximum observed rto in the association during subsequent
>> @@ -1879,6 +1891,12 @@ struct sctp_association {
>>            temp:1,            /* Is it a temporary association? */
>>            prsctp_enable:1;
>>
>> +     /* stream arrays */
>> +     struct sctp_stream_out *streamout;
>> +     struct sctp_stream_in *streamin;
>> +     __u16 streamoutcnt;
>> +     __u16 streamincnt;
>> +
>>       struct sctp_priv_assoc_stats stats;
>>
>>       int sent_cnt_removable;
>> diff --git a/net/sctp/associola.c b/net/sctp/associola.c
>> index d3cc30c..290ec4d 100644
>> --- a/net/sctp/associola.c
>> +++ b/net/sctp/associola.c
>> @@ -361,6 +361,10 @@ void sctp_association_free(struct sctp_association *asoc)
>>       /* Free ssnmap storage. */
>>       sctp_ssnmap_free(asoc->ssnmap);
>>
>> +     /* Free stream information. */
>> +     kfree(asoc->streamout);
>> +     kfree(asoc->streamin);
>> +
>>       /* Clean up the bound address list. */
>>       sctp_bind_addr_free(&asoc->base.bind_addr);
>>
>> @@ -1130,6 +1134,8 @@ void sctp_assoc_update(struct sctp_association *asoc,
>>        * has been discarded and needs retransmission.
>>        */
>>       if (asoc->state >= SCTP_STATE_ESTABLISHED) {
>> +             int i;
>> +
>>               asoc->next_tsn = new->next_tsn;
>>               asoc->ctsn_ack_point = new->ctsn_ack_point;
>>               asoc->adv_peer_ack_point = new->adv_peer_ack_point;
>> @@ -1139,6 +1145,12 @@ void sctp_assoc_update(struct sctp_association *asoc,
>>                */
>>               sctp_ssnmap_clear(asoc->ssnmap);
>>
>> +             for (i = 0; i < asoc->streamoutcnt; i++)
>> +                     asoc->streamout[i].ssn = 0;
>> +
>> +             for (i = 0; i < asoc->streamincnt; i++)
>> +                     asoc->streamin[i].ssn = 0;
>> +
>>               /* Flush the ULP reassembly and ordered queue.
>>                * Any data there will now be stale and will
>>                * cause problems.
>> @@ -1168,6 +1180,13 @@ void sctp_assoc_update(struct sctp_association *asoc,
>>                       new->ssnmap = NULL;
>>               }
>>
>> +             if (!asoc->streamin && !asoc->streamout) {
>> +                     asoc->streamout = new->streamout;
>> +                     asoc->streamin = new->streamin;
>> +                     new->streamout = NULL;
>> +                     new->streamin = NULL;
>> +             }
>> +
>>               if (!asoc->assoc_id) {
>>                       /* get a new association id since we don't have one
>>                        * yet.
>> diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
>> index 9e9690b..eeadeef 100644
>> --- a/net/sctp/sm_make_chunk.c
>> +++ b/net/sctp/sm_make_chunk.c
>> @@ -2442,13 +2442,28 @@ int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk,
>>        * association.
>>        */
>>       if (!asoc->temp) {
>> -             int error;
>> +             int error, i;
>> +
>> +             asoc->streamoutcnt = asoc->c.sinit_num_ostreams;
>> +             asoc->streamincnt = asoc->c.sinit_max_instreams;
>>
>>               asoc->ssnmap = sctp_ssnmap_new(asoc->c.sinit_max_instreams,
>>                                              asoc->c.sinit_num_ostreams, gfp);
>>               if (!asoc->ssnmap)
>>                       goto clean_up;
>>
>> +             asoc->streamout = kcalloc(asoc->streamoutcnt,
>> +                                       sizeof(*asoc->streamout), gfp);
>> +             if (!asoc->streamout)
>> +                     goto clean_up;
>> +             for (i = 0; i < asoc->streamoutcnt; i++)
>> +                     asoc->streamout[i].state = SCTP_STREAM_OPEN;
>> +
>> +             asoc->streamin = kcalloc(asoc->streamincnt,
>> +                                      sizeof(*asoc->streamin), gfp);
>> +             if (!asoc->streamin)
>> +                     goto clean_up;
>> +
>
> Xin, I understand the need to remove the 'ssnmap' term from the charts
> here as it will be, but lets try to put all the inner details of stream
> handling in a dedicated file.
>
> On the original patchset you were creating stream.c for RFC 6525 stuff.
> We probably can create it earlier and concentrate everything
> stream-related in there, so we keep it more contained. Thanks
will improve and repost.

>
>
>>               error = sctp_assoc_set_id(asoc, gfp);
>>               if (error)
>>                       goto clean_up;
>> --
>> 2.1.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-sctp" 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

* [PATCH net-next] cxgb4: Add port description for new cards.
From: Ganesh Goudar @ 2017-01-06 11:22 UTC (permalink / raw)
  To: netdev, davem; +Cc: nirranjan, hariprasad, Ganesh Goudar

Add port description for 25G and 100G cards, and also
change few port descriptions in compliance with the new
naming convention.

Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
---
 drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
index cd5f437..8862fbd 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
@@ -5382,22 +5382,28 @@ unsigned int t4_get_mps_bg_map(struct adapter *adap, int idx)
 const char *t4_get_port_type_description(enum fw_port_type port_type)
 {
 	static const char *const port_type_description[] = {
-		"R XFI",
-		"R XAUI",
-		"T SGMII",
-		"T XFI",
-		"T XAUI",
+		"Fiber_XFI",
+		"Fiber_XAUI",
+		"BT_SGMII",
+		"BT_XFI",
+		"BT_XAUI",
 		"KX4",
 		"CX4",
 		"KX",
 		"KR",
-		"R SFP+",
-		"KR/KX",
-		"KR/KX/KX4",
-		"R QSFP_10G",
-		"R QSA",
-		"R QSFP",
-		"R BP40_BA",
+		"SFP",
+		"BP_AP",
+		"BP4_AP",
+		"QSFP_10G",
+		"QSA",
+		"QSFP",
+		"BP40_BA",
+		"KR4_100G",
+		"CR4_QSFP",
+		"CR_QSFP",
+		"CR2_QSFP",
+		"SFP28",
+		"KR_SFP28",
 	};
 
 	if (port_type < ARRAY_SIZE(port_type_description))
-- 
2.1.0

^ permalink raw reply related

* [PATCHv3 net-next] sctp: prepare asoc stream for stream reconf
From: Xin Long @ 2017-01-06 14:18 UTC (permalink / raw)
  To: network dev, linux-sctp
  Cc: Marcelo Ricardo Leitner, Neil Horman, Vlad Yasevich, davem

sctp stream reconf, described in RFC 6525, needs a structure to
save per stream information in assoc, like stream state.

In the future, sctp stream scheduler also needs it to save some
stream scheduler params and queues.

This patchset is to prepare the stream array in assoc for stream
reconf. It defines sctp_stream that includes stream arrays inside
to replace ssnmap.

Note that we use different structures for IN and OUT streams, as
the members in per OUT stream will get more and more different
from per IN stream.

v1->v2:
  - put these patches into a smaller group.
v2->v3:
  - define sctp_stream to contain stream arrays, and create stream.c
    to put stream-related functions.
  - merge 3 patches into 1, as new sctp_stream has the same name
    with before.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
 include/net/sctp/sctp.h    |   1 -
 include/net/sctp/structs.h |  76 +++++++++++----------------
 net/sctp/Makefile          |   2 +-
 net/sctp/associola.c       |  13 +++--
 net/sctp/objcnt.c          |   2 -
 net/sctp/sm_make_chunk.c   |  10 ++--
 net/sctp/sm_statefuns.c    |   3 +-
 net/sctp/ssnmap.c          | 125 ---------------------------------------------
 net/sctp/stream.c          |  85 ++++++++++++++++++++++++++++++
 net/sctp/ulpqueue.c        |  36 ++++++-------
 10 files changed, 147 insertions(+), 206 deletions(-)
 delete mode 100644 net/sctp/ssnmap.c
 create mode 100644 net/sctp/stream.c

diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index d8833a8..598d938 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -283,7 +283,6 @@ extern atomic_t sctp_dbg_objcnt_chunk;
 extern atomic_t sctp_dbg_objcnt_bind_addr;
 extern atomic_t sctp_dbg_objcnt_bind_bucket;
 extern atomic_t sctp_dbg_objcnt_addr;
-extern atomic_t sctp_dbg_objcnt_ssnmap;
 extern atomic_t sctp_dbg_objcnt_datamsg;
 extern atomic_t sctp_dbg_objcnt_keys;
 
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 87d56cc..4741ec2 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -82,7 +82,6 @@ struct sctp_outq;
 struct sctp_bind_addr;
 struct sctp_ulpq;
 struct sctp_ep_common;
-struct sctp_ssnmap;
 struct crypto_shash;
 
 
@@ -377,54 +376,22 @@ typedef struct sctp_sender_hb_info {
 	__u64 hb_nonce;
 } __packed sctp_sender_hb_info_t;
 
-/*
- *  RFC 2960 1.3.2 Sequenced Delivery within Streams
- *
- *  The term "stream" is used in SCTP to refer to a sequence of user
- *  messages that are to be delivered to the upper-layer protocol in
- *  order with respect to other messages within the same stream.  This is
- *  in contrast to its usage in TCP, where it refers to a sequence of
- *  bytes (in this document a byte is assumed to be eight bits).
- *  ...
- *
- *  This is the structure we use to track both our outbound and inbound
- *  SSN, or Stream Sequence Numbers.
- */
-
-struct sctp_stream {
-	__u16 *ssn;
-	unsigned int len;
-};
-
-struct sctp_ssnmap {
-	struct sctp_stream in;
-	struct sctp_stream out;
-};
-
-struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
-				    gfp_t gfp);
-void sctp_ssnmap_free(struct sctp_ssnmap *map);
-void sctp_ssnmap_clear(struct sctp_ssnmap *map);
+struct sctp_stream *sctp_stream_new(__u16 incnt, __u16 outcnt, gfp_t gfp);
+void sctp_stream_free(struct sctp_stream *stream);
+void sctp_stream_clear(struct sctp_stream *stream);
 
 /* What is the current SSN number for this stream? */
-static inline __u16 sctp_ssn_peek(struct sctp_stream *stream, __u16 id)
-{
-	return stream->ssn[id];
-}
+#define sctp_ssn_peek(stream, type, sid) \
+	((stream)->type[sid].ssn)
 
 /* Return the next SSN number for this stream.	*/
-static inline __u16 sctp_ssn_next(struct sctp_stream *stream, __u16 id)
-{
-	return stream->ssn[id]++;
-}
+#define sctp_ssn_next(stream, type, sid) \
+	((stream)->type[sid].ssn++)
 
 /* Skip over this ssn and all below. */
-static inline void sctp_ssn_skip(struct sctp_stream *stream, __u16 id, 
-				 __u16 ssn)
-{
-	stream->ssn[id] = ssn+1;
-}
-              
+#define sctp_ssn_skip(stream, type, sid, ssn) \
+	((stream)->type[sid].ssn = ssn + 1)
+
 /*
  * Pointers to address related SCTP functions.
  * (i.e. things that depend on the address family.)
@@ -1331,6 +1298,25 @@ struct sctp_inithdr_host {
 	__u32 initial_tsn;
 };
 
+struct sctp_stream_out {
+	__u16	ssn;
+	__u8	state;
+};
+
+struct sctp_stream_in {
+	__u16	ssn;
+};
+
+struct sctp_stream {
+	struct sctp_stream_out *out;
+	struct sctp_stream_in *in;
+	__u16 outcnt;
+	__u16 incnt;
+};
+
+#define SCTP_STREAM_CLOSED		0x00
+#define SCTP_STREAM_OPEN		0x01
+
 /* SCTP_GET_ASSOC_STATS counters */
 struct sctp_priv_assoc_stats {
 	/* Maximum observed rto in the association during subsequent
@@ -1746,8 +1732,8 @@ struct sctp_association {
 	/* Default receive parameters */
 	__u32 default_rcv_context;
 
-	/* This tracks outbound ssn for a given stream.	 */
-	struct sctp_ssnmap *ssnmap;
+	/* Stream arrays */
+	struct sctp_stream *stream;
 
 	/* All outbound chunks go through this structure.  */
 	struct sctp_outq outqueue;
diff --git a/net/sctp/Makefile b/net/sctp/Makefile
index 6c4f749..70f1b57 100644
--- a/net/sctp/Makefile
+++ b/net/sctp/Makefile
@@ -11,7 +11,7 @@ sctp-y := sm_statetable.o sm_statefuns.o sm_sideeffect.o \
 	  transport.o chunk.o sm_make_chunk.o ulpevent.o \
 	  inqueue.o outqueue.o ulpqueue.o \
 	  tsnmap.o bind_addr.o socket.o primitive.o \
-	  output.o input.o debug.o ssnmap.o auth.o \
+	  output.o input.o debug.o stream.o auth.o \
 	  offload.o
 
 sctp_probe-y := probe.o
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index d3cc30c..36294f7 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -358,8 +358,8 @@ void sctp_association_free(struct sctp_association *asoc)
 
 	sctp_tsnmap_free(&asoc->peer.tsn_map);
 
-	/* Free ssnmap storage. */
-	sctp_ssnmap_free(asoc->ssnmap);
+	/* Free stream information. */
+	sctp_stream_free(asoc->stream);
 
 	/* Clean up the bound address list. */
 	sctp_bind_addr_free(&asoc->base.bind_addr);
@@ -1137,7 +1137,7 @@ void sctp_assoc_update(struct sctp_association *asoc,
 		/* Reinitialize SSN for both local streams
 		 * and peer's streams.
 		 */
-		sctp_ssnmap_clear(asoc->ssnmap);
+		sctp_stream_clear(asoc->stream);
 
 		/* Flush the ULP reassembly and ordered queue.
 		 * Any data there will now be stale and will
@@ -1162,10 +1162,9 @@ void sctp_assoc_update(struct sctp_association *asoc,
 
 		asoc->ctsn_ack_point = asoc->next_tsn - 1;
 		asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
-		if (!asoc->ssnmap) {
-			/* Move the ssnmap. */
-			asoc->ssnmap = new->ssnmap;
-			new->ssnmap = NULL;
+		if (!asoc->stream) {
+			asoc->stream = new->stream;
+			new->stream = NULL;
 		}
 
 		if (!asoc->assoc_id) {
diff --git a/net/sctp/objcnt.c b/net/sctp/objcnt.c
index 40e7fac..105ac33 100644
--- a/net/sctp/objcnt.c
+++ b/net/sctp/objcnt.c
@@ -51,7 +51,6 @@ SCTP_DBG_OBJCNT(bind_addr);
 SCTP_DBG_OBJCNT(bind_bucket);
 SCTP_DBG_OBJCNT(chunk);
 SCTP_DBG_OBJCNT(addr);
-SCTP_DBG_OBJCNT(ssnmap);
 SCTP_DBG_OBJCNT(datamsg);
 SCTP_DBG_OBJCNT(keys);
 
@@ -67,7 +66,6 @@ static sctp_dbg_objcnt_entry_t sctp_dbg_objcnt[] = {
 	SCTP_DBG_OBJCNT_ENTRY(bind_addr),
 	SCTP_DBG_OBJCNT_ENTRY(bind_bucket),
 	SCTP_DBG_OBJCNT_ENTRY(addr),
-	SCTP_DBG_OBJCNT_ENTRY(ssnmap),
 	SCTP_DBG_OBJCNT_ENTRY(datamsg),
 	SCTP_DBG_OBJCNT_ENTRY(keys),
 };
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 9e9690b..a15d824 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -1536,7 +1536,7 @@ void sctp_chunk_assign_ssn(struct sctp_chunk *chunk)
 
 	/* All fragments will be on the same stream */
 	sid = ntohs(chunk->subh.data_hdr->stream);
-	stream = &chunk->asoc->ssnmap->out;
+	stream = chunk->asoc->stream;
 
 	/* Now assign the sequence number to the entire message.
 	 * All fragments must have the same stream sequence number.
@@ -1547,9 +1547,9 @@ void sctp_chunk_assign_ssn(struct sctp_chunk *chunk)
 			ssn = 0;
 		} else {
 			if (lchunk->chunk_hdr->flags & SCTP_DATA_LAST_FRAG)
-				ssn = sctp_ssn_next(stream, sid);
+				ssn = sctp_ssn_next(stream, out, sid);
 			else
-				ssn = sctp_ssn_peek(stream, sid);
+				ssn = sctp_ssn_peek(stream, out, sid);
 		}
 
 		lchunk->subh.data_hdr->ssn = htons(ssn);
@@ -2444,9 +2444,9 @@ int sctp_process_init(struct sctp_association *asoc, struct sctp_chunk *chunk,
 	if (!asoc->temp) {
 		int error;
 
-		asoc->ssnmap = sctp_ssnmap_new(asoc->c.sinit_max_instreams,
+		asoc->stream = sctp_stream_new(asoc->c.sinit_max_instreams,
 					       asoc->c.sinit_num_ostreams, gfp);
-		if (!asoc->ssnmap)
+		if (!asoc->stream)
 			goto clean_up;
 
 		error = sctp_assoc_set_id(asoc, gfp);
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 3382ef2..0ceded3 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -6274,9 +6274,8 @@ static int sctp_eat_data(const struct sctp_association *asoc,
 	 * and is invalid.
 	 */
 	ssn = ntohs(data_hdr->ssn);
-	if (ordered && SSN_lt(ssn, sctp_ssn_peek(&asoc->ssnmap->in, sid))) {
+	if (ordered && SSN_lt(ssn, sctp_ssn_peek(asoc->stream, in, sid)))
 		return SCTP_IERROR_PROTO_VIOLATION;
-	}
 
 	/* Send the data up to the user.  Note:  Schedule  the
 	 * SCTP_CMD_CHUNK_ULP cmd before the SCTP_CMD_GEN_SACK, as the SACK
diff --git a/net/sctp/ssnmap.c b/net/sctp/ssnmap.c
deleted file mode 100644
index b9c8521..0000000
--- a/net/sctp/ssnmap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* SCTP kernel implementation
- * Copyright (c) 2003 International Business Machines, Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * These functions manipulate sctp SSN tracker.
- *
- * This SCTP implementation is free software;
- * you can redistribute it and/or modify it under the terms of
- * the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This SCTP implementation is distributed in the hope that it
- * will be useful, but WITHOUT ANY WARRANTY; without even the implied
- *                 ************************
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU CC; see the file COPYING.  If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- *    lksctp developers <linux-sctp@vger.kernel.org>
- *
- * Written or modified by:
- *    Jon Grimm             <jgrimm@us.ibm.com>
- */
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <net/sctp/sctp.h>
-#include <net/sctp/sm.h>
-
-static struct sctp_ssnmap *sctp_ssnmap_init(struct sctp_ssnmap *map, __u16 in,
-					    __u16 out);
-
-/* Storage size needed for map includes 2 headers and then the
- * specific needs of in or out streams.
- */
-static inline size_t sctp_ssnmap_size(__u16 in, __u16 out)
-{
-	return sizeof(struct sctp_ssnmap) + (in + out) * sizeof(__u16);
-}
-
-
-/* Create a new sctp_ssnmap.
- * Allocate room to store at least 'len' contiguous TSNs.
- */
-struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
-				    gfp_t gfp)
-{
-	struct sctp_ssnmap *retval;
-	int size;
-
-	size = sctp_ssnmap_size(in, out);
-	if (size <= KMALLOC_MAX_SIZE)
-		retval = kmalloc(size, gfp);
-	else
-		retval = (struct sctp_ssnmap *)
-			  __get_free_pages(gfp, get_order(size));
-	if (!retval)
-		goto fail;
-
-	if (!sctp_ssnmap_init(retval, in, out))
-		goto fail_map;
-
-	SCTP_DBG_OBJCNT_INC(ssnmap);
-
-	return retval;
-
-fail_map:
-	if (size <= KMALLOC_MAX_SIZE)
-		kfree(retval);
-	else
-		free_pages((unsigned long)retval, get_order(size));
-fail:
-	return NULL;
-}
-
-
-/* Initialize a block of memory as a ssnmap.  */
-static struct sctp_ssnmap *sctp_ssnmap_init(struct sctp_ssnmap *map, __u16 in,
-					    __u16 out)
-{
-	memset(map, 0x00, sctp_ssnmap_size(in, out));
-
-	/* Start 'in' stream just after the map header. */
-	map->in.ssn = (__u16 *)&map[1];
-	map->in.len = in;
-
-	/* Start 'out' stream just after 'in'. */
-	map->out.ssn = &map->in.ssn[in];
-	map->out.len = out;
-
-	return map;
-}
-
-/* Clear out the ssnmap streams.  */
-void sctp_ssnmap_clear(struct sctp_ssnmap *map)
-{
-	size_t size;
-
-	size = (map->in.len + map->out.len) * sizeof(__u16);
-	memset(map->in.ssn, 0x00, size);
-}
-
-/* Dispose of a ssnmap.  */
-void sctp_ssnmap_free(struct sctp_ssnmap *map)
-{
-	int size;
-
-	if (unlikely(!map))
-		return;
-
-	size = sctp_ssnmap_size(map->in.len, map->out.len);
-	if (size <= KMALLOC_MAX_SIZE)
-		kfree(map);
-	else
-		free_pages((unsigned long)map, get_order(size));
-
-	SCTP_DBG_OBJCNT_DEC(ssnmap);
-}
diff --git a/net/sctp/stream.c b/net/sctp/stream.c
new file mode 100644
index 0000000..f86de43
--- /dev/null
+++ b/net/sctp/stream.c
@@ -0,0 +1,85 @@
+/* SCTP kernel implementation
+ * (C) Copyright IBM Corp. 2001, 2004
+ * Copyright (c) 1999-2000 Cisco, Inc.
+ * Copyright (c) 1999-2001 Motorola, Inc.
+ * Copyright (c) 2001 Intel Corp.
+ *
+ * This file is part of the SCTP kernel implementation
+ *
+ * These functions manipulate sctp tsn mapping array.
+ *
+ * This SCTP implementation is free software;
+ * you can redistribute it and/or modify it under the terms of
+ * the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This SCTP implementation is distributed in the hope that it
+ * will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ *                 ************************
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU CC; see the file COPYING.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Please send any bug reports or fixes you make to the
+ * email address(es):
+ *    lksctp developers <linux-sctp@vger.kernel.org>
+ *
+ * Written or modified by:
+ *    Xin Long <lucien.xin@gmail.com>
+ */
+
+#include <net/sctp/sctp.h>
+
+struct sctp_stream *sctp_stream_new(__u16 incnt, __u16 outcnt, gfp_t gfp)
+{
+	struct sctp_stream *stream;
+	int i;
+
+	stream = kzalloc(sizeof(*stream), gfp);
+	if (!stream)
+		return NULL;
+
+	stream->outcnt = outcnt;
+	stream->out = kcalloc(stream->outcnt, sizeof(*stream->out), gfp);
+	if (!stream->out) {
+		kfree(stream);
+		return NULL;
+	}
+	for (i = 0; i < stream->outcnt; i++)
+		stream->out[i].state = SCTP_STREAM_OPEN;
+
+	stream->incnt = incnt;
+	stream->in = kcalloc(stream->incnt, sizeof(*stream->in), gfp);
+	if (!stream->in) {
+		kfree(stream->out);
+		kfree(stream);
+		return NULL;
+	}
+
+	return stream;
+}
+
+void sctp_stream_free(struct sctp_stream *stream)
+{
+	if (unlikely(!stream))
+		return;
+
+	kfree(stream->out);
+	kfree(stream->in);
+	kfree(stream);
+}
+
+void sctp_stream_clear(struct sctp_stream *stream)
+{
+	int i;
+
+	for (i = 0; i < stream->outcnt; i++)
+		stream->out[i].ssn = 0;
+
+	for (i = 0; i < stream->incnt; i++)
+		stream->in[i].ssn = 0;
+}
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index 84d0fda..aa3624d 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -760,11 +760,11 @@ static void sctp_ulpq_retrieve_ordered(struct sctp_ulpq *ulpq,
 	struct sk_buff_head *event_list;
 	struct sk_buff *pos, *tmp;
 	struct sctp_ulpevent *cevent;
-	struct sctp_stream *in;
+	struct sctp_stream *stream;
 	__u16 sid, csid, cssn;
 
 	sid = event->stream;
-	in  = &ulpq->asoc->ssnmap->in;
+	stream  = ulpq->asoc->stream;
 
 	event_list = (struct sk_buff_head *) sctp_event2skb(event)->prev;
 
@@ -782,11 +782,11 @@ static void sctp_ulpq_retrieve_ordered(struct sctp_ulpq *ulpq,
 		if (csid < sid)
 			continue;
 
-		if (cssn != sctp_ssn_peek(in, sid))
+		if (cssn != sctp_ssn_peek(stream, in, sid))
 			break;
 
-		/* Found it, so mark in the ssnmap. */
-		sctp_ssn_next(in, sid);
+		/* Found it, so mark in the stream. */
+		sctp_ssn_next(stream, in, sid);
 
 		__skb_unlink(pos, &ulpq->lobby);
 
@@ -849,7 +849,7 @@ static struct sctp_ulpevent *sctp_ulpq_order(struct sctp_ulpq *ulpq,
 					     struct sctp_ulpevent *event)
 {
 	__u16 sid, ssn;
-	struct sctp_stream *in;
+	struct sctp_stream *stream;
 
 	/* Check if this message needs ordering.  */
 	if (SCTP_DATA_UNORDERED & event->msg_flags)
@@ -858,10 +858,10 @@ static struct sctp_ulpevent *sctp_ulpq_order(struct sctp_ulpq *ulpq,
 	/* Note: The stream ID must be verified before this routine.  */
 	sid = event->stream;
 	ssn = event->ssn;
-	in  = &ulpq->asoc->ssnmap->in;
+	stream  = ulpq->asoc->stream;
 
 	/* Is this the expected SSN for this stream ID?  */
-	if (ssn != sctp_ssn_peek(in, sid)) {
+	if (ssn != sctp_ssn_peek(stream, in, sid)) {
 		/* We've received something out of order, so find where it
 		 * needs to be placed.  We order by stream and then by SSN.
 		 */
@@ -870,7 +870,7 @@ static struct sctp_ulpevent *sctp_ulpq_order(struct sctp_ulpq *ulpq,
 	}
 
 	/* Mark that the next chunk has been found.  */
-	sctp_ssn_next(in, sid);
+	sctp_ssn_next(stream, in, sid);
 
 	/* Go find any other chunks that were waiting for
 	 * ordering.
@@ -888,12 +888,12 @@ static void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
 	struct sk_buff *pos, *tmp;
 	struct sctp_ulpevent *cevent;
 	struct sctp_ulpevent *event;
-	struct sctp_stream *in;
+	struct sctp_stream *stream;
 	struct sk_buff_head temp;
 	struct sk_buff_head *lobby = &ulpq->lobby;
 	__u16 csid, cssn;
 
-	in  = &ulpq->asoc->ssnmap->in;
+	stream = ulpq->asoc->stream;
 
 	/* We are holding the chunks by stream, by SSN.  */
 	skb_queue_head_init(&temp);
@@ -912,7 +912,7 @@ static void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
 			continue;
 
 		/* see if this ssn has been marked by skipping */
-		if (!SSN_lt(cssn, sctp_ssn_peek(in, csid)))
+		if (!SSN_lt(cssn, sctp_ssn_peek(stream, in, csid)))
 			break;
 
 		__skb_unlink(pos, lobby);
@@ -932,8 +932,8 @@ static void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
 		csid = cevent->stream;
 		cssn = cevent->ssn;
 
-		if (csid == sid && cssn == sctp_ssn_peek(in, csid)) {
-			sctp_ssn_next(in, csid);
+		if (csid == sid && cssn == sctp_ssn_peek(stream, in, csid)) {
+			sctp_ssn_next(stream, in, csid);
 			__skb_unlink(pos, lobby);
 			__skb_queue_tail(&temp, pos);
 			event = sctp_skb2event(pos);
@@ -955,17 +955,17 @@ static void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
  */
 void sctp_ulpq_skip(struct sctp_ulpq *ulpq, __u16 sid, __u16 ssn)
 {
-	struct sctp_stream *in;
+	struct sctp_stream *stream;
 
 	/* Note: The stream ID must be verified before this routine.  */
-	in  = &ulpq->asoc->ssnmap->in;
+	stream  = ulpq->asoc->stream;
 
 	/* Is this an old SSN?  If so ignore. */
-	if (SSN_lt(ssn, sctp_ssn_peek(in, sid)))
+	if (SSN_lt(ssn, sctp_ssn_peek(stream, in, sid)))
 		return;
 
 	/* Mark that we are no longer expecting this SSN or lower. */
-	sctp_ssn_skip(in, sid, ssn);
+	sctp_ssn_skip(stream, in, sid, ssn);
 
 	/* Go find any other chunks that were waiting for
 	 * ordering and deliver them if needed.
-- 
2.1.0

^ permalink raw reply related

* Re: [PATCHv2 net-next 05/16] net: mvpp2: introduce PPv2.2 HW descriptors and adapt accessors
From: Russell King - ARM Linux @ 2017-01-06 14:29 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Mark Rutland, devicetree, Yehuda Yitschak, Jason Cooper,
	Pawel Moll, Ian Campbell, netdev, Hanna Hawa, Nadav Haklai,
	Rob Herring, Andrew Lunn, Kumar Gala, Gregory Clement,
	Stefan Chulski, Marcin Wojtas, David S. Miller, linux-arm-kernel,
	Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-6-git-send-email-thomas.petazzoni@free-electrons.com>

On Wed, Dec 28, 2016 at 05:46:21PM +0100, Thomas Petazzoni wrote:
> This commit adds the definition of the PPv2.2 HW descriptors, adjusts
> the mvpp2_tx_desc and mvpp2_rx_desc structures accordingly, and adapts
> the accessors to work on both PPv2.1 and PPv2.2.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
...
> +		/* On PPv2.2, the situation is more complicated,
> +		 * because there is only 40 bits to store the virtual
> +		 * address, which is not sufficient. So on 64 bits
> +		 * systems, we use phys_to_virt() to get the virtual
> +		 * address from the physical address, which is fine
> +		 * because the kernel linear mapping includes the
> +		 * entire 40 bits physical address space. On 32 bits
> +		 * systems however, we can't use phys_to_virt(), but
> +		 * since virtual addresses are 32 bits only, there is
> +		 * enough space in the RX descriptor for the full
> +		 * virtual address.
> +		 */
> +#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
> +		dma_addr_t dma_addr =
> +			rx_desc->pp22.buf_phys_addr_key_hash & DMA_BIT_MASK(40);
> +		phys_addr_t phys_addr =
> +			dma_to_phys(port->dev->dev.parent, dma_addr);
> +
> +		return (unsigned long)phys_to_virt(phys_addr);
> +#else
> +		return rx_desc->pp22.buf_cookie_misc & DMA_BIT_MASK(40);
> +#endif

I'm not sure that's the best way of selecting the difference.  It seems
that the issue here is the size of the virtual address, so why not test
the size of a virtual address pointer?

		if (8 * sizeof(rx_desc) > 40) {
			/* do phys addr dance */
		} else {
			return rx_desc->pp22.buf_cookie_misc & DMA_BIT_MASK(40);
		}

It also means that we get compile coverage over both sides of the
conditional.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* Re: [PATCHv2 net-next 06/16] net: mvpp2: adjust the allocation/free of BM pools for PPv2.2
From: Russell King - ARM Linux @ 2017-01-06 14:32 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Mark Rutland, devicetree, Yehuda Yitschak, Jason Cooper,
	Pawel Moll, Ian Campbell, netdev, Hanna Hawa, Nadav Haklai,
	Rob Herring, Andrew Lunn, Kumar Gala, Gregory Clement,
	Stefan Chulski, Marcin Wojtas, David S. Miller, linux-arm-kernel,
	Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-7-git-send-email-thomas.petazzoni@free-electrons.com>

On Wed, Dec 28, 2016 at 05:46:22PM +0100, Thomas Petazzoni wrote:
> +#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
> +	if (priv->hw_version == MVPP22) {

Maybe
	if (sizeof(dma_addr_t) > sizeof(u32) && priv->hw_version == MVPP22) {

to get better compile coverage?

> +		u32 val;
> +		u32 paddr_highbits;
> +
> +		val = mvpp2_read(priv, MVPP2_BM_ADDR_HIGH_ALLOC);
> +		paddr_highbits = (val & MVPP2_BM_ADDR_HIGH_PHYS_MASK);
> +
> +		*paddr |= (dma_addr_t)paddr_highbits << 32;
> +		*vaddr = (unsigned long)phys_to_virt(dma_to_phys(dev, *paddr));
> +	}
> +#endif
> +}
> +
>  /* Free all buffers from the pool */
>  static void mvpp2_bm_bufs_free(struct device *dev, struct mvpp2 *priv,
>  			       struct mvpp2_bm_pool *bm_pool)
> @@ -3616,10 +3671,8 @@ static void mvpp2_bm_bufs_free(struct device *dev, struct mvpp2 *priv,
>  		dma_addr_t buf_phys_addr;
>  		unsigned long vaddr;
>  
> -		/* Get buffer virtual address (indirect access) */
> -		buf_phys_addr = mvpp2_read(priv,
> -					   MVPP2_BM_PHY_ALLOC_REG(bm_pool->id));
> -		vaddr = mvpp2_read(priv, MVPP2_BM_VIRT_ALLOC_REG);
> +		mvpp2_bm_bufs_get_addrs(dev, priv, bm_pool,
> +					&buf_phys_addr, &vaddr);
>  
>  		dma_unmap_single(dev, buf_phys_addr,
>  				 bm_pool->buf_size, DMA_FROM_DEVICE);
> @@ -3651,7 +3704,7 @@ static int mvpp2_bm_pool_destroy(struct platform_device *pdev,
>  	val |= MVPP2_BM_STOP_MASK;
>  	mvpp2_write(priv, MVPP2_BM_POOL_CTRL_REG(bm_pool->id), val);
>  
> -	dma_free_coherent(&pdev->dev, sizeof(u32) * bm_pool->size,
> +	dma_free_coherent(&pdev->dev, bm_pool->size_bytes,
>  			  bm_pool->virt_addr,
>  			  bm_pool->phys_addr);
>  	return 0;
> @@ -3787,8 +3840,19 @@ static inline void mvpp2_bm_pool_put(struct mvpp2_port *port, int pool,
>  				     dma_addr_t buf_phys_addr,
>  				     unsigned long buf_virt_addr)
>  {
> -	mvpp2_write(port->priv, MVPP2_BM_VIRT_RLS_REG, buf_virt_addr);
> -	mvpp2_write(port->priv, MVPP2_BM_PHY_RLS_REG(pool), buf_phys_addr);
> +#if defined(CONFIG_ARCH_DMA_ADDR_T_64BIT)
> +	u32 val;
> +
> +	val = upper_32_bits(buf_phys_addr) & MVPP22_BM_ADDR_HIGH_PHYS_RLS_MASK;
> +	val |= (upper_32_bits(buf_virt_addr) &
> +		MVPP22_BM_ADDR_HIGH_VIRT_RLS_MASK)
> +		<< MVPP22_BM_ADDR_HIGH_VIRT_RLS_SHIFT;
> +	mvpp2_write(port->priv, MVPP22_BM_ADDR_HIGH_RLS_REG, val);
> +#endif

Similar compile-time conditional?

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* Re: [PATCHv2 net-next 05/16] net: mvpp2: introduce PPv2.2 HW descriptors and adapt accessors
From: Robin Murphy @ 2017-01-06 14:44 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Mark Rutland, devicetree, Yehuda Yitschak, Jason Cooper,
	Pawel Moll, Ian Campbell, netdev, Hanna Hawa,
	Russell King - ARM Linux, Nadav Haklai, Rob Herring, Andrew Lunn,
	Kumar Gala, Gregory Clement, Stefan Chulski, Marcin Wojtas,
	David S. Miller, linux-arm-kernel, Sebastian Hesselbarth
In-Reply-To: <20170106142901.GC14217@n2100.armlinux.org.uk>

On 06/01/17 14:29, Russell King - ARM Linux wrote:
> On Wed, Dec 28, 2016 at 05:46:21PM +0100, Thomas Petazzoni wrote:
>> This commit adds the definition of the PPv2.2 HW descriptors, adjusts
>> the mvpp2_tx_desc and mvpp2_rx_desc structures accordingly, and adapts
>> the accessors to work on both PPv2.1 and PPv2.2.
>>
>> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ...
>> +		/* On PPv2.2, the situation is more complicated,
>> +		 * because there is only 40 bits to store the virtual
>> +		 * address, which is not sufficient. So on 64 bits
>> +		 * systems, we use phys_to_virt() to get the virtual
>> +		 * address from the physical address, which is fine
>> +		 * because the kernel linear mapping includes the
>> +		 * entire 40 bits physical address space. On 32 bits
>> +		 * systems however, we can't use phys_to_virt(), but
>> +		 * since virtual addresses are 32 bits only, there is
>> +		 * enough space in the RX descriptor for the full
>> +		 * virtual address.
>> +		 */
>> +#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
>> +		dma_addr_t dma_addr =
>> +			rx_desc->pp22.buf_phys_addr_key_hash & DMA_BIT_MASK(40);
>> +		phys_addr_t phys_addr =
>> +			dma_to_phys(port->dev->dev.parent, dma_addr);

Ugh, this looks bogus. dma_to_phys(), in the arm64 case at least, is
essentially a SWIOTLB internal helper function which has to be
implemented in architecture code because reasons. Calling it from a
driver is almost certainly wrong (it doesn't even exist on most
architectures). Besides, if this is really a genuine dma_addr_t obtained
from a DMA API call, you cannot infer it to be related to a CPU physical
address, or convertible to one at all.

>> +
>> +		return (unsigned long)phys_to_virt(phys_addr);
>> +#else
>> +		return rx_desc->pp22.buf_cookie_misc & DMA_BIT_MASK(40);
>> +#endif
> 
> I'm not sure that's the best way of selecting the difference.

Given that CONFIG_ARCH_DMA_ADDR_T_64BIT could be enabled on 32-bit LPAE
systems, indeed it definitely isn't.

Robin.

>  It seems
> that the issue here is the size of the virtual address, so why not test
> the size of a virtual address pointer?
> 
> 		if (8 * sizeof(rx_desc) > 40) {
> 			/* do phys addr dance */
> 		} else {
> 			return rx_desc->pp22.buf_cookie_misc & DMA_BIT_MASK(40);
> 		}
> 
> It also means that we get compile coverage over both sides of the
> conditional.
> 

^ permalink raw reply

* Re: [PATCHv2 net-next 10/16] net: mvpp2: handle register mapping and access for PPv2.2
From: Russell King - ARM Linux @ 2017-01-06 14:46 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Mark Rutland, devicetree, Yehuda Yitschak, Jason Cooper,
	Pawel Moll, Ian Campbell, netdev, Hanna Hawa, Nadav Haklai,
	Rob Herring, Andrew Lunn, Kumar Gala, Gregory Clement,
	Stefan Chulski, Marcin Wojtas, David S. Miller, linux-arm-kernel,
	Sebastian Hesselbarth
In-Reply-To: <1482943592-12556-11-git-send-email-thomas.petazzoni@free-electrons.com>

On Wed, Dec 28, 2016 at 05:46:26PM +0100, Thomas Petazzoni wrote:
> This commit adjusts the mvpp2 driver register mapping and access logic
> to support PPv2.2, to handle a number of differences.
> 
> Due to how the registers are laid out in memory, the Device Tree binding
> for the "reg" property is different:
> 
>  - On PPv2.1, we had a first area for the common registers, and then one
>    area per port.
> 
>  - On PPv2.2, we have a first area for the common registers, and a
>    second area for all the per-ports registers.
> 
> In addition, on PPv2.2, the area for the common registers is split into
> so-called "address spaces" of 64 KB each. They allow to access the same
> registers, but from different CPUs. Hence the introduction of cpu_base[]
> in 'struct mvpp2', and the modification of the mvpp2_write() and
> mvpp2_read() register accessors. For PPv2.1, the compatibility is
> preserved by using an "address space" size of 0.

I'm not entirely sure this is the best solution - every register access
will be wrapped with a preempt_disable() and preempt_enable().  At
every site, when preempt is enabled, we will end up with code to:

- get the thread info
- increment the preempt count
- access the register
- decrement the preempt count
- test resulting preempt count and branch to __preempt_schedule()

If tracing is enabled, it gets much worse, because the increment and
decrement happen out of line, and are even more expensive.

If a function is going to make several register accesses, it's going
to be much more efficient to do:

	void __iomem *base = priv->cpu_base[get_cpu()];

	...

	put_cpu();

which means we don't end up with multiple instances of the preempt code
consecutive accesses.

I think this is an example where having driver-private accessors for
readl()/writel() is far from a good idea.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* Re: [PATCH net-next v4 0/4] Fix OdroidC2 Gigabit Tx link issue
From: Russell King - ARM Linux @ 2017-01-06 15:05 UTC (permalink / raw)
  To: Jerome Brunet
  Cc: Andrew Lunn, Florian Fainelli, Alexandre TORGUE, Neil Armstrong,
	Martin Blumenstingl, netdev, linux-kernel, Yegor Yefremov,
	Julia Lawall, devicetree, Andre Roth, Kevin Hilman, Carlo Caione,
	Giuseppe Cavallaro, linux-amlogic, Andreas Färber,
	linux-arm-kernel
In-Reply-To: <1483710621.28003.74.camel@baylibre.com>

(quick reply...)

On Fri, Jan 06, 2017 at 02:50:21PM +0100, Jerome Brunet wrote:
> So I'm not sure I understand, are you against EEE integration in phylib
> entirely, or specifically against the test I added in set_eee to filter
> out broken modes ?

I'm happy to see EEE integrated into phylib, but I think the current
implementation is very buggy and needs a rewrite.

> > BTW, one of the problems (not caused by your patch) is that changing
> > the EEE advertisment does not (on all PHY drivers) cause the link to
> > be renegotiated - there's no call to phy_start_aneg() when the advert
> > changes, and even if there was, there's no guarantee that
> > phy_start_aneg() will even set the AN restart bit in the control
> > register.
> > 
> > However, given that you're hooking into the set_eee function, I'm not
> > sure why you placed your EEE advertisment thing into config_aneg() -
> > isn't it more an initialisation thing (so should be in
> > config_init()?)
> 
> What I change is what the PHY advertise, so it seems logical to do it
> where "genphy_config_advert" was called. Just taking the existing code
> as an example

You need to adjust the adverisment in two places:

1. On initialisation, when you need to change the default value.
2. Whenever the user requests a different EEE advertisment.

You don't need to do it each time config_aneg() is called - nothing's
going to change the EEE advertisment in that path.  Hence, to check
it each and every time seems like a waste of CPU cycles.

However, there's another path that needs to be considered, which the
current EEE code fails to do, and that is the resume path.  Nothing
at present saves and restores the EEE settings, they are completely
lost if the PHY is powered down.  This is just another symptom of the
current poor quality EEE implementation in phylib, and another reason
why I say above that the EEE code is in need of a rewrite... which is
something I will be looking at.

If the EEE settings are properly saved and restored over suspend/
resume, then the previously programmed EEE advertisment would also
be restored.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply

* [PATCH 0/3] xen: optimize xenbus performance
From: Juergen Gross @ 2017-01-06 15:05 UTC (permalink / raw)
  To: linux-kernel, xen-devel
  Cc: Juergen Gross, wei.liu2, netdev, paul.durrant, boris.ostrovsky,
	roger.pau

The xenbus driver used for communication with Xenstore (all kernel
accesses to Xenstore and in case of Xenstore living in another domain
all accesses of the local domain to Xenstore) is rather simple
especially regarding multiple concurrent accesses: they are just being
serialized in spite of Xenstore being capable to handle multiple
parallel accesses.

Clean up the external interface(s) of xenbus and optimize its
performance by allowing multiple concurrent accesses to Xenstore.

Juergen Gross (3):
  xen: clean up xenbus internal headers
  xen: modify xenstore watch event interface
  xen: optimize xenbus driver for multiple concurrent xenstore accesses

 drivers/block/xen-blkback/xenbus.c         |   6 +-
 drivers/net/xen-netback/xenbus.c           |   8 +-
 drivers/xen/cpu_hotplug.c                  |   5 +-
 drivers/xen/manage.c                       |   6 +-
 drivers/xen/xen-balloon.c                  |   2 +-
 drivers/xen/xen-pciback/xenbus.c           |   2 +-
 drivers/xen/xenbus/xenbus.h                | 134 ++++++++
 drivers/xen/xenbus/xenbus_client.c         |   6 +-
 drivers/xen/xenbus/xenbus_comms.c          | 319 +++++++++++++++--
 drivers/xen/xenbus/xenbus_comms.h          |  51 ---
 drivers/xen/xenbus/xenbus_dev_backend.c    |   2 +-
 drivers/xen/xenbus/xenbus_dev_frontend.c   | 213 +++++++-----
 drivers/xen/xenbus/xenbus_probe.c          |  14 +-
 drivers/xen/xenbus/xenbus_probe.h          |  88 -----
 drivers/xen/xenbus/xenbus_probe_backend.c  |  11 +-
 drivers/xen/xenbus/xenbus_probe_frontend.c |  17 +-
 drivers/xen/xenbus/xenbus_xs.c             | 535 +++++++++++++----------------
 drivers/xen/xenfs/super.c                  |   2 +-
 drivers/xen/xenfs/xenstored.c              |   2 +-
 include/xen/xenbus.h                       |  18 +-
 20 files changed, 830 insertions(+), 611 deletions(-)
 create mode 100644 drivers/xen/xenbus/xenbus.h
 delete mode 100644 drivers/xen/xenbus/xenbus_comms.h
 delete mode 100644 drivers/xen/xenbus/xenbus_probe.h

Cc: konrad.wilk@oracle.com
Cc: roger.pau@citrix.com
Cc: wei.liu2@citrix.com
Cc: paul.durrant@citrix.com
Cc: netdev@vger.kernel.org

-- 
2.10.2


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply

* [PATCH 2/3] xen: modify xenstore watch event interface
From: Juergen Gross @ 2017-01-06 15:05 UTC (permalink / raw)
  To: linux-kernel, xen-devel
  Cc: Juergen Gross, wei.liu2, netdev, paul.durrant, boris.ostrovsky,
	roger.pau
In-Reply-To: <20170106150544.10836-1-jgross@suse.com>

Today a Xenstore watch event is delivered via a callback function
declared as:

void (*callback)(struct xenbus_watch *,
                 const char **vec, unsigned int len);

As all watch events only ever come with two parameters (path and token)
changing the prototype to:

void (*callback)(struct xenbus_watch *,
                 const char *path, const char *token);

is the natural thing to do.

Apply this change and adapt all users.

Cc: konrad.wilk@oracle.com
Cc: roger.pau@citrix.com
Cc: wei.liu2@citrix.com
Cc: paul.durrant@citrix.com
Cc: netdev@vger.kernel.org

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/block/xen-blkback/xenbus.c         |  6 +++---
 drivers/net/xen-netback/xenbus.c           |  8 ++++----
 drivers/xen/cpu_hotplug.c                  |  5 ++---
 drivers/xen/manage.c                       |  6 +++---
 drivers/xen/xen-balloon.c                  |  2 +-
 drivers/xen/xen-pciback/xenbus.c           |  2 +-
 drivers/xen/xenbus/xenbus.h                |  6 +++---
 drivers/xen/xenbus/xenbus_client.c         |  4 ++--
 drivers/xen/xenbus/xenbus_dev_frontend.c   | 21 ++++++++-------------
 drivers/xen/xenbus/xenbus_probe.c          | 11 ++++-------
 drivers/xen/xenbus/xenbus_probe_backend.c  |  8 ++++----
 drivers/xen/xenbus/xenbus_probe_frontend.c | 14 +++++++-------
 drivers/xen/xenbus/xenbus_xs.c             | 29 ++++++++++++++---------------
 include/xen/xenbus.h                       |  6 +++---
 14 files changed, 59 insertions(+), 69 deletions(-)

diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c
index 415e79b..8fe61b5 100644
--- a/drivers/block/xen-blkback/xenbus.c
+++ b/drivers/block/xen-blkback/xenbus.c
@@ -38,8 +38,8 @@ struct backend_info {
 static struct kmem_cache *xen_blkif_cachep;
 static void connect(struct backend_info *);
 static int connect_ring(struct backend_info *);
-static void backend_changed(struct xenbus_watch *, const char **,
-			    unsigned int);
+static void backend_changed(struct xenbus_watch *, const char *,
+			    const char *);
 static void xen_blkif_free(struct xen_blkif *blkif);
 static void xen_vbd_free(struct xen_vbd *vbd);
 
@@ -661,7 +661,7 @@ static int xen_blkbk_probe(struct xenbus_device *dev,
  * ready, connect.
  */
 static void backend_changed(struct xenbus_watch *watch,
-			    const char **vec, unsigned int len)
+			    const char *path, const char *token)
 {
 	int err;
 	unsigned major;
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index 3124eae..d8a40fa 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -723,7 +723,7 @@ static int xen_net_read_mac(struct xenbus_device *dev, u8 mac[])
 }
 
 static void xen_net_rate_changed(struct xenbus_watch *watch,
-				const char **vec, unsigned int len)
+				 const char *path, const char *token)
 {
 	struct xenvif *vif = container_of(watch, struct xenvif, credit_watch);
 	struct xenbus_device *dev = xenvif_to_xenbus_device(vif);
@@ -780,7 +780,7 @@ static void xen_unregister_credit_watch(struct xenvif *vif)
 }
 
 static void xen_mcast_ctrl_changed(struct xenbus_watch *watch,
-				   const char **vec, unsigned int len)
+				   const char *path, const char *token)
 {
 	struct xenvif *vif = container_of(watch, struct xenvif,
 					  mcast_ctrl_watch);
@@ -855,8 +855,8 @@ static void unregister_hotplug_status_watch(struct backend_info *be)
 }
 
 static void hotplug_status_changed(struct xenbus_watch *watch,
-				   const char **vec,
-				   unsigned int vec_size)
+				   const char *path,
+				   const char *token)
 {
 	struct backend_info *be = container_of(watch,
 					       struct backend_info,
diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index 5676aef..7a4daa2 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -68,13 +68,12 @@ static void vcpu_hotplug(unsigned int cpu)
 }
 
 static void handle_vcpu_hotplug_event(struct xenbus_watch *watch,
-					const char **vec, unsigned int len)
+				      const char *path, const char *token)
 {
 	unsigned int cpu;
 	char *cpustr;
-	const char *node = vec[XS_WATCH_PATH];
 
-	cpustr = strstr(node, "cpu/");
+	cpustr = strstr(path, "cpu/");
 	if (cpustr != NULL) {
 		sscanf(cpustr, "cpu/%u", &cpu);
 		vcpu_hotplug(cpu);
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 26e5e85..ca62c09 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -218,7 +218,7 @@ static struct shutdown_handler shutdown_handlers[] = {
 };
 
 static void shutdown_handler(struct xenbus_watch *watch,
-			     const char **vec, unsigned int len)
+			     const char *path, const char *token)
 {
 	char *str;
 	struct xenbus_transaction xbt;
@@ -266,8 +266,8 @@ static void shutdown_handler(struct xenbus_watch *watch,
 }
 
 #ifdef CONFIG_MAGIC_SYSRQ
-static void sysrq_handler(struct xenbus_watch *watch, const char **vec,
-			  unsigned int len)
+static void sysrq_handler(struct xenbus_watch *watch, const char *path,
+			  const char *token)
 {
 	char sysrq_key = '\0';
 	struct xenbus_transaction xbt;
diff --git a/drivers/xen/xen-balloon.c b/drivers/xen/xen-balloon.c
index 79865b8..e7715cb 100644
--- a/drivers/xen/xen-balloon.c
+++ b/drivers/xen/xen-balloon.c
@@ -55,7 +55,7 @@ static int register_balloon(struct device *dev);
 
 /* React to a change in the target key */
 static void watch_target(struct xenbus_watch *watch,
-			 const char **vec, unsigned int len)
+			 const char *path, const char *token)
 {
 	unsigned long long new_target;
 	int err;
diff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c
index 3f0aee0..3814b44 100644
--- a/drivers/xen/xen-pciback/xenbus.c
+++ b/drivers/xen/xen-pciback/xenbus.c
@@ -652,7 +652,7 @@ static int xen_pcibk_setup_backend(struct xen_pcibk_device *pdev)
 }
 
 static void xen_pcibk_be_watch(struct xenbus_watch *watch,
-			     const char **vec, unsigned int len)
+			       const char *path, const char *token)
 {
 	struct xen_pcibk_device *pdev =
 	    container_of(watch, struct xen_pcibk_device, be_watch);
diff --git a/drivers/xen/xenbus/xenbus.h b/drivers/xen/xenbus/xenbus.h
index 6a80c1e..bd95c21 100644
--- a/drivers/xen/xenbus/xenbus.h
+++ b/drivers/xen/xenbus/xenbus.h
@@ -39,8 +39,8 @@ struct xen_bus_type {
 	int (*get_bus_id)(char bus_id[XEN_BUS_ID_SIZE], const char *nodename);
 	int (*probe)(struct xen_bus_type *bus, const char *type,
 		     const char *dir);
-	void (*otherend_changed)(struct xenbus_watch *watch, const char **vec,
-				 unsigned int len);
+	void (*otherend_changed)(struct xenbus_watch *watch, const char *path,
+				 const char *token);
 	struct bus_type bus;
 };
 
@@ -83,7 +83,7 @@ int xenbus_dev_resume(struct device *dev);
 int xenbus_dev_cancel(struct device *dev);
 
 void xenbus_otherend_changed(struct xenbus_watch *watch,
-			     const char **vec, unsigned int len,
+			     const char *path, const char *token,
 			     int ignore_on_shutdown);
 
 int xenbus_read_otherend_details(struct xenbus_device *xendev,
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 23edf53..9586c24 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -115,7 +115,7 @@ EXPORT_SYMBOL_GPL(xenbus_strstate);
 int xenbus_watch_path(struct xenbus_device *dev, const char *path,
 		      struct xenbus_watch *watch,
 		      void (*callback)(struct xenbus_watch *,
-				       const char **, unsigned int))
+				       const char *, const char *))
 {
 	int err;
 
@@ -153,7 +153,7 @@ EXPORT_SYMBOL_GPL(xenbus_watch_path);
 int xenbus_watch_pathfmt(struct xenbus_device *dev,
 			 struct xenbus_watch *watch,
 			 void (*callback)(struct xenbus_watch *,
-					const char **, unsigned int),
+					  const char *, const char *),
 			 const char *pathfmt, ...)
 {
 	int err;
diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c b/drivers/xen/xenbus/xenbus_dev_frontend.c
index e2bc9b3..e4b9847 100644
--- a/drivers/xen/xenbus/xenbus_dev_frontend.c
+++ b/drivers/xen/xenbus/xenbus_dev_frontend.c
@@ -258,26 +258,23 @@ static struct watch_adapter *alloc_watch_adapter(const char *path,
 }
 
 static void watch_fired(struct xenbus_watch *watch,
-			const char **vec,
-			unsigned int len)
+			const char *path,
+			const char *token)
 {
 	struct watch_adapter *adap;
 	struct xsd_sockmsg hdr;
-	const char *path, *token;
-	int path_len, tok_len, body_len, data_len = 0;
+	const char *token_caller;
+	int path_len, tok_len, body_len;
 	int ret;
 	LIST_HEAD(staging_q);
 
 	adap = container_of(watch, struct watch_adapter, watch);
 
-	path = vec[XS_WATCH_PATH];
-	token = adap->token;
+	token_caller = adap->token;
 
 	path_len = strlen(path) + 1;
-	tok_len = strlen(token) + 1;
-	if (len > 2)
-		data_len = vec[len] - vec[2] + 1;
-	body_len = path_len + tok_len + data_len;
+	tok_len = strlen(token_caller) + 1;
+	body_len = path_len + tok_len;
 
 	hdr.type = XS_WATCH_EVENT;
 	hdr.len = body_len;
@@ -288,9 +285,7 @@ static void watch_fired(struct xenbus_watch *watch,
 	if (!ret)
 		ret = queue_reply(&staging_q, path, path_len);
 	if (!ret)
-		ret = queue_reply(&staging_q, token, tok_len);
-	if (!ret && len > 2)
-		ret = queue_reply(&staging_q, vec[2], data_len);
+		ret = queue_reply(&staging_q, token_caller, tok_len);
 
 	if (!ret) {
 		/* success: pass reply list onto watcher */
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 6baffbb..74888ca 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -169,7 +169,7 @@ int xenbus_read_otherend_details(struct xenbus_device *xendev,
 EXPORT_SYMBOL_GPL(xenbus_read_otherend_details);
 
 void xenbus_otherend_changed(struct xenbus_watch *watch,
-			     const char **vec, unsigned int len,
+			     const char *path, const char *token,
 			     int ignore_on_shutdown)
 {
 	struct xenbus_device *dev =
@@ -180,18 +180,15 @@ void xenbus_otherend_changed(struct xenbus_watch *watch,
 	/* Protect us against watches firing on old details when the otherend
 	   details change, say immediately after a resume. */
 	if (!dev->otherend ||
-	    strncmp(dev->otherend, vec[XS_WATCH_PATH],
-		    strlen(dev->otherend))) {
-		dev_dbg(&dev->dev, "Ignoring watch at %s\n",
-			vec[XS_WATCH_PATH]);
+	    strncmp(dev->otherend, path, strlen(dev->otherend))) {
+		dev_dbg(&dev->dev, "Ignoring watch at %s\n", path);
 		return;
 	}
 
 	state = xenbus_read_driver_state(dev->otherend);
 
 	dev_dbg(&dev->dev, "state is %d, (%s), %s, %s\n",
-		state, xenbus_strstate(state), dev->otherend_watch.node,
-		vec[XS_WATCH_PATH]);
+		state, xenbus_strstate(state), dev->otherend_watch.node, path);
 
 	/*
 	 * Ignore xenbus transitions during shutdown. This prevents us doing
diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
index f46b4dc..b0bed4f 100644
--- a/drivers/xen/xenbus/xenbus_probe_backend.c
+++ b/drivers/xen/xenbus/xenbus_probe_backend.c
@@ -181,9 +181,9 @@ static int xenbus_probe_backend(struct xen_bus_type *bus, const char *type,
 }
 
 static void frontend_changed(struct xenbus_watch *watch,
-			    const char **vec, unsigned int len)
+			     const char *path, const char *token)
 {
-	xenbus_otherend_changed(watch, vec, len, 0);
+	xenbus_otherend_changed(watch, path, token, 0);
 }
 
 static struct xen_bus_type xenbus_backend = {
@@ -204,11 +204,11 @@ static struct xen_bus_type xenbus_backend = {
 };
 
 static void backend_changed(struct xenbus_watch *watch,
-			    const char **vec, unsigned int len)
+			    const char *path, const char *token)
 {
 	DPRINTK("");
 
-	xenbus_dev_changed(vec[XS_WATCH_PATH], &xenbus_backend);
+	xenbus_dev_changed(path, &xenbus_backend);
 }
 
 static struct xenbus_watch be_watch = {
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index d7b77a6..19e45ce 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -86,9 +86,9 @@ static int xenbus_uevent_frontend(struct device *_dev,
 
 
 static void backend_changed(struct xenbus_watch *watch,
-			    const char **vec, unsigned int len)
+			    const char *path, const char *token)
 {
-	xenbus_otherend_changed(watch, vec, len, 1);
+	xenbus_otherend_changed(watch, path, token, 1);
 }
 
 static void xenbus_frontend_delayed_resume(struct work_struct *w)
@@ -153,11 +153,11 @@ static struct xen_bus_type xenbus_frontend = {
 };
 
 static void frontend_changed(struct xenbus_watch *watch,
-			     const char **vec, unsigned int len)
+			     const char *path, const char *token)
 {
 	DPRINTK("");
 
-	xenbus_dev_changed(vec[XS_WATCH_PATH], &xenbus_frontend);
+	xenbus_dev_changed(path, &xenbus_frontend);
 }
 
 
@@ -332,13 +332,13 @@ static DECLARE_WAIT_QUEUE_HEAD(backend_state_wq);
 static int backend_state;
 
 static void xenbus_reset_backend_state_changed(struct xenbus_watch *w,
-					const char **v, unsigned int l)
+					const char *path, const char *token)
 {
-	if (xenbus_scanf(XBT_NIL, v[XS_WATCH_PATH], "", "%i",
+	if (xenbus_scanf(XBT_NIL, path, "", "%i",
 			 &backend_state) != 1)
 		backend_state = XenbusStateUnknown;
 	printk(KERN_DEBUG "XENBUS: backend %s %s\n",
-			v[XS_WATCH_PATH], xenbus_strstate(backend_state));
+	       path, xenbus_strstate(backend_state));
 	wake_up(&backend_state_wq);
 }
 
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 4c49d87..ebc768f 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -64,8 +64,8 @@ struct xs_stored_msg {
 		/* Queued watch events. */
 		struct {
 			struct xenbus_watch *handle;
-			char **vec;
-			unsigned int vec_size;
+			const char *path;
+			const char *token;
 		} watch;
 	} u;
 };
@@ -765,7 +765,7 @@ void unregister_xenbus_watch(struct xenbus_watch *watch)
 		if (msg->u.watch.handle != watch)
 			continue;
 		list_del(&msg->list);
-		kfree(msg->u.watch.vec);
+		kfree(msg->u.watch.path);
 		kfree(msg);
 	}
 	spin_unlock(&watch_events_lock);
@@ -833,11 +833,10 @@ static int xenwatch_thread(void *unused)
 
 		if (ent != &watch_events) {
 			msg = list_entry(ent, struct xs_stored_msg, list);
-			msg->u.watch.handle->callback(
-				msg->u.watch.handle,
-				(const char **)msg->u.watch.vec,
-				msg->u.watch.vec_size);
-			kfree(msg->u.watch.vec);
+			msg->u.watch.handle->callback(msg->u.watch.handle,
+						      msg->u.watch.path,
+						      msg->u.watch.token);
+			kfree(msg->u.watch.path);
 			kfree(msg);
 		}
 
@@ -903,24 +902,24 @@ static int process_msg(void)
 	body[msg->hdr.len] = '\0';
 
 	if (msg->hdr.type == XS_WATCH_EVENT) {
-		msg->u.watch.vec = split(body, msg->hdr.len,
-					 &msg->u.watch.vec_size);
-		if (IS_ERR(msg->u.watch.vec)) {
-			err = PTR_ERR(msg->u.watch.vec);
+		if (count_strings(body, msg->hdr.len) != 2) {
+			err = -EINVAL;
 			kfree(msg);
+			kfree(body);
 			goto out;
 		}
+		msg->u.watch.path = (const char *)body;
+		msg->u.watch.token = (const char *)strchr(body, '\0') + 1;
 
 		spin_lock(&watches_lock);
-		msg->u.watch.handle = find_watch(
-			msg->u.watch.vec[XS_WATCH_TOKEN]);
+		msg->u.watch.handle = find_watch(msg->u.watch.token);
 		if (msg->u.watch.handle != NULL) {
 			spin_lock(&watch_events_lock);
 			list_add_tail(&msg->list, &watch_events);
 			wake_up(&watch_events_waitq);
 			spin_unlock(&watch_events_lock);
 		} else {
-			kfree(msg->u.watch.vec);
+			kfree(body);
 			kfree(msg);
 		}
 		spin_unlock(&watches_lock);
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index 98f73a2..869c816 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -61,7 +61,7 @@ struct xenbus_watch
 
 	/* Callback (executed in a process context with no locks held). */
 	void (*callback)(struct xenbus_watch *,
-			 const char **vec, unsigned int len);
+			 const char *path, const char *token);
 };
 
 
@@ -193,11 +193,11 @@ void xenbus_probe(struct work_struct *);
 int xenbus_watch_path(struct xenbus_device *dev, const char *path,
 		      struct xenbus_watch *watch,
 		      void (*callback)(struct xenbus_watch *,
-				       const char **, unsigned int));
+				       const char *, const char *));
 __printf(4, 5)
 int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
 			 void (*callback)(struct xenbus_watch *,
-					  const char **, unsigned int),
+					  const char *, const char *),
 			 const char *pathfmt, ...);
 
 int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state new_state);
-- 
2.10.2


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related


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