[arch-projects] [netcfg] [PATCH v2] Take rfkill switches attached to PHYs into account.

Jouke Witteveen j.witteveen at gmail.com
Sun Oct 7 16:19:47 EDT 2012


On Sun, Oct 7, 2012 at 10:05 PM, Ivan Shapovalov <intelfx100 at gmail.com> wrote:
> I've got rfkill switches under path
> "/sys/class/net/$INTERFACE/phy80211/rfkill*"
> but not
> "/sys/class/net/$INTERFACE/rfkill"
> on two systems with iwlagn and ath9k drivers. Guess someone else also
> does...
>
> Signed-off-by: Ivan Shapovalov <intelfx100 at gmail.com>
> ---
>  src/rfkill | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/rfkill b/src/rfkill
> index 12e1832..ff8a878 100644
> --- a/src/rfkill
> +++ b/src/rfkill
> @@ -29,10 +29,18 @@ get_rf_path() {
>          report_fail "no rfkill switch with name $RFKILL_NAME"
>      else
>          path="/sys/class/net/$INTERFACE/rfkill"
> +
> +        # There may be many rfkill switches attached to a single PHY
> +        # For now take the first of them
> +        path_phy=( "/sys/class/net/$INTERFACE/phy80211/rfkill"* )
> +
>          if [[ -d "$path" ]]; then
>              echo "$path"
>              return 0
> -        fi
> +        elif [[ "${path_phy[0]}" && -d "${path_phy[0]}" ]]; then
> +            echo "${path_phy[0]}"
> +            return 0
> +               fi
>          report_fail "no rfkill switch available on interface $INTERFACE"
>      fi
>      return 1
> --
> 1.7.12.2
>
>

I'm not quite comfortable with the new look of the code. For one thing
it would be nice to upgrade to the new ABI in one go:
http://www.kernel.org/doc/Documentation/ABI/stable/sysfs-class-rfkill
Can someone point me at some official statement about the location of
rfkill stuff under /sys/class/net/$INTERFACE ? If there is no official
location, I think it is perhaps best to make RFKILL_NAME mandatory and
only look under /sys/class/rfkill .

In general I would like src/rfkill to be simple. This patch makes it
hackish in my opinion.

- Jouke


More information about the arch-projects mailing list