ACPI / processor: Fix failure of loading acpi-cpufreq driver

According commit d640113fe (ACPI: processor: fix acpi_get_cpuid for UP
processor),  BIOS may not provide _MAT or MADT tables and acpi_get_apicid()
always returns -1. For these cases, original code will pass apic_id with
vaule of -1 to acpi_map_cpuid() and it will check the acpi_id. If acpi_id
is equal to zero, ignores apic_id and return zero for CPU0.

Commit b981513 (ACPI / scan: bail out early if failed to parse APIC
ID for CPU) changed the behavior. Return ENODEV when find apic_id is
less than zero after calling acpi_get_apicid(). This causes acpi-cpufreq
driver fails to be loaded on some machines. This patch is to fix it.

Fixes: b981513f806d (ACPI / scan: bail out early if failed to parse APIC ID for CPU)
References: https://bugzilla.kernel.org/show_bug.cgi?id=73781
Cc: 3.14+ <stable@vger.kernel.org> # 3.14+
Reported-and-tested-by: KATO Hiroshi <katoh@mikage.ne.jp>
Reported-and-tested-by: Stuart Foster <smf.linux@ntlworld.com>
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Merge branch 'acpi-processor'

* acpi-processor:
  ACPI / processor: Fix failure of loading acpi-cpufreq driver
Merge branch 'cpufreq-macros' into linux-next

* cpufreq-macros:
  sh: clk: Use cpufreq_for_each_valid_entry macro for iteration
  irda: sh_sir: Use cpufreq_for_each_valid_entry macro for iteration
  thermal: cpu_cooling: Use cpufreq_for_each_valid_entry macro for iteration
  mips: lemote 2f: Use cpufreq_for_each_entry macro for iteration
  mfd: db8500-prcmu: Use cpufreq_for_each_entry macro for iteration
  ARM: davinci: da850: Use cpufreq_for_each_entry macro for iteration
  cpufreq: Use cpufreq_for_each_* macros for frequency table iteration
  cpufreq: Introduce macros for cpufreq_frequency_table iteration
Merge branch 'i2c-acpi' into bleeding-edge

* i2c-acpi:
  I2C / ACPI: Add CONFIG_I2C_ACPI config
  I2C / ACPI: Move ACPI related code to i2c-acpi.c
  I2C / ACPI: Add i2c ACPI operation region support
  I2C: Add smbus word/block process call helper function
  I2C: Add smbus quick read/write helper function
  ACPI/Thermal: Use acpi_bus_attach_private_data() to attach private data
  ACPI: Add acpi_bus_attach_private_data() to facilitate to attach data to ACPI handle
  ACPICA: Export acpi_buffer_to_resource symbol
Merge branch 'pm-cpuidle' into bleeding-edge

* pm-cpuidle:
  cpuidle / menu: move repeated correction factor check to init
  cpuidle / menu: Return (-1) if there are no suitable states
  cpuidle: Combine cpuidle_enabled() with cpuidle_select()
Merge branch 'pm-sleep' into bleeding-edge

* pm-sleep:
  PM / hibernate: no kernel_power_off when pm_power_off NULL
Merge branch 'pm-cpufreq-next' into bleeding-edge

* pm-cpufreq-next:
  cpufreq: Kconfig: Fix spelling errors
  cpufreq: Make linux-pm@vger.kernel.org official mailing list
  cpufreq: exynos: Use dev_err/info function instead of pr_err/info
Merge branch 'powercap' into bleeding-edge

* powercap:
  powercap / RAPL: add new CPU IDs
  powercap / RAPL: further relax energy counter checks