1. 17 6月, 2018 1 次提交
  2. 14 3月, 2018 1 次提交
    • T
      EDAC: Drop duplicated array of strings for memory type names · d6dd77eb
      Tony Luck 提交于
      Somehow we ended up with two separate arrays of strings to describe the
      "enum mem_type" values.
      
      In edac_mc.c we have an exported list edac_mem_types[] that is used
      by a couple of drivers in debug messaged.
      
      In edac_mc_sysfs.c we have a private list that is used to display
      values in:
        /sys/devices/system/edac/mc/mc*/dimm*/dimm_mem_type
        /sys/devices/system/edac/mc/mc*/csrow*/mem_type
      
      This list was missing a value for MEM_LRDDR3.
      
      The string values in the two lists were different :-(
      
      Combining the lists, I kept the values so that the sysfs output
      will be unchanged as some scripts may depend on that.
      Reported-by: NBorislav Petkov <bp@suse.de>
      Acked-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
      Cc: Aristeu Rozanski <aris@redhat.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Jean Delvare <jdelvare@suse.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
      Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
      Cc: linux-acpi@vger.kernel.org
      Cc: linux-edac <linux-edac@vger.kernel.org>
      Cc: linux-nvdimm@lists.01.org
      Link: http://lkml.kernel.org/r/20180312182430.10335-2-tony.luck@intel.comSigned-off-by: NBorislav Petkov <bp@suse.de>
      d6dd77eb
  3. 31 10月, 2017 1 次提交
    • K
      treewide: Fix function prototypes for module_param_call() · e4dca7b7
      Kees Cook 提交于
      Several function prototypes for the set/get functions defined by
      module_param_call() have a slightly wrong argument types. This fixes
      those in an effort to clean up the calls when running under type-enforced
      compiler instrumentation for CFI. This is the result of running the
      following semantic patch:
      
      @match_module_param_call_function@
      declarer name module_param_call;
      identifier _name, _set_func, _get_func;
      expression _arg, _mode;
      @@
      
       module_param_call(_name, _set_func, _get_func, _arg, _mode);
      
      @fix_set_prototype
       depends on match_module_param_call_function@
      identifier match_module_param_call_function._set_func;
      identifier _val, _param;
      type _val_type, _param_type;
      @@
      
       int _set_func(
      -_val_type _val
      +const char * _val
       ,
      -_param_type _param
      +const struct kernel_param * _param
       ) { ... }
      
      @fix_get_prototype
       depends on match_module_param_call_function@
      identifier match_module_param_call_function._get_func;
      identifier _val, _param;
      type _val_type, _param_type;
      @@
      
       int _get_func(
      -_val_type _val
      +char * _val
       ,
      -_param_type _param
      +const struct kernel_param * _param
       ) { ... }
      
      Two additional by-hand changes are included for places where the above
      Coccinelle script didn't notice them:
      
      	drivers/platform/x86/thinkpad_acpi.c
      	fs/lockd/svc.c
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NJessica Yu <jeyu@kernel.org>
      e4dca7b7
  4. 20 8月, 2017 1 次提交
  5. 17 7月, 2017 1 次提交
  6. 19 1月, 2017 1 次提交
  7. 06 1月, 2017 1 次提交
  8. 15 12月, 2016 1 次提交
  9. 16 6月, 2016 1 次提交
    • B
      EDAC: Correct channel count limit · bba14295
      Borislav Petkov 提交于
      c44696ff ("EDAC: Remove arbitrary limit on number of channels")
      lifted the arbitrary limit on memory controller channels in EDAC.
      However, the dynamic channel attributes dynamic_csrow_dimm_attr and
      dynamic_csrow_ce_count_attr remained 6.
      
      This wasn't a problem except channels 6 and 7 weren't visible in sysfs
      on machines with more than 6 channels after the conversion to static
      attr groups with
      
        2c1946b6 ("EDAC: Use static attribute groups for managing sysfs entries")
      
       [ without that, we're exploding in edac_create_sysfs_mci_device()
         because we're dereferencing out of the bounds of the
         dynamic_csrow_dimm_attr array. ]
      
      Add attributes for channels 6 and 7 along with a guard for the
      future, should more channels be required and/or to sanity check for
      misconfigured machines.
      
      We still need to check against the number of channels present on the MC
      first, as Thor reported.
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Reported-by: NHironobu Ishii <ishii.hironobu@jp.fujitsu.com>
      Tested-by: NThor Thayer <tthayer@opensource.altera.com>
      Cc: <stable@vger.kernel.org> # 4.2
      bba14295
  10. 23 4月, 2016 1 次提交
  11. 11 12月, 2015 3 次提交
    • B
      EDAC: Remove edac_get_sysfs_subsys() error handling · d4538000
      Borislav Petkov 提交于
      It cannot fail now. We either load EDAC core after having successfully
      initialized edac_subsys or we don't.
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      d4538000
    • B
      EDAC: Rip out the edac_subsys reference counting · 733476cf
      Borislav Petkov 提交于
      This was really dumb - reference counting for the main EDAC sysfs
      object. While we could've simply registered it as the first thing in the
      module init path and then hand it around to what needs it.
      
      Do that and rip out all the code around it, thus simplifying the whole
      handling significantly.
      
      Move the edac_subsys node back to edac_module.c.
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      733476cf
    • B
      EDAC, mc_sysfs: Fix freeing bus' name · 12e26969
      Borislav Petkov 提交于
      I get the splat below when modprobing/rmmoding EDAC drivers. It happens
      because bus->name is invalid after bus_unregister() has run. The Code: section
      below corresponds to:
      
        .loc 1 1108 0
        movq    672(%rbx), %rax # mci_1(D)->bus, mci_1(D)->bus
        .loc 1 1109 0
        popq    %rbx    #
      
        .loc 1 1108 0
        movq    (%rax), %rdi    # _7->name,
        jmp     kfree   #
      
      and %rax has some funky stuff 2030203020312030 which looks a lot like
      something walked over it.
      
      Fix that by saving the name ptr before doing stuff to string it points to.
      
        general protection fault: 0000 [#1] SMP
        Modules linked in: ...
        CPU: 4 PID: 10318 Comm: modprobe Tainted: G          I EN  3.12.51-11-default+ #48
        Hardware name: HP ProLiant DL380 G7, BIOS P67 05/05/2011
        task: ffff880311320280 ti: ffff88030da3e000 task.ti: ffff88030da3e000
        RIP: 0010:[<ffffffffa019da92>]  [<ffffffffa019da92>] edac_unregister_sysfs+0x22/0x30 [edac_core]
        RSP: 0018:ffff88030da3fe28  EFLAGS: 00010292
        RAX: 2030203020312030 RBX: ffff880311b4e000 RCX: 000000000000095c
        RDX: 0000000000000001 RSI: ffff880327bb9600 RDI: 0000000000000286
        RBP: ffff880311b4e750 R08: 0000000000000000 R09: ffffffff81296110
        R10: 0000000000000400 R11: 0000000000000000 R12: ffff88030ba1ac68
        R13: 0000000000000001 R14: 00000000011b02f0 R15: 0000000000000000
        FS:  00007fc9bf8f5700(0000) GS:ffff8801a7c40000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: 0000000000403c90 CR3: 000000019ebdf000 CR4: 00000000000007e0
        Stack:
        Call Trace:
          i7core_unregister_mci.isra.9
          i7core_remove
          pci_device_remove
          __device_release_driver
          driver_detach
          bus_remove_driver
          pci_unregister_driver
          i7core_exit
          SyS_delete_module
          system_call_fastpath
          0x7fc9bf426536
        Code: 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 48 89 fb e8 52 2a 1f e1 48 8b bb a0 02 00 00 e8 46 59 1f e1 48 8b 83 a0 02 00 00 5b <48> 8b 38 e9 26 9a fe e0 66 0f 1f 44 00 00 66 66 66 66 90 48 8b
        RIP  [<ffffffffa019da92>] edac_unregister_sysfs+0x22/0x30 [edac_core]
         RSP <ffff88030da3fe28>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: <stable@vger.kernel.org> # v3.6..
      Fixes: 7a623c03 ("edac: rewrite the sysfs code to use struct device")
      12e26969
  12. 15 10月, 2015 1 次提交
  13. 28 9月, 2015 1 次提交
  14. 26 9月, 2015 2 次提交
    • T
      EDAC: Fix sysfs dimm_label store operation · 438470b8
      Toshi Kani 提交于
      Sysfs "dimm_label" and "chX_dimm_label" nodes have the following issues
      in their store operation:
      
       1) A newline-terminated input string causes redundant newlines:
      
        # echo "test" > /sys/bus/mc0/devices/dimm0/dimm_label
        # cat  /sys/bus/mc0/devices/dimm0/dimm_label
        test
      
        #  od -bc /sys/bus/mc0/devices/dimm0/dimm_label
        0000000 164 145 163 164 012 012
                  t   e   s   t  \n  \n
        0000006
      
       2) The original label string (31 characters) cannot be stored due to
          an improper size check:
      
        # echo "CPU_SrcID#0_Ha#0_Chan#0_DIMM#0" > /sys/bus/mc0/devices/dimm0/dimm_label
        # cat /sys/bus/mc0/devices/dimm0/dimm_label
      
        # od -bc /sys/bus/mc0/devices/dimm0/dimm_label
         0000000 012 012
                  \n  \n
         0000002
      
       3) An input string longer than the buffer size results a wrong label
          info as it allows a retry with the remaining string:
      
        # echo "CPU_SrcID#0_Ha#0_Chan#0_DIMM#0_TEST" > /sys/bus/mc0/devices/dimm0/dimm_label
        # cat  /sys/bus/mc0/devices/dimm0/dimm_label
        _TEST
      
      Fix these issues by making the following changes:
       1) Replace a newline character at the end by setting a null. It also
          assures that the string is null-terminated in the label buffer.
       2) Check the label buffer size with 'sizeof(dimm->label)'.
       3) Fail a request if its string exceeds the label buffer size.
      Signed-off-by: NToshi Kani <toshi.kani@hpe.com>
      Acked-by: NTony Luck <tony.luck@intel.com>
      Cc: linux-edac <linux-edac@vger.kernel.org>
      Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: Robert Elliott <elliott@hpe.com>
      Link: http://lkml.kernel.org/r/1443121564.25474.160.camel@hpe.comSigned-off-by: NBorislav Petkov <bp@suse.de>
      438470b8
    • T
      EDAC: Fix sysfs dimm_label show operation · 1ea62c59
      Toshi Kani 提交于
      After
      
        7d375bff ("sb_edac: Fix support for systems with two home agents per socket")
      
      sysfs "dimm_label" and "chX_dimm_label" show their label string without a
      newline "\n" at the end.
      
        [root@orange ~]# cat /sys/bus/mc0/devices/dimm0/dimm_label
        CPU_SrcID#0_Ha#0_Chan#0_DIMM#0[root@orange ~]#
      
        [root@orange ~]# cat /sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label
        CPU_SrcID#0_Ha#0_Chan#0_DIMM#0[root@orange ~]#
      
      The label strings now have 31 characters, which are the same as
      EDAC_MC_LABEL_LEN. Since the snprintf()s in channel_dimm_label_show()
      and dimmdev_label_show() limit the whole length by EDAC_MC_LABEL_LEN,
      the newline in the format "%s\n" is ignored.
      
        [root@orange ~]# od -bc /sys/bus/mc0/devices/dimm0/dimm_label
        0000000 103 120 125 137 123 162 143 111 104 043 060 137 110 141 043 060
                  C   P   U   _   S   r   c   I   D   #   0   _   H   a   #   0
        0000020 137 103 150 141 156 043 060 137 104 111 115 115 043 060 000
                  _   C   h   a   n   #   0   _   D   I   M   M   #   0  \0
        0000037
      
      Fix it by using 'sizeof(dimm->label) + 1' as the whole length in the
      snprintf()s in channel_dimm_label_show() and dimmdev_label_show().
      Reported-by: NRobert Elliott <elliott@hpe.com>
      Signed-off-by: NToshi Kani <toshi.kani@hpe.com>
      Acked-by: NTony Luck <tony.luck@intel.com>
      Cc: linux-edac <linux-edac@vger.kernel.org>
      Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
      Link: http://lkml.kernel.org/r/1442933883-21587-2-git-send-email-toshi.kani@hpe.comSigned-off-by: NBorislav Petkov <bp@suse.de>
      1ea62c59
  15. 22 9月, 2015 1 次提交
  16. 03 6月, 2015 1 次提交
  17. 23 2月, 2015 3 次提交
  18. 30 1月, 2015 2 次提交
  19. 02 12月, 2014 1 次提交
  20. 27 6月, 2014 1 次提交
  21. 14 2月, 2014 1 次提交
  22. 11 2月, 2014 1 次提交
    • P
      drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero · 79040cad
      Prarit Bhargava 提交于
      If you do
      
        echo 0 > /sys/module/edac_core/parameters/edac_mc_poll_msec
      
      the following stack trace is output because the edac module is not
      designed to poll with a timeout of zero.
      
        WARNING: CPU: 12 PID: 0 at lib/list_debug.c:33 __list_add+0xac/0xc0()
        list_add corruption. prev->next should be next (ffff8808291dd1b8), but was           (null). (prev=ffff8808286fe3f8).
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 12 PID: 0 Comm: swapper/12 Not tainted 3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Call Trace:
         <IRQ>
          __list_add+0xac/0xc0
          __internal_add_timer+0xab/0x130
          internal_add_timer+0x17/0x40
          mod_timer_pinned+0xca/0x170
          intel_pstate_timer_func+0x28a/0x380
          call_timer_fn+0x36/0x100
          run_timer_softirq+0x1ff/0x2f0
          __do_softirq+0xf5/0x2e0
          irq_exit+0x10d/0x120
          smp_apic_timer_interrupt+0x45/0x60
          apic_timer_interrupt+0x6d/0x80
         <EOI>
          cpuidle_idle_call+0xb9/0x1f0
          arch_cpu_idle+0xe/0x30
          cpu_startup_entry+0x9e/0x240
          start_secondary+0x1e4/0x290
      
        kernel BUG at kernel/timer.c:1084!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 12 PID: 0 Comm: swapper/12 Tainted: G        W    3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Call Trace:
         <IRQ>
          run_timer_softirq+0x245/0x2f0
          __do_softirq+0xf5/0x2e0
          irq_exit+0x10d/0x120
          smp_apic_timer_interrupt+0x45/0x60
          apic_timer_interrupt+0x6d/0x80
         <EOI>
          cpuidle_idle_call+0xb9/0x1f0
          arch_cpu_idle+0xe/0x30
          cpu_startup_entry+0x9e/0x240
          start_secondary+0x1e4/0x290
        RIP   cascade+0x93/0xa0
      
        WARNING: CPU: 36 PID: 1154 at kernel/workqueue.c:1461 __queue_delayed_work+0xed/0x1a0()
        Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
        CPU: 36 PID: 1154 Comm: kworker/u481:3 Tainted: G        W    3.13.0+ #1
        Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
        Workqueue: edac-poller edac_mc_workq_function [edac_core]
        Call Trace:
          dump_stack+0x45/0x56
          warn_slowpath_common+0x7d/0xa0
          warn_slowpath_null+0x1a/0x20
          __queue_delayed_work+0xed/0x1a0
          queue_delayed_work_on+0x27/0x50
          edac_mc_workq_function+0x72/0xa0 [edac_core]
          process_one_work+0x17b/0x460
          worker_thread+0x11b/0x400
          kthread+0xd2/0xf0
          ret_from_fork+0x7c/0xb0
      
      This patch adds a range check in the edac_mc_poll_msec code to check for 0.
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Cc: Doug Thompson <dougthompson@xmission.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      79040cad
  23. 07 2月, 2014 1 次提交
  24. 16 12月, 2013 1 次提交
  25. 24 7月, 2013 2 次提交
    • J
      EDAC: Replace strict_strtol() with kstrtol() · c542b53d
      Jingoo Han 提交于
      The usage of strict_strtol() is not preferred, because strict_strtol()
      is obsolete. Thus, kstrtol() should be used.
      Signed-off-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      c542b53d
    • B
      EDAC: Fix lockdep splat · 88d84ac9
      Borislav Petkov 提交于
      Fix the following:
      
      BUG: key ffff88043bdd0330 not in .data!
      ------------[ cut here ]------------
      WARNING: at kernel/lockdep.c:2987 lockdep_init_map+0x565/0x5a0()
      DEBUG_LOCKS_WARN_ON(1)
      Modules linked in: glue_helper sb_edac(+) edac_core snd acpi_cpufreq lrw gf128mul ablk_helper iTCO_wdt evdev i2c_i801 dcdbas button cryptd pcspkr iTCO_vendor_support usb_common lpc_ich mfd_core soundcore mperf processor microcode
      CPU: 2 PID: 599 Comm: modprobe Not tainted 3.10.0 #1
      Hardware name: Dell Inc. Precision T3600/0PTTT9, BIOS A08 01/24/2013
       0000000000000009 ffff880439a1d920 ffffffff8160a9a9 ffff880439a1d958
       ffffffff8103d9e0 ffff88043af4a510 ffffffff81a16e11 0000000000000000
       ffff88043bdd0330 0000000000000000 ffff880439a1d9b8 ffffffff8103dacc
      Call Trace:
        dump_stack
        warn_slowpath_common
        warn_slowpath_fmt
        lockdep_init_map
        ? trace_hardirqs_on_caller
        ? trace_hardirqs_on
        debug_mutex_init
        __mutex_init
        bus_register
        edac_create_sysfs_mci_device
        edac_mc_add_mc
        sbridge_probe
        pci_device_probe
        driver_probe_device
        __driver_attach
        ? driver_probe_device
        bus_for_each_dev
        driver_attach
        bus_add_driver
        driver_register
        __pci_register_driver
        ? 0xffffffffa0010fff
        sbridge_init
        ? 0xffffffffa0010fff
        do_one_initcall
        load_module
        ? unset_module_init_ro_nx
        SyS_init_module
        tracesys
      ---[ end trace d24a70b0d3ddf733 ]---
      EDAC MC0: Giving out device to 'sbridge_edac.c' 'Sandy Bridge Socket#0': DEV 0000:3f:0e.0
      EDAC sbridge: Driver loaded.
      
      What happens is that bus_register needs a statically allocated lock_key
      because the last is handed in to lockdep. However, struct mem_ctl_info
      embeds struct bus_type (the whole struct, not a pointer to it) and the
      whole thing gets dynamically allocated.
      
      Fix this by using a statically allocated struct bus_type for the MC bus.
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: NMauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
      Cc: stable@kernel.org # v3.10
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      88d84ac9
  26. 08 6月, 2013 1 次提交
  27. 09 5月, 2013 1 次提交
    • S
      EDAC: Don't give write permission to read-only files · c8c64d16
      Srivatsa S. Bhat 提交于
      I get the following warning on boot:
      
      ------------[ cut here ]------------
      WARNING: at drivers/base/core.c:575 device_create_file+0x9a/0xa0()
      Hardware name:  -[8737R2A]-
      Write permission without 'store'
      ...
      </snip>
      
      Drilling down, this is related to dynamic channel ce_count attribute
      files sporting a S_IWUSR mode without a ->store() function. Looking
      around, it appears that they aren't supposed to have a ->store()
      function. So remove the bogus write permission to get rid of the
      warning.
      Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
      Cc: <stable@vger.kernel.org> # 3.[89]
      [ shorten commit message ]
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      c8c64d16
  28. 25 3月, 2013 1 次提交
  29. 16 3月, 2013 2 次提交
  30. 05 3月, 2013 1 次提交
  31. 21 2月, 2013 2 次提交